diff --git a/aws-cloudformation-schema/aws-amplify-domain.json b/aws-cloudformation-schema/aws-amplify-domain.json index d2ac8c1c3a..50f04ccdec 100644 --- a/aws-cloudformation-schema/aws-amplify-domain.json +++ b/aws-cloudformation-schema/aws-amplify-domain.json @@ -121,7 +121,8 @@ "required" : [ "AppId", "DomainName", "SubDomainSettings" ], "primaryIdentifier" : [ "/properties/Arn" ], "createOnlyProperties" : [ "/properties/AppId", "/properties/DomainName" ], - "readOnlyProperties" : [ "/properties/Arn", "/properties/DomainStatus", "/properties/StatusReason", "/properties/CertificateRecord" ], + "readOnlyProperties" : [ "/properties/Arn", "/properties/DomainStatus", "/properties/StatusReason", "/properties/CertificateRecord", "/properties/Certificate", "/properties/UpdateStatus" ], + "writeOnlyProperties" : [ "/properties/CertificateSettings" ], "handlers" : { "create" : { "permissions" : [ "amplify:CreateDomainAssociation", "route53:ListHostedZones", "route53:ChangeResourceRecordSets", "iam:PassRole", "amplify:TagResource" ] 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-arczonalshift-zonalautoshiftconfiguration.json b/aws-cloudformation-schema/aws-arczonalshift-zonalautoshiftconfiguration.json index 9723d541e1..afd20c6558 100644 --- a/aws-cloudformation-schema/aws-arczonalshift-zonalautoshiftconfiguration.json +++ b/aws-cloudformation-schema/aws-arczonalshift-zonalautoshiftconfiguration.json @@ -4,7 +4,7 @@ "definitions" : { "ZonalAutoshiftStatus" : { "type" : "string", - "enum" : [ "ENABLED", "DISABLED" ] + "enum" : [ "ENABLED" ] }, "ControlCondition" : { "type" : "object", 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..b66b7c6f34 --- /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" : false, + "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..463732b7a2 --- /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" : true, + "tagProperty" : "/properties/Tags", + "tagUpdatable" : true, + "taggable" : true + }, + "additionalProperties" : false +} \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-bedrock-datasource.json b/aws-cloudformation-schema/aws-bedrock-datasource.json new file mode 100644 index 0000000000..1bf43af9e7 --- /dev/null +++ b/aws-cloudformation-schema/aws-bedrock-datasource.json @@ -0,0 +1,198 @@ +{ + "typeName" : "AWS::Bedrock::DataSource", + "description" : "Definition of AWS::Bedrock::DataSource Resource Type", + "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-aps", + "definitions" : { + "ChunkingConfiguration" : { + "type" : "object", + "description" : "Details about how to chunk the documents in the data source. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried.", + "properties" : { + "ChunkingStrategy" : { + "$ref" : "#/definitions/ChunkingStrategy" + }, + "FixedSizeChunkingConfiguration" : { + "$ref" : "#/definitions/FixedSizeChunkingConfiguration" + } + }, + "required" : [ "ChunkingStrategy" ], + "additionalProperties" : false + }, + "ChunkingStrategy" : { + "type" : "string", + "description" : "Knowledge base can split your source data into chunks. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried. You have the following options for chunking your data. If you opt for NONE, then you may want to pre-process your files by splitting them up such that each file corresponds to a chunk.", + "enum" : [ "FIXED_SIZE", "NONE" ] + }, + "DataSourceConfiguration" : { + "type" : "object", + "description" : "Specifies a raw data source location to ingest.", + "properties" : { + "Type" : { + "$ref" : "#/definitions/DataSourceType" + }, + "S3Configuration" : { + "$ref" : "#/definitions/S3DataSourceConfiguration" + } + }, + "required" : [ "Type", "S3Configuration" ], + "additionalProperties" : false + }, + "DataSourceStatus" : { + "type" : "string", + "description" : "The status of a data source.", + "enum" : [ "AVAILABLE", "DELETING" ] + }, + "DataSourceType" : { + "type" : "string", + "description" : "The type of the data source location.", + "enum" : [ "S3" ] + }, + "FixedSizeChunkingConfiguration" : { + "type" : "object", + "description" : "Configurations for when you choose fixed-size chunking. If you set the chunkingStrategy as NONE, exclude this field.", + "properties" : { + "MaxTokens" : { + "type" : "integer", + "minimum" : 1, + "description" : "The maximum number of tokens to include in a chunk." + }, + "OverlapPercentage" : { + "type" : "integer", + "maximum" : 99, + "minimum" : 1, + "description" : "The percentage of overlap between adjacent chunks of a data source." + } + }, + "required" : [ "MaxTokens", "OverlapPercentage" ], + "additionalProperties" : false + }, + "S3DataSourceConfiguration" : { + "type" : "object", + "description" : "Contains information about the S3 configuration of the data source.", + "properties" : { + "BucketArn" : { + "type" : "string", + "maxLength" : 2048, + "minLength" : 1, + "pattern" : "^arn:aws(|-cn|-us-gov):s3:::[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$", + "description" : "The ARN of the bucket that contains the data source." + }, + "InclusionPrefixes" : { + "type" : "array", + "items" : { + "type" : "string", + "maxLength" : 300, + "minLength" : 1, + "description" : "Prefix for s3 object." + }, + "maxItems" : 1, + "minItems" : 1, + "description" : "A list of S3 prefixes that define the object containing the data sources.", + "insertionOrder" : false + } + }, + "required" : [ "BucketArn" ], + "additionalProperties" : false + }, + "ServerSideEncryptionConfiguration" : { + "type" : "object", + "description" : "Contains details about the server-side encryption for the data source.", + "properties" : { + "KmsKeyArn" : { + "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" : "The ARN of the AWS KMS key used to encrypt the resource." + } + }, + "additionalProperties" : false + }, + "VectorIngestionConfiguration" : { + "type" : "object", + "description" : "Details about how to chunk the documents in the data source. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried.", + "properties" : { + "ChunkingConfiguration" : { + "$ref" : "#/definitions/ChunkingConfiguration" + } + }, + "additionalProperties" : false + } + }, + "properties" : { + "DataSourceConfiguration" : { + "$ref" : "#/definitions/DataSourceConfiguration" + }, + "DataSourceId" : { + "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." + }, + "KnowledgeBaseId" : { + "type" : "string", + "pattern" : "^[0-9a-zA-Z]{10}$", + "description" : "The unique identifier of the knowledge base to which to add the data source." + }, + "DataSourceStatus" : { + "$ref" : "#/definitions/DataSourceStatus" + }, + "Name" : { + "type" : "string", + "pattern" : "^([0-9a-zA-Z][_-]?){1,100}$", + "description" : "The name of the data source." + }, + "ServerSideEncryptionConfiguration" : { + "$ref" : "#/definitions/ServerSideEncryptionConfiguration" + }, + "VectorIngestionConfiguration" : { + "$ref" : "#/definitions/VectorIngestionConfiguration" + }, + "CreatedAt" : { + "type" : "string", + "description" : "The time at which the data source was created." + }, + "UpdatedAt" : { + "type" : "string", + "description" : "The time at which the knowledge base was last updated." + } + }, + "required" : [ "DataSourceConfiguration", "Name", "KnowledgeBaseId" ], + "readOnlyProperties" : [ "/properties/DataSourceId", "/properties/DataSourceStatus", "/properties/CreatedAt", "/properties/UpdatedAt" ], + "createOnlyProperties" : [ "/properties/KnowledgeBaseId", "/properties/VectorIngestionConfiguration" ], + "primaryIdentifier" : [ "/properties/KnowledgeBaseId", "/properties/DataSourceId" ], + "tagging" : { + "taggable" : false, + "cloudFormationSystemTags" : true + }, + "handlers" : { + "create" : { + "permissions" : [ "bedrock:CreateDataSource", "bedrock:GetDataSource", "bedrock:GetKnowledgeBase" ] + }, + "read" : { + "permissions" : [ "bedrock:GetDataSource" ] + }, + "update" : { + "permissions" : [ "bedrock:GetDataSource", "bedrock:UpdateDataSource" ] + }, + "delete" : { + "permissions" : [ "bedrock:GetDataSource", "bedrock:DeleteDataSource" ] + }, + "list" : { + "permissions" : [ "bedrock:ListDataSources" ], + "handlerSchema" : { + "properties" : { + "KnowledgeBaseId" : { + "$ref" : "resource-schema.json#/properties/KnowledgeBaseId" + } + }, + "required" : [ "KnowledgeBaseId" ] + } + } + }, + "additionalProperties" : false +} \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-bedrock-knowledgebase.json b/aws-cloudformation-schema/aws-bedrock-knowledgebase.json new file mode 100644 index 0000000000..58ebea5394 --- /dev/null +++ b/aws-cloudformation-schema/aws-bedrock-knowledgebase.json @@ -0,0 +1,398 @@ +{ + "typeName" : "AWS::Bedrock::KnowledgeBase", + "description" : "Definition of AWS::Bedrock::KnowledgeBase Resource Type", + "definitions" : { + "KnowledgeBaseConfiguration" : { + "type" : "object", + "description" : "Contains details about the embeddings model used for the knowledge base.", + "properties" : { + "Type" : { + "$ref" : "#/definitions/KnowledgeBaseType" + }, + "VectorKnowledgeBaseConfiguration" : { + "$ref" : "#/definitions/VectorKnowledgeBaseConfiguration" + } + }, + "required" : [ "Type", "VectorKnowledgeBaseConfiguration" ], + "additionalProperties" : false + }, + "KnowledgeBaseStatus" : { + "type" : "string", + "description" : "The status of a knowledge base.", + "enum" : [ "CREATING", "ACTIVE", "DELETING", "UPDATING", "FAILED" ] + }, + "KnowledgeBaseStorageType" : { + "type" : "string", + "description" : "The storage type of a knowledge base.", + "enum" : [ "OPENSEARCH_SERVERLESS", "PINECONE", "RDS" ] + }, + "KnowledgeBaseType" : { + "type" : "string", + "description" : "The type of a knowledge base.", + "enum" : [ "VECTOR" ] + }, + "OpenSearchServerlessConfiguration" : { + "type" : "object", + "description" : "Contains the storage configuration of the knowledge base in Amazon OpenSearch Service.", + "properties" : { + "CollectionArn" : { + "type" : "string", + "maxLength" : 2048, + "pattern" : "^arn:aws:aoss:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:collection/[a-z0-9-]{3,32}$", + "description" : "The ARN of the OpenSearch Service vector store." + }, + "VectorIndexName" : { + "type" : "string", + "maxLength" : 2048, + "pattern" : "^.*$", + "description" : "The name of the vector store." + }, + "FieldMapping" : { + "$ref" : "#/definitions/OpenSearchServerlessFieldMapping" + } + }, + "required" : [ "CollectionArn", "FieldMapping", "VectorIndexName" ], + "additionalProperties" : false + }, + "OpenSearchServerlessFieldMapping" : { + "type" : "object", + "description" : "A mapping of Bedrock Knowledge Base fields to OpenSearch Serverless field names", + "properties" : { + "VectorField" : { + "type" : "string", + "maxLength" : 2048, + "pattern" : "^.*$", + "description" : "The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources." + }, + "TextField" : { + "type" : "string", + "maxLength" : 2048, + "pattern" : "^.*$", + "description" : "The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose." + }, + "MetadataField" : { + "type" : "string", + "maxLength" : 2048, + "pattern" : "^.*$", + "description" : "The name of the field in which Amazon Bedrock stores metadata about the vector store." + } + }, + "required" : [ "MetadataField", "TextField", "VectorField" ], + "additionalProperties" : false + }, + "PineconeConfiguration" : { + "type" : "object", + "description" : "Contains the storage configuration of the knowledge base in Pinecone.", + "properties" : { + "ConnectionString" : { + "type" : "string", + "maxLength" : 2048, + "pattern" : "^.*$", + "description" : "The endpoint URL for your index management page." + }, + "CredentialsSecretArn" : { + "type" : "string", + "pattern" : "^arn:aws(|-cn|-us-gov):secretsmanager:[a-z0-9-]{1,20}:([0-9]{12}|):secret:[a-zA-Z0-9!/_+=.@-]{1,512}$", + "description" : "The ARN of the secret that you created in AWS Secrets Manager that is linked to your Pinecone API key." + }, + "Namespace" : { + "type" : "string", + "maxLength" : 2048, + "pattern" : "^.*$", + "description" : "The namespace to be used to write new data to your database." + }, + "FieldMapping" : { + "$ref" : "#/definitions/PineconeFieldMapping" + } + }, + "required" : [ "ConnectionString", "CredentialsSecretArn", "FieldMapping" ], + "additionalProperties" : false + }, + "PineconeFieldMapping" : { + "type" : "object", + "description" : "Contains the names of the fields to which to map information about the vector store.", + "properties" : { + "TextField" : { + "type" : "string", + "maxLength" : 2048, + "pattern" : "^.*$", + "description" : "The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose." + }, + "MetadataField" : { + "type" : "string", + "maxLength" : 2048, + "pattern" : "^.*$", + "description" : "The name of the field in which Amazon Bedrock stores metadata about the vector store." + } + }, + "required" : [ "MetadataField", "TextField" ], + "additionalProperties" : false + }, + "RdsConfiguration" : { + "type" : "object", + "description" : "Contains details about the storage configuration of the knowledge base in Amazon RDS. For more information, see Create a vector index in Amazon RDS.", + "properties" : { + "ResourceArn" : { + "type" : "string", + "pattern" : "^arn:aws(|-cn|-us-gov):rds:[a-zA-Z0-9-]*:[0-9]{12}:cluster:[a-zA-Z0-9-]{1,63}$", + "description" : "The ARN of the vector store." + }, + "CredentialsSecretArn" : { + "type" : "string", + "pattern" : "^arn:aws(|-cn|-us-gov):secretsmanager:[a-z0-9-]{1,20}:([0-9]{12}|):secret:[a-zA-Z0-9!/_+=.@-]{1,512}$", + "description" : "The ARN of the secret that you created in AWS Secrets Manager that is linked to your Amazon RDS database." + }, + "DatabaseName" : { + "type" : "string", + "maxLength" : 63, + "pattern" : "^[a-zA-Z0-9_\\-]+$", + "description" : "The name of your Amazon RDS database." + }, + "TableName" : { + "type" : "string", + "maxLength" : 63, + "pattern" : "^[a-zA-Z0-9_\\.\\-]+$", + "description" : "The name of the table in the database." + }, + "FieldMapping" : { + "$ref" : "#/definitions/RdsFieldMapping" + } + }, + "required" : [ "CredentialsSecretArn", "DatabaseName", "FieldMapping", "ResourceArn", "TableName" ], + "additionalProperties" : false + }, + "RdsFieldMapping" : { + "type" : "object", + "description" : "Contains the names of the fields to which to map information about the vector store.", + "properties" : { + "PrimaryKeyField" : { + "type" : "string", + "maxLength" : 63, + "pattern" : "^[a-zA-Z0-9_\\-]+$", + "description" : "The name of the field in which Amazon Bedrock stores the ID for each entry." + }, + "VectorField" : { + "type" : "string", + "maxLength" : 63, + "pattern" : "^[a-zA-Z0-9_\\-]+$", + "description" : "The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources." + }, + "TextField" : { + "type" : "string", + "maxLength" : 63, + "pattern" : "^[a-zA-Z0-9_\\-]+$", + "description" : "The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose." + }, + "MetadataField" : { + "type" : "string", + "maxLength" : 63, + "pattern" : "^[a-zA-Z0-9_\\-]+$", + "description" : "The name of the field in which Amazon Bedrock stores metadata about the vector store." + } + }, + "required" : [ "MetadataField", "PrimaryKeyField", "TextField", "VectorField" ], + "additionalProperties" : false + }, + "RedisEnterpriseCloudConfiguration" : { + "type" : "object", + "description" : "Contains the storage configuration of the knowledge base in Redis Enterprise Cloud.", + "properties" : { + "Endpoint" : { + "type" : "string", + "maxLength" : 2048, + "pattern" : "^.*$", + "description" : "The endpoint URL of the Redis Enterprise Cloud database." + }, + "VectorIndexName" : { + "type" : "string", + "maxLength" : 2048, + "pattern" : "^.*$", + "description" : "The name of the vector index." + }, + "CredentialsSecretArn" : { + "type" : "string", + "pattern" : "^arn:aws(|-cn|-us-gov):secretsmanager:[a-z0-9-]{1,20}:([0-9]{12}|):secret:[a-zA-Z0-9!/_+=.@-]{1,512}$", + "description" : "The ARN of the secret that you created in AWS Secrets Manager that is linked to your Redis Enterprise Cloud database." + }, + "FieldMapping" : { + "$ref" : "#/definitions/RedisEnterpriseCloudFieldMapping" + } + }, + "required" : [ "CredentialsSecretArn", "Endpoint", "FieldMapping", "VectorIndexName" ], + "additionalProperties" : false + }, + "RedisEnterpriseCloudFieldMapping" : { + "type" : "object", + "description" : "Contains the names of the fields to which to map information about the vector store.", + "properties" : { + "VectorField" : { + "type" : "string", + "maxLength" : 2048, + "pattern" : "^.*$", + "description" : "The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources." + }, + "TextField" : { + "type" : "string", + "maxLength" : 2048, + "pattern" : "^.*$", + "description" : "The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose." + }, + "MetadataField" : { + "type" : "string", + "maxLength" : 2048, + "pattern" : "^.*$", + "description" : "The name of the field in which Amazon Bedrock stores metadata about the vector store." + } + }, + "required" : [ "MetadataField", "TextField", "VectorField" ], + "additionalProperties" : false + }, + "StorageConfiguration" : { + "type" : "object", + "description" : "The vector store service in which the knowledge base is stored.", + "properties" : { + "Type" : { + "$ref" : "#/definitions/KnowledgeBaseStorageType" + }, + "OpensearchServerlessConfiguration" : { + "$ref" : "#/definitions/OpenSearchServerlessConfiguration" + }, + "PineconeConfiguration" : { + "$ref" : "#/definitions/PineconeConfiguration" + }, + "RdsConfiguration" : { + "$ref" : "#/definitions/RdsConfiguration" + } + }, + "required" : [ "Type" ], + "oneOf" : [ { + "required" : [ "OpensearchServerlessConfiguration" ] + }, { + "required" : [ "PineconeConfiguration" ] + }, { + "required" : [ "RdsConfiguration" ] + } ], + "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 + }, + "VectorKnowledgeBaseConfiguration" : { + "type" : "object", + "description" : "Contains details about the model used to create vector embeddings for the knowledge base.", + "properties" : { + "EmbeddingModelArn" : { + "type" : "string", + "maxLength" : 1011, + "minLength" : 20, + "pattern" : "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}))$", + "description" : "The ARN of the model used to create vector embeddings for the knowledge base." + } + }, + "required" : [ "EmbeddingModelArn" ], + "additionalProperties" : false + } + }, + "properties" : { + "Description" : { + "type" : "string", + "maxLength" : 200, + "minLength" : 1, + "description" : "Description of the Resource." + }, + "KnowledgeBaseConfiguration" : { + "$ref" : "#/definitions/KnowledgeBaseConfiguration" + }, + "KnowledgeBaseId" : { + "type" : "string", + "pattern" : "^[0-9a-zA-Z]{10}$", + "description" : "The unique identifier of the knowledge base." + }, + "KnowledgeBaseArn" : { + "type" : "string", + "maxLength" : 128, + "minLength" : 0, + "pattern" : "^arn:aws(|-cn|-us-gov):bedrock:[a-zA-Z0-9-]*:[0-9]{12}:knowledge-base/[0-9a-zA-Z]+$", + "description" : "The ARN of the knowledge base." + }, + "Name" : { + "type" : "string", + "pattern" : "^([0-9a-zA-Z][_-]?){1,100}$", + "description" : "The name of the knowledge base." + }, + "Status" : { + "$ref" : "#/definitions/KnowledgeBaseStatus" + }, + "RoleArn" : { + "type" : "string", + "maxLength" : 2048, + "pattern" : "^arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/.+$", + "description" : "The ARN of the IAM role with permissions to invoke API operations on the knowledge base. The ARN must begin with AmazonBedrockExecutionRoleForKnowledgeBase_" + }, + "CreatedAt" : { + "type" : "string", + "description" : "The time at which the knowledge base was created." + }, + "FailureReasons" : { + "type" : "array", + "items" : { + "type" : "string", + "maxLength" : 2048, + "description" : "Failure Reason for Error." + }, + "maxItems" : 2048, + "description" : "A list of reasons that the API operation on the knowledge base failed.", + "insertionOrder" : false + }, + "UpdatedAt" : { + "type" : "string", + "description" : "The time at which the knowledge base was last updated." + }, + "StorageConfiguration" : { + "$ref" : "#/definitions/StorageConfiguration" + }, + "Tags" : { + "$ref" : "#/definitions/TagsMap" + } + }, + "required" : [ "KnowledgeBaseConfiguration", "Name", "RoleArn", "StorageConfiguration" ], + "readOnlyProperties" : [ "/properties/KnowledgeBaseId", "/properties/KnowledgeBaseArn", "/properties/CreatedAt", "/properties/UpdatedAt", "/properties/FailureReasons", "/properties/Status" ], + "createOnlyProperties" : [ "/properties/StorageConfiguration", "/properties/KnowledgeBaseConfiguration" ], + "primaryIdentifier" : [ "/properties/KnowledgeBaseId" ], + "handlers" : { + "create" : { + "permissions" : [ "bedrock:CreateKnowledgeBase", "bedrock:GetKnowledgeBase", "bedrock:TagResource", "bedrock:ListTagsForResource", "bedrock:AssociateThirdPartyKnowledgeBase", "iam:PassRole" ] + }, + "read" : { + "permissions" : [ "bedrock:GetKnowledgeBase", "bedrock:ListTagsForResource" ] + }, + "update" : { + "permissions" : [ "bedrock:GetKnowledgeBase", "bedrock:UpdateKnowledgeBase", "bedrock:TagResource", "bedrock:UntagResource", "bedrock:ListTagsForResource", "bedrock:AssociateThirdPartyKnowledgeBase", "iam:PassRole" ] + }, + "delete" : { + "permissions" : [ "bedrock:GetKnowledgeBase", "bedrock:DeleteKnowledgeBase", "bedrock:ListDataSources" ] + }, + "list" : { + "permissions" : [ "bedrock:ListKnowledgeBases" ] + } + }, + "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-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-cleanroomsml-trainingdataset.json b/aws-cloudformation-schema/aws-cleanroomsml-trainingdataset.json new file mode 100644 index 0000000000..0d0328af59 --- /dev/null +++ b/aws-cloudformation-schema/aws-cleanroomsml-trainingdataset.json @@ -0,0 +1,200 @@ +{ + "typeName" : "AWS::CleanRoomsML::TrainingDataset", + "description" : "Definition of AWS::CleanRoomsML::TrainingDataset Resource Type", + "definitions" : { + "ColumnSchema" : { + "type" : "object", + "properties" : { + "ColumnName" : { + "type" : "string", + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$" + }, + "ColumnTypes" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/ColumnType" + }, + "maxItems" : 1, + "minItems" : 1 + } + }, + "required" : [ "ColumnName", "ColumnTypes" ], + "additionalProperties" : false + }, + "ColumnType" : { + "type" : "string", + "enum" : [ "USER_ID", "ITEM_ID", "TIMESTAMP", "CATEGORICAL_FEATURE", "NUMERICAL_FEATURE" ] + }, + "DataSource" : { + "type" : "object", + "properties" : { + "GlueDataSource" : { + "$ref" : "#/definitions/GlueDataSource" + } + }, + "required" : [ "GlueDataSource" ], + "additionalProperties" : false + }, + "Dataset" : { + "type" : "object", + "properties" : { + "Type" : { + "$ref" : "#/definitions/DatasetType" + }, + "InputConfig" : { + "$ref" : "#/definitions/DatasetInputConfig" + } + }, + "required" : [ "InputConfig", "Type" ], + "additionalProperties" : false + }, + "DatasetInputConfig" : { + "type" : "object", + "properties" : { + "Schema" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/ColumnSchema" + }, + "maxItems" : 100, + "minItems" : 1 + }, + "DataSource" : { + "$ref" : "#/definitions/DataSource" + } + }, + "required" : [ "DataSource", "Schema" ], + "additionalProperties" : false + }, + "DatasetType" : { + "type" : "string", + "enum" : [ "INTERACTIONS" ] + }, + "GlueDataSource" : { + "type" : "object", + "properties" : { + "TableName" : { + "type" : "string", + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$" + }, + "DatabaseName" : { + "type" : "string", + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^[a-zA-Z0-9_](([a-zA-Z0-9_]+-)*([a-zA-Z0-9_]+))?$" + }, + "CatalogId" : { + "type" : "string", + "maxLength" : 12, + "minLength" : 12, + "pattern" : "^[0-9]{12}$" + } + }, + "required" : [ "DatabaseName", "TableName" ], + "additionalProperties" : false + }, + "Tag" : { + "type" : "object", + "additionalProperties" : false, + "properties" : { + "Key" : { + "type" : "string", + "minLength" : 1, + "maxLength" : 128 + }, + "Value" : { + "type" : "string", + "minLength" : 1, + "maxLength" : 256 + } + }, + "required" : [ "Value", "Key" ] + }, + "TrainingDatasetStatus" : { + "type" : "string", + "enum" : [ "ACTIVE" ] + }, + "Unit" : { + "type" : "object", + "additionalProperties" : false + } + }, + "properties" : { + "Description" : { + "type" : "string", + "maxLength" : 255, + "pattern" : "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$" + }, + "Name" : { + "type" : "string", + "maxLength" : 63, + "minLength" : 1, + "pattern" : "^(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*$" + }, + "RoleArn" : { + "type" : "string", + "maxLength" : 2048, + "minLength" : 20, + "pattern" : "^arn:aws[-a-z]*:iam::[0-9]{12}:role/.+$" + }, + "Tags" : { + "description" : "An arbitrary set of tags (key-value pairs) for this cleanrooms-ml training dataset.", + "insertionOrder" : false, + "items" : { + "$ref" : "#/definitions/Tag" + }, + "uniqueItems" : true, + "type" : "array" + }, + "TrainingData" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/Dataset" + }, + "maxItems" : 1, + "minItems" : 1 + }, + "TrainingDatasetArn" : { + "type" : "string", + "maxLength" : 2048, + "minLength" : 20, + "pattern" : "^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:[0-9]{12}:training-dataset/[-a-zA-Z0-9_/.]+$" + }, + "Status" : { + "$ref" : "#/definitions/TrainingDatasetStatus" + } + }, + "required" : [ "Name", "RoleArn", "TrainingData" ], + "readOnlyProperties" : [ "/properties/Status", "/properties/TrainingDatasetArn" ], + "createOnlyProperties" : [ "/properties/Description", "/properties/Name", "/properties/RoleArn", "/properties/TrainingData" ], + "primaryIdentifier" : [ "/properties/TrainingDatasetArn" ], + "tagging" : { + "taggable" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "cloudFormationSystemTags" : true, + "tagProperty" : "/properties/Tags" + }, + "handlers" : { + "create" : { + "permissions" : [ "cleanrooms-ml:CreateTrainingDataset", "cleanrooms-ml:GetTrainingDataset", "cleanrooms-ml:TagResource", "iam:PassRole" ] + }, + "read" : { + "permissions" : [ "cleanrooms-ml:GetTrainingDataset" ] + }, + "delete" : { + "permissions" : [ "cleanrooms-ml:DeleteTrainingDataset" ] + }, + "list" : { + "permissions" : [ "cleanrooms-ml:ListTrainingDatasets" ] + }, + "update" : { + "permissions" : [ "cleanrooms-ml:TagResource", "cleanrooms-ml:UntagResource" ] + } + }, + "additionalProperties" : false +} \ No newline at end of file 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-alarm.json b/aws-cloudformation-schema/aws-cloudwatch-alarm.json index 208d0a3154..7b1c53f094 100644 --- a/aws-cloudformation-schema/aws-cloudwatch-alarm.json +++ b/aws-cloudformation-schema/aws-cloudwatch-alarm.json @@ -1,31 +1,31 @@ { "typeName" : "AWS::CloudWatch::Alarm", - "description" : "Resource Type definition for AWS::CloudWatch::Alarm", + "description" : "The ``AWS::CloudWatch::Alarm`` type specifies an alarm and associates it with the specified metric or metric math expression.\n When this operation creates an alarm, the alarm state is immediately set to ``INSUFFICIENT_DATA``. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed.\n When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm.", "additionalProperties" : false, "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cloudwatch.git", "properties" : { "ThresholdMetricId" : { - "description" : "In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm.", + "description" : "In an alarm based on an anomaly detection model, this is the ID of the ``ANOMALY_DETECTION_BAND`` function used as the threshold for the alarm.", "type" : "string" }, "EvaluateLowSampleCountPercentile" : { - "description" : "Used only for alarms based on percentiles.", + "description" : "Used only for alarms based on percentiles. If ``ignore``, the alarm state does not change during periods with too few data points to be statistically significant. If ``evaluate`` or this parameter is not used, the alarm is always evaluated and possibly changes state no matter how many data points are available.", "type" : "string" }, "ExtendedStatistic" : { - "description" : "The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100.", + "description" : "The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100.\n For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both.\n For an alarm based on a math expression, you can't specify ``ExtendedStatistic``. Instead, you use ``Metrics``.", "type" : "string" }, "ComparisonOperator" : { - "description" : "The arithmetic operation to use when comparing the specified statistic and threshold.", + "description" : "The arithmetic operation to use when comparing the specified statistic and threshold. The specified statistic value is used as the first operand.", "type" : "string" }, "TreatMissingData" : { - "description" : "Sets how this alarm is to handle missing data points. Valid values are breaching, notBreaching, ignore, and missing.", + "description" : "Sets how this alarm is to handle missing data points. Valid values are ``breaching``, ``notBreaching``, ``ignore``, and ``missing``. For more information, see [Configuring How Alarms Treat Missing Data](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data) in the *Amazon User Guide*.\n If you omit this parameter, the default behavior of ``missing`` is used.", "type" : "string" }, "Dimensions" : { - "description" : "The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify Dimensions. Instead, you use Metrics.", + "description" : "The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify ``Dimensions``. Instead, you use ``Metrics``.", "type" : "array", "uniqueItems" : false, "insertionOrder" : false, @@ -34,23 +34,23 @@ } }, "Period" : { - "description" : "The period in seconds, over which the statistic is applied.", + "description" : "The period, in seconds, over which the statistic is applied. This is required for an alarm based on a metric. Valid values are 10, 30, 60, and any multiple of 60.\n For an alarm based on a math expression, you can't specify ``Period``, and instead you use the ``Metrics`` parameter.\n *Minimum:* 10", "type" : "integer" }, "EvaluationPeriods" : { - "description" : "The number of periods over which data is compared to the specified threshold.", + "description" : "The number of periods over which data is compared to the specified threshold. If you are setting an alarm that requires that a number of consecutive data points be breaching to trigger the alarm, this value specifies that number. If you are setting an \"M out of N\" alarm, this value is the N, and ``DatapointsToAlarm`` is the M.\n For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*.", "type" : "integer" }, "Unit" : { - "description" : "The unit of the metric associated with the alarm.", + "description" : "The unit of the metric associated with the alarm. Specify this only if you are creating an alarm based on a single metric. Do not specify this if you are specifying a ``Metrics`` array.\n You can specify the following values: 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, or None.", "type" : "string" }, "Namespace" : { - "description" : "The namespace of the metric associated with the alarm.", + "description" : "The namespace of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you can't specify ``Namespace`` and you use ``Metrics`` instead.\n For a list of namespaces for metrics from AWS services, see [Services That Publish Metrics.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html)", "type" : "string" }, "OKActions" : { - "description" : "The actions to execute when this alarm transitions to the OK state from any other state.", + "description" : "The actions to execute when this alarm transitions to the ``OK`` state from any other state. Each action is specified as an Amazon Resource Name (ARN).", "type" : "array", "uniqueItems" : false, "items" : { @@ -58,7 +58,7 @@ } }, "AlarmActions" : { - "description" : "The list of actions to execute when this alarm transitions into an ALARM state from any other state.", + "description" : "The list of actions to execute when this alarm transitions into an ALARM state from any other state. Specify each action as an Amazon Resource Name (ARN). For more information about creating alarms and the actions that you can specify, see [PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html) in the *API Reference*.", "type" : "array", "uniqueItems" : false, "items" : { @@ -66,7 +66,7 @@ } }, "MetricName" : { - "description" : "The name of the metric associated with the alarm.", + "description" : "The name of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you use ``Metrics`` instead and you can't specify ``MetricName``.", "type" : "string" }, "ActionsEnabled" : { @@ -75,7 +75,7 @@ "default" : true }, "Metrics" : { - "description" : "An array that enables you to create an alarm based on the result of a metric math expression.", + "description" : "An array that enables you to create an alarm based on the result of a metric math expression. Each item in the array either retrieves a metric or performs a math expression.\n If you specify the ``Metrics`` parameter, you cannot specify ``MetricName``, ``Dimensions``, ``Period``, ``Namespace``, ``Statistic``, ``ExtendedStatistic``, or ``Unit``.", "type" : "array", "uniqueItems" : true, "items" : { @@ -87,15 +87,15 @@ "type" : "string" }, "AlarmName" : { - "description" : "The name of the alarm.", + "description" : "The name of the alarm. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the alarm name. \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.", "type" : "string" }, "Statistic" : { - "description" : "The statistic for the metric associated with the alarm, other than percentile.", + "description" : "The statistic for the metric associated with the alarm, other than percentile. For percentile statistics, use ``ExtendedStatistic``.\n For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both.\n For an alarm based on a math expression, you can't specify ``Statistic``. Instead, you use ``Metrics``.", "type" : "string" }, "InsufficientDataActions" : { - "description" : "The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state.", + "description" : "The actions to execute when this alarm transitions to the ``INSUFFICIENT_DATA`` state from any other state. Each action is specified as an Amazon Resource Name (ARN).", "type" : "array", "uniqueItems" : false, "items" : { @@ -103,26 +103,35 @@ } }, "Arn" : { - "description" : "Amazon Resource Name is a unique name for each resource.", + "description" : "", "type" : "string" }, "DatapointsToAlarm" : { - "description" : "The number of datapoints that must be breaching to trigger the alarm.", + "description" : "The number of datapoints that must be breaching to trigger the alarm. This is used only if you are setting an \"M out of N\" alarm. In that case, this value is the M, and the value that you set for ``EvaluationPeriods`` is the N value. For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*.\n If you omit this parameter, CW uses the same value here that you set for ``EvaluationPeriods``, and the alarm goes to alarm state if that many consecutive periods are breaching.", "type" : "integer" }, "Threshold" : { - "description" : "In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm.", + "description" : "The value to compare with the specified statistic.", "type" : "number" + }, + "Tags" : { + "description" : "", + "type" : "array", + "maxItems" : 50, + "uniqueItems" : true, + "items" : { + "$ref" : "#/definitions/Tag" + } } }, "definitions" : { "MetricStat" : { - "description" : "This structure defines the metric to be returned, along with the statistics, period, and units.", + "description" : "This structure defines the metric to be returned, along with the statistics, period, and units.\n ``MetricStat`` is a property of the [MetricDataQuery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html) property type.", "type" : "object", "additionalProperties" : false, "properties" : { "Period" : { - "description" : "The granularity, in seconds, of the returned data points.", + "description" : "The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a ``PutMetricData`` call that includes a ``StorageResolution`` of 1 second.\n If the ``StartTime`` parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned:\n + Start time between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute).\n + Start time between 15 and 63 days ago - Use a multiple of 300 seconds (5 minutes).\n + Start time greater than 63 days ago - Use a multiple of 3600 seconds (1 hour).", "type" : "integer" }, "Metric" : { @@ -130,27 +139,27 @@ "$ref" : "#/definitions/Metric" }, "Stat" : { - "description" : "The statistic to return.", + "description" : "The statistic to return. It can include any CW statistic or extended statistic. For a list of valid values, see the table in [Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the *User Guide*.", "type" : "string" }, "Unit" : { - "description" : "The unit to use for the returned data points.", + "description" : "The unit to use for the returned data points. \n Valid values are: 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, or None.", "type" : "string" } }, "required" : [ "Stat", "Period", "Metric" ] }, "Metric" : { - "description" : "The Metric property type represents a specific metric.", + "description" : "The ``Metric`` property type represents a specific metric. ``Metric`` is a property of the [MetricStat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricstat.html) property type.", "type" : "object", "additionalProperties" : false, "properties" : { "MetricName" : { - "description" : "The name of the metric.", + "description" : "The name of the metric that you want the alarm to watch. This is a required field.", "type" : "string" }, "Dimensions" : { - "description" : "The dimensions for the metric.", + "description" : "The metric dimensions that you want to be used for the metric that the alarm will watch.", "type" : "array", "uniqueItems" : false, "insertionOrder" : false, @@ -159,54 +168,54 @@ } }, "Namespace" : { - "description" : "The namespace of the metric.", + "description" : "The namespace of the metric that the alarm will watch.", "type" : "string" } } }, "Dimension" : { - "description" : "Dimensions are arbitrary name/value pairs that can be associated with a CloudWatch metric.", + "description" : "Dimension is an embedded property of the ``AWS::CloudWatch::Alarm`` type. Dimensions are name/value pairs that can be associated with a CW metric. You can specify a maximum of 10 dimensions for a given metric.", "type" : "object", "additionalProperties" : false, "properties" : { "Value" : { - "description" : "The value for the dimension.", + "description" : "The value for the dimension, from 1–255 characters in length.", "type" : "string" }, "Name" : { - "description" : "The name of the dimension.", + "description" : "The name of the dimension, from 1–255 characters in length. This dimension name must have been included when the metric was published.", "type" : "string" } }, "required" : [ "Value", "Name" ] }, "MetricDataQuery" : { - "description" : "This property type specifies the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a math expression on metric data.", + "description" : "The ``MetricDataQuery`` property type specifies the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a math expression on metric data. \n Any expression used must return a single time series. For more information, see [Metric Math Syntax and Functions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) in the *User Guide*.", "type" : "object", "additionalProperties" : false, "properties" : { "Label" : { - "description" : "A human-readable label for this metric or expression.", + "description" : "A human-readable label for this metric or expression. This is especially useful if this is an expression, so that you know what the value represents. If the metric or expression is shown in a CW dashboard widget, the label is shown. If ``Label`` is omitted, CW generates a default.", "type" : "string" }, "MetricStat" : { - "description" : "The metric to be returned, along with statistics, period, and units.", + "description" : "The metric to be returned, along with statistics, period, and units. Use this parameter only if this object is retrieving a metric and not performing a math expression on returned data.\n Within one MetricDataQuery object, you must specify either ``Expression`` or ``MetricStat`` but not both.", "$ref" : "#/definitions/MetricStat" }, "Id" : { - "description" : "A short name used to tie this object to the results in the response.", + "description" : "A short name used to tie this object to the results in the response. This name must be unique within a single call to ``GetMetricData``. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscore. The first character must be a lowercase letter.", "type" : "string" }, "ReturnData" : { - "description" : "This option indicates whether to return the timestamps and raw data values of this metric.", + "description" : "This option indicates whether to return the timestamps and raw data values of this metric.\n When you create an alarm based on a metric math expression, specify ``True`` for this value for only the one math expression that the alarm is based on. You must specify ``False`` for ``ReturnData`` for all the other metrics and expressions used in the alarm.\n This field is required.", "type" : "boolean" }, "Expression" : { - "description" : "The math expression to be performed on the returned data.", + "description" : "The math expression to be performed on the returned data, if this object is performing a math expression. This expression can use the ``Id`` of the other metrics to refer to those metrics, and can also use the ``Id`` of other expressions to use the result of those expressions. For more information about metric math expressions, see [Metric Math Syntax and Functions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) in the *User Guide*.\n Within each MetricDataQuery object, you must specify either ``Expression`` or ``MetricStat`` but not both.", "type" : "string" }, "Period" : { - "description" : "The period in seconds, over which the statistic is applied.", + "description" : "The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a ``PutMetricData`` operation that includes a ``StorageResolution of 1 second``.", "type" : "integer" }, "AccountId" : { @@ -215,15 +224,35 @@ } }, "required" : [ "Id" ] + }, + "Tag" : { + "description" : "", + "type" : "object", + "additionalProperties" : false, + "properties" : { + "Key" : { + "description" : "A unique identifier for the tag. The combination of tag keys and values can help you organize and categorize your resources.", + "type" : "string", + "minLength" : 1, + "maxLength" : 128 + }, + "Value" : { + "description" : "The value for the specified tag key.", + "type" : "string", + "minLength" : 1, + "maxLength" : 256 + } + }, + "required" : [ "Key", "Value" ] } }, "required" : [ "ComparisonOperator", "EvaluationPeriods" ], "handlers" : { "create" : { - "permissions" : [ "cloudwatch:PutMetricAlarm", "cloudwatch:DescribeAlarms" ] + "permissions" : [ "cloudwatch:PutMetricAlarm", "cloudwatch:DescribeAlarms", "cloudwatch:TagResource" ] }, "update" : { - "permissions" : [ "cloudwatch:PutMetricAlarm", "cloudwatch:DescribeAlarms" ] + "permissions" : [ "cloudwatch:PutMetricAlarm", "cloudwatch:DescribeAlarms", "cloudwatch:TagResource", "cloudwatch:UntagResource" ] }, "delete" : { "permissions" : [ "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms" ] @@ -232,13 +261,17 @@ "permissions" : [ "cloudwatch:DescribeAlarms" ] }, "read" : { - "permissions" : [ "cloudwatch:DescribeAlarms" ] + "permissions" : [ "cloudwatch:DescribeAlarms", "cloudwatch:ListTagsForResource" ] } }, "createOnlyProperties" : [ "/properties/AlarmName" ], "primaryIdentifier" : [ "/properties/AlarmName" ], "readOnlyProperties" : [ "/properties/Arn" ], "tagging" : { - "taggable" : false + "taggable" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "cloudFormationSystemTags" : true, + "tagProperty" : "/properties/Tags" } } \ No newline at end of file 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-cloudwatch-compositealarm.json b/aws-cloudformation-schema/aws-cloudwatch-compositealarm.json index 99c47cc879..db49364081 100644 --- a/aws-cloudformation-schema/aws-cloudwatch-compositealarm.json +++ b/aws-cloudformation-schema/aws-cloudwatch-compositealarm.json @@ -2,6 +2,13 @@ "typeName" : "AWS::CloudWatch::CompositeAlarm", "description" : "The AWS::CloudWatch::CompositeAlarm type specifies an alarm which aggregates the states of other Alarms (Metric or Composite Alarms) as defined by the AlarmRule expression", "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cloudwatch.git", + "tagging" : { + "taggable" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "cloudFormationSystemTags" : true, + "tagProperty" : "/properties/Tags" + }, "properties" : { "Arn" : { "type" : "string", @@ -79,6 +86,43 @@ "description" : "Actions will be suppressed if WaitPeriod is active. The length of time that actions are suppressed is in seconds.", "type" : "integer", "minimum" : 0 + }, + "Tags" : { + "description" : "A list of key-value pairs to associate with the composite alarm. You can associate as many as 50 tags with an alarm.", + "type" : "array", + "maxItems" : 50, + "uniqueItems" : true, + "items" : { + "$ref" : "#/definitions/Tag" + } + } + }, + "definitions" : { + "AlarmActionARN" : { + "type" : "string", + "description" : "Amazon Resource Name (ARN) of the action", + "minLength" : 1, + "maxLength" : 1024 + }, + "Tag" : { + "description" : "Metadata that you can assign to a composite alarm, Tags can help you organize and categorize your resources.", + "type" : "object", + "additionalProperties" : false, + "properties" : { + "Key" : { + "description" : "A unique identifier for the tag. The combination of tag keys and values can help you organize and categorize your resources.", + "type" : "string", + "minLength" : 1, + "maxLength" : 128 + }, + "Value" : { + "description" : "The value for the specified tag key.", + "type" : "string", + "minLength" : 1, + "maxLength" : 256 + } + }, + "required" : [ "Key", "Value" ] } }, "required" : [ "AlarmRule" ], @@ -88,13 +132,13 @@ "additionalProperties" : false, "handlers" : { "create" : { - "permissions" : [ "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm" ] + "permissions" : [ "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:TagResource" ] }, "read" : { - "permissions" : [ "cloudwatch:DescribeAlarms" ] + "permissions" : [ "cloudwatch:DescribeAlarms", "cloudwatch:ListTagsForResource" ] }, "update" : { - "permissions" : [ "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm" ] + "permissions" : [ "cloudwatch:DescribeAlarms", "cloudwatch:PutCompositeAlarm", "cloudwatch:TagResource", "cloudwatch:UntagResource" ] }, "delete" : { "permissions" : [ "cloudwatch:DescribeAlarms", "cloudwatch:DeleteAlarms" ] @@ -102,8 +146,5 @@ "list" : { "permissions" : [ "cloudwatch:DescribeAlarms" ] } - }, - "tagging" : { - "taggable" : false } } \ No newline at end of file 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-deadline-farm.json b/aws-cloudformation-schema/aws-deadline-farm.json new file mode 100644 index 0000000000..f30d10bbd4 --- /dev/null +++ b/aws-cloudformation-schema/aws-deadline-farm.json @@ -0,0 +1,57 @@ +{ + "typeName" : "AWS::Deadline::Farm", + "description" : "Definition of AWS::Deadline::Farm Resource Type", + "properties" : { + "Description" : { + "type" : "string", + "default" : "", + "maxLength" : 100, + "minLength" : 0 + }, + "DisplayName" : { + "type" : "string", + "maxLength" : 100, + "minLength" : 1 + }, + "FarmId" : { + "type" : "string", + "pattern" : "^farm-[0-9a-f]{32}$" + }, + "KmsKeyArn" : { + "type" : "string", + "pattern" : "^arn:aws[-a-z]*:kms:.*:key/.*" + }, + "Arn" : { + "type" : "string", + "pattern" : "^arn:(aws[a-zA-Z-]*):deadline:[a-z0-9-]+:[0-9]+:farm/.+?" + } + }, + "required" : [ "DisplayName" ], + "readOnlyProperties" : [ "/properties/FarmId", "/properties/Arn" ], + "tagging" : { + "taggable" : false, + "tagOnCreate" : false, + "tagUpdatable" : false, + "cloudFormationSystemTags" : false + }, + "createOnlyProperties" : [ "/properties/KmsKeyArn" ], + "primaryIdentifier" : [ "/properties/Arn" ], + "handlers" : { + "create" : { + "permissions" : [ "deadline:CreateFarm", "deadline:GetFarm", "kms:Encrypt", "kms:Decrypt", "kms:CreateGrant", "kms:GenerateDataKey" ] + }, + "read" : { + "permissions" : [ "deadline:GetFarm", "identitystore:ListGroupMembershipsForMember", "kms:Encrypt", "kms:Decrypt", "kms:CreateGrant", "kms:GenerateDataKey" ] + }, + "update" : { + "permissions" : [ "deadline:UpdateFarm", "deadline:GetFarm", "identitystore:ListGroupMembershipsForMember", "kms:Encrypt", "kms:Decrypt", "kms:CreateGrant", "kms:GenerateDataKey" ] + }, + "delete" : { + "permissions" : [ "deadline:DeleteFarm", "deadline:GetFarm", "identitystore:ListGroupMembershipsForMember", "kms:Encrypt", "kms:Decrypt", "kms:CreateGrant", "kms:GenerateDataKey" ] + }, + "list" : { + "permissions" : [ "deadline:ListFarms", "identitystore:ListGroupMembershipsForMember" ] + } + }, + "additionalProperties" : false +} \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-deadline-fleet.json b/aws-cloudformation-schema/aws-deadline-fleet.json new file mode 100644 index 0000000000..2eaca77d0b --- /dev/null +++ b/aws-cloudformation-schema/aws-deadline-fleet.json @@ -0,0 +1,444 @@ +{ + "typeName" : "AWS::Deadline::Fleet", + "description" : "Definition of AWS::Deadline::Fleet Resource Type", + "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-deadline", + "definitions" : { + "AcceleratorCountRange" : { + "type" : "object", + "properties" : { + "Min" : { + "type" : "integer", + "maximum" : 2147483647, + "minimum" : 0 + }, + "Max" : { + "type" : "integer", + "maximum" : 2147483647, + "minimum" : 0 + } + }, + "required" : [ "Min" ], + "additionalProperties" : false + }, + "AcceleratorTotalMemoryMiBRange" : { + "type" : "object", + "properties" : { + "Min" : { + "type" : "integer", + "maximum" : 2147483647, + "minimum" : 0 + }, + "Max" : { + "type" : "integer", + "maximum" : 2147483647, + "minimum" : 0 + } + }, + "required" : [ "Min" ], + "additionalProperties" : false + }, + "AcceleratorType" : { + "type" : "string", + "enum" : [ "gpu" ] + }, + "AutoScalingMode" : { + "type" : "string", + "enum" : [ "NO_SCALING", "EVENT_BASED_AUTO_SCALING" ] + }, + "CpuArchitectureType" : { + "type" : "string", + "enum" : [ "x86_64", "arm64" ] + }, + "CustomerManagedFleetConfiguration" : { + "type" : "object", + "properties" : { + "Mode" : { + "$ref" : "#/definitions/AutoScalingMode" + }, + "WorkerCapabilities" : { + "$ref" : "#/definitions/CustomerManagedWorkerCapabilities" + }, + "StorageProfileId" : { + "type" : "string", + "pattern" : "^sp-[0-9a-f]{32}$" + } + }, + "required" : [ "Mode", "WorkerCapabilities" ], + "additionalProperties" : false + }, + "CustomerManagedFleetOperatingSystemFamily" : { + "type" : "string", + "enum" : [ "WINDOWS", "LINUX", "MACOS" ] + }, + "CustomerManagedWorkerCapabilities" : { + "type" : "object", + "properties" : { + "VCpuCount" : { + "$ref" : "#/definitions/VCpuCountRange" + }, + "MemoryMiB" : { + "$ref" : "#/definitions/MemoryMiBRange" + }, + "AcceleratorTypes" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/AcceleratorType" + } + }, + "AcceleratorCount" : { + "$ref" : "#/definitions/AcceleratorCountRange" + }, + "AcceleratorTotalMemoryMiB" : { + "$ref" : "#/definitions/AcceleratorTotalMemoryMiBRange" + }, + "OsFamily" : { + "$ref" : "#/definitions/CustomerManagedFleetOperatingSystemFamily" + }, + "CpuArchitectureType" : { + "$ref" : "#/definitions/CpuArchitectureType" + }, + "CustomAmounts" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/FleetAmountCapability" + }, + "maxItems" : 15, + "minItems" : 1 + }, + "CustomAttributes" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/FleetAttributeCapability" + }, + "maxItems" : 15, + "minItems" : 1 + } + }, + "required" : [ "CpuArchitectureType", "MemoryMiB", "OsFamily", "VCpuCount" ], + "additionalProperties" : false + }, + "Ec2EbsVolume" : { + "type" : "object", + "properties" : { + "SizeGiB" : { + "type" : "integer", + "default" : 250 + }, + "Iops" : { + "type" : "integer", + "default" : 3000, + "maximum" : 16000, + "minimum" : 3000 + }, + "ThroughputMiB" : { + "type" : "integer", + "default" : 125, + "maximum" : 1000, + "minimum" : 125 + } + }, + "additionalProperties" : false + }, + "Ec2MarketType" : { + "type" : "string", + "enum" : [ "on-demand", "spot" ] + }, + "FleetAmountCapability" : { + "type" : "object", + "properties" : { + "Name" : { + "type" : "string", + "maxLength" : 100, + "minLength" : 1, + "pattern" : "^([a-zA-Z][a-zA-Z0-9]{0,63}:)?amount(\\.[a-zA-Z][a-zA-Z0-9]{0,63})+$" + }, + "Min" : { + "type" : "number" + }, + "Max" : { + "type" : "number" + } + }, + "required" : [ "Min", "Name" ], + "additionalProperties" : false + }, + "FleetAttributeCapability" : { + "type" : "object", + "properties" : { + "Name" : { + "type" : "string", + "maxLength" : 100, + "minLength" : 1, + "pattern" : "^([a-zA-Z][a-zA-Z0-9]{0,63}:)?attr(\\.[a-zA-Z][a-zA-Z0-9]{0,63})+$" + }, + "Values" : { + "type" : "array", + "items" : { + "type" : "string", + "maxLength" : 100, + "minLength" : 1, + "pattern" : "^[a-zA-Z_]([a-zA-Z0-9_\\-]{0,99})$" + }, + "maxItems" : 10, + "minItems" : 1 + } + }, + "required" : [ "Name", "Values" ], + "additionalProperties" : false + }, + "FleetCapabilities" : { + "type" : "object", + "properties" : { + "Amounts" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/FleetAmountCapability" + }, + "maxItems" : 15, + "minItems" : 1 + }, + "Attributes" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/FleetAttributeCapability" + }, + "maxItems" : 15, + "minItems" : 1 + } + }, + "additionalProperties" : false + }, + "FleetConfiguration" : { + "oneOf" : [ { + "type" : "object", + "title" : "CustomerManaged", + "properties" : { + "CustomerManaged" : { + "$ref" : "#/definitions/CustomerManagedFleetConfiguration" + } + }, + "required" : [ "CustomerManaged" ], + "additionalProperties" : false + }, { + "type" : "object", + "title" : "ServiceManagedEc2", + "properties" : { + "ServiceManagedEc2" : { + "$ref" : "#/definitions/ServiceManagedEc2FleetConfiguration" + } + }, + "required" : [ "ServiceManagedEc2" ], + "additionalProperties" : false + } ] + }, + "FleetStatus" : { + "type" : "string", + "enum" : [ "ACTIVE", "CREATE_IN_PROGRESS", "UPDATE_IN_PROGRESS", "CREATE_FAILED", "UPDATE_FAILED" ] + }, + "MemoryMiBRange" : { + "type" : "object", + "properties" : { + "Min" : { + "type" : "integer", + "maximum" : 2147483647, + "minimum" : 512 + }, + "Max" : { + "type" : "integer", + "maximum" : 2147483647, + "minimum" : 512 + } + }, + "required" : [ "Min" ], + "additionalProperties" : false + }, + "ServiceManagedEc2FleetConfiguration" : { + "type" : "object", + "properties" : { + "InstanceCapabilities" : { + "$ref" : "#/definitions/ServiceManagedEc2InstanceCapabilities" + }, + "InstanceMarketOptions" : { + "$ref" : "#/definitions/ServiceManagedEc2InstanceMarketOptions" + } + }, + "required" : [ "InstanceCapabilities", "InstanceMarketOptions" ], + "additionalProperties" : false + }, + "ServiceManagedEc2InstanceMarketOptions" : { + "type" : "object", + "properties" : { + "Type" : { + "$ref" : "#/definitions/Ec2MarketType" + } + }, + "required" : [ "Type" ], + "additionalProperties" : false + }, + "ServiceManagedEc2InstanceCapabilities" : { + "type" : "object", + "properties" : { + "VCpuCount" : { + "$ref" : "#/definitions/VCpuCountRange" + }, + "MemoryMiB" : { + "$ref" : "#/definitions/MemoryMiBRange" + }, + "OsFamily" : { + "$ref" : "#/definitions/ServiceManagedFleetOperatingSystemFamily" + }, + "CpuArchitectureType" : { + "$ref" : "#/definitions/CpuArchitectureType" + }, + "RootEbsVolume" : { + "$ref" : "#/definitions/Ec2EbsVolume" + }, + "AllowedInstanceTypes" : { + "type" : "array", + "items" : { + "type" : "string", + "pattern" : "^[a-zA-Z0-9]+\\.[a-zA-Z0-9]+$" + }, + "maxItems" : 100, + "minItems" : 1 + }, + "ExcludedInstanceTypes" : { + "type" : "array", + "items" : { + "type" : "string", + "pattern" : "^[a-zA-Z0-9]+\\.[a-zA-Z0-9]+$" + }, + "maxItems" : 100, + "minItems" : 1 + }, + "CustomAmounts" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/FleetAmountCapability" + }, + "maxItems" : 15, + "minItems" : 1 + }, + "CustomAttributes" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/FleetAttributeCapability" + }, + "maxItems" : 15, + "minItems" : 1 + } + }, + "required" : [ "CpuArchitectureType", "MemoryMiB", "OsFamily", "VCpuCount" ], + "additionalProperties" : false + }, + "ServiceManagedFleetOperatingSystemFamily" : { + "type" : "string", + "enum" : [ "WINDOWS", "LINUX" ] + }, + "VCpuCountRange" : { + "type" : "object", + "properties" : { + "Min" : { + "type" : "integer", + "maximum" : 10000, + "minimum" : 1 + }, + "Max" : { + "type" : "integer", + "maximum" : 10000, + "minimum" : 1 + } + }, + "required" : [ "Min" ], + "additionalProperties" : false + } + }, + "properties" : { + "Capabilities" : { + "$ref" : "#/definitions/FleetCapabilities" + }, + "Configuration" : { + "$ref" : "#/definitions/FleetConfiguration" + }, + "Description" : { + "type" : "string", + "default" : "", + "maxLength" : 100, + "minLength" : 0 + }, + "DisplayName" : { + "type" : "string", + "maxLength" : 100, + "minLength" : 1 + }, + "FarmId" : { + "type" : "string", + "pattern" : "^farm-[0-9a-f]{32}$" + }, + "FleetId" : { + "type" : "string", + "pattern" : "^fleet-[0-9a-f]{32}$" + }, + "MaxWorkerCount" : { + "type" : "integer", + "maximum" : 2147483647, + "minimum" : 0 + }, + "MinWorkerCount" : { + "type" : "integer", + "default" : 0, + "maximum" : 2147483647, + "minimum" : 0 + }, + "RoleArn" : { + "type" : "string", + "pattern" : "^arn:(aws[a-zA-Z-]*):iam::\\d{12}:role(/[!-.0-~]+)*/[\\w+=,.@-]+$" + }, + "Status" : { + "$ref" : "#/definitions/FleetStatus" + }, + "WorkerCount" : { + "type" : "integer" + }, + "Arn" : { + "type" : "string", + "pattern" : "^arn:(aws[a-zA-Z-]*):deadline:[a-z0-9-]+:[0-9]+:farm/farm-[0-9a-z]{32}/fleet/fleet-[0-9a-z]{32}" + } + }, + "required" : [ "Configuration", "DisplayName", "MaxWorkerCount", "RoleArn" ], + "readOnlyProperties" : [ "/properties/Capabilities", "/properties/FleetId", "/properties/Status", "/properties/WorkerCount", "/properties/Arn" ], + "createOnlyProperties" : [ "/properties/FarmId" ], + "primaryIdentifier" : [ "/properties/Arn" ], + "tagging" : { + "taggable" : false, + "tagOnCreate" : false, + "tagUpdatable" : false, + "cloudFormationSystemTags" : false + }, + "handlers" : { + "create" : { + "permissions" : [ "deadline:CreateFleet", "deadline:GetFleet", "iam:PassRole", "identitystore:ListGroupMembershipsForMember", "logs:CreateLogGroup" ] + }, + "read" : { + "permissions" : [ "deadline:GetFleet", "identitystore:ListGroupMembershipsForMember" ] + }, + "update" : { + "permissions" : [ "deadline:UpdateFleet", "deadline:GetFleet", "iam:PassRole", "identitystore:ListGroupMembershipsForMember" ] + }, + "delete" : { + "permissions" : [ "deadline:DeleteFleet", "deadline:GetFleet", "identitystore:ListGroupMembershipsForMember" ] + }, + "list" : { + "handlerSchema" : { + "properties" : { + "FarmId" : { + "$ref" : "resource-schema.json#/properties/FarmId" + } + }, + "required" : [ "FarmId" ] + }, + "permissions" : [ "deadline:ListFleets", "identitystore:DescribeGroup", "identitystore:DescribeUser", "identitystore:ListGroupMembershipsForMember" ] + } + }, + "additionalProperties" : false +} \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-deadline-licenseendpoint.json b/aws-cloudformation-schema/aws-deadline-licenseendpoint.json new file mode 100644 index 0000000000..f99cae7596 --- /dev/null +++ b/aws-cloudformation-schema/aws-deadline-licenseendpoint.json @@ -0,0 +1,79 @@ +{ + "typeName" : "AWS::Deadline::LicenseEndpoint", + "description" : "Definition of AWS::Deadline::LicenseEndpoint Resource Type", + "definitions" : { + "LicenseEndpointStatus" : { + "type" : "string", + "enum" : [ "CREATE_IN_PROGRESS", "DELETE_IN_PROGRESS", "READY", "NOT_READY" ] + } + }, + "properties" : { + "DnsName" : { + "type" : "string" + }, + "LicenseEndpointId" : { + "type" : "string", + "pattern" : "^le-[0-9a-f]{32}$" + }, + "SecurityGroupIds" : { + "type" : "array", + "items" : { + "type" : "string" + }, + "maxItems" : 10, + "minItems" : 1 + }, + "Status" : { + "$ref" : "#/definitions/LicenseEndpointStatus" + }, + "StatusMessage" : { + "type" : "string", + "maxLength" : 1024, + "minLength" : 0 + }, + "SubnetIds" : { + "type" : "array", + "items" : { + "type" : "string", + "maxLength" : 32, + "minLength" : 1 + }, + "maxItems" : 10, + "minItems" : 1 + }, + "VpcId" : { + "type" : "string", + "maxLength" : 32, + "minLength" : 1 + }, + "Arn" : { + "type" : "string", + "pattern" : "^arn:(aws[a-zA-Z-]*):deadline:[a-z0-9-]+:[0-9]{12}:license-endpoint/le-[0-9a-z]{32}" + } + }, + "required" : [ "SecurityGroupIds", "SubnetIds", "VpcId" ], + "readOnlyProperties" : [ "/properties/DnsName", "/properties/LicenseEndpointId", "/properties/Status", "/properties/StatusMessage", "/properties/Arn" ], + "createOnlyProperties" : [ "/properties/SecurityGroupIds", "/properties/SubnetIds", "/properties/VpcId" ], + "primaryIdentifier" : [ "/properties/Arn" ], + "tagging" : { + "taggable" : false, + "tagOnCreate" : false, + "tagUpdatable" : false, + "cloudFormationSystemTags" : false + }, + "handlers" : { + "create" : { + "permissions" : [ "deadline:CreateLicenseEndpoint", "deadline:GetLicenseEndpoint", "ec2:CreateTags", "ec2:CreateVpcEndpoint", "ec2:DescribeVpcEndpoints" ] + }, + "read" : { + "permissions" : [ "deadline:GetLicenseEndpoint" ] + }, + "delete" : { + "permissions" : [ "deadline:GetLicenseEndpoint", "deadline:DeleteLicenseEndpoint", "ec2:DeleteVpcEndpoints", "ec2:DescribeVpcEndpoints" ] + }, + "list" : { + "permissions" : [ "deadline:ListLicenseEndpoints" ] + } + }, + "additionalProperties" : false +} \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-deadline-meteredproduct.json b/aws-cloudformation-schema/aws-deadline-meteredproduct.json new file mode 100644 index 0000000000..fef8a42020 --- /dev/null +++ b/aws-cloudformation-schema/aws-deadline-meteredproduct.json @@ -0,0 +1,66 @@ +{ + "typeName" : "AWS::Deadline::MeteredProduct", + "description" : "Definition of AWS::Deadline::MeteredProduct Resource Type", + "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-deadline", + "properties" : { + "LicenseEndpointId" : { + "type" : "string", + "pattern" : "^le-[0-9a-f]{32}$" + }, + "ProductId" : { + "type" : "string", + "pattern" : "^[0-9a-z]{1,32}-[.0-9a-z]{1,32}$" + }, + "Port" : { + "type" : "integer", + "minimum" : 1024, + "maximum" : 65535 + }, + "Family" : { + "type" : "string", + "minLength" : 1, + "maxLength" : 64 + }, + "Vendor" : { + "type" : "string", + "minLength" : 1, + "maxLength" : 64 + }, + "Arn" : { + "type" : "string", + "pattern" : "^arn:(aws[a-zA-Z-]*):deadline:[a-z0-9-]+:[0-9]{12}:license-endpoint/le-[0-9a-z]{32}/metered-product/[0-9a-z]{1,32}-[.0-9a-z]{1,32}" + } + }, + "createOnlyProperties" : [ "/properties/LicenseEndpointId", "/properties/ProductId" ], + "readOnlyProperties" : [ "/properties/Arn" ], + "primaryIdentifier" : [ "/properties/Arn" ], + "tagging" : { + "taggable" : false, + "tagOnCreate" : false, + "tagUpdatable" : false, + "cloudFormationSystemTags" : false + }, + "handlers" : { + "create" : { + "permissions" : [ "deadline:PutMeteredProduct", "deadline:ListMeteredProducts" ] + }, + "read" : { + "permissions" : [ "deadline:GetMeteredProduct", "deadline:ListMeteredProducts" ] + }, + "delete" : { + "permissions" : [ "deadline:DeleteMeteredProduct", "deadline:ListMeteredProducts" ] + }, + "list" : { + "handlerSchema" : { + "properties" : { + "LicenseEndpointId" : { + "$ref" : "resource-schema.json#/properties/LicenseEndpointId" + } + }, + "required" : [ "LicenseEndpointId" ] + }, + "permissions" : [ "deadline:ListMeteredProducts" ] + } + }, + "additionalProperties" : false +} \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-deadline-queue.json b/aws-cloudformation-schema/aws-deadline-queue.json new file mode 100644 index 0000000000..27c6f85eca --- /dev/null +++ b/aws-cloudformation-schema/aws-deadline-queue.json @@ -0,0 +1,184 @@ +{ + "typeName" : "AWS::Deadline::Queue", + "description" : "Definition of AWS::Deadline::Queue Resource Type", + "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-deadline", + "definitions" : { + "DefaultQueueBudgetAction" : { + "type" : "string", + "default" : "NONE", + "enum" : [ "NONE", "STOP_SCHEDULING_AND_COMPLETE_TASKS", "STOP_SCHEDULING_AND_CANCEL_TASKS" ] + }, + "JobAttachmentSettings" : { + "type" : "object", + "properties" : { + "S3BucketName" : { + "type" : "string", + "maxLength" : 63, + "minLength" : 3, + "pattern" : "(?!^(\\d+\\.)+\\d+$)(^(([a-z0-9]|[a-z0-9][a-z0-9\\-]*[a-z0-9])\\.)*([a-z0-9]|[a-z0-9][a-z0-9\\-]*[a-z0-9])$)" + }, + "RootPrefix" : { + "type" : "string", + "maxLength" : 63, + "minLength" : 1 + } + }, + "required" : [ "RootPrefix", "S3BucketName" ], + "additionalProperties" : false + }, + "JobRunAsUser" : { + "type" : "object", + "properties" : { + "Posix" : { + "$ref" : "#/definitions/PosixUser" + }, + "Windows" : { + "$ref" : "#/definitions/WindowsUser" + }, + "RunAs" : { + "$ref" : "#/definitions/RunAs" + } + }, + "required" : [ "RunAs" ], + "additionalProperties" : false + }, + "PosixUser" : { + "type" : "object", + "properties" : { + "User" : { + "type" : "string", + "maxLength" : 31, + "minLength" : 0, + "pattern" : "^(?:[a-z][a-z0-9-]{0,30})?$" + }, + "Group" : { + "type" : "string", + "maxLength" : 31, + "minLength" : 0, + "pattern" : "^(?:[a-z][a-z0-9-]{0,30})?$" + } + }, + "required" : [ "Group", "User" ], + "additionalProperties" : false + }, + "RunAs" : { + "type" : "string", + "enum" : [ "QUEUE_CONFIGURED_USER", "WORKER_AGENT_USER" ] + }, + "WindowsUser" : { + "type" : "object", + "properties" : { + "User" : { + "type" : "string", + "maxLength" : 111, + "minLength" : 0, + "pattern" : "^[^\"'/\\[\\]:;|=,+*?<>\\s]*$" + }, + "PasswordArn" : { + "type" : "string", + "maxLength" : 2048, + "minLength" : 20, + "pattern" : "^arn:(aws[a-zA-Z-]*):secretsmanager:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:secret:[a-zA-Z0-9-/_+=.@]{1,2028}$" + } + }, + "required" : [ "PasswordArn", "User" ], + "additionalProperties" : false + } + }, + "properties" : { + "AllowedStorageProfileIds" : { + "type" : "array", + "items" : { + "type" : "string", + "pattern" : "^sp-[0-9a-f]{32}$" + }, + "maxItems" : 20, + "minItems" : 0, + "uniqueItems" : true + }, + "DefaultBudgetAction" : { + "$ref" : "#/definitions/DefaultQueueBudgetAction" + }, + "Description" : { + "type" : "string", + "default" : "", + "maxLength" : 100, + "minLength" : 0 + }, + "DisplayName" : { + "type" : "string", + "maxLength" : 100, + "minLength" : 1 + }, + "FarmId" : { + "type" : "string", + "pattern" : "^farm-[0-9a-f]{32}$" + }, + "JobAttachmentSettings" : { + "$ref" : "#/definitions/JobAttachmentSettings" + }, + "JobRunAsUser" : { + "$ref" : "#/definitions/JobRunAsUser" + }, + "QueueId" : { + "type" : "string", + "pattern" : "^queue-[0-9a-f]{32}$" + }, + "RequiredFileSystemLocationNames" : { + "type" : "array", + "items" : { + "type" : "string", + "maxLength" : 64, + "minLength" : 1, + "pattern" : "^[0-9A-Za-z ]*$" + }, + "maxItems" : 20, + "minItems" : 0, + "uniqueItems" : true + }, + "RoleArn" : { + "type" : "string", + "pattern" : "^arn:(aws[a-zA-Z-]*):iam::\\d{12}:role(/[!-.0-~]+)*/[\\w+=,.@-]+$" + }, + "Arn" : { + "type" : "string", + "pattern" : "^arn:*" + } + }, + "required" : [ "DisplayName" ], + "readOnlyProperties" : [ "/properties/QueueId", "/properties/Arn" ], + "createOnlyProperties" : [ "/properties/FarmId" ], + "primaryIdentifier" : [ "/properties/Arn" ], + "tagging" : { + "taggable" : false, + "tagOnCreate" : false, + "tagUpdatable" : false, + "cloudFormationSystemTags" : false + }, + "handlers" : { + "create" : { + "permissions" : [ "deadline:CreateQueue", "deadline:GetQueue", "iam:PassRole", "identitystore:ListGroupMembershipsForMember", "logs:CreateLogGroup", "s3:ListBucket" ] + }, + "read" : { + "permissions" : [ "deadline:GetQueue", "identitystore:ListGroupMembershipsForMember" ] + }, + "update" : { + "permissions" : [ "deadline:UpdateQueue", "deadline:GetQueue", "iam:PassRole", "identitystore:ListGroupMembershipsForMember", "logs:CreateLogGroup", "s3:ListBucket" ] + }, + "delete" : { + "permissions" : [ "deadline:DeleteQueue", "deadline:GetQueue", "identitystore:ListGroupMembershipsForMember" ] + }, + "list" : { + "handlerSchema" : { + "properties" : { + "FarmId" : { + "$ref" : "resource-schema.json#/properties/FarmId" + } + }, + "required" : [ "FarmId" ] + }, + "permissions" : [ "deadline:ListQueues", "identitystore:DescribeGroup", "identitystore:DescribeUser", "identitystore:ListGroupMembershipsForMember" ] + } + }, + "additionalProperties" : false +} \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-deadline-queueenvironment.json b/aws-cloudformation-schema/aws-deadline-queueenvironment.json new file mode 100644 index 0000000000..7aba4e02d9 --- /dev/null +++ b/aws-cloudformation-schema/aws-deadline-queueenvironment.json @@ -0,0 +1,80 @@ +{ + "typeName" : "AWS::Deadline::QueueEnvironment", + "description" : "Definition of AWS::Deadline::QueueEnvironment Resource Type", + "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-deadline", + "definitions" : { + "EnvironmentTemplateType" : { + "type" : "string", + "enum" : [ "JSON", "YAML" ] + } + }, + "properties" : { + "FarmId" : { + "type" : "string", + "pattern" : "^farm-[0-9a-f]{32}$" + }, + "Name" : { + "type" : "string" + }, + "Priority" : { + "type" : "integer", + "maximum" : 10000, + "minimum" : 0 + }, + "QueueEnvironmentId" : { + "type" : "string", + "pattern" : "^queueenv-[0-9a-f]{32}$" + }, + "QueueId" : { + "type" : "string", + "pattern" : "^queue-[0-9a-f]{32}$" + }, + "Template" : { + "type" : "string", + "maxLength" : 15000, + "minLength" : 1 + }, + "TemplateType" : { + "$ref" : "#/definitions/EnvironmentTemplateType" + } + }, + "required" : [ "FarmId", "QueueId", "Priority", "Template", "TemplateType" ], + "tagging" : { + "taggable" : false, + "tagOnCreate" : false, + "tagUpdatable" : false, + "cloudFormationSystemTags" : false + }, + "createOnlyProperties" : [ "/properties/FarmId", "/properties/QueueId" ], + "readOnlyProperties" : [ "/properties/Name", "/properties/QueueEnvironmentId" ], + "primaryIdentifier" : [ "/properties/FarmId", "/properties/QueueId", "/properties/QueueEnvironmentId" ], + "handlers" : { + "create" : { + "permissions" : [ "deadline:CreateQueueEnvironment", "identitystore:ListGroupMembershipsForMember" ] + }, + "read" : { + "permissions" : [ "deadline:GetQueueEnvironment", "identitystore:ListGroupMembershipsForMember" ] + }, + "update" : { + "permissions" : [ "deadline:UpdateQueueEnvironment", "identitystore:ListGroupMembershipsForMember" ] + }, + "delete" : { + "permissions" : [ "deadline:DeleteQueueEnvironment", "deadline:GetQueueEnvironment", "identitystore:ListGroupMembershipsForMember" ] + }, + "list" : { + "handlerSchema" : { + "properties" : { + "FarmId" : { + "$ref" : "resource-schema.json#/properties/FarmId" + }, + "QueueId" : { + "$ref" : "resource-schema.json#/properties/QueueId" + } + }, + "required" : [ "FarmId", "QueueId" ] + }, + "permissions" : [ "deadline:ListQueueEnvironments", "identitystore:ListGroupMembershipsForMember" ] + } + }, + "additionalProperties" : false +} \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-deadline-queuefleetassociation.json b/aws-cloudformation-schema/aws-deadline-queuefleetassociation.json new file mode 100644 index 0000000000..95d0c9f607 --- /dev/null +++ b/aws-cloudformation-schema/aws-deadline-queuefleetassociation.json @@ -0,0 +1,51 @@ +{ + "typeName" : "AWS::Deadline::QueueFleetAssociation", + "description" : "Definition of AWS::Deadline::QueueFleetAssociation Resource Type", + "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-deadline", + "properties" : { + "FarmId" : { + "type" : "string", + "pattern" : "^farm-[0-9a-f]{32}$" + }, + "FleetId" : { + "type" : "string", + "pattern" : "^fleet-[0-9a-f]{32}$" + }, + "QueueId" : { + "type" : "string", + "pattern" : "^queue-[0-9a-f]{32}$" + } + }, + "required" : [ "FarmId", "FleetId", "QueueId" ], + "createOnlyProperties" : [ "/properties/FarmId", "/properties/FleetId", "/properties/QueueId" ], + "primaryIdentifier" : [ "/properties/FarmId", "/properties/FleetId", "/properties/QueueId" ], + "tagging" : { + "taggable" : false, + "tagOnCreate" : false, + "tagUpdatable" : false, + "cloudFormationSystemTags" : false + }, + "handlers" : { + "create" : { + "permissions" : [ "deadline:CreateQueueFleetAssociation", "deadline:GetQueueFleetAssociation", "identitystore:ListGroupMembershipsForMember" ] + }, + "read" : { + "permissions" : [ "deadline:GetQueueFleetAssociation", "identitystore:ListGroupMembershipsForMember" ] + }, + "delete" : { + "permissions" : [ "deadline:DeleteQueueFleetAssociation", "deadline:GetQueueFleetAssociation", "deadline:UpdateQueueFleetAssociation", "identitystore:ListGroupMembershipsForMember" ] + }, + "list" : { + "handlerSchema" : { + "properties" : { + "FarmId" : { + "$ref" : "resource-schema.json#/properties/FarmId" + } + }, + "required" : [ "FarmId" ] + }, + "permissions" : [ "deadline:ListQueueFleetAssociations", "identitystore:ListGroupMembershipsForMember" ] + } + }, + "additionalProperties" : false +} \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-deadline-storageprofile.json b/aws-cloudformation-schema/aws-deadline-storageprofile.json new file mode 100644 index 0000000000..04a9dc70fa --- /dev/null +++ b/aws-cloudformation-schema/aws-deadline-storageprofile.json @@ -0,0 +1,98 @@ +{ + "typeName" : "AWS::Deadline::StorageProfile", + "description" : "Definition of AWS::Deadline::StorageProfile Resource Type", + "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-deadline", + "definitions" : { + "FileSystemLocation" : { + "type" : "object", + "properties" : { + "Name" : { + "type" : "string", + "maxLength" : 64, + "minLength" : 1, + "pattern" : "^[0-9A-Za-z ]*$" + }, + "Path" : { + "type" : "string", + "maxLength" : 1024, + "minLength" : 0 + }, + "Type" : { + "$ref" : "#/definitions/FileSystemLocationType" + } + }, + "required" : [ "Name", "Path", "Type" ], + "additionalProperties" : false + }, + "FileSystemLocationType" : { + "type" : "string", + "enum" : [ "SHARED", "LOCAL" ] + }, + "StorageProfileOperatingSystemFamily" : { + "type" : "string", + "enum" : [ "WINDOWS", "LINUX", "MACOS" ] + } + }, + "properties" : { + "DisplayName" : { + "type" : "string", + "maxLength" : 100, + "minLength" : 1 + }, + "FarmId" : { + "type" : "string", + "pattern" : "^farm-[0-9a-f]{32}$" + }, + "FileSystemLocations" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/FileSystemLocation" + }, + "maxItems" : 20, + "minItems" : 0 + }, + "OsFamily" : { + "$ref" : "#/definitions/StorageProfileOperatingSystemFamily" + }, + "StorageProfileId" : { + "type" : "string", + "pattern" : "^sp-[0-9a-f]{32}$" + } + }, + "required" : [ "DisplayName", "OsFamily" ], + "readOnlyProperties" : [ "/properties/StorageProfileId" ], + "createOnlyProperties" : [ "/properties/FarmId" ], + "primaryIdentifier" : [ "/properties/FarmId", "/properties/StorageProfileId" ], + "tagging" : { + "taggable" : false, + "tagOnCreate" : false, + "tagUpdatable" : false, + "cloudFormationSystemTags" : false + }, + "handlers" : { + "create" : { + "permissions" : [ "deadline:CreateStorageProfile", "deadline:GetStorageProfile", "identitystore:ListGroupMembershipsForMember" ] + }, + "read" : { + "permissions" : [ "deadline:GetStorageProfile", "identitystore:ListGroupMembershipsForMember" ] + }, + "update" : { + "permissions" : [ "deadline:UpdateStorageProfile", "deadline:GetStorageProfile", "identitystore:ListGroupMembershipsForMember" ] + }, + "delete" : { + "permissions" : [ "deadline:DeleteStorageProfile", "deadline:GetStorageProfile", "identitystore:ListGroupMembershipsForMember" ] + }, + "list" : { + "handlerSchema" : { + "properties" : { + "FarmId" : { + "$ref" : "resource-schema.json#/properties/FarmId" + } + }, + "required" : [ "FarmId" ] + }, + "permissions" : [ "deadline:ListStorageProfiles", "identitystore:ListGroupMembershipsForMember" ] + } + }, + "additionalProperties" : false +} \ No newline at end of file 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..c43c07d5f9 100644 --- a/aws-cloudformation-schema/aws-dynamodb-globaltable.json +++ b/aws-cloudformation-schema/aws-dynamodb-globaltable.json @@ -1,272 +1,261 @@ { - "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", + "relationshipRef" : { + "typeName" : "AWS::Kinesis::Stream", + "propertyPath" : "/properties/Arn" + } + }, "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,56 +263,122 @@ }, "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" + "type" : "string", + "anyOf" : [ { + "relationshipRef" : { + "typeName" : "AWS::KMS::Key", + "propertyPath" : "/properties/Arn" + } + }, { + "relationshipRef" : { + "typeName" : "AWS::KMS::Key", + "propertyPath" : "/properties/KeyId" + } + }, { + "relationshipRef" : { + "typeName" : "AWS::KMS::Alias", + "propertyPath" : "/properties/AliasName" + } + } ] } }, "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 +389,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..34bf04cfd0 100644 --- a/aws-cloudformation-schema/aws-dynamodb-table.json +++ b/aws-cloudformation-schema/aws-dynamodb-table.json @@ -8,7 +8,7 @@ }, "typeName" : "AWS::DynamoDB::Table", "readOnlyProperties" : [ "/properties/Arn", "/properties/StreamArn" ], - "description" : "The ``AWS::DynamoDB::Table`` resource creates a DDB table. For more information, see [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) in the *API Reference*.\n You should be aware of the following behaviors when working with DDB tables:\n + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute).\n \n Our guidance is to use the latest schema documented here for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes.", + "description" : "The ``AWS::DynamoDB::Table`` resource creates a DDB table. For more information, see [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) in the *API Reference*.\n You should be aware of the following behaviors when working with DDB tables:\n + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute).\n \n Our guidance is to use the latest schema documented here for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes.", "createOnlyProperties" : [ "/properties/TableName", "/properties/ImportSourceSpecification" ], "primaryIdentifier" : [ "/properties/TableName" ], "required" : [ "KeySchema" ], @@ -76,6 +76,22 @@ "type" : "string" }, "KMSMasterKeyId" : { + "anyOf" : [ { + "relationshipRef" : { + "typeName" : "AWS::KMS::Key", + "propertyPath" : "/properties/Arn" + } + }, { + "relationshipRef" : { + "typeName" : "AWS::KMS::Key", + "propertyPath" : "/properties/KeyId" + } + }, { + "relationshipRef" : { + "typeName" : "AWS::KMS::Alias", + "propertyPath" : "/properties/AliasName" + } + } ], "description" : "The KMS key that should be used for the KMS encryption. To specify a key, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. Note that you should only provide this parameter if the key is different from the default DynamoDB key ``alias/aws/dynamodb``.", "type" : "string" } @@ -93,6 +109,10 @@ "enum" : [ "MICROSECOND", "MILLISECOND" ] }, "StreamArn" : { + "relationshipRef" : { + "typeName" : "AWS::Kinesis::Stream", + "propertyPath" : "/properties/Arn" + }, "description" : "The ARN for a specific Kinesis data stream.\n Length Constraints: Minimum length of 37. Maximum length of 1024.", "type" : "string" } @@ -107,6 +127,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" : "Creates or updates a resource-based policy document that contains the permissions for DDB resources, such as a table's streams. Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource.\n In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html).", + "$ref" : "#/definitions/ResourcePolicy" } }, "required" : [ "StreamViewType" ] @@ -277,6 +301,10 @@ "type" : "object", "properties" : { "S3Bucket" : { + "relationshipRef" : { + "typeName" : "AWS::S3::Bucket", + "propertyPath" : "/properties/BucketName" + }, "description" : "The S3 bucket that is being imported from.", "type" : "string" }, @@ -291,6 +319,18 @@ }, "required" : [ "S3Bucket" ] }, + "ResourcePolicy" : { + "description" : "Creates or updates a resource-based policy document that contains the permissions for DDB resources, such as a table, its indexes, and stream. Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource.\n In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html).\n While defining resource-based policies in your CFNshort templates, the following considerations apply:\n + The maximum size supported for a resource-based policy document in JSON format is 20 KB. DDB counts whitespaces when calculating the size of a policy against this limit. \n + Resource-based policies don't support [drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html#). If you update a policy outside of the CFNshort stack template, you'll need to update the CFNshort stack with the changes.\n + Resource-based policies don't support out-of-band changes. If you add, update, or delete a policy outside of the CFNshort template, the change won't be overwritten if there are no changes to the policy within the template.\n For example, say that your template contains a resource-based policy, which you later update outside of the template. If you don't make any changes to the policy in the template, the updated policy in DDB won’t be synced with the policy in the template.\n Conversely, say that your template doesn’t contain a resource-based policy, but you add a policy outside of the template. This policy won’t be removed from DDB as long as you don’t add it to the template. When you add a policy to the template and update the stack, the existing policy in DDB will be updated to match the one defined in the template.\n \n For a full list of all considerations, see [Resource-based policy considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html).", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "PolicyDocument" : { + "description" : "A resource-based policy document that contains permissions to add to the specified DDB table, index, or both. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html).", + "type" : "object" + } + }, + "required" : [ "PolicyDocument" ] + }, "DeprecatedKeySchema" : { "description" : "", "additionalProperties" : false, @@ -358,7 +398,7 @@ "type" : "boolean" }, "AttributeName" : { - "description" : "The name of the TTL attribute used to store the expiration time for items in the table.\n + The ``AttributeName`` property is required when enabling the TTL, or when TTL is already enabled.\n + To update this property, you must first disable TTL and then enable TTL with the new attribute name.", + "description" : "The name of the TTL attribute used to store the expiration time for items in the table.\n + The ``AttributeName`` property is required when enabling the TTL, or when TTL is already enabled.\n + To update this property, you must first disable TTL and then enable TTL with the new attribute name.", "type" : "string" } }, @@ -418,6 +458,10 @@ "$ref" : "#/definitions/GlobalSecondaryIndex" } }, + "ResourcePolicy" : { + "description" : "A resource-based policy document that contains permissions to add to the specified table. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html).\n When you attach a resource-based policy while creating a table, the policy creation is *strongly consistent*. For information about the considerations that you should keep in mind while attaching a resource-based policy, see [Resource-based policy considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html).", + "$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-natgateway.json b/aws-cloudformation-schema/aws-ec2-natgateway.json index 93a4e7f1bd..0da2093e9f 100644 --- a/aws-cloudformation-schema/aws-ec2-natgateway.json +++ b/aws-cloudformation-schema/aws-ec2-natgateway.json @@ -1,6 +1,6 @@ { "typeName" : "AWS::EC2::NatGateway", - "description" : "Specifies a network address translation (NAT) gateway in the specified subnet. You can create either a public NAT gateway or a private NAT gateway. The default is a public NAT gateway. If you create a public NAT gateway, you must specify an elastic IP address.\n With a NAT gateway, instances in a private subnet can connect to the internet, other AWS services, or an on-premises network using the IP address of the NAT gateway. For more information, see [NAT gateways](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) in the *Amazon VPC User Guide*.\n If you add a default route (``AWS::EC2::Route`` resource) that points to a NAT gateway, specify the NAT gateway ID for the route's ``NatGatewayId`` property.\n When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*.", + "description" : "Specifies a network address translation (NAT) gateway in the specified subnet. You can create either a public NAT gateway or a private NAT gateway. The default is a public NAT gateway. If you create a public NAT gateway, you must specify an elastic IP address.\n With a NAT gateway, instances in a private subnet can connect to the internet, other AWS services, or an on-premises network using the IP address of the NAT gateway. For more information, see [NAT gateways](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) in the *Amazon VPC User Guide*.\n If you add a default route (``AWS::EC2::Route`` resource) that points to a NAT gateway, specify the NAT gateway ID for the route's ``NatGatewayId`` property.\n When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*.", "additionalProperties" : false, "properties" : { "SubnetId" : { @@ -48,12 +48,12 @@ "items" : { "type" : "string" }, - "description" : "Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time." + "description" : "Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time." }, "SecondaryPrivateIpAddressCount" : { "type" : "integer", "minimum" : 1, - "description" : "[Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time." + "description" : "[Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time." }, "MaxDrainDurationSeconds" : { "type" : "integer", diff --git a/aws-cloudformation-schema/aws-ec2-networkinsightsanalysis.json b/aws-cloudformation-schema/aws-ec2-networkinsightsanalysis.json index 088a5312b6..0cf69ff0f7 100644 --- a/aws-cloudformation-schema/aws-ec2-networkinsightsanalysis.json +++ b/aws-cloudformation-schema/aws-ec2-networkinsightsanalysis.json @@ -18,7 +18,7 @@ } }, "typeName" : "AWS::EC2::NetworkInsightsAnalysis", - "readOnlyProperties" : [ "/properties/NetworkInsightsAnalysisId", "/properties/NetworkInsightsAnalysisArn", "/properties/StartDate", "/properties/Status", "/properties/StatusMessage", "/properties/ErrorCode", "/properties/ErrorMessage", "/properties/NetworkPathFound", "/properties/ForwardPathComponents", "/properties/ReturnPathComponents", "/properties/Explanations", "/properties/AlternatePathHints", "/properties/SuggestedAccounts" ], + "readOnlyProperties" : [ "/properties/NetworkInsightsAnalysisId", "/properties/NetworkInsightsAnalysisArn", "/properties/StartDate", "/properties/Status", "/properties/StatusMessage", "/properties/NetworkPathFound", "/properties/ForwardPathComponents", "/properties/ReturnPathComponents", "/properties/Explanations", "/properties/AlternatePathHints", "/properties/SuggestedAccounts" ], "description" : "Resource schema for AWS::EC2::NetworkInsightsAnalysis", "additionalIdentifiers" : [ [ "/properties/NetworkInsightsAnalysisArn" ] ], "createOnlyProperties" : [ "/properties/NetworkInsightsPathId", "/properties/FilterInArns" ], diff --git a/aws-cloudformation-schema/aws-ec2-securitygroup.json b/aws-cloudformation-schema/aws-ec2-securitygroup.json index 51da743d94..5d2a5d477a 100644 --- a/aws-cloudformation-schema/aws-ec2-securitygroup.json +++ b/aws-cloudformation-schema/aws-ec2-securitygroup.json @@ -14,6 +14,14 @@ "createOnlyProperties" : [ "/properties/GroupDescription", "/properties/GroupName", "/properties/VpcId" ], "primaryIdentifier" : [ "/properties/Id" ], "required" : [ "GroupDescription" ], + "propertyTransform" : { + "/properties/SecurityGroupEgress/*/FromPort" : "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? FromPort : -1)", + "/properties/SecurityGroupIngress/*/ToPort" : "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? ToPort : -1)", + "/properties/SecurityGroupIngress/*/IpProtocol" : "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$mapVal ? $mapVal : $lowercase(IpProtocol))", + "/properties/SecurityGroupEgress/*/IpProtocol" : "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$mapVal ? $mapVal : $lowercase(IpProtocol))", + "/properties/SecurityGroupIngress/*/FromPort" : "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? FromPort : -1)", + "/properties/SecurityGroupEgress/*/ToPort" : "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? ToPort : -1)" + }, "handlers" : { "read" : { "permissions" : [ "ec2:DescribeSecurityGroups" ] @@ -98,9 +106,6 @@ }, "DestinationPrefixListId" : { "type" : "string" - }, - "SourceSecurityGroupId" : { - "type" : "string" } }, "required" : [ "IpProtocol" ] diff --git a/aws-cloudformation-schema/aws-ec2-securitygroupegress.json b/aws-cloudformation-schema/aws-ec2-securitygroupegress.json index ff592bb18f..be8104e275 100644 --- a/aws-cloudformation-schema/aws-ec2-securitygroupegress.json +++ b/aws-cloudformation-schema/aws-ec2-securitygroupegress.json @@ -1,11 +1,22 @@ { - "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", "tagging" : { "taggable" : false, "tagOnCreate" : false, "tagUpdatable" : false, "cloudFormationSystemTags" : false }, + "typeName" : "AWS::EC2::SecurityGroupEgress", + "readOnlyProperties" : [ "/properties/Id" ], + "description" : "Adds the specified outbound (egress) rule to a security group.\n An outbound rule permits instances to send traffic to the specified IPv4 or IPv6 address range, the IP addresses that are specified by a prefix list, or the instances that are associated with a destination security group. For more information, see [Security group rules](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html).\n You must specify exactly one of the following destinations: an IPv4 address range, an IPv6 address range, a prefix list, or a security group.\n You must specify a protocol for each rule (for example, TCP). If the protocol is TCP or UDP, you must also specify a port or port range. If the protocol is ICMP or ICMPv6, you must also specify the ICMP/ICMPv6 type and code. To specify all types or all codes, use -1.\n Rule changes are propagated to instances associated with the security group as quickly as possible. However, a small delay might occur.", + "createOnlyProperties" : [ "/properties/IpProtocol", "/properties/DestinationSecurityGroupId", "/properties/ToPort", "/properties/CidrIp", "/properties/FromPort", "/properties/GroupId", "/properties/CidrIpv6", "/properties/DestinationPrefixListId" ], + "primaryIdentifier" : [ "/properties/Id" ], + "required" : [ "IpProtocol", "GroupId" ], + "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", + "propertyTransform" : { + "/properties/IpProtocol" : "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$mapVal ? $mapVal : $lowercase(IpProtocol))", + "/properties/ToPort" : "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? ToPort : -1)", + "/properties/FromPort" : "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? FromPort : -1)" + }, "handlers" : { "read" : { "permissions" : [ "ec2:DescribeSecurityGroupRules" ] @@ -23,20 +34,14 @@ "permissions" : [ "ec2:RevokeSecurityGroupEgress", "ec2:DescribeSecurityGroupRules" ] } }, - "typeName" : "AWS::EC2::SecurityGroupEgress", - "readOnlyProperties" : [ "/properties/Id" ], - "description" : "Adds the specified outbound (egress) rule to a security group.\n An outbound rule permits instances to send traffic to the specified IPv4 or IPv6 address range, the IP addresses that are specified by a prefix list, or the instances that are associated with a destination security group. For more information, see [Security group rules](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html).\n You must specify exactly one of the following destinations: an IPv4 or IPv6 address range, a prefix list, or a security group. Otherwise, the stack launches successfully but the rule is not added to the security group.\n You must specify a protocol for each rule (for example, TCP). If the protocol is TCP or UDP, you must also specify a port or port range. If the protocol is ICMP or ICMPv6, you must also specify the ICMP/ICMPv6 type and code. To specify all types or all codes, use -1.\n Rule changes are propagated to instances associated with the security group as quickly as possible", - "createOnlyProperties" : [ "/properties/IpProtocol", "/properties/DestinationSecurityGroupId", "/properties/ToPort", "/properties/CidrIp", "/properties/FromPort", "/properties/GroupId", "/properties/CidrIpv6", "/properties/DestinationPrefixListId" ], "additionalProperties" : false, - "primaryIdentifier" : [ "/properties/Id" ], - "required" : [ "IpProtocol", "GroupId" ], "properties" : { "CidrIp" : { - "description" : "The IPv4 address range, in CIDR format.\n You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``).\n For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*.", + "description" : "The IPv4 address range, in CIDR format.\n You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``.\n For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*.", "type" : "string" }, "CidrIpv6" : { - "description" : "The IPv6 address range, in CIDR format.\n You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``).\n For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*.", + "description" : "The IPv6 address range, in CIDR format.\n You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``.\n For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*.", "type" : "string" }, "Description" : { @@ -56,7 +61,7 @@ "type" : "string" }, "DestinationSecurityGroupId" : { - "description" : "The ID of the security group.\n You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``).", + "description" : "The ID of the security group.\n You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``.", "type" : "string" }, "Id" : { @@ -64,7 +69,7 @@ "type" : "string" }, "DestinationPrefixListId" : { - "description" : "The prefix list IDs for an AWS service. This is the AWS service that you want to access through a VPC endpoint from instances associated with the security group.\n You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``).", + "description" : "The prefix list IDs for an AWS service. This is the AWS service to access through a VPC endpoint from instances associated with the security group.\n You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``.", "type" : "string" }, "GroupId" : { diff --git a/aws-cloudformation-schema/aws-ec2-securitygroupingress.json b/aws-cloudformation-schema/aws-ec2-securitygroupingress.json index 29764a17ce..56967aeee4 100644 --- a/aws-cloudformation-schema/aws-ec2-securitygroupingress.json +++ b/aws-cloudformation-schema/aws-ec2-securitygroupingress.json @@ -67,6 +67,11 @@ "createOnlyProperties" : [ "/properties/GroupName", "/properties/IpProtocol", "/properties/SourceSecurityGroupId", "/properties/SourcePrefixListId", "/properties/ToPort", "/properties/CidrIp", "/properties/SourceSecurityGroupName", "/properties/SourceSecurityGroupOwnerId", "/properties/FromPort", "/properties/GroupId", "/properties/CidrIpv6" ], "primaryIdentifier" : [ "/properties/Id" ], "readOnlyProperties" : [ "/properties/Id" ], + "propertyTransform" : { + "/properties/IpProtocol" : "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$mapVal ? $mapVal : $lowercase(IpProtocol))", + "/properties/FromPort" : "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? FromPort : -1)", + "/properties/ToPort" : "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? ToPort : -1)" + }, "handlers" : { "create" : { "permissions" : [ "ec2:DescribeSecurityGroupRules", "ec2:AuthorizeSecurityGroupIngress" ] 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-ec2-vpc.json b/aws-cloudformation-schema/aws-ec2-vpc.json index c5c3a18d6b..4377a2ee19 100644 --- a/aws-cloudformation-schema/aws-ec2-vpc.json +++ b/aws-cloudformation-schema/aws-ec2-vpc.json @@ -1,119 +1,119 @@ { + "tagging" : { + "taggable" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "tagProperty" : "/properties/Tags", + "cloudFormationSystemTags" : true + }, + "handlers" : { + "read" : { + "permissions" : [ "ec2:DescribeVpcs", "ec2:DescribeSecurityGroups", "ec2:DescribeNetworkAcls", "ec2:DescribeVpcAttribute" ] + }, + "create" : { + "permissions" : [ "ec2:CreateVpc", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute", "ec2:CreateTags" ] + }, + "update" : { + "permissions" : [ "ec2:CreateTags", "ec2:ModifyVpcAttribute", "ec2:DeleteTags", "ec2:ModifyVpcTenancy" ] + }, + "list" : { + "permissions" : [ "ec2:DescribeVpcs" ] + }, + "delete" : { + "permissions" : [ "ec2:DeleteVpc", "ec2:DescribeVpcs" ] + } + }, "typeName" : "AWS::EC2::VPC", + "readOnlyProperties" : [ "/properties/CidrBlockAssociations", "/properties/DefaultNetworkAcl", "/properties/DefaultSecurityGroup", "/properties/Ipv6CidrBlocks", "/properties/VpcId" ], "description" : "Specifies a virtual private cloud (VPC).\n You can optionally request an IPv6 CIDR block for the VPC. You can request an Amazon-provided IPv6 CIDR block from Amazon's pool of IPv6 addresses, or an IPv6 CIDR block from an IPv6 address pool that you provisioned through bring your own IP addresses (BYOIP).\n For more information, see [Virtual private clouds (VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/configure-your-vpc.html) in the *Amazon VPC User Guide*.", + "writeOnlyProperties" : [ "/properties/Ipv4IpamPoolId", "/properties/Ipv4NetmaskLength" ], + "createOnlyProperties" : [ "/properties/CidrBlock", "/properties/Ipv4IpamPoolId", "/properties/Ipv4NetmaskLength" ], "additionalProperties" : false, + "primaryIdentifier" : [ "/properties/VpcId" ], + "definitions" : { + "Tag" : { + "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).", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "Value" : { + "description" : "The tag value.", + "type" : "string" + }, + "Key" : { + "description" : "The tag key.", + "type" : "string" + } + }, + "required" : [ "Value", "Key" ] + } + }, "properties" : { "VpcId" : { - "type" : "string", - "description" : "" + "description" : "", + "type" : "string" }, - "CidrBlock" : { - "type" : "string", - "description" : "The IPv4 network range for the VPC, in CIDR notation. For example, ``10.0.0.0/16``. We modify the specified CIDR block to its canonical form; for example, if you specify ``100.68.0.18/18``, we modify it to ``100.68.0.0/18``.\n You must specify either``CidrBlock`` or ``Ipv4IpamPoolId``." + "InstanceTenancy" : { + "description" : "The allowed tenancy of instances launched into the VPC.\n + ``default``: An instance launched into the VPC runs on shared hardware by default, unless you explicitly specify a different tenancy during instance launch.\n + ``dedicated``: An instance launched into the VPC runs on dedicated hardware by default, unless you explicitly specify a tenancy of ``host`` during instance launch. You cannot specify a tenancy of ``default`` during instance launch.\n \n Updating ``InstanceTenancy`` requires no replacement only if you are updating its value from ``dedicated`` to ``default``. Updating ``InstanceTenancy`` from ``default`` to ``dedicated`` requires replacement.", + "type" : "string" + }, + "Ipv4NetmaskLength" : { + "description" : "The netmask length of the IPv4 CIDR you want to allocate to this VPC from an Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see [What is IPAM?](https://docs.aws.amazon.com//vpc/latest/ipam/what-is-it-ipam.html) in the *Amazon VPC IPAM User Guide*.", + "type" : "integer" }, "CidrBlockAssociations" : { - "type" : "array", - "description" : "", "uniqueItems" : false, + "description" : "", "insertionOrder" : false, + "type" : "array", "items" : { "type" : "string" } }, + "CidrBlock" : { + "description" : "The IPv4 network range for the VPC, in CIDR notation. For example, ``10.0.0.0/16``. We modify the specified CIDR block to its canonical form; for example, if you specify ``100.68.0.18/18``, we modify it to ``100.68.0.0/18``.\n You must specify either``CidrBlock`` or ``Ipv4IpamPoolId``.", + "type" : "string" + }, + "Ipv4IpamPoolId" : { + "description" : "The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. For more information, see [What is IPAM?](https://docs.aws.amazon.com//vpc/latest/ipam/what-is-it-ipam.html) in the *Amazon VPC IPAM User Guide*.\n You must specify either``CidrBlock`` or ``Ipv4IpamPoolId``.", + "type" : "string" + }, "DefaultNetworkAcl" : { - "type" : "string", + "description" : "", "insertionOrder" : false, - "description" : "" + "type" : "string" }, - "DefaultSecurityGroup" : { - "type" : "string", - "insertionOrder" : false, - "description" : "" + "EnableDnsSupport" : { + "description" : "Indicates whether the DNS resolution is supported for the VPC. If enabled, queries to the Amazon provided DNS server at the 169.254.169.253 IP address, or the reserved IP address at the base of the VPC network range \"plus two\" succeed. If disabled, the Amazon provided DNS service in the VPC that resolves public DNS hostnames to IP addresses is not enabled. Enabled by default. For more information, see [DNS attributes in your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-support).", + "type" : "boolean" }, "Ipv6CidrBlocks" : { - "type" : "array", - "description" : "", "uniqueItems" : false, + "description" : "", "insertionOrder" : false, + "type" : "array", "items" : { "type" : "string" } }, - "EnableDnsHostnames" : { - "type" : "boolean", - "description" : "Indicates whether the instances launched in the VPC get DNS hostnames. If enabled, instances in the VPC get DNS hostnames; otherwise, they do not. Disabled by default for nondefault VPCs. For more information, see [DNS attributes in your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-support).\n You can only enable DNS hostnames if you've enabled DNS support." - }, - "EnableDnsSupport" : { - "type" : "boolean", - "description" : "Indicates whether the DNS resolution is supported for the VPC. If enabled, queries to the Amazon provided DNS server at the 169.254.169.253 IP address, or the reserved IP address at the base of the VPC network range \"plus two\" succeed. If disabled, the Amazon provided DNS service in the VPC that resolves public DNS hostnames to IP addresses is not enabled. Enabled by default. For more information, see [DNS attributes in your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-support)." - }, - "InstanceTenancy" : { - "type" : "string", - "description" : "The allowed tenancy of instances launched into the VPC.\n + ``default``: An instance launched into the VPC runs on shared hardware by default, unless you explicitly specify a different tenancy during instance launch.\n + ``dedicated``: An instance launched into the VPC runs on dedicated hardware by default, unless you explicitly specify a tenancy of ``host`` during instance launch. You cannot specify a tenancy of ``default`` during instance launch.\n \n Updating ``InstanceTenancy`` requires no replacement only if you are updating its value from ``dedicated`` to ``default``. Updating ``InstanceTenancy`` from ``default`` to ``dedicated`` requires replacement." - }, - "Ipv4IpamPoolId" : { - "type" : "string", - "description" : "The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. For more information, see [What is IPAM?](https://docs.aws.amazon.com//vpc/latest/ipam/what-is-it-ipam.html) in the *Amazon VPC IPAM User Guide*.\n You must specify either``CidrBlock`` or ``Ipv4IpamPoolId``." + "DefaultSecurityGroup" : { + "description" : "", + "insertionOrder" : false, + "type" : "string" }, - "Ipv4NetmaskLength" : { - "type" : "integer", - "description" : "The netmask length of the IPv4 CIDR you want to allocate to this VPC from an Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see [What is IPAM?](https://docs.aws.amazon.com//vpc/latest/ipam/what-is-it-ipam.html) in the *Amazon VPC IPAM User Guide*." + "EnableDnsHostnames" : { + "description" : "Indicates whether the instances launched in the VPC get DNS hostnames. If enabled, instances in the VPC get DNS hostnames; otherwise, they do not. Disabled by default for nondefault VPCs. For more information, see [DNS attributes in your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-support).\n You can only enable DNS hostnames if you've enabled DNS support.", + "type" : "boolean" }, "Tags" : { - "type" : "array", - "description" : "The tags for the VPC.", "uniqueItems" : false, + "description" : "The tags for the VPC.", "insertionOrder" : false, + "type" : "array", "items" : { "$ref" : "#/definitions/Tag" } } }, - "definitions" : { - "Tag" : { - "type" : "object", - "additionalProperties" : false, - "properties" : { - "Key" : { - "type" : "string", - "description" : "The tag key." - }, - "Value" : { - "type" : "string", - "description" : "The tag value." - } - }, - "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)." - } - }, - "tagging" : { - "taggable" : true, - "tagOnCreate" : true, - "tagUpdatable" : true, - "cloudFormationSystemTags" : true, - "tagProperty" : "/properties/Tags" - }, - "createOnlyProperties" : [ "/properties/CidrBlock", "/properties/Ipv4IpamPoolId", "/properties/Ipv4NetmaskLength" ], - "conditionalCreateOnlyProperties" : [ "/properties/InstanceTenancy" ], - "readOnlyProperties" : [ "/properties/CidrBlockAssociations", "/properties/DefaultNetworkAcl", "/properties/DefaultSecurityGroup", "/properties/Ipv6CidrBlocks", "/properties/VpcId" ], - "primaryIdentifier" : [ "/properties/VpcId" ], - "writeOnlyProperties" : [ "/properties/Ipv4IpamPoolId", "/properties/Ipv4NetmaskLength" ], - "handlers" : { - "create" : { - "permissions" : [ "ec2:CreateVpc", "ec2:DescribeVpcs", "ec2:ModifyVpcAttribute", "ec2:CreateTags" ] - }, - "read" : { - "permissions" : [ "ec2:DescribeVpcs", "ec2:DescribeSecurityGroups", "ec2:DescribeNetworkAcls", "ec2:DescribeVpcAttribute" ] - }, - "update" : { - "permissions" : [ "ec2:CreateTags", "ec2:ModifyVpcAttribute", "ec2:DeleteTags", "ec2:ModifyVpcTenancy" ] - }, - "delete" : { - "permissions" : [ "ec2:DeleteVpc", "ec2:DescribeVpcs" ] - }, - "list" : { - "permissions" : [ "ec2:DescribeVpcs" ] - } - } + "conditionalCreateOnlyProperties" : [ "/properties/InstanceTenancy" ] } \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-ec2-vpccidrblock.json b/aws-cloudformation-schema/aws-ec2-vpccidrblock.json index c46c746696..cef5b8a1d6 100644 --- a/aws-cloudformation-schema/aws-ec2-vpccidrblock.json +++ b/aws-cloudformation-schema/aws-ec2-vpccidrblock.json @@ -48,7 +48,6 @@ "taggable" : false }, "required" : [ "VpcId" ], - "replacementStrategy" : "delete_then_create", "createOnlyProperties" : [ "/properties/Ipv6Pool", "/properties/VpcId", "/properties/AmazonProvidedIpv6CidrBlock", "/properties/Ipv6CidrBlock", "/properties/CidrBlock", "/properties/Ipv4IpamPoolId", "/properties/Ipv4NetmaskLength", "/properties/Ipv6IpamPoolId", "/properties/Ipv6NetmaskLength" ], "primaryIdentifier" : [ "/properties/Id", "/properties/VpcId" ], "readOnlyProperties" : [ "/properties/Id" ], 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-ecs-taskdefinition.json b/aws-cloudformation-schema/aws-ecs-taskdefinition.json index 05046a1e6c..b3c85782e4 100644 --- a/aws-cloudformation-schema/aws-ecs-taskdefinition.json +++ b/aws-cloudformation-schema/aws-ecs-taskdefinition.json @@ -1,6 +1,6 @@ { "typeName" : "AWS::ECS::TaskDefinition", - "description" : "Registers a new task definition from the supplied ``family`` and ``containerDefinitions``. Optionally, you can add data volumes to your containers with the ``volumes`` parameter. For more information about task definition parameters and defaults, see [Amazon ECS Task Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) in the *Amazon Elastic Container Service Developer Guide*.\n You can specify a role for your task with the ``taskRoleArn`` parameter. When you specify a role for a task, its containers can then use the latest versions of the CLI or SDKs to make API requests to the AWS services that are specified in the policy that's associated with the role. For more information, see [IAM Roles for Tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*.\n You can specify a Docker networking mode for the containers in your task definition with the ``networkMod", + "description" : "Registers a new task definition from the supplied ``family`` and ``containerDefinitions``. Optionally, you can add data volumes to your containers with the ``volumes`` parameter. For more information about task definition parameters and defaults, see [Amazon ECS Task Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) in the *Amazon Elastic Container Service Developer Guide*.\n You can specify a role for your task with the ``taskRoleArn`` parameter. When you specify a role for a task, its containers can then use the latest versions of the CLI or SDKs to make API requests to the AWS services that are specified in the policy that's associated with the role. For more information, see [IAM Roles for Tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*.\n You can specify a Docker networking mode for the containers in your task definition with the ``networkMode`` parameter. The available network modes correspond to those described in [Network settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#/network-settings) in the Docker run reference. If you specify the ``awsvpc`` network mode, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*.\n In the following example or examples, the Authorization header contents (``AUTHPARAMS``) must be replaced with an AWS Signature Version 4 signature. For more information, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the *General Reference*.\n You only need to learn how to sign HTTP requests if you intend to create them manually. When you use the [](https://docs.aws.amazon.com/cli/) or one of the [SDKs](https://docs.aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you, with the access key that you specify when you configure the tools. When you use these tools, you don't have to sign requests yourself.", "sourceUrl" : "https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html", "definitions" : { "ContainerDefinition" : { @@ -18,7 +18,7 @@ }, "Cpu" : { "type" : "integer", - "description" : "The number of ``cpu`` units reserved for the container. This parameter maps to ``CpuShares`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cpu-shares`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n This field is optional for tasks using the Fargate launch type, and the only requirement is that the total amount of CPU reserved for all containers within a task be lower than the task-level ``cpu`` value.\n You can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the [Amazon EC2 Instances](https://docs.aws.amazon.com/ec2/instance-types/) detail page by 1,024.\n Linux containers share unallocated CPU units with other containers on the cont" + "description" : "The number of ``cpu`` units reserved for the container. This parameter maps to ``CpuShares`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cpu-shares`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n This field is optional for tasks using the Fargate launch type, and the only requirement is that the total amount of CPU reserved for all containers within a task be lower than the task-level ``cpu`` value.\n You can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the [Amazon EC2 Instances](https://docs.aws.amazon.com/ec2/instance-types/) detail page by 1,024.\n Linux containers share unallocated CPU units with other containers on the container instance with the same ratio as their allocated amount. For example, if you run a single-container task on a single-core instance type with 512 CPU units specified for that container, and that's the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time. However, if you launched another copy of the same task on that container instance, each task is guaranteed a minimum of 512 CPU units when needed. Moreover, each container could float to higher CPU usage if the other container was not using it. If both tasks were 100% active all of the time, they would be limited to 512 CPU units.\n On Linux container instances, the Docker daemon on the container instance uses the CPU value to calculate the relative CPU share ratios for running containers. For more information, see [CPU share constraint](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#cpu-share-constraint) in the Docker documentation. The minimum valid CPU share value that the Linux kernel allows is 2. However, the CPU parameter isn't required, and you can use CPU values below 2 in your container definitions. For CPU values below 2 (including null), the behavior varies based on your Amazon ECS container agent version:\n + *Agent versions less than or equal to 1.1.0:* Null and zero CPU values are passed to Docker as 0, which Docker then converts to 1,024 CPU shares. CPU values of 1 are passed to Docker as 1, which the Linux kernel converts to two CPU shares.\n + *Agent versions greater than or equal to 1.2.0:* Null, zero, and CPU values of 1 are passed to Docker as 2.\n \n On Windows container instances, the CPU limit is enforced as an absolute limit, or a quota. Windows containers only have access to the specified amount of CPU that's described in the task definition. A null or zero CPU value is passed to Docker as ``0``, which Windows interprets as 1% of one CPU." }, "CredentialSpecs" : { "type" : "array", @@ -26,7 +26,7 @@ "items" : { "type" : "string" }, - "description" : "A list of ARNs in SSM or Amazon S3 to a credential spec (``CredSpec``) file that configures the container for Active Directory authentication. We recommend that you use this parameter instead of the ``dockerSecurityOptions``. The maximum number of ARNs is 1.\n There are two formats for each ARN.\n + credentialspecdomainless:MyARN You use credentialspecdomainless:MyARN to provide a CredSpec with an additional section for a secret in . You provide the login credentials to the domain in the secret. Each task that runs on any container instance can join different domains. You can use this format without joining the container instance to a domain. + credentialspec:MyARN You use credentialspec:MyARN to provide a CredSpec for a single domain. You must join the container instance to the domain before you start any tasks that use this task definition. \n In both formats, replace ``MyARN`` with the ARN in SSM or Amazon S3.\n If you provide a ``credentialspecdomainless:MyARN``, the ``credspec`` must" + "description" : "A list of ARNs in SSM or Amazon S3 to a credential spec (``CredSpec``) file that configures the container for Active Directory authentication. We recommend that you use this parameter instead of the ``dockerSecurityOptions``. The maximum number of ARNs is 1.\n There are two formats for each ARN.\n + credentialspecdomainless:MyARN You use credentialspecdomainless:MyARN to provide a CredSpec with an additional section for a secret in . You provide the login credentials to the domain in the secret. Each task that runs on any container instance can join different domains. You can use this format without joining the container instance to a domain. + credentialspec:MyARN You use credentialspec:MyARN to provide a CredSpec for a single domain. You must join the container instance to the domain before you start any tasks that use this task definition. \n In both formats, replace ``MyARN`` with the ARN in SSM or Amazon S3.\n If you provide a ``credentialspecdomainless:MyARN``, the ``credspec`` must provide a ARN in ASMlong for a secret containing the username, password, and the domain to connect to. For better security, the instance isn't joined to the domain for domainless authentication. Other applications on the instance can't use the domainless credentials. You can use this parameter to run tasks on the same instance, even it the tasks need to join different domains. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) and [Using gMSAs for Linux Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html)." }, "DependsOn" : { "type" : "array", @@ -34,7 +34,7 @@ "items" : { "$ref" : "#/definitions/ContainerDependency" }, - "description" : "The dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed.\n For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [" + "description" : "The dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed.\n For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*.\n For tasks using the Fargate launch type, the task or service requires the following platforms:\n + Linux platform version ``1.3.0`` or later.\n + Windows platform version ``1.0.0`` or later.\n \n If the task definition is used in a blue/green deployment that uses [AWS::CodeDeploy::DeploymentGroup BlueGreenDeploymentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-bluegreendeploymentconfiguration.html), the ``dependsOn`` parameter is not supported. For more information see [Issue #680](https://docs.aws.amazon.com/https://github.com/aws-cloudformation/cloudformation-coverage-roadmap/issues/680) on the on the GitHub website." }, "DisableNetworking" : { "type" : "boolean", @@ -72,7 +72,7 @@ "items" : { "type" : "string" }, - "description" : "A list of strings to provide custom configuration for multiple security systems. For more information about valid values, see [Docker Run Security Configuration](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). This field isn't valid for containers in tasks using the Fargate launch type.\n For Linux tasks on EC2, this parameter can be used to reference custom labels for SELinux and AppArmor multi-level security systems.\n For any tasks on EC2, this parameter can be used to reference a credential spec file that configures a container for Active Directory authentication. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) and [Using gMSAs for Linux Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html) in the *Amazon Elastic Container Service Developer Guide*.\n This parameter maps to ``SecurityOpt`` in the [Create a co" + "description" : "A list of strings to provide custom configuration for multiple security systems. For more information about valid values, see [Docker Run Security Configuration](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). This field isn't valid for containers in tasks using the Fargate launch type.\n For Linux tasks on EC2, this parameter can be used to reference custom labels for SELinux and AppArmor multi-level security systems.\n For any tasks on EC2, this parameter can be used to reference a credential spec file that configures a container for Active Directory authentication. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) and [Using gMSAs for Linux Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html) in the *Amazon Elastic Container Service Developer Guide*.\n This parameter maps to ``SecurityOpt`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--security-opt`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n The Amazon ECS container agent running on a container instance must register with the ``ECS_SELINUX_CAPABLE=true`` or ``ECS_APPARMOR_CAPABLE=true`` environment variables before containers placed on that instance can use these security options. For more information, see [Amazon ECS Container Agent Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*.\n For more information about valid values, see [Docker Run Security Configuration](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). \n Valid values: \"no-new-privileges\" | \"apparmor:PROFILE\" | \"label:value\" | \"credentialspec:CredentialSpecFilePath\"" }, "EntryPoint" : { "type" : "array", @@ -92,7 +92,7 @@ } }, "EnvironmentFiles" : { - "description" : "A list of files containing the environment variables to pass to a container. This parameter maps to the ``--env-file`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n You can specify up to ten environment files. The file must have a ``.env`` file extension. Each line in an environment file contains an environment variable in ``VARIABLE=VALUE`` format. Lines beginning with ``#`` are treated as comments and are ignored. For more information about the environment variable file syntax, see [Declare default environment variables in file](https://docs.aws.amazon.com/https://docs.docker.com/compose/env-file/).\n If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend t", + "description" : "A list of files containing the environment variables to pass to a container. This parameter maps to the ``--env-file`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n You can specify up to ten environment files. The file must have a ``.env`` file extension. Each line in an environment file contains an environment variable in ``VARIABLE=VALUE`` format. Lines beginning with ``#`` are treated as comments and are ignored. For more information about the environment variable file syntax, see [Declare default environment variables in file](https://docs.aws.amazon.com/https://docs.docker.com/compose/env-file/).\n If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Specifying Environment Variables](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) in the *Amazon Elastic Container Service Developer Guide*.", "type" : "array", "insertionOrder" : true, "items" : { @@ -124,7 +124,7 @@ "description" : "The hostname to use for your container. This parameter maps to ``Hostname`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--hostname`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n The ``hostname`` parameter is not supported if you're using the ``awsvpc`` network mode." }, "Image" : { - "description" : "The image used to start a container. This string is passed directly to the Docker daemon. By default, images in the Docker Hub registry are available. Other repositories are specified with either ``repository-url/image:tag`` or ``repository-url/image@digest``. Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to ``Image`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``IMAGE`` parameter of [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n + When a new task starts, the Amazon ECS container agent pulls the latest version of the specified image and tag for the container to use. However, subsequent updates to a repository image ", + "description" : "The image used to start a container. This string is passed directly to the Docker daemon. By default, images in the Docker Hub registry are available. Other repositories are specified with either ``repository-url/image:tag`` or ``repository-url/image@digest``. Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to ``Image`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``IMAGE`` parameter of [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n + When a new task starts, the Amazon ECS container agent pulls the latest version of the specified image and tag for the container to use. However, subsequent updates to a repository image aren't propagated to already running tasks.\n + Images in Amazon ECR repositories can be specified by either using the full ``registry/repository:tag`` or ``registry/repository@digest``. For example, ``012345678910.dkr.ecr..amazonaws.com/:latest`` or ``012345678910.dkr.ecr..amazonaws.com/@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE``. \n + Images in official repositories on Docker Hub use a single name (for example, ``ubuntu`` or ``mongo``).\n + Images in other repositories on Docker Hub are qualified with an organization name (for example, ``amazon/amazon-ecs-agent``).\n + Images in other online repositories are qualified further by a domain name (for example, ``quay.io/assemblyline/ubuntu``).", "type" : "string" }, "Links" : { @@ -134,7 +134,7 @@ "items" : { "type" : "string" }, - "description" : "The ``links`` parameter allows containers to communicate with each other without the need for port mappings. This parameter is only supported if the network mode of a task definition is ``bridge``. The ``name:internalName`` construct is analogous to ``name:alias`` in Docker links. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. For more information about linking Docker containers, go to [Legacy container links](https://docs.aws.amazon.com/https://docs.docker.com/network/links/) in the Docker documentation. This parameter maps to ``Links`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--link`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n This parameter is not supported for W" + "description" : "The ``links`` parameter allows containers to communicate with each other without the need for port mappings. This parameter is only supported if the network mode of a task definition is ``bridge``. The ``name:internalName`` construct is analogous to ``name:alias`` in Docker links. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. For more information about linking Docker containers, go to [Legacy container links](https://docs.aws.amazon.com/https://docs.docker.com/network/links/) in the Docker documentation. This parameter maps to ``Links`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--link`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n This parameter is not supported for Windows containers.\n Containers that are collocated on a single container instance may be able to communicate with each other without requiring links or host port mappings. Network isolation is achieved on the container instance using security groups and VPC settings." }, "LinuxParameters" : { "$ref" : "#/definitions/LinuxParameters", @@ -142,15 +142,15 @@ }, "LogConfiguration" : { "$ref" : "#/definitions/LogConfiguration", - "description" : "The log configuration specification for the container.\n This parameter maps to ``LogConfig`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--log-driver`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). By default, containers use the same logging driver that the Docker daemon uses. However, the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.aws.amazon.com/htt" + "description" : "The log configuration specification for the container.\n This parameter maps to ``LogConfig`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--log-driver`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). By default, containers use the same logging driver that the Docker daemon uses. However, the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.aws.amazon.com/https://docs.docker.com/engine/admin/logging/overview/) in the Docker documentation.\n Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon (shown in the [LogConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_LogConfiguration.html) data type). Additional log drivers may be available in future releases of the Amazon ECS container agent.\n This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'`` \n The Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the ``ECS_AVAILABLE_LOGGING_DRIVERS`` environment variable before containers placed on that instance can use these log configuration options. For more information, see [Amazon ECS Container Agent Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*." }, "Memory" : { - "description" : "The amount (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. The total amount of memory reserved for all containers within a task must be lower than the task ``memory`` value, if one is specified. This parameter maps to ``Memory`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n If using the Fargate launch type, this parameter is optional.\n If using the EC2 launch type, you must specify either a task-level memory value or a container-level memory value. If you specify both a container-level ``memory`` and ``memoryReservation`` value, ``memory`` must be greater than ``memoryReserva", + "description" : "The amount (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. The total amount of memory reserved for all containers within a task must be lower than the task ``memory`` value, if one is specified. This parameter maps to ``Memory`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n If using the Fargate launch type, this parameter is optional.\n If using the EC2 launch type, you must specify either a task-level memory value or a container-level memory value. If you specify both a container-level ``memory`` and ``memoryReservation`` value, ``memory`` must be greater than ``memoryReservation``. If you specify ``memoryReservation``, then that value is subtracted from the available memory resources for the container instance where the container is placed. Otherwise, the value of ``memory`` is used.\n The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container, so you should not specify fewer than 6 MiB of memory for your containers.\n The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container, so you should not specify fewer than 4 MiB of memory for your containers.", "type" : "integer" }, "MemoryReservation" : { "type" : "integer", - "description" : "The soft limit (in MiB) of memory to reserve for the container. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit. However, your container can consume more memory when it needs to, up to either the hard limit specified with the ``memory`` parameter (if applicable), or all of the available memory on the container instance, whichever comes first. This parameter maps to ``MemoryReservation`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory-reservation`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n If a task-level memory value is not specified, you must specify a non-zero integer for one or both of ``memory`` or ``memoryReservation`` in a container definiti" + "description" : "The soft limit (in MiB) of memory to reserve for the container. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit. However, your container can consume more memory when it needs to, up to either the hard limit specified with the ``memory`` parameter (if applicable), or all of the available memory on the container instance, whichever comes first. This parameter maps to ``MemoryReservation`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory-reservation`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n If a task-level memory value is not specified, you must specify a non-zero integer for one or both of ``memory`` or ``memoryReservation`` in a container definition. If you specify both, ``memory`` must be greater than ``memoryReservation``. If you specify ``memoryReservation``, then that value is subtracted from the available memory resources for the container instance where the container is placed. Otherwise, the value of ``memory`` is used.\n For example, if your container normally uses 128 MiB of memory, but occasionally bursts to 256 MiB of memory for short periods of time, you can set a ``memoryReservation`` of 128 MiB, and a ``memory`` hard limit of 300 MiB. This configuration would allow the container to only reserve 128 MiB of memory from the remaining resources on the container instance, but also allow the container to consume more memory resources when needed.\n The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container. So, don't specify less than 6 MiB of memory for your containers. \n The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container. So, don't specify less than 4 MiB of memory for your containers." }, "MountPoints" : { "type" : "array", @@ -166,7 +166,7 @@ "type" : "string" }, "PortMappings" : { - "description" : "The list of port mappings for the container. Port mappings allow containers to access ports on the host container instance to send or receive traffic.\n For task definitions that use the ``awsvpc`` network mode, you should only specify the ``containerPort``. The ``hostPort`` can be left blank or it must be the same value as the ``containerPort``.\n Port mappings on Windows use the ``NetNAT`` gateway address rather than ``localhost``. There is no loopback for port mappings on Windows, so you cannot access a container's mapped port from the host itself. \n This parameter maps to ``PortBindings`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--publish`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). If the network mode of a task definition is set to", + "description" : "The list of port mappings for the container. Port mappings allow containers to access ports on the host container instance to send or receive traffic.\n For task definitions that use the ``awsvpc`` network mode, you should only specify the ``containerPort``. The ``hostPort`` can be left blank or it must be the same value as the ``containerPort``.\n Port mappings on Windows use the ``NetNAT`` gateway address rather than ``localhost``. There is no loopback for port mappings on Windows, so you cannot access a container's mapped port from the host itself. \n This parameter maps to ``PortBindings`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--publish`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). If the network mode of a task definition is set to ``none``, then you can't specify port mappings. If the network mode of a task definition is set to ``host``, then host ports must either be undefined or they must match the container port in the port mapping.\n After a task reaches the ``RUNNING`` status, manual and automatic host and container port assignments are visible in the *Network Bindings* section of a container description for a selected task in the Amazon ECS console. The assignments are also visible in the ``networkBindings`` section [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) responses.", "type" : "array", "insertionOrder" : false, "uniqueItems" : true, @@ -204,11 +204,11 @@ }, "StartTimeout" : { "type" : "integer", - "description" : "Time duration (in seconds) to wait before giving up on resolving dependencies for a container. For example, you specify two containers in a task definition with containerA having a dependency on containerB reaching a ``COMPLETE``, ``SUCCESS``, or ``HEALTHY`` status. If a ``startTimeout`` value is specified for containerB and it doesn't reach the desired status within that time then containerA gives up and not start. This results in the task transitioning to a ``STOPPED`` state.\n When the ``ECS_CONTAINER_START_TIMEOUT`` container agent configuration variable is used, it's enforced independently from this start timeout value.\n For tasks using the Fargate launch type, the task or service requires the following platforms:\n + Linux platform version ``1.3.0`` or later.\n + Windows platform version ``1.0.0`` or later.\n \n For tasks using the EC2 launch type, your container instances require at least version ``1.26.0`` of the container agent to use a container start timeout value. However" + "description" : "Time duration (in seconds) to wait before giving up on resolving dependencies for a container. For example, you specify two containers in a task definition with containerA having a dependency on containerB reaching a ``COMPLETE``, ``SUCCESS``, or ``HEALTHY`` status. If a ``startTimeout`` value is specified for containerB and it doesn't reach the desired status within that time then containerA gives up and not start. This results in the task transitioning to a ``STOPPED`` state.\n When the ``ECS_CONTAINER_START_TIMEOUT`` container agent configuration variable is used, it's enforced independently from this start timeout value.\n For tasks using the Fargate launch type, the task or service requires the following platforms:\n + Linux platform version ``1.3.0`` or later.\n + Windows platform version ``1.0.0`` or later.\n \n For tasks using the EC2 launch type, your container instances require at least version ``1.26.0`` of the container agent to use a container start timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version ``1.26.0-1`` of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*.\n The valid values are 2-120 seconds." }, "StopTimeout" : { "type" : "integer", - "description" : "Time duration (in seconds) to wait before the container is forcefully killed if it doesn't exit normally on its own.\n For tasks using the Fargate launch type, the task or service requires the following platforms:\n + Linux platform version ``1.3.0`` or later.\n + Windows platform version ``1.0.0`` or later.\n \n The max stop timeout value is 120 seconds and if the parameter is not specified, the default value of 30 seconds is used.\n For tasks that use the EC2 launch type, if the ``stopTimeout`` parameter isn't specified, the value set for the Amazon ECS container agent configuration variable ``ECS_CONTAINER_STOP_TIMEOUT`` is used. If neither the ``stopTimeout`` parameter or the ``ECS_CONTAINER_STOP_TIMEOUT`` agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to use a container stop timeout value. However, we recomm" + "description" : "Time duration (in seconds) to wait before the container is forcefully killed if it doesn't exit normally on its own.\n For tasks using the Fargate launch type, the task or service requires the following platforms:\n + Linux platform version ``1.3.0`` or later.\n + Windows platform version ``1.0.0`` or later.\n \n The max stop timeout value is 120 seconds and if the parameter is not specified, the default value of 30 seconds is used.\n For tasks that use the EC2 launch type, if the ``stopTimeout`` parameter isn't specified, the value set for the Amazon ECS container agent configuration variable ``ECS_CONTAINER_STOP_TIMEOUT`` is used. If neither the ``stopTimeout`` parameter or the ``ECS_CONTAINER_STOP_TIMEOUT`` agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to use a container stop timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*.\n The valid values are 2-120 seconds." }, "Ulimits" : { "type" : "array", @@ -267,7 +267,7 @@ } }, "additionalProperties" : false, - "description" : "A list of namespaced kernel parameters to set in the container. This parameter maps to ``Sysctls`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--sysctl`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). For example, you can configure ``net.ipv4.tcp_keepalive_time`` setting to maintain longer lived connections.\n We don't recommend that you specify network-related ``systemControls`` parameters for multiple containers in a single task that also uses either the ``awsvpc`` or ``host`` network mode. Doing this has the following disadvantages:\n + For tasks that use the ``awsvpc`` network mode including Fargate, if you set ``systemControls`` for any container, it applies to all containers in the task. If you set different ``sy" + "description" : "A list of namespaced kernel parameters to set in the container. This parameter maps to ``Sysctls`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--sysctl`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). For example, you can configure ``net.ipv4.tcp_keepalive_time`` setting to maintain longer lived connections.\n We don't recommend that you specify network-related ``systemControls`` parameters for multiple containers in a single task that also uses either the ``awsvpc`` or ``host`` network mode. Doing this has the following disadvantages:\n + For tasks that use the ``awsvpc`` network mode including Fargate, if you set ``systemControls`` for any container, it applies to all containers in the task. If you set different ``systemControls`` for multiple containers in a single task, the container that's started last determines which ``systemControls`` take effect.\n + For tasks that use the ``host`` network mode, the network namespace ``systemControls`` aren't supported.\n \n If you're setting an IPC resource namespace to use for the containers in the task, the following conditions apply to your system controls. For more information, see [IPC mode](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#task_definition_ipcmode).\n + For tasks that use the ``host`` IPC mode, IPC namespace ``systemControls`` aren't supported.\n + For tasks that use the ``task`` IPC mode, IPC namespace ``systemControls`` values apply to all containers within a task.\n \n This parameter is not supported for Windows containers.\n This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate." }, "ContainerDependency" : { "type" : "object", @@ -278,11 +278,11 @@ }, "Condition" : { "type" : "string", - "description" : "The dependency condition of the container. The following are the available conditions and their behavior:\n + ``START`` - This condition emulates the behavior of links and volumes today. It validates that a dependent container is started before permitting other containers to start.\n + ``COMPLETE`` - This condition validates that a dependent container runs to completion (exits) before permitting other containers to start. This can be useful for nonessential containers that run a script and then exit. This condition can't be set on an essential container.\n + ``SUCCESS`` - This condition is the same as ``COMPLETE``, but it also requires that the container exits with a ``zero`` status. This condition can't be set on an essential container.\n + ``HEALTHY`` - This condition validates that the dependent container passes its Docker health check before permitting other containers to start. This requires that the dependent container has health checks configured. This condition is confi" + "description" : "The dependency condition of the container. The following are the available conditions and their behavior:\n + ``START`` - This condition emulates the behavior of links and volumes today. It validates that a dependent container is started before permitting other containers to start.\n + ``COMPLETE`` - This condition validates that a dependent container runs to completion (exits) before permitting other containers to start. This can be useful for nonessential containers that run a script and then exit. This condition can't be set on an essential container.\n + ``SUCCESS`` - This condition is the same as ``COMPLETE``, but it also requires that the container exits with a ``zero`` status. This condition can't be set on an essential container.\n + ``HEALTHY`` - This condition validates that the dependent container passes its Docker health check before permitting other containers to start. This requires that the dependent container has health checks configured. This condition is confirmed only at task startup." } }, "additionalProperties" : false, - "description" : "The ``ContainerDependency`` property specifies the dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed.\n Your Amazon ECS container instances require at least version 1.26.0 of the container agent to enable container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you are using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For m" + "description" : "The ``ContainerDependency`` property specifies the dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed.\n Your Amazon ECS container instances require at least version 1.26.0 of the container agent to enable container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you are using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*.\n For tasks using the Fargate launch type, this parameter requires that the task or service uses platform version 1.3.0 or later." }, "Device" : { "type" : "object", @@ -401,23 +401,54 @@ }, "Type" : { "type" : "string", - "description" : "The file type to use. The only supported value is ``s3``." + "description" : "The file type to use. Environment files are objects in Amazon S3. The only supported value is ``s3``." } }, "additionalProperties" : false, - "description" : "A list of files containing the environment variables to pass to a container. You can specify up to ten environment files. The file must have a ``.env`` file extension. Each line in an environment file should contain an environment variable in ``VARIABLE=VALUE`` format. Lines beginning with ``#`` are treated as comments and are ignored.\n If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Specifying environment variables](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) in the *Amazon Elastic Container Service Developer Guide*.\n You must use the following platforms for the Fargate launch type:\n + Linux platform version ``1.4.0`` or la" + "description" : "A list of files containing the environment variables to pass to a container. You can specify up to ten environment files. The file must have a ``.env`` file extension. Each line in an environment file should contain an environment variable in ``VARIABLE=VALUE`` format. Lines beginning with ``#`` are treated as comments and are ignored.\n If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Use a file to pass environment variables to a container](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/use-environment-file.html) in the *Amazon Elastic Container Service Developer Guide*.\n Environment variable files are objects in Amazon S3 and all Amazon S3 security considerations apply. \n You must use the following platforms for the Fargate launch type:\n + Linux platform version ``1.4.0`` or later.\n + Windows platform version ``1.0.0`` or later.\n \n Consider the following when using the Fargate launch type:\n + The file is handled like a native Docker env-file.\n + There is no support for shell escape handling.\n + The container entry point interperts the ``VARIABLE`` values." }, "EphemeralStorage" : { "type" : "object", "properties" : { "SizeInGiB" : { "type" : "integer", - "description" : "The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``21`` GiB and the maximum supported value is ``200`` GiB." + "description" : "The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``20`` GiB and the maximum supported value is ``200`` GiB." } }, "additionalProperties" : false, "description" : "The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on FARGATElong. For more information, see [Using data volumes in tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html) in the *Amazon ECS Developer Guide;*.\n For tasks using the Fargate launch type, the task requires the following platforms:\n + Linux platform version ``1.4.0`` or later.\n + Windows platform version ``1.0.0`` or later." }, + "FSxAuthorizationConfig" : { + "type" : "object", + "required" : [ "CredentialsParameter", "Domain" ], + "properties" : { + "CredentialsParameter" : { + "type" : "string" + }, + "Domain" : { + "type" : "string" + } + }, + "additionalProperties" : false, + "description" : "" + }, + "FSxWindowsFileServerVolumeConfiguration" : { + "type" : "object", + "required" : [ "FileSystemId", "RootDirectory" ], + "properties" : { + "FileSystemId" : { + "type" : "string" + }, + "RootDirectory" : { + "type" : "string" + }, + "AuthorizationConfig" : { + "$ref" : "#/definitions/FSxAuthorizationConfig" + } + }, + "additionalProperties" : false, + "description" : "" + }, "FirelensConfiguration" : { "type" : "object", "properties" : { @@ -433,14 +464,14 @@ } }, "additionalProperties" : false, - "description" : "The options to use when configuring the log router. This field is optional and can be used to add additional metadata, such as the task, task definition, cluster, and container instance details to the log event.\n If specified, valid option keys are:\n + ``enable-ecs-log-metadata``, which can be ``true`` or ``false``\n + ``config-file-type``, which can be ``s3`` or ``file``\n + ``config-file-value``, which is either an S3 ARN or a file path" + "description" : "The options to use when configuring the log router. This field is optional and can be used to add additional metadata, such as the task, task definition, cluster, and container instance details to the log event.\n If specified, valid option keys are:\n + ``enable-ecs-log-metadata``, which can be ``true`` or ``false`` \n + ``config-file-type``, which can be ``s3`` or ``file`` \n + ``config-file-value``, which is either an S3 ARN or a file path" } }, "additionalProperties" : false, "description" : "The FireLens configuration for the container. This is used to specify and configure a log router for container logs. For more information, see [Custom log routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*." }, "HealthCheck" : { - "description" : "The ``HealthCheck`` property specifies an object representing a container health check. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image (such as those specified in a parent image or from the image's Dockerfile). This configuration maps to the ``HEALTHCHECK`` parameter of [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/).\n The Amazon ECS container agent only monitors and reports on the health checks specified in the task definition. Amazon ECS does not monitor Docker health checks that are embedded in a container image and not specified in the container definition. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image.\n If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a servi", + "description" : "The ``HealthCheck`` property specifies an object representing a container health check. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image (such as those specified in a parent image or from the image's Dockerfile). This configuration maps to the ``HEALTHCHECK`` parameter of [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/).\n The Amazon ECS container agent only monitors and reports on the health checks specified in the task definition. Amazon ECS does not monitor Docker health checks that are embedded in a container image and not specified in the container definition. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image.\n If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a service, if the task reports as unhealthy then the task will be stopped and the service scheduler will replace it.\n The following are notes about container health check support:\n + Container health checks require version 1.17.0 or greater of the Amazon ECS container agent. For more information, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html).\n + Container health checks are supported for Fargate tasks if you are using platform version 1.1.0 or greater. For more information, see [Platform Versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html).\n + Container health checks are not supported for tasks that are part of a service that is configured to use a Classic Load Balancer.", "type" : "object", "properties" : { "Command" : { @@ -520,7 +551,7 @@ "items" : { "type" : "string" }, - "description" : "The Linux capabilities for the container that have been added to the default configuration provided by Docker. This parameter maps to ``CapAdd`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-add`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n Tasks launched on FARGATElong only support adding the ``SYS_PTRACE`` kernel capability.\n Valid values: ``\"ALL\" | \"AUDIT_CONTROL\" | \"AUDIT_WRITE\" | \"BLOCK_SUSPEND\" | \"CHOWN\" | \"DAC_OVERRIDE\" | \"DAC_READ_SEARCH\" | \"FOWNER\" | \"FSETID\" | \"IPC_LOCK\" | \"IPC_OWNER\" | \"KILL\" | \"LEASE\" | \"LINUX_IMMUTABLE\" | \"MAC_ADMIN\" | \"MAC_OVERRIDE\" | \"MKNOD\" | \"NET_ADMIN\" | \"NET_BIND_SERVICE\" | \"NET_BROADCAST\" | \"NET_RAW\" | \"SETFCAP\" | \"SETGID\" | \"SETPCAP\" | \"SETUID\" | \"SYS_ADMIN\" | \"SYS_BOOT\" " + "description" : "The Linux capabilities for the container that have been added to the default configuration provided by Docker. This parameter maps to ``CapAdd`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-add`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n Tasks launched on FARGATElong only support adding the ``SYS_PTRACE`` kernel capability.\n Valid values: ``\"ALL\" | \"AUDIT_CONTROL\" | \"AUDIT_WRITE\" | \"BLOCK_SUSPEND\" | \"CHOWN\" | \"DAC_OVERRIDE\" | \"DAC_READ_SEARCH\" | \"FOWNER\" | \"FSETID\" | \"IPC_LOCK\" | \"IPC_OWNER\" | \"KILL\" | \"LEASE\" | \"LINUX_IMMUTABLE\" | \"MAC_ADMIN\" | \"MAC_OVERRIDE\" | \"MKNOD\" | \"NET_ADMIN\" | \"NET_BIND_SERVICE\" | \"NET_BROADCAST\" | \"NET_RAW\" | \"SETFCAP\" | \"SETGID\" | \"SETPCAP\" | \"SETUID\" | \"SYS_ADMIN\" | \"SYS_BOOT\" | \"SYS_CHROOT\" | \"SYS_MODULE\" | \"SYS_NICE\" | \"SYS_PACCT\" | \"SYS_PTRACE\" | \"SYS_RAWIO\" | \"SYS_RESOURCE\" | \"SYS_TIME\" | \"SYS_TTY_CONFIG\" | \"SYSLOG\" | \"WAKE_ALARM\"``" }, "Drop" : { "type" : "array", @@ -528,11 +559,11 @@ "items" : { "type" : "string" }, - "description" : "The Linux capabilities for the container that have been removed from the default configuration provided by Docker. This parameter maps to ``CapDrop`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-drop`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n Valid values: ``\"ALL\" | \"AUDIT_CONTROL\" | \"AUDIT_WRITE\" | \"BLOCK_SUSPEND\" | \"CHOWN\" | \"DAC_OVERRIDE\" | \"DAC_READ_SEARCH\" | \"FOWNER\" | \"FSETID\" | \"IPC_LOCK\" | \"IPC_OWNER\" | \"KILL\" | \"LEASE\" | \"LINUX_IMMUTABLE\" | \"MAC_ADMIN\" | \"MAC_OVERRIDE\" | \"MKNOD\" | \"NET_ADMIN\" | \"NET_BIND_SERVICE\" | \"NET_BROADCAST\" | \"NET_RAW\" | \"SETFCAP\" | \"SETGID\" | \"SETPCAP\" | \"SETUID\" | \"SYS_ADMIN\" | \"SYS_BOOT\" | \"SYS_CHROOT\" | \"SYS_MODULE\" | \"SYS_NICE\" | \"SYS_PACCT\" | \"SYS_PTRACE\" | \"SYS_RAWIO\"" + "description" : "The Linux capabilities for the container that have been removed from the default configuration provided by Docker. This parameter maps to ``CapDrop`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-drop`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n Valid values: ``\"ALL\" | \"AUDIT_CONTROL\" | \"AUDIT_WRITE\" | \"BLOCK_SUSPEND\" | \"CHOWN\" | \"DAC_OVERRIDE\" | \"DAC_READ_SEARCH\" | \"FOWNER\" | \"FSETID\" | \"IPC_LOCK\" | \"IPC_OWNER\" | \"KILL\" | \"LEASE\" | \"LINUX_IMMUTABLE\" | \"MAC_ADMIN\" | \"MAC_OVERRIDE\" | \"MKNOD\" | \"NET_ADMIN\" | \"NET_BIND_SERVICE\" | \"NET_BROADCAST\" | \"NET_RAW\" | \"SETFCAP\" | \"SETGID\" | \"SETPCAP\" | \"SETUID\" | \"SYS_ADMIN\" | \"SYS_BOOT\" | \"SYS_CHROOT\" | \"SYS_MODULE\" | \"SYS_NICE\" | \"SYS_PACCT\" | \"SYS_PTRACE\" | \"SYS_RAWIO\" | \"SYS_RESOURCE\" | \"SYS_TIME\" | \"SYS_TTY_CONFIG\" | \"SYSLOG\" | \"WAKE_ALARM\"``" } }, "additionalProperties" : false, - "description" : "The ``KernelCapabilities`` property specifies the Linux capabilities for the container that are added to or dropped from the default configuration that is provided by Docker. For more information on the default capabilities and the non-default available capabilities, see [Runtime privilege and Linux capabilities](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) in the *Docker run reference*. For more detailed information on these Linux capabilities, see the [capabilities(7)](https://docs.aws.amazon.com/http://man7.org/linux/man-pages/man7/capabilities.7.html) Linux manual page." + "description" : "The Linux capabilities to add or remove from the default Docker configuration for a container defined in the task definition. For more information about the default capabilities and the non-default available capabilities, see [Runtime privilege and Linux capabilities](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) in the *Docker run reference*. For more detailed information about these Linux capabilities, see the [capabilities(7)](https://docs.aws.amazon.com/http://man7.org/linux/man-pages/man7/capabilities.7.html) Linux manual page." }, "KeyValuePair" : { "type" : "object", @@ -598,7 +629,7 @@ "properties" : { "LogDriver" : { "type" : "string", - "description" : "The log driver to use for the container.\n For tasks on FARGATElong, the supported log drivers are ``awslogs``, ``splunk``, and ``awsfirelens``.\n For tasks hosted on Amazon EC2 instances, the supported log drivers are ``awslogs``, ``fluentd``, ``gelf``, ``json-file``, ``journald``, ``logentries``,``syslog``, ``splunk``, and ``awsfirelens``.\n For more information about using the ``awslogs`` log driver, see [Using the awslogs log driver](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html) in the *Amazon Elastic Container Service Developer Guide*.\n For more information about using the ``awsfirelens`` log driver, see [Custom log routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*.\n If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs" + "description" : "The log driver to use for the container.\n For tasks on FARGATElong, the supported log drivers are ``awslogs``, ``splunk``, and ``awsfirelens``.\n For tasks hosted on Amazon EC2 instances, the supported log drivers are ``awslogs``, ``fluentd``, ``gelf``, ``json-file``, ``journald``, ``logentries``,``syslog``, ``splunk``, and ``awsfirelens``.\n For more information about using the ``awslogs`` log driver, see [Using the awslogs log driver](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html) in the *Amazon Elastic Container Service Developer Guide*.\n For more information about using the ``awsfirelens`` log driver, see [Custom log routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*.\n If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs-agent) and customize it to work with that driver. We encourage you to submit pull requests for changes that you would like to have included. However, we don't currently provide support for running modified copies of this software." }, "Options" : { "type" : "object", @@ -635,11 +666,11 @@ }, "ContainerPortRange" : { "type" : "string", - "description" : "The port number range on the container that's bound to the dynamically mapped host port range. \n The following rules apply when you specify a ``containerPortRange``:\n + You must use either the ``bridge`` network mode or the ``awsvpc`` network mode.\n + This parameter is available for both the EC2 and FARGATElong launch types.\n + This parameter is available for both the Linux and Windows operating systems.\n + The container instance must have at least version 1.67.0 of the container agent and at least version 1.67.0-1 of the ``ecs-init`` package \n + You can specify a maximum of 100 port ranges per container.\n + You do not specify a ``hostPortRange``. The value of the ``hostPortRange`` is set as follows:\n + For containers in a task with the ``awsvpc`` network mode, the ``hostPortRange`` is set to the same value as the ``containerPortRange``. This is a static mapping strategy.\n + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open host " + "description" : "The port number range on the container that's bound to the dynamically mapped host port range. \n The following rules apply when you specify a ``containerPortRange``:\n + You must use either the ``bridge`` network mode or the ``awsvpc`` network mode.\n + This parameter is available for both the EC2 and FARGATElong launch types.\n + This parameter is available for both the Linux and Windows operating systems.\n + The container instance must have at least version 1.67.0 of the container agent and at least version 1.67.0-1 of the ``ecs-init`` package \n + You can specify a maximum of 100 port ranges per container.\n + You do not specify a ``hostPortRange``. The value of the ``hostPortRange`` is set as follows:\n + For containers in a task with the ``awsvpc`` network mode, the ``hostPortRange`` is set to the same value as the ``containerPortRange``. This is a static mapping strategy.\n + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open host ports from the default ephemeral range and passes it to docker to bind them to the container ports.\n \n + The ``containerPortRange`` valid values are between 1 and 65535.\n + A port can only be included in one port mapping per container.\n + You cannot specify overlapping port ranges.\n + The first port in the range must be less than last port in the range.\n + Docker recommends that you turn off the docker-proxy in the Docker daemon config file when you have a large number of ports.\n For more information, see [Issue #11185](https://docs.aws.amazon.com/https://github.com/moby/moby/issues/11185) on the Github website.\n For information about how to turn off the docker-proxy in the Docker daemon config file, see [Docker daemon](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/bootstrap_container_instance.html#bootstrap_docker_daemon) in the *Amazon ECS Developer Guide*.\n \n You can call [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) to view the ``hostPortRange`` which are the host ports that are bound to the container ports." }, "HostPort" : { "type" : "integer", - "description" : "The port number on the container instance to reserve for your container.\n If you specify a ``containerPortRange``, leave this field empty and the value of the ``hostPort`` is set as follows:\n + For containers in a task with the ``awsvpc`` network mode, the ``hostPort`` is set to the same value as the ``containerPort``. This is a static mapping strategy.\n + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open ports on the host and automatically binds them to the container ports. This is a dynamic mapping strategy.\n \n If you use containers in a task with the ``awsvpc`` or ``host`` network mode, the ``hostPort`` can either be left blank or set to the same value as the ``containerPort``.\n If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0``) while specifying a ``containerPort`` and your container automatically" + "description" : "The port number on the container instance to reserve for your container.\n If you specify a ``containerPortRange``, leave this field empty and the value of the ``hostPort`` is set as follows:\n + For containers in a task with the ``awsvpc`` network mode, the ``hostPort`` is set to the same value as the ``containerPort``. This is a static mapping strategy.\n + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open ports on the host and automatically binds them to the container ports. This is a dynamic mapping strategy.\n \n If you use containers in a task with the ``awsvpc`` or ``host`` network mode, the ``hostPort`` can either be left blank or set to the same value as the ``containerPort``.\n If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0``) while specifying a ``containerPort`` and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version.\n The default ephemeral port range for Docker version 1.6.0 and later is listed on the instance under ``/proc/sys/net/ipv4/ip_local_port_range``. If this kernel parameter is unavailable, the default ephemeral port range from 49153 through 65535 (Linux) or 49152 through 65535 (Windows) is used. Do not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range.\n The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678-51680. Any host port that was previously specified in a running task is also reserved while the task is running. That is, after a task stops, the host port is released. The current reserved ports are displayed in the ``remainingResources`` of [DescribeContainerInstances](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html) output. A container instance can have up to 100 reserved ports at a time. This number includes the default reserved ports. Automatically assigned ports aren't included in the 100 reserved ports quota." }, "Protocol" : { "type" : "string", @@ -648,7 +679,7 @@ "AppProtocol" : { "type" : "string", "enum" : [ "http", "http2", "grpc" ], - "description" : "The application protocol that's used for the port mapping. This parameter only applies to Service Connect. We recommend that you set this parameter to be consistent with the protocol that your application uses. If you set this parameter, Amazon ECS adds protocol-specific connection handling to the Service Connect proxy. If you set this parameter, Amazon ECS adds protocol-specific telemetry in the Amazon ECS console and CloudWatch.\n If you don't set a value for this parameter, then TCP is used. However, Amazon ECS doesn't add protocol-specific telemetry for TCP.\n ``appProtocol`` is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment.\n Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS se" + "description" : "The application protocol that's used for the port mapping. This parameter only applies to Service Connect. We recommend that you set this parameter to be consistent with the protocol that your application uses. If you set this parameter, Amazon ECS adds protocol-specific connection handling to the Service Connect proxy. If you set this parameter, Amazon ECS adds protocol-specific telemetry in the Amazon ECS console and CloudWatch.\n If you don't set a value for this parameter, then TCP is used. However, Amazon ECS doesn't add protocol-specific telemetry for TCP.\n ``appProtocol`` is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment.\n Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*." } }, "additionalProperties" : false, @@ -688,7 +719,7 @@ "items" : { "$ref" : "#/definitions/KeyValuePair" }, - "description" : "The set of network configuration parameters to provide the Container Network Interface (CNI) plugin, specified as key-value pairs.\n + ``IgnoredUID`` - (Required) The user ID (UID) of the proxy container as defined by the ``user`` parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If ``IgnoredGID`` is specified, this field can be empty.\n + ``IgnoredGID`` - (Required) The group ID (GID) of the proxy container as defined by the ``user`` parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If ``IgnoredUID`` is specified, this field can be empty.\n + ``AppPorts`` - (Required) The list of ports that the application uses. Network traffic to these ports is forwarded to the ``ProxyIngressPort`` and ``ProxyEgressPort``.\n + ``ProxyIngressPort`` - (Required) Specifies the port that incoming traffic to the ``AppPorts`` is directed to.\n + ``ProxyEgressPort`` - (Required) Specifies the port that outgoi" + "description" : "The set of network configuration parameters to provide the Container Network Interface (CNI) plugin, specified as key-value pairs.\n + ``IgnoredUID`` - (Required) The user ID (UID) of the proxy container as defined by the ``user`` parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If ``IgnoredGID`` is specified, this field can be empty.\n + ``IgnoredGID`` - (Required) The group ID (GID) of the proxy container as defined by the ``user`` parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If ``IgnoredUID`` is specified, this field can be empty.\n + ``AppPorts`` - (Required) The list of ports that the application uses. Network traffic to these ports is forwarded to the ``ProxyIngressPort`` and ``ProxyEgressPort``.\n + ``ProxyIngressPort`` - (Required) Specifies the port that incoming traffic to the ``AppPorts`` is directed to.\n + ``ProxyEgressPort`` - (Required) Specifies the port that outgoing traffic from the ``AppPorts`` is directed to.\n + ``EgressIgnoredPorts`` - (Required) The egress traffic going to the specified ports is ignored and not redirected to the ``ProxyEgressPort``. It can be an empty list.\n + ``EgressIgnoredIPs`` - (Required) The egress traffic going to the specified IP addresses is ignored and not redirected to the ``ProxyEgressPort``. It can be an empty list." }, "Type" : { "type" : "string", @@ -831,6 +862,10 @@ "$ref" : "#/definitions/EFSVolumeConfiguration", "description" : "This parameter is specified when you use an Amazon Elastic File System file system for task storage." }, + "FSxWindowsFileServerVolumeConfiguration" : { + "$ref" : "#/definitions/FSxWindowsFileServerVolumeConfiguration", + "description" : "" + }, "Host" : { "$ref" : "#/definitions/HostVolumeProperties", "description" : "This parameter is specified when you use bind mount host volumes. The contents of the ``host`` parameter determine whether your bind mount host volume persists on the host container instance and where it's stored. If the ``host`` parameter is empty, then the Docker daemon assigns a host path for your data volume. However, the data isn't guaranteed to persist after the containers that are associated with it stop running.\n Windows containers can mount whole directories on the same drive as ``$env:ProgramData``. Windows containers can't mount directories on a different drive, and mount point can't be across drives. For example, you can mount ``C:\\my\\path:C:\\my\\path`` and ``D:\\:D:\\``, but not ``D:\\my\\path:C:\\my\\path`` or ``D:\\:C:\\my\\path``." @@ -871,7 +906,7 @@ } }, "additionalProperties" : false, - "description" : "The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix" + "description" : "The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit." } }, "additionalProperties" : false, @@ -895,7 +930,7 @@ }, "Cpu" : { "type" : "string", - "description" : "The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter.\n The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.\n + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)\n + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)\n + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)\n + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)\n + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)\n + 8192 (8 vCPU) - Available ``memory`` va" + "description" : "The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter.\n The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.\n + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)\n + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)\n + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)\n + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)\n + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)\n + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments\n This option requires Linux platform ``1.4.0`` or later.\n + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments\n This option requires Linux platform ``1.4.0`` or later." }, "ExecutionRoleArn" : { "type" : "string", @@ -916,11 +951,11 @@ }, "Memory" : { "type" : "string", - "description" : "The amount (in MiB) of memory used by the task.\n If your tasks runs on Amazon EC2 instances, you must specify either a task-level memory value or a container-level memory value. This field is optional and any value can be used. If a task-level memory value is specified, the container-level memory value is optional. For more information regarding container-level memory and memory reservation, see [ContainerDefinition](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html).\n If your tasks runs on FARGATElong, this field is required. You must use one of the following values. The value you choose determines your range of valid values for the ``cpu`` parameter.\n + 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available ``cpu`` values: 256 (.25 vCPU)\n + 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available ``cpu`` values: 512 (.5 vCPU)\n + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` va" + "description" : "The amount (in MiB) of memory used by the task.\n If your tasks runs on Amazon EC2 instances, you must specify either a task-level memory value or a container-level memory value. This field is optional and any value can be used. If a task-level memory value is specified, the container-level memory value is optional. For more information regarding container-level memory and memory reservation, see [ContainerDefinition](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html).\n If your tasks runs on FARGATElong, this field is required. You must use one of the following values. The value you choose determines your range of valid values for the ``cpu`` parameter.\n + 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available ``cpu`` values: 256 (.25 vCPU)\n + 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available ``cpu`` values: 512 (.5 vCPU)\n + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` values: 1024 (1 vCPU)\n + Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 2048 (2 vCPU)\n + Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 4096 (4 vCPU)\n + Between 16 GB and 60 GB in 4 GB increments - Available ``cpu`` values: 8192 (8 vCPU)\n This option requires Linux platform ``1.4.0`` or later.\n + Between 32GB and 120 GB in 8 GB increments - Available ``cpu`` values: 16384 (16 vCPU)\n This option requires Linux platform ``1.4.0`` or later." }, "NetworkMode" : { "type" : "string", - "description" : "The Docker networking mode to use for the containers in the task. The valid values are ``none``, ``bridge``, ``awsvpc``, and ``host``. If no network mode is specified, the default is ``bridge``.\n For Amazon ECS tasks on Fargate, the ``awsvpc`` network mode is required. For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, ```` or ``awsvpc`` can be used. If the network mode is set to ``none``, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The ``host`` and ``awsvpc`` network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the ``bridge`` mode.\n With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elasti" + "description" : "The Docker networking mode to use for the containers in the task. The valid values are ``none``, ``bridge``, ``awsvpc``, and ``host``. If no network mode is specified, the default is ``bridge``.\n For Amazon ECS tasks on Fargate, the ``awsvpc`` network mode is required. For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, ```` or ``awsvpc`` can be used. If the network mode is set to ``none``, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The ``host`` and ``awsvpc`` network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the ``bridge`` mode.\n With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elastic network interface port (for the ``awsvpc`` network mode), so you cannot take advantage of dynamic host port mappings. \n When using the ``host`` network mode, you should not run containers using the root user (UID 0). It is considered best practice to use a non-root user.\n If the network mode is ``awsvpc``, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration value when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*.\n If the network mode is ``host``, you cannot run multiple instantiations of the same task on a single container instance when port mappings are used.\n For more information, see [Network settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#network-settings) in the *Docker run reference*." }, "PlacementConstraints" : { "type" : "array", @@ -959,7 +994,7 @@ }, "PidMode" : { "type" : "string", - "description" : "The process namespace to use for the containers in the task. The valid values are ``host`` or ``task``. On Fargate for Linux containers, the only valid value is ``task``. For example, monitoring sidecars might need ``pidMode`` to access information about other containers running in the same task.\n If ``host`` is specified, all containers within the tasks that specified the ``host`` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance.\n If ``task`` is specified, all containers within the specified task share the same process namespace.\n If no value is specified, the default is a private namespace for each container. For more information, see [PID settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#pid-settings---pid) in the *Docker run reference*.\n If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://doc" + "description" : "The process namespace to use for the containers in the task. The valid values are ``host`` or ``task``. On Fargate for Linux containers, the only valid value is ``task``. For example, monitoring sidecars might need ``pidMode`` to access information about other containers running in the same task.\n If ``host`` is specified, all containers within the tasks that specified the ``host`` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance.\n If ``task`` is specified, all containers within the specified task share the same process namespace.\n If no value is specified, the default is a private namespace for each container. For more information, see [PID settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#pid-settings---pid) in the *Docker run reference*.\n If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/).\n This parameter is not supported for Windows containers.\n This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate." }, "RuntimePlatform" : { "$ref" : "#/definitions/RuntimePlatform", @@ -967,7 +1002,7 @@ }, "IpcMode" : { "type" : "string", - "description" : "The IPC resource namespace to use for the containers in the task. The valid values are ``host``, ``task``, or ``none``. If ``host`` is specified, then all containers within the tasks that specified the ``host`` IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If ``task`` is specified, all containers within the specified task share the same IPC resources. If ``none`` is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see [IPC settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#ipc-settings---ipc) in the *Docker run reference*.\n If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more inform" + "description" : "The IPC resource namespace to use for the containers in the task. The valid values are ``host``, ``task``, or ``none``. If ``host`` is specified, then all containers within the tasks that specified the ``host`` IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If ``task`` is specified, all containers within the specified task share the same IPC resources. If ``none`` is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see [IPC settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#ipc-settings---ipc) in the *Docker run reference*.\n If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/).\n If you are setting namespaced kernel parameters using ``systemControls`` for the containers in the task, the following will apply to your IPC resource namespace. For more information, see [System Controls](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html) in the *Amazon Elastic Container Service Developer Guide*.\n + For tasks that use the ``host`` IPC mode, IPC namespace related ``systemControls`` are not supported.\n + For tasks that use the ``task`` IPC mode, IPC namespace related ``systemControls`` will apply to all containers within a task.\n \n This parameter is not supported for Windows containers or tasks run on FARGATElong." }, "Tags" : { "type" : "array", @@ -975,7 +1010,7 @@ "items" : { "$ref" : "#/definitions/Tag" }, - "description" : "The metadata that you apply to the task definition to help you categorize and organize them. Each tag consists of a key and an optional value. You define both of them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values" + "description" : "The metadata that you apply to the task definition to help you categorize and organize them. Each tag consists of a key and an optional value. You define both of them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit." } }, "tagging" : { 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-emr-studiosessionmapping.json b/aws-cloudformation-schema/aws-emr-studiosessionmapping.json index 818c327fec..486a9b8bef 100644 --- a/aws-cloudformation-schema/aws-emr-studiosessionmapping.json +++ b/aws-cloudformation-schema/aws-emr-studiosessionmapping.json @@ -37,7 +37,7 @@ "primaryIdentifier" : [ "/properties/StudioId", "/properties/IdentityType", "/properties/IdentityName" ], "handlers" : { "create" : { - "permissions" : [ "elasticmapreduce:CreateStudioSessionMapping", "sso-directory:SearchUsers", "sso-directory:SearchGroups", "sso-directory:DescribeUser", "sso-directory:DescribeGroup", "sso:ListDirectoryAssociations", "sso:GetProfile", "sso:ListProfiles", "sso:AssociateProfile" ] + "permissions" : [ "elasticmapreduce:CreateStudioSessionMapping", "sso-directory:SearchUsers", "sso-directory:SearchGroups", "sso-directory:DescribeUser", "sso-directory:DescribeGroup", "sso:GetManagedApplicationInstance", "sso:ListDirectoryAssociations", "sso:GetProfile", "sso:ListProfiles", "sso:AssociateProfile" ] }, "read" : { "permissions" : [ "elasticmapreduce:GetStudioSessionMapping", "sso-directory:SearchUsers", "sso-directory:SearchGroups", "sso-directory:DescribeUser", "sso-directory:DescribeGroup", "sso:GetManagedApplicationInstance", "sso:DescribeInstance" ] 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-entityresolution-idnamespace.json b/aws-cloudformation-schema/aws-entityresolution-idnamespace.json new file mode 100644 index 0000000000..0beca8407c --- /dev/null +++ b/aws-cloudformation-schema/aws-entityresolution-idnamespace.json @@ -0,0 +1,177 @@ +{ + "typeName" : "AWS::EntityResolution::IdNamespace", + "description" : "IdNamespace defined in AWS Entity Resolution service", + "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-entity-resolution.git", + "definitions" : { + "EntityName" : { + "type" : "string", + "pattern" : "^[a-zA-Z_0-9-]*$", + "minLength" : 1, + "maxLength" : 255 + }, + "IdNamespaceInputSource" : { + "type" : "object", + "properties" : { + "InputSourceARN" : { + "type" : "string", + "pattern" : "^arn:(aws|aws-us-gov|aws-cn):entityresolution:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:(idnamespace/[a-zA-Z_0-9-]{1,255})$|^arn:(aws|aws-us-gov|aws-cn):glue:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:(table/[a-zA-Z_0-9-]{1,255}/[a-zA-Z_0-9-]{1,255})$" + }, + "SchemaName" : { + "$ref" : "#/definitions/EntityName" + } + }, + "required" : [ "InputSourceARN" ], + "additionalProperties" : false + }, + "IdNamespaceIdMappingWorkflowProperties" : { + "type" : "object", + "properties" : { + "IdMappingType" : { + "type" : "string", + "enum" : [ "PROVIDER" ] + }, + "ProviderProperties" : { + "$ref" : "#/definitions/NamespaceProviderProperties" + } + }, + "required" : [ "IdMappingType" ], + "additionalProperties" : false + }, + "NamespaceProviderProperties" : { + "type" : "object", + "properties" : { + "ProviderServiceArn" : { + "$ref" : "#/definitions/ProviderServiceArn" + }, + "ProviderConfiguration" : { + "type" : "object", + "description" : "Additional Provider configuration that would be required for the provider service. The Configuration must be in JSON string format.", + "patternProperties" : { + "^.+$" : { + "type" : "string" + } + }, + "additionalProperties" : false + } + }, + "required" : [ "ProviderServiceArn" ], + "additionalProperties" : false + }, + "ProviderServiceArn" : { + "type" : "string", + "pattern" : "^arn:(aws|aws-us-gov|aws-cn):(entityresolution):([a-z]{2}-[a-z]{1,10}-[0-9])::providerservice/([a-zA-Z0-9_-]{1,255})/([a-zA-Z0-9_-]{1,255})$", + "minLength" : 20, + "maxLength" : 255 + }, + "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 + } + }, + "properties" : { + "IdNamespaceName" : { + "$ref" : "#/definitions/EntityName" + }, + "Description" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 255 + }, + "InputSourceConfig" : { + "type" : "array", + "insertionOrder" : false, + "minItems" : 0, + "maxItems" : 20, + "items" : { + "$ref" : "#/definitions/IdNamespaceInputSource" + } + }, + "IdMappingWorkflowProperties" : { + "type" : "array", + "insertionOrder" : false, + "minItems" : 1, + "maxItems" : 1, + "items" : { + "$ref" : "#/definitions/IdNamespaceIdMappingWorkflowProperties" + } + }, + "Type" : { + "type" : "string", + "enum" : [ "SOURCE", "TARGET" ] + }, + "RoleArn" : { + "type" : "string", + "pattern" : "^arn:(aws|aws-us-gov|aws-cn):iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", + "minLength" : 32, + "maxLength" : 512 + }, + "IdNamespaceArn" : { + "description" : "The arn associated with the IdNamespace", + "type" : "string", + "pattern" : "^arn:(aws|aws-us-gov|aws-cn):entityresolution:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:(idnamespace/[a-zA-Z_0-9-]{1,255})$" + }, + "CreatedAt" : { + "description" : "The date and time when the IdNamespace was created", + "type" : "string" + }, + "UpdatedAt" : { + "description" : "The date and time when the IdNamespace was updated", + "type" : "string" + }, + "Tags" : { + "type" : "array", + "uniqueItems" : true, + "insertionOrder" : false, + "minItems" : 0, + "maxItems" : 200, + "items" : { + "$ref" : "#/definitions/Tag" + } + } + }, + "createOnlyProperties" : [ "/properties/IdNamespaceName" ], + "readOnlyProperties" : [ "/properties/IdNamespaceArn", "/properties/CreatedAt", "/properties/UpdatedAt" ], + "primaryIdentifier" : [ "/properties/IdNamespaceName" ], + "tagging" : { + "taggable" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "cloudFormationSystemTags" : true, + "tagProperty" : "/properties/Tags" + }, + "handlers" : { + "create" : { + "permissions" : [ "entityresolution:CreateIdNamespace", "entityresolution:TagResource", "iam:PassRole" ] + }, + "read" : { + "permissions" : [ "entityresolution:GetIdNamespace", "entityresolution:ListTagsForResource" ] + }, + "update" : { + "permissions" : [ "entityresolution:UpdateIdNamespace", "entityresolution:ListTagsForResource", "entityresolution:TagResource", "entityresolution:UntagResource", "iam:PassRole" ] + }, + "delete" : { + "permissions" : [ "entityresolution:DeleteIdNamespace", "entityresolution:GetIdNamespace", "entityresolution:UntagResource" ] + }, + "list" : { + "permissions" : [ "entityresolution:ListIdNamespaces" ] + } + }, + "required" : [ "IdNamespaceName", "Type" ], + "additionalProperties" : false +} \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-entityresolution-policystatement.json b/aws-cloudformation-schema/aws-entityresolution-policystatement.json new file mode 100644 index 0000000000..713cf88ccd --- /dev/null +++ b/aws-cloudformation-schema/aws-entityresolution-policystatement.json @@ -0,0 +1,107 @@ +{ + "typeName" : "AWS::EntityResolution::PolicyStatement", + "description" : "Policy Statement defined in AWS Entity Resolution Service", + "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-entity-resolution.git", + "definitions" : { + "VeniceGlobalArn" : { + "description" : "Arn of the resource to which the policy statement is being attached.", + "type" : "string", + "pattern" : "^arn:(aws|aws-us-gov|aws-cn):entityresolution:[a-z]{2}-[a-z]{1,10}-[0-9]:[0-9]{12}:((schemamapping|matchingworkflow|idmappingworkflow|idnamespace)/[a-zA-Z_0-9-]{1,255})$" + }, + "StatementId" : { + "description" : "The Statement Id of the policy statement that is being attached.", + "type" : "string", + "pattern" : "^[0-9A-Za-z]+$", + "minLength" : 1, + "maxLength" : 64 + }, + "StatementEffect" : { + "type" : "string", + "enum" : [ "Allow", "Deny" ] + }, + "StatementAction" : { + "type" : "string", + "pattern" : "^(entityresolution:[a-zA-Z0-9]+)$", + "minLength" : 3, + "maxLength" : 64 + }, + "StatementActionList" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/StatementAction" + } + }, + "StatementPrincipal" : { + "type" : "string", + "pattern" : "^(\\\\d{12})|([a-z0-9\\\\.]+)$", + "minLength" : 12, + "maxLength" : 64 + }, + "StatementPrincipalList" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/StatementPrincipal" + } + }, + "StatementCondition" : { + "type" : "string", + "minLength" : 1, + "maxLength" : 40960 + } + }, + "properties" : { + "Arn" : { + "$ref" : "#/definitions/VeniceGlobalArn" + }, + "StatementId" : { + "$ref" : "#/definitions/StatementId" + }, + "Effect" : { + "$ref" : "#/definitions/StatementEffect" + }, + "Action" : { + "$ref" : "#/definitions/StatementActionList" + }, + "Principal" : { + "$ref" : "#/definitions/StatementPrincipalList" + }, + "Condition" : { + "$ref" : "#/definitions/StatementCondition" + } + }, + "additionalProperties" : false, + "tagging" : { + "taggable" : false, + "tagOnCreate" : false, + "tagUpdatable" : false, + "cloudFormationSystemTags" : false + }, + "required" : [ "Arn", "StatementId" ], + "createOnlyProperties" : [ "/properties/StatementId", "/properties/Arn" ], + "primaryIdentifier" : [ "/properties/Arn", "/properties/StatementId" ], + "handlers" : { + "create" : { + "permissions" : [ "entityresolution:AddPolicyStatement" ] + }, + "read" : { + "permissions" : [ "entityresolution:GetPolicy" ] + }, + "update" : { + "permissions" : [ "entityresolution:AddPolicyStatement", "entityresolution:DeletePolicyStatement" ] + }, + "delete" : { + "permissions" : [ "entityresolution:DeletePolicyStatement", "entityresolution:GetPolicy" ] + }, + "list" : { + "handlerSchema" : { + "properties" : { + "Arn" : { + "$ref" : "resource-schema.json#/properties/Arn" + } + }, + "required" : [ "Arn" ] + }, + "permissions" : [ "entityresolution:GetPolicy" ] + } + } +} \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-gamelift-fleet.json b/aws-cloudformation-schema/aws-gamelift-fleet.json index 579cf29799..ee9835e744 100644 --- a/aws-cloudformation-schema/aws-gamelift-fleet.json +++ b/aws-cloudformation-schema/aws-gamelift-fleet.json @@ -5,7 +5,7 @@ "typeName" : "AWS::GameLift::Fleet", "readOnlyProperties" : [ "/properties/FleetId" ], "description" : "The AWS::GameLift::Fleet resource creates an Amazon GameLift (GameLift) fleet to host game servers. A fleet is a set of EC2 or Anywhere instances, each of which can host multiple game sessions.", - "createOnlyProperties" : [ "/properties/ApplyCapacity", "/properties/BuildId", "/properties/CertificateConfiguration", "/properties/EC2InstanceType", "/properties/FleetType", "/properties/InstanceRoleARN", "/properties/InstanceRoleCredentialsProvider", "/properties/LogPaths", "/properties/PeerVpcAwsAccountId", "/properties/PeerVpcId", "/properties/ScriptId", "/properties/ServerLaunchParameters", "/properties/ServerLaunchPath", "/properties/CertificateType", "/properties/ComputeType" ], + "createOnlyProperties" : [ "/properties/ApplyCapacity", "/properties/BuildId", "/properties/CertificateConfiguration", "/properties/EC2InstanceType", "/properties/FleetType", "/properties/InstanceRoleARN", "/properties/InstanceRoleCredentialsProvider", "/properties/LogPaths", "/properties/PeerVpcAwsAccountId", "/properties/PeerVpcId", "/properties/ScriptId", "/properties/ServerLaunchParameters", "/properties/ServerLaunchPath", "/properties/ComputeType" ], "primaryIdentifier" : [ "/properties/FleetId" ], "required" : [ "Name" ], "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-gamelift.git", 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-globalaccelerator-crossaccountattachment.json b/aws-cloudformation-schema/aws-globalaccelerator-crossaccountattachment.json new file mode 100644 index 0000000000..172ee966c6 --- /dev/null +++ b/aws-cloudformation-schema/aws-globalaccelerator-crossaccountattachment.json @@ -0,0 +1,96 @@ +{ + "typeName" : "AWS::GlobalAccelerator::CrossAccountAttachment", + "description" : "Resource Type definition for AWS::GlobalAccelerator::CrossAccountAttachment", + "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-globalaccelerator", + "definitions" : { + "Tag" : { + "description" : "Tag is a key-value pair associated with Cross Account Attachment.", + "type" : "object", + "properties" : { + "Key" : { + "description" : "Key of the tag. Value can be 1 to 127 characters.", + "type" : "string", + "minLength" : 1, + "maxLength" : 127 + }, + "Value" : { + "description" : "Value for the tag. Value can be 1 to 255 characters.", + "type" : "string", + "minLength" : 1, + "maxLength" : 255 + } + }, + "required" : [ "Value", "Key" ], + "additionalProperties" : false + }, + "Resource" : { + "description" : "ARN of resource to share.", + "type" : "object", + "properties" : { + "EndpointId" : { + "type" : "string" + }, + "Region" : { + "type" : "string" + } + }, + "required" : [ "EndpointId" ], + "additionalProperties" : false + } + }, + "properties" : { + "Name" : { + "description" : "The Friendly identifier of the attachment.", + "type" : "string", + "pattern" : "^[a-zA-Z0-9_-]{0,64}$", + "minLength" : 1, + "maxLength" : 64 + }, + "AttachmentArn" : { + "description" : "The Amazon Resource Name (ARN) of the attachment.", + "type" : "string" + }, + "Principals" : { + "description" : "Principals to share the resources with.", + "type" : "array", + "items" : { + "type" : "string" + } + }, + "Resources" : { + "description" : "Resources shared using the attachment.", + "type" : "array", + "items" : { + "$ref" : "#/definitions/Resource" + } + }, + "Tags" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/Tag" + } + } + }, + "required" : [ "Name" ], + "writeOnlyProperties" : [ "/properties/Resources/*/Region" ], + "readOnlyProperties" : [ "/properties/AttachmentArn" ], + "primaryIdentifier" : [ "/properties/AttachmentArn" ], + "handlers" : { + "create" : { + "permissions" : [ "globalaccelerator:DescribeCrossAccountAttachment", "globalaccelerator:CreateCrossAccountAttachment", "globalaccelerator:TagResource" ] + }, + "read" : { + "permissions" : [ "globalaccelerator:DescribeCrossAccountAttachment" ] + }, + "update" : { + "permissions" : [ "globalaccelerator:UpdateCrossAccountAttachment", "globalaccelerator:DescribeCrossAccountAttachment", "globalaccelerator:TagResource", "globalaccelerator:UntagResource" ] + }, + "delete" : { + "permissions" : [ "globalaccelerator:DescribeCrossAccountAttachment", "globalaccelerator:DeleteCrossAccountAttachment" ] + }, + "list" : { + "permissions" : [ "globalaccelerator:ListCrossAccountAttachments" ] + } + }, + "additionalProperties" : false +} \ No newline at end of file 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-ivs-encoderconfiguration.json b/aws-cloudformation-schema/aws-ivs-encoderconfiguration.json new file mode 100644 index 0000000000..8cd73c55da --- /dev/null +++ b/aws-cloudformation-schema/aws-ivs-encoderconfiguration.json @@ -0,0 +1,117 @@ +{ + "typeName" : "AWS::IVS::EncoderConfiguration", + "description" : "Resource Type definition for AWS::IVS::EncoderConfiguration.", + "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 + } + }, + "properties" : { + "Arn" : { + "description" : "Encoder configuration identifier.", + "type" : "string", + "pattern" : "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:encoder-configuration/[a-zA-Z0-9-]+$", + "minLength" : 1, + "maxLength" : 128 + }, + "Video" : { + "description" : "Video configuration. Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps", + "type" : "object", + "additionalProperties" : false, + "properties" : { + "Bitrate" : { + "description" : "Bitrate for generated output, in bps. Default: 2500000.", + "type" : "integer", + "minimum" : 1, + "maximum" : 8500000, + "default" : 2500000 + }, + "Framerate" : { + "description" : "Video frame rate, in fps. Default: 30.", + "type" : "number", + "minimum" : 1, + "maximum" : 60, + "default" : 30 + }, + "Height" : { + "description" : "Video-resolution height. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 720.", + "type" : "integer", + "minimum" : 1, + "maximum" : 1920, + "default" : 720 + }, + "Width" : { + "description" : "Video-resolution width. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 1280.", + "type" : "integer", + "minimum" : 1, + "maximum" : 1920, + "default" : 1280 + } + } + }, + "Name" : { + "description" : "Encoder configuration name.", + "type" : "string", + "maxLength" : 128, + "minLength" : 0, + "pattern" : "^[a-zA-Z0-9-_]*$" + }, + "Tags" : { + "description" : "An array of key-value pairs to apply to this resource.", + "type" : "array", + "uniqueItems" : true, + "insertionOrder" : false, + "maxItems" : 50, + "items" : { + "$ref" : "#/definitions/Tag" + } + } + }, + "additionalProperties" : false, + "required" : [ ], + "tagging" : { + "taggable" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "cloudFormationSystemTags" : false, + "tagProperty" : "/properties/Tags" + }, + "readOnlyProperties" : [ "/properties/Arn" ], + "primaryIdentifier" : [ "/properties/Arn" ], + "createOnlyProperties" : [ "/properties/Name", "/properties/Video", "/properties/Video/Bitrate", "/properties/Video/Framerate", "/properties/Video/Height", "/properties/Video/Width" ], + "handlers" : { + "create" : { + "permissions" : [ "ivs:CreateEncoderConfiguration", "ivs:TagResource" ] + }, + "read" : { + "permissions" : [ "ivs:GetEncoderConfiguration", "ivs:ListTagsForResource" ] + }, + "update" : { + "permissions" : [ "ivs:GetEncoderConfiguration", "ivs:ListTagsForResource", "ivs:UntagResource", "ivs:TagResource" ] + }, + "delete" : { + "permissions" : [ "ivs:DeleteEncoderConfiguration", "ivs:UntagResource" ] + }, + "list" : { + "permissions" : [ "ivs:ListEncoderConfigurations", "ivs:ListTagsForResource" ] + } + } +} \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-ivs-playbackrestrictionpolicy.json b/aws-cloudformation-schema/aws-ivs-playbackrestrictionpolicy.json new file mode 100644 index 0000000000..40920edfde --- /dev/null +++ b/aws-cloudformation-schema/aws-ivs-playbackrestrictionpolicy.json @@ -0,0 +1,105 @@ +{ + "typeName" : "AWS::IVS::PlaybackRestrictionPolicy", + "description" : "Resource Type definition for AWS::IVS::PlaybackRestrictionPolicy.", + "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 + } + }, + "properties" : { + "Arn" : { + "description" : "Playback-restriction-policy identifier.", + "type" : "string", + "pattern" : "^arn:aws:ivs:[a-z0-9-]+:[0-9]+:playback-restriction-policy/[a-zA-Z0-9-]+$", + "minLength" : 1, + "maxLength" : 128 + }, + "AllowedCountries" : { + "description" : "A list of country codes that control geoblocking restriction. Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries (an empty array).", + "type" : "array", + "uniqueItems" : true, + "insertionOrder" : false, + "items" : { + "type" : "string" + }, + "default" : [ ] + }, + "AllowedOrigins" : { + "description" : "A list of origin sites that control CORS restriction. Allowed values are the same as valid values of the Origin header defined at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin", + "type" : "array", + "insertionOrder" : false, + "items" : { + "type" : "string" + }, + "default" : [ ] + }, + "EnableStrictOriginEnforcement" : { + "description" : "Whether channel playback is constrained by origin site.", + "default" : false, + "type" : "boolean" + }, + "Name" : { + "description" : "Playback-restriction-policy name.", + "type" : "string", + "maxLength" : 128, + "minLength" : 0, + "pattern" : "^[a-zA-Z0-9-_]*$" + }, + "Tags" : { + "description" : "An array of key-value pairs to apply to this resource.", + "type" : "array", + "uniqueItems" : true, + "insertionOrder" : false, + "maxItems" : 50, + "items" : { + "$ref" : "#/definitions/Tag" + } + } + }, + "additionalProperties" : false, + "required" : [ "AllowedCountries", "AllowedOrigins" ], + "tagging" : { + "taggable" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "cloudFormationSystemTags" : false, + "tagProperty" : "/properties/Tags" + }, + "readOnlyProperties" : [ "/properties/Arn" ], + "primaryIdentifier" : [ "/properties/Arn" ], + "handlers" : { + "create" : { + "permissions" : [ "ivs:CreatePlaybackRestrictionPolicy", "ivs:TagResource" ] + }, + "read" : { + "permissions" : [ "ivs:GetPlaybackRestrictionPolicy", "ivs:ListTagsForResource" ] + }, + "update" : { + "permissions" : [ "ivs:GetPlaybackRestrictionPolicy", "ivs:UpdatePlaybackRestrictionPolicy", "ivs:ListTagsForResource", "ivs:UntagResource", "ivs:TagResource" ] + }, + "delete" : { + "permissions" : [ "ivs:DeletePlaybackRestrictionPolicy", "ivs:UntagResource" ] + }, + "list" : { + "permissions" : [ "ivs:ListPlaybackRestrictionPolicies", "ivs:ListTagsForResource" ] + } + } +} \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-ivs-storageconfiguration.json b/aws-cloudformation-schema/aws-ivs-storageconfiguration.json new file mode 100644 index 0000000000..2435cd417c --- /dev/null +++ b/aws-cloudformation-schema/aws-ivs-storageconfiguration.json @@ -0,0 +1,97 @@ +{ + "typeName" : "AWS::IVS::StorageConfiguration", + "description" : "Resource Type definition for AWS::IVS::StorageConfiguration", + "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions" : { + "Tag" : { + "type" : "object", + "additionalProperties" : false, + "properties" : { + "Key" : { + "type" : "string", + "minLength" : 1, + "maxLength" : 128 + }, + "Value" : { + "type" : "string", + "minLength" : 1, + "maxLength" : 256 + } + }, + "required" : [ "Value", "Key" ] + }, + "S3StorageConfiguration" : { + "description" : "A complex type that describes an S3 location where recorded videos will be stored.", + "type" : "object", + "additionalProperties" : false, + "properties" : { + "BucketName" : { + "description" : "Location (S3 bucket name) where recorded videos will be stored. Note that the StorageConfiguration and S3 bucket must be in the same region as the Composition.", + "type" : "string", + "minLength" : 3, + "maxLength" : 63, + "pattern" : "^[a-z0-9-.]+$" + } + }, + "required" : [ "BucketName" ] + } + }, + "properties" : { + "Arn" : { + "description" : "Storage Configuration ARN is automatically generated on creation and assigned as the unique identifier.", + "type" : "string", + "pattern" : "^arn:aws[-a-z]*:ivs:[a-z0-9-]+:[0-9]+:storage-configuration/[a-zA-Z0-9-]+$", + "minLength" : 0, + "maxLength" : 128 + }, + "Name" : { + "description" : "Storage Configuration Name.", + "type" : "string", + "minLength" : 0, + "maxLength" : 128, + "pattern" : "^[a-zA-Z0-9-_]*$" + }, + "S3" : { + "$ref" : "#/definitions/S3StorageConfiguration" + }, + "Tags" : { + "description" : "A list of key-value pairs that contain metadata for the asset model.", + "type" : "array", + "uniqueItems" : true, + "insertionOrder" : false, + "maxItems" : 50, + "items" : { + "$ref" : "#/definitions/Tag" + } + } + }, + "additionalProperties" : false, + "tagging" : { + "taggable" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "cloudFormationSystemTags" : false, + "tagProperty" : "/properties/Tags" + }, + "required" : [ "S3" ], + "primaryIdentifier" : [ "/properties/Arn" ], + "readOnlyProperties" : [ "/properties/Arn" ], + "createOnlyProperties" : [ "/properties/Name", "/properties/S3", "/properties/S3/BucketName" ], + "handlers" : { + "create" : { + "permissions" : [ "ivs:CreateStorageConfiguration", "ivs:GetStorageConfiguration", "ivs:TagResource", "s3:GetBucketLocation", "s3:GetBucketPolicy", "s3:PutBucketPolicy" ] + }, + "read" : { + "permissions" : [ "ivs:GetStorageConfiguration", "ivs:ListTagsForResource", "s3:GetBucketLocation" ] + }, + "update" : { + "permissions" : [ "ivs:GetStorageConfiguration", "ivs:TagResource", "ivs:UntagResource", "ivs:ListTagsForResource" ] + }, + "delete" : { + "permissions" : [ "ivs:DeleteStorageConfiguration", "ivs:UntagResource", "s3:GetBucketPolicy", "s3:DeleteBucketPolicy", "s3:PutBucketPolicy" ] + }, + "list" : { + "permissions" : [ "ivs:ListStorageConfigurations", "s3:GetBucketLocation", "ivs:ListTagsForResource" ] + } + } +} \ No newline at end of file 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-lambda-function.json b/aws-cloudformation-schema/aws-lambda-function.json index ab86b69215..4e41a9f1fa 100644 --- a/aws-cloudformation-schema/aws-lambda-function.json +++ b/aws-cloudformation-schema/aws-lambda-function.json @@ -119,7 +119,7 @@ "type" : "object", "properties" : { "UpdateRuntimeOn" : { - "description" : "Specify the runtime update mode.\n + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates.\n + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date.\n + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback).\n \n *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual``", + "description" : "Specify the runtime update mode.\n + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates.\n + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date.\n + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback).\n \n *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual``", "type" : "string", "enum" : [ "Auto", "FunctionUpdate", "Manual" ] }, diff --git a/aws-cloudformation-schema/aws-logs-loggroup.json b/aws-cloudformation-schema/aws-logs-loggroup.json index 59267bd530..92b0d3e7fb 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..24edd15f0f 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-mediatailor-channel.json b/aws-cloudformation-schema/aws-mediatailor-channel.json index 1cad4eaf41..b57685da32 100644 --- a/aws-cloudformation-schema/aws-mediatailor-channel.json +++ b/aws-cloudformation-schema/aws-mediatailor-channel.json @@ -150,6 +150,13 @@ "type" : "string", "description" : "

The ARN of the channel.

" }, + "Audiences" : { + "type" : "array", + "items" : { + "type" : "string" + }, + "description" : "

The list of audiences defined in channel.

" + }, "ChannelName" : { "type" : "string" }, 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-customdbengineversion.json b/aws-cloudformation-schema/aws-rds-customdbengineversion.json index 569b58af6e..b22d4b2030 100644 --- a/aws-cloudformation-schema/aws-rds-customdbengineversion.json +++ b/aws-cloudformation-schema/aws-rds-customdbengineversion.json @@ -74,6 +74,18 @@ "type" : "string", "description" : "The ARN of the custom engine version." }, + "SourceCustomDbEngineVersionIdentifier" : { + "type" : "string", + "description" : "The identifier of the source custom engine version." + }, + "UseAwsProvidedLatestImage" : { + "type" : "boolean", + "description" : "A value that indicates whether AWS provided latest image is applied automatically to the Custom Engine Version. By default, AWS provided latest image is applied automatically. This value is only applied on create." + }, + "ImageId" : { + "type" : "string", + "description" : "The identifier of Amazon Machine Image (AMI) used for CEV." + }, "Status" : { "type" : "string", "description" : "The availability status to be assigned to the CEV.", @@ -96,14 +108,14 @@ "/properties/EngineVersion" : "$lowercase(EngineVersion)", "/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])" }, - "required" : [ "DatabaseInstallationFilesS3BucketName", "Engine", "EngineVersion" ], - "writeOnlyProperties" : [ "/properties/Manifest" ], + "required" : [ "Engine", "EngineVersion" ], + "writeOnlyProperties" : [ "/properties/Manifest", "/properties/SourceCustomDbEngineVersionIdentifier", "/properties/UseAwsProvidedLatestImage" ], "readOnlyProperties" : [ "/properties/DBEngineVersionArn" ], "primaryIdentifier" : [ "/properties/Engine", "/properties/EngineVersion" ], - "createOnlyProperties" : [ "/properties/Engine", "/properties/EngineVersion", "/properties/DatabaseInstallationFilesS3BucketName", "/properties/DatabaseInstallationFilesS3Prefix", "/properties/KMSKeyId", "/properties/Manifest" ], + "createOnlyProperties" : [ "/properties/Engine", "/properties/EngineVersion", "/properties/DatabaseInstallationFilesS3BucketName", "/properties/DatabaseInstallationFilesS3Prefix", "/properties/ImageId", "/properties/KMSKeyId", "/properties/Manifest", "/properties/SourceCustomDbEngineVersionIdentifier", "/properties/UseAwsProvidedLatestImage" ], "handlers" : { "create" : { - "permissions" : [ "kms:CreateGrant", "kms:DescribeKey", "mediaimport:CreateDatabaseBinarySnapshot", "rds:AddTagsToResource", "rds:CreateCustomDBEngineVersion", "rds:DescribeDBEngineVersions", "rds:ModifyCustomDBEngineVersion", "s3:CreateBucket", "s3:GetObject", "s3:GetObjectAcl", "s3:GetObjectTagging", "s3:ListBucket", "s3:PutBucketObjectLockConfiguration", "s3:PutBucketPolicy", "s3:PutBucketVersioning" ], + "permissions" : [ "ec2:CopySnapshot", "ec2:DeleteSnapshot", "ec2:DescribeSnapshots", "kms:CreateGrant", "kms:Decrypt", "kms:DescribeKey", "kms:GenerateDataKey", "kms:ReEncrypt", "mediaimport:CreateDatabaseBinarySnapshot", "rds:AddTagsToResource", "rds:CreateCustomDBEngineVersion", "rds:DescribeDBEngineVersions", "rds:ModifyCustomDBEngineVersion", "s3:CreateBucket", "s3:GetObject", "s3:GetObjectAcl", "s3:GetObjectTagging", "s3:ListBucket", "s3:PutBucketObjectLockConfiguration", "s3:PutBucketPolicy", "s3:PutBucketVersioning" ], "timeoutInMinutes" : 600 }, "read" : { 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-route53-hostedzone.json b/aws-cloudformation-schema/aws-route53-hostedzone.json index db8ca36fe1..0ef9713779 100644 --- a/aws-cloudformation-schema/aws-route53-hostedzone.json +++ b/aws-cloudformation-schema/aws-route53-hostedzone.json @@ -46,16 +46,16 @@ "required" : [ "CloudWatchLogsLogGroupArn" ] }, "VPC" : { - "description" : "*Private hosted zones only:* A complex type that contains information about an Amazon VPC. Route 53 Resolver uses the records in the private hosted zone to route traffic in that VPC. \n For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``.", + "description" : "*Private hosted zones only:* A complex type that contains information about an Amazon VPC. Route 53 Resolver uses the records in the private hosted zone to route traffic in that VPC. \n For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``.", "type" : "object", "additionalProperties" : false, "properties" : { "VPCId" : { - "description" : "*Private hosted zones only:* The ID of an Amazon VPC.\n For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``.", + "description" : "*Private hosted zones only:* The ID of an Amazon VPC.\n For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``.", "type" : "string" }, "VPCRegion" : { - "description" : "*Private hosted zones only:* The region that an Amazon VPC was created in.\n For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``.", + "description" : "*Private hosted zones only:* The region that an Amazon VPC was created in.\n For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``.", "type" : "string" } }, @@ -90,7 +90,7 @@ "description" : "Creates a configuration for DNS query logging. After you create a query logging configuration, Amazon Route 53 begins to publish log data to an Amazon CloudWatch Logs log group.\n DNS query logs contain information about the queries that Route 53 receives for a specified public hosted zone, such as the following:\n + Route 53 edge location that responded to the DNS query\n + Domain or subdomain that was requested\n + DNS record type, such as A or AAAA\n + DNS response code, such as ``NoError`` or ``ServFail`` \n \n + Log Group and Resource Policy Before you create a query logging configuration, perform the following operations. If you create a query logging configuration using the Route 53 console, Route 53 performs these operations automatically. Create a CloudWatch Logs log group, and make note of the ARN, which you specify when you create a query logging configuration. Note the following: You must create the log group in the us-east-1 region. You must use the same to create the log group and the hosted zone that you want to configure query logging for. When you create log groups for query logging, we recommend that you use a consistent prefix, for example: /aws/route53/hosted zone name In the next step, you'll create a resource policy, which controls access to one or more log groups and the associated resources, such as Route 53 hosted zones. There's a limit on the number of resource policies that you can create, so we recommend that you use a consistent prefix so you can use the same resource policy for all the log groups that you create for query logging. Create a CloudWatch Logs resource policy, and give it the permissions that Route 53 needs to create log streams and to send query logs to log streams. For the value of Resource, specify the ARN for the log group that you created in the previous step. To use the same resource policy for all the CloudWatch Logs log groups that you created for query logging configurations, replace the hosted zone name with *, for example: arn:aws:logs:us-east-1:123412341234:log-group:/aws/route53/* To avoid the confused deputy problem, a security issue where an entity without a permission for an action can coerce a more-privileged entity to perform it, you can optionally limit the permissions that a service has to a resource in a resource-based policy by supplying the following values: For aws:SourceArn, supply the hosted zone ARN used in creating the query logging configuration. For example, aws:SourceArn: arn:aws:route53:::hostedzone/hosted zone ID. For aws:SourceAccount, supply the account ID for the account that creates the query logging configuration. For example, aws:SourceAccount:111111111111. For more information, see The confused deputy problem in the IAM User Guide. You can't use the CloudWatch console to create or edit a resource policy. You must use the CloudWatch API, one of the SDKs, or the . + Log Streams and Edge Locations When Route 53 finishes creating the configuration for DNS query logging, it does the following: Creates a log stream for an edge location the first time that the edge location responds to DNS queries for the specified hosted zone. That log stream is used to log all queries that Route 53 responds to for that edge location. Begins to send query logs to the applicable log stream. The name of each log stream is in the following format: hosted zone ID/edge location code The edge location code is a three-letter code and an arbitrarily assigned number, for example, DFW3. The three-letter code typically corresponds with the International Air Transport Association airport code for an airport near the edge location. (These abbreviations might change in the future.) For a list of edge locations, see \"The Route 53 Global Network\" on the Route 53 Product Details page. + Queries That Are Logged Query logs contain only the queries that DNS resolvers forward to Route 53. If a DNS resolver has already cached the response to a query (such as the IP address for a load balancer for example.com), the resolver will continue to return the cached response. It doesn't forward another query to Route 53 until the TTL for the corresponding resource record set expires. Depending on how many DNS queries are submitted for a resource record set, and depending on the TTL for that resource record set, query logs might contain information about only one query out of every several thousand queries that are submitted to DNS. For more information about how DNS works, see Routing Internet Traffic to Your Website or Web Application in the Amazon Route 53 Developer Guide. + Log File Format For a list of the values in each query log and the format of each value, see Logging DNS Queries in the Amazon Route 53 Developer Guide. + Pricing For information about charges for query logs, see Amazon CloudWatch Pricing. + How to Stop Logging If you want Route 53 to stop sending query logs to CloudWatch Logs, delete the query logging configuration. For more information, see DeleteQueryLoggingConfig." }, "VPCs" : { - "description" : "*Private hosted zones:* A complex type that contains information about the VPCs that are associated with the specified hosted zone.\n For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``.", + "description" : "*Private hosted zones:* A complex type that contains information about the VPCs that are associated with the specified hosted zone.\n For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``.", "type" : "array", "uniqueItems" : true, "insertionOrder" : false, diff --git a/aws-cloudformation-schema/aws-sagemaker-appimageconfig.json b/aws-cloudformation-schema/aws-sagemaker-appimageconfig.json index 5b1e75ede7..a47843880a 100644 --- a/aws-cloudformation-schema/aws-sagemaker-appimageconfig.json +++ b/aws-cloudformation-schema/aws-sagemaker-appimageconfig.json @@ -25,6 +25,10 @@ "$ref" : "#/definitions/JupyterLabAppImageConfig", "description" : "The JupyterLabAppImageConfig." }, + "CodeEditorAppImageConfig" : { + "$ref" : "#/definitions/CodeEditorAppImageConfig", + "description" : "The CodeEditorAppImageConfig." + }, "Tags" : { "type" : "array", "description" : "A list of tags to apply to the AppImageConfig.", @@ -69,6 +73,17 @@ } } }, + "CodeEditorAppImageConfig" : { + "type" : "object", + "description" : "The configuration for the kernels in a SageMaker image running as a CodeEditor app.", + "additionalProperties" : false, + "properties" : { + "ContainerConfig" : { + "$ref" : "#/definitions/ContainerConfig", + "description" : "The container configuration for a SageMaker image." + } + } + }, "ContainerConfig" : { "type" : "object", "description" : "The container configuration for a SageMaker image.", diff --git a/aws-cloudformation-schema/aws-sagemaker-domain.json b/aws-cloudformation-schema/aws-sagemaker-domain.json index 51f1da70c2..6de792c5b3 100644 --- a/aws-cloudformation-schema/aws-sagemaker-domain.json +++ b/aws-cloudformation-schema/aws-sagemaker-domain.json @@ -388,6 +388,16 @@ "items" : { "$ref" : "#/definitions/StudioLifecycleConfigArn" } + }, + "CustomImages" : { + "type" : "array", + "description" : "A list of custom images for use for CodeEditor apps.", + "uniqueItems" : false, + "minItems" : 0, + "maxItems" : 30, + "items" : { + "$ref" : "#/definitions/CustomImage" + } } } }, diff --git a/aws-cloudformation-schema/aws-sagemaker-userprofile.json b/aws-cloudformation-schema/aws-sagemaker-userprofile.json index da774b5834..b563b0c8c8 100644 --- a/aws-cloudformation-schema/aws-sagemaker-userprofile.json +++ b/aws-cloudformation-schema/aws-sagemaker-userprofile.json @@ -280,6 +280,16 @@ "items" : { "$ref" : "#/definitions/StudioLifecycleConfigArn" } + }, + "CustomImages" : { + "type" : "array", + "description" : "A list of custom images for use for CodeEditor apps.", + "uniqueItems" : false, + "minItems" : 0, + "maxItems" : 30, + "items" : { + "$ref" : "#/definitions/CustomImage" + } } } }, diff --git a/aws-cloudformation-schema/aws-securityhub-delegatedadmin.json b/aws-cloudformation-schema/aws-securityhub-delegatedadmin.json new file mode 100644 index 0000000000..35a334838a --- /dev/null +++ b/aws-cloudformation-schema/aws-securityhub-delegatedadmin.json @@ -0,0 +1,48 @@ +{ + "typeName" : "AWS::SecurityHub::DelegatedAdmin", + "description" : "The AWS::SecurityHub::DelegatedAdmin resource represents the AWS Security Hub delegated admin account in your organization. One delegated admin resource is allowed to create for the organization in each region in which you configure the AdminAccountId.", + "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "properties" : { + "DelegatedAdminIdentifier" : { + "description" : "The identifier of the DelegatedAdmin being created and assigned as the unique identifier", + "type" : "string", + "pattern" : "^[0-9]{12}/[a-zA-Z0-9-]{1,32}$" + }, + "AdminAccountId" : { + "description" : "The Amazon Web Services account identifier of the account to designate as the Security Hub administrator account", + "type" : "string", + "pattern" : "^[0-9]{12}$" + }, + "Status" : { + "description" : "The current status of the Security Hub administrator account. Indicates whether the account is currently enabled as a Security Hub administrator", + "type" : "string", + "enum" : [ "ENABLED", "DISABLE_IN_PROGRESS" ] + } + }, + "additionalProperties" : false, + "required" : [ "AdminAccountId" ], + "createOnlyProperties" : [ "/properties/AdminAccountId" ], + "readOnlyProperties" : [ "/properties/DelegatedAdminIdentifier", "/properties/Status" ], + "primaryIdentifier" : [ "/properties/DelegatedAdminIdentifier" ], + "tagging" : { + "taggable" : false, + "tagOnCreate" : false, + "tagUpdatable" : false, + "cloudFormationSystemTags" : false, + "tagProperty" : "/properties/Tags" + }, + "handlers" : { + "create" : { + "permissions" : [ "securityhub:EnableOrganizationAdminAccount", "organizations:DescribeOrganization", "organizations:EnableAWSServiceAccess", "organizations:RegisterDelegatedAdministrator" ] + }, + "read" : { + "permissions" : [ "securityhub:ListOrganizationAdminAccounts", "organizations:DescribeOrganization" ] + }, + "delete" : { + "permissions" : [ "securityhub:DisableOrganizationAdminAccount", "organizations:DescribeOrganization" ] + }, + "list" : { + "permissions" : [ "securityhub:ListOrganizationAdminAccounts", "organizations:DescribeOrganization" ] + } + } +} \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-securityhub-insight.json b/aws-cloudformation-schema/aws-securityhub-insight.json new file mode 100644 index 0000000000..8f16ef86d8 --- /dev/null +++ b/aws-cloudformation-schema/aws-securityhub-insight.json @@ -0,0 +1,1237 @@ +{ + "typeName" : "AWS::SecurityHub::Insight", + "description" : "The AWS::SecurityHub::Insight resource represents the AWS Security Hub Insight in your account. An AWS Security Hub insight is a collection of related findings.", + "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-securityhub", + "definitions" : { + "NonEmptyString" : { + "description" : "Non-empty string definition.", + "type" : "string", + "minLength" : 1 + }, + "DateFilter" : { + "description" : "A date filter for querying findings.", + "properties" : { + "DateRange" : { + "$ref" : "#/definitions/DateRange" + }, + "End" : { + "$ref" : "#/definitions/ISO8601DateString" + }, + "Start" : { + "$ref" : "#/definitions/ISO8601DateString" + } + }, + "type" : "object", + "additionalProperties" : false + }, + "DateRange" : { + "description" : "A date range for the date filter.", + "properties" : { + "Unit" : { + "description" : "A date range unit for the date filter.", + "enum" : [ "DAYS" ], + "type" : "string" + }, + "Value" : { + "description" : "A date range value for the date filter.", + "type" : "number" + } + }, + "required" : [ "Unit", "Value" ], + "type" : "object", + "additionalProperties" : false + }, + "ISO8601DateString" : { + "description" : "The date and time, in UTC and ISO 8601 format.", + "type" : "string", + "pattern" : "^([\\+-]?\\d{4}(?!\\d{2}))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([tT]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$" + }, + "NumberFilter" : { + "description" : "A number filter for querying findings.", + "properties" : { + "Eq" : { + "description" : "The equal-to condition to be applied to a single field when querying for findings.", + "type" : "number" + }, + "Gte" : { + "description" : "The greater-than-equal condition to be applied to a single field when querying for findings.", + "type" : "number" + }, + "Lte" : { + "description" : "The less-than-equal condition to be applied to a single field when querying for findings.", + "type" : "number" + } + }, + "type" : "object", + "additionalProperties" : false + }, + "StringFilter" : { + "description" : "A string filter for filtering AWS Security Hub findings.", + "properties" : { + "Comparison" : { + "$ref" : "#/definitions/StringFilterComparison" + }, + "Value" : { + "$ref" : "#/definitions/NonEmptyString" + } + }, + "required" : [ "Comparison", "Value" ], + "type" : "object", + "additionalProperties" : false + }, + "StringFilterComparison" : { + "description" : "The condition to apply to a string value when filtering Security Hub findings.", + "enum" : [ "EQUALS", "PREFIX", "NOT_EQUALS", "PREFIX_NOT_EQUALS" ], + "type" : "string" + }, + "MapFilter" : { + "description" : "A map filter for filtering AWS Security Hub findings.", + "properties" : { + "Comparison" : { + "description" : "The condition to apply to the key value when filtering Security Hub findings with a map filter.", + "enum" : [ "EQUALS", "NOT_EQUALS" ], + "type" : "string" + }, + "Key" : { + "$ref" : "#/definitions/NonEmptyString" + }, + "Value" : { + "$ref" : "#/definitions/NonEmptyString" + } + }, + "required" : [ "Comparison", "Key", "Value" ], + "type" : "object", + "additionalProperties" : false + }, + "IpFilter" : { + "description" : "The IP filter for querying findings.", + "properties" : { + "Cidr" : { + "description" : "A finding's CIDR value.", + "$ref" : "#/definitions/NonEmptyString" + } + }, + "required" : [ "Cidr" ], + "type" : "object", + "additionalProperties" : false + }, + "KeywordFilter" : { + "description" : "A keyword filter for querying findings.", + "properties" : { + "Value" : { + "description" : "A value for the keyword.", + "$ref" : "#/definitions/NonEmptyString" + } + }, + "required" : [ "Value" ], + "type" : "object", + "additionalProperties" : false + }, + "BooleanFilter" : { + "description" : "Boolean filter for querying findings.", + "properties" : { + "Value" : { + "description" : "The value of the boolean.", + "type" : "boolean" + } + }, + "required" : [ "Value" ], + "type" : "object", + "additionalProperties" : false + }, + "AwsSecurityFindingFilters" : { + "description" : "A collection of filters that are applied to all active findings aggregated by AWS Security Hub.", + "type" : "object", + "additionalProperties" : false, + "properties" : { + "ProductArn" : { + "description" : "The ARN generated by Security Hub that uniquely identifies a third-party company (security findings provider) after this provider's product (solution that generates findings) is registered with Security Hub.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "AwsAccountId" : { + "description" : "The AWS account ID in which a finding is generated.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "AwsAccountName" : { + "description" : "The name of the AWS account in which a finding is generated.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "Id" : { + "description" : "The security findings provider-specific identifier for a finding.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "GeneratorId" : { + "description" : "The identifier for the solution-specific component (a discrete unit of logic) that generated a finding.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "Type" : { + "description" : "A finding type in the format of namespace/category/classifier that classifies a finding.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "Region" : { + "description" : "The Region from which the finding was generated.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "FirstObservedAt" : { + "description" : "An ISO8601-formatted timestamp that indicates when the security findings provider first observed the potential security issue that a finding captured.", + "items" : { + "$ref" : "#/definitions/DateFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "LastObservedAt" : { + "description" : "An ISO8601-formatted timestamp that indicates when the security findings provider most recently observed the potential security issue that a finding captured.", + "items" : { + "$ref" : "#/definitions/DateFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "CreatedAt" : { + "description" : "An ISO8601-formatted timestamp that indicates when the security findings provider captured the potential security issue that a finding captured.", + "items" : { + "$ref" : "#/definitions/DateFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "UpdatedAt" : { + "description" : "An ISO8601-formatted timestamp that indicates when the security findings provider last updated the finding record.", + "items" : { + "$ref" : "#/definitions/DateFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "SeverityLabel" : { + "description" : "The label of a finding's severity.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "Confidence" : { + "description" : "A finding's confidence.", + "items" : { + "$ref" : "#/definitions/NumberFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "Criticality" : { + "description" : "The level of importance assigned to the resources associated with the finding.", + "items" : { + "$ref" : "#/definitions/NumberFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "Title" : { + "description" : "A finding's title.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "Description" : { + "description" : "A finding's description.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "RecommendationText" : { + "description" : "The recommendation of what to do about the issue described in a finding.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "SourceUrl" : { + "description" : "A URL that links to a page about the current finding in the security findings provider's solution.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ProductFields" : { + "description" : "A data type where security findings providers can include additional solution-specific details that aren't part of the defined AwsSecurityFinding format.", + "items" : { + "$ref" : "#/definitions/MapFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ProductName" : { + "description" : "The name of the solution (product) that generates findings.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "CompanyName" : { + "description" : "The name of the findings provider (company) that owns the solution (product) that generates findings.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "UserDefinedFields" : { + "description" : "A list of name/value string pairs associated with the finding.", + "items" : { + "$ref" : "#/definitions/MapFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "MalwareName" : { + "description" : "The name of the malware that was observed.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "MalwareType" : { + "description" : "The type of the malware that was observed.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "MalwarePath" : { + "description" : "The filesystem path of the malware that was observed.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "MalwareState" : { + "description" : "The state of the malware that was observed.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "NetworkDirection" : { + "description" : "Indicates the direction of network traffic associated with a finding.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "NetworkProtocol" : { + "description" : "The protocol of network-related information about a finding.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "NetworkSourceIpV4" : { + "description" : "The source IPv4 address of network-related information about a finding.", + "items" : { + "$ref" : "#/definitions/IpFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "NetworkSourceIpV6" : { + "description" : "The source IPv6 address of network-related information about a finding.", + "items" : { + "$ref" : "#/definitions/IpFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "NetworkSourcePort" : { + "description" : "The source port of network-related information about a finding.", + "items" : { + "$ref" : "#/definitions/NumberFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "NetworkSourceDomain" : { + "description" : "The source domain of network-related information about a finding.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "NetworkSourceMac" : { + "description" : "The source media access control (MAC) address of network-related information about a finding.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "NetworkDestinationIpV4" : { + "description" : "The destination IPv4 address of network-related information about a finding.", + "items" : { + "$ref" : "#/definitions/IpFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "NetworkDestinationIpV6" : { + "description" : "The destination IPv6 address of network-related information about a finding.", + "items" : { + "$ref" : "#/definitions/IpFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "NetworkDestinationPort" : { + "description" : "The destination port of network-related information about a finding.", + "items" : { + "$ref" : "#/definitions/NumberFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "NetworkDestinationDomain" : { + "description" : "The destination domain of network-related information about a finding.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ProcessName" : { + "description" : "The name of the process.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ProcessPath" : { + "description" : "The path to the process executable.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ProcessPid" : { + "description" : "The process ID.", + "items" : { + "$ref" : "#/definitions/NumberFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ProcessParentPid" : { + "description" : "The parent process ID.", + "items" : { + "$ref" : "#/definitions/NumberFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ProcessLaunchedAt" : { + "description" : "A timestamp that identifies when the process was launched.", + "items" : { + "$ref" : "#/definitions/DateFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ProcessTerminatedAt" : { + "description" : "A timestamp that identifies when the process was terminated.", + "items" : { + "$ref" : "#/definitions/DateFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ThreatIntelIndicatorType" : { + "description" : "The type of a threat intelligence indicator.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ThreatIntelIndicatorValue" : { + "description" : "The value of a threat intelligence indicator.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ThreatIntelIndicatorCategory" : { + "description" : "The category of a threat intelligence indicator.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ThreatIntelIndicatorLastObservedAt" : { + "description" : "A timestamp that identifies the last observation of a threat intelligence indicator.", + "items" : { + "$ref" : "#/definitions/DateFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ThreatIntelIndicatorSource" : { + "description" : "The source of the threat intelligence.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ThreatIntelIndicatorSourceUrl" : { + "description" : "The URL for more details from the source of the threat intelligence.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ResourceType" : { + "description" : "Specifies the type of the resource that details are provided for.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ResourceId" : { + "description" : "The canonical identifier for the given resource type.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ResourcePartition" : { + "description" : "The canonical AWS partition name that the Region is assigned to.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ResourceRegion" : { + "description" : "The canonical AWS external Region name where this resource is located.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ResourceTags" : { + "description" : "A list of AWS tags associated with a resource at the time the finding was processed.", + "items" : { + "$ref" : "#/definitions/MapFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ResourceAwsEc2InstanceType" : { + "description" : "The instance type of the instance.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ResourceAwsEc2InstanceImageId" : { + "description" : "The Amazon Machine Image (AMI) ID of the instance.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ResourceAwsEc2InstanceIpV4Addresses" : { + "description" : "The IPv4 addresses associated with the instance.", + "items" : { + "$ref" : "#/definitions/IpFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ResourceAwsEc2InstanceIpV6Addresses" : { + "description" : "The IPv6 addresses associated with the instance.", + "items" : { + "$ref" : "#/definitions/IpFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ResourceAwsEc2InstanceKeyName" : { + "description" : "The key name associated with the instance.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ResourceAwsEc2InstanceIamInstanceProfileArn" : { + "description" : "The IAM profile ARN of the instance.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ResourceAwsEc2InstanceVpcId" : { + "description" : "The identifier of the VPC that the instance was launched in.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ResourceAwsEc2InstanceSubnetId" : { + "description" : "The identifier of the subnet that the instance was launched in.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ResourceAwsEc2InstanceLaunchedAt" : { + "description" : "The date and time the instance was launched.", + "items" : { + "$ref" : "#/definitions/DateFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ResourceAwsS3BucketOwnerId" : { + "description" : "The canonical user ID of the owner of the S3 bucket.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ResourceAwsS3BucketOwnerName" : { + "description" : "The display name of the owner of the S3 bucket.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ResourceAwsIamAccessKeyStatus" : { + "description" : "The status of the IAM access key related to a finding.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ResourceAwsIamAccessKeyCreatedAt" : { + "description" : "The creation date/time of the IAM access key related to a finding.", + "items" : { + "$ref" : "#/definitions/DateFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ResourceContainerName" : { + "description" : "The name of the container related to a finding.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ResourceContainerImageId" : { + "description" : "The identifier of the image related to a finding.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ResourceContainerImageName" : { + "description" : "The name of the image related to a finding.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ResourceContainerLaunchedAt" : { + "description" : "A timestamp that identifies when the container was started.", + "items" : { + "$ref" : "#/definitions/DateFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ResourceDetailsOther" : { + "description" : "The details of a resource that doesn't have a specific subfield for the resource type defined.", + "items" : { + "$ref" : "#/definitions/MapFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ComplianceStatus" : { + "description" : "Exclusive to findings that are generated as the result of a check run against a specific rule in a supported standard.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "VerificationState" : { + "description" : "The veracity of a finding.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "WorkflowState" : { + "description" : "The workflow state of a finding.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "WorkflowStatus" : { + "description" : "The status of the investigation into a finding.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "RecordState" : { + "description" : "The updated record state for the finding.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "RelatedFindingsProductArn" : { + "description" : "The ARN of the solution that generated a related finding.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "RelatedFindingsId" : { + "description" : "The solution-generated identifier for a related finding.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ResourceApplicationArn" : { + "description" : "The ARN of the application that is related to a finding.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ResourceApplicationName" : { + "description" : "The name of the application that is related to a finding.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "NoteText" : { + "description" : "The text of a note.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "NoteUpdatedAt" : { + "description" : "The timestamp of when the note was updated.", + "items" : { + "$ref" : "#/definitions/DateFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "NoteUpdatedBy" : { + "description" : "The principal that created a note.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "Sample" : { + "description" : "Indicates whether or not sample findings are included in the filter results.", + "items" : { + "$ref" : "#/definitions/BooleanFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ComplianceAssociatedStandardsId" : { + "description" : "The unique identifier of a standard in which a control is enabled.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ComplianceSecurityControlId" : { + "description" : "The unique identifier of a control across standards.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ComplianceSecurityControlParametersName" : { + "description" : "The name of a security control parameter.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ComplianceSecurityControlParametersValue" : { + "description" : "The current value of a security control parameter.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "FindingProviderFieldsConfidence" : { + "description" : "The finding provider value for the finding confidence.", + "items" : { + "$ref" : "#/definitions/NumberFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "FindingProviderFieldsCriticality" : { + "description" : "The finding provider value for the level of importance assigned to the resources associated with the findings.", + "items" : { + "$ref" : "#/definitions/NumberFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "FindingProviderFieldsRelatedFindingsId" : { + "description" : "The finding identifier of a related finding that is identified by the finding provider.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "FindingProviderFieldsRelatedFindingsProductArn" : { + "description" : "The ARN of the solution that generated a related finding that is identified by the finding provider.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "FindingProviderFieldsSeverityLabel" : { + "description" : "The finding provider value for the severity label.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "FindingProviderFieldsSeverityOriginal" : { + "description" : "The finding provider's original value for the severity.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "FindingProviderFieldsTypes" : { + "description" : "One or more finding types that the finding provider assigned to the finding.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ResourceAwsIamAccessKeyPrincipalName" : { + "description" : "The name of the principal that is associated with an IAM access key.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ResourceAwsIamUserUserName" : { + "description" : "The name of an IAM user.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "VulnerabilitiesExploitAvailable" : { + "description" : "Indicates whether a software vulnerability in your environment has a known exploit.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "VulnerabilitiesFixAvailable" : { + "description" : "Indicates whether a vulnerability is fixed in a newer version of the affected software packages.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "Keyword" : { + "description" : "A keyword for a finding.", + "items" : { + "$ref" : "#/definitions/KeywordFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "ResourceAwsIamAccessKeyUserName" : { + "description" : "The user associated with the IAM access key related to a finding.", + "items" : { + "$ref" : "#/definitions/StringFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "SeverityNormalized" : { + "description" : "The normalized severity of a finding.", + "items" : { + "$ref" : "#/definitions/NumberFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + }, + "SeverityProduct" : { + "description" : "The native severity as defined by the security findings provider's solution that generated the finding.", + "items" : { + "$ref" : "#/definitions/NumberFilter" + }, + "type" : "array", + "insertionOrder" : true, + "uniqueItems" : true, + "maxItems" : 20 + } + } + } + }, + "properties" : { + "InsightArn" : { + "description" : "The ARN of a Security Hub insight", + "type" : "string", + "pattern" : "arn:aws\\S*:securityhub:\\S*" + }, + "Name" : { + "description" : "The name of a Security Hub insight", + "type" : "string", + "minLength" : 1, + "maxLength" : 128 + }, + "Filters" : { + "description" : "One or more attributes used to filter the findings included in the insight", + "$ref" : "#/definitions/AwsSecurityFindingFilters", + "maxProperties" : 10 + }, + "GroupByAttribute" : { + "description" : "The grouping attribute for the insight's findings", + "$ref" : "#/definitions/NonEmptyString" + } + }, + "additionalProperties" : false, + "required" : [ "Filters", "Name", "GroupByAttribute" ], + "primaryIdentifier" : [ "/properties/InsightArn" ], + "readOnlyProperties" : [ "/properties/InsightArn" ], + "deprecatedProperties" : [ "/properties/Filters/Keyword", "/properties/Filters/ResourceAwsIamAccessKeyUserName", "/properties/Filters/SeverityNormalized", "/properties/Filters/SeverityProduct" ], + "tagging" : { + "taggable" : false + }, + "handlers" : { + "create" : { + "permissions" : [ "securityhub:CreateInsight" ] + }, + "read" : { + "permissions" : [ "securityhub:GetInsights" ] + }, + "update" : { + "permissions" : [ "securityhub:UpdateInsight" ] + }, + "delete" : { + "permissions" : [ "securityhub:GetInsights", "securityhub:DeleteInsight" ] + }, + "list" : { + "permissions" : [ "securityhub:GetInsights" ] + } + } +} \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-securityhub-productsubscription.json b/aws-cloudformation-schema/aws-securityhub-productsubscription.json new file mode 100644 index 0000000000..320e2f9429 --- /dev/null +++ b/aws-cloudformation-schema/aws-securityhub-productsubscription.json @@ -0,0 +1,43 @@ +{ + "typeName" : "AWS::SecurityHub::ProductSubscription", + "description" : "The AWS::SecurityHub::ProductSubscription resource represents a subscription to a service that is allowed to generate findings for your Security Hub account. One product subscription resource is created for each product enabled.", + "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-securityhub", + "properties" : { + "ProductArn" : { + "description" : "The generic ARN of the product being subscribed to", + "type" : "string", + "pattern" : "arn:aws\\S*:securityhub:\\S*" + }, + "ProductSubscriptionArn" : { + "description" : "The ARN of the product subscription for the account", + "type" : "string", + "pattern" : "arn:aws\\S*:securityhub:\\S*" + } + }, + "additionalProperties" : false, + "primaryIdentifier" : [ "/properties/ProductSubscriptionArn" ], + "required" : [ "ProductArn" ], + "createOnlyProperties" : [ "/properties/ProductArn" ], + "readOnlyProperties" : [ "/properties/ProductSubscriptionArn" ], + "tagging" : { + "taggable" : false, + "tagOnCreate" : false, + "tagUpdatable" : false, + "cloudFormationSystemTags" : false, + "tagProperty" : "/properties/Tags" + }, + "handlers" : { + "create" : { + "permissions" : [ "securityhub:EnableImportFindingsForProduct" ] + }, + "read" : { + "permissions" : [ "securityhub:ListEnabledProductsForImport" ] + }, + "delete" : { + "permissions" : [ "securityhub:ListEnabledProductsForImport", "securityhub:DisableImportFindingsForProduct" ] + }, + "list" : { + "permissions" : [ "securityhub:ListEnabledProductsForImport" ] + } + } +} \ No newline at end of file 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..dc31312ac5 --- /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" ], + "readOnlyProperties" : [ "/properties/Arn", "/properties/S3BucketArn" ], + "createOnlyProperties" : [ "/properties/MetaStoreManagerRoleArn" ], + "writeOnlyProperties" : [ "/properties/MetaStoreManagerRoleArn" ], + "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..2cab00f396 --- /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" + }, + "required" : [ "AccessTypes", "DataLakeArn", "Sources", "SubscriberIdentity", "SubscriberName" ], + "primaryIdentifier" : [ "/properties/SubscriberArn" ], + "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-ssm-association.json b/aws-cloudformation-schema/aws-ssm-association.json index 7a6a92adb4..5a25cdfbe6 100644 --- a/aws-cloudformation-schema/aws-ssm-association.json +++ b/aws-cloudformation-schema/aws-ssm-association.json @@ -128,7 +128,7 @@ }, "Parameters" : { "patternProperties" : { - ".*{1,255}" : { + ".{1,255}" : { "$ref" : "#/definitions/ParameterValues" } }, diff --git a/aws-cloudformation-schema/aws-ssm-parameter.json b/aws-cloudformation-schema/aws-ssm-parameter.json index bd6b0c9f14..0a4271f36b 100644 --- a/aws-cloudformation-schema/aws-ssm-parameter.json +++ b/aws-cloudformation-schema/aws-ssm-parameter.json @@ -46,7 +46,7 @@ }, "Name" : { "type" : "string", - "description" : "The name of the parameter.\n The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName``" + "description" : "The name of the parameter.\n The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName``" } }, "required" : [ "Value", "Type" ], diff --git a/aws-cloudformation-schema/aws-verifiedpermissions-identitysource.json b/aws-cloudformation-schema/aws-verifiedpermissions-identitysource.json index d8bf1dc143..96e6500b11 100644 --- a/aws-cloudformation-schema/aws-verifiedpermissions-identitysource.json +++ b/aws-cloudformation-schema/aws-verifiedpermissions-identitysource.json @@ -3,6 +3,19 @@ "description" : "Definition of AWS::VerifiedPermissions::IdentitySource Resource Type", "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-avp", "definitions" : { + "CognitoGroupConfiguration" : { + "type" : "object", + "properties" : { + "GroupEntityType" : { + "type" : "string", + "maxLength" : 200, + "minLength" : 1, + "pattern" : "^([_a-zA-Z][_a-zA-Z0-9]*::)*[_a-zA-Z][_a-zA-Z0-9]*$" + } + }, + "required" : [ "GroupEntityType" ], + "additionalProperties" : false + }, "CognitoUserPoolConfiguration" : { "type" : "object", "properties" : { @@ -23,6 +36,9 @@ }, "maxItems" : 1000, "minItems" : 0 + }, + "GroupConfiguration" : { + "$ref" : "#/definitions/CognitoGroupConfiguration" } }, "required" : [ "UserPoolArn" ], @@ -106,6 +122,7 @@ "required" : [ "Configuration", "PolicyStoreId" ], "readOnlyProperties" : [ "/properties/Details", "/properties/IdentitySourceId" ], "createOnlyProperties" : [ "/properties/PolicyStoreId" ], + "deprecatedProperties" : [ "/properties/Details" ], "primaryIdentifier" : [ "/properties/IdentitySourceId", "/properties/PolicyStoreId" ], "tagging" : { "taggable" : false, 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..c6adfa9123 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,10 @@ AWS::Batch::ComputeEnvironment AWS::Batch::JobDefinition AWS::Batch::JobQueue AWS::Batch::SchedulingPolicy +AWS::Bedrock::Agent +AWS::Bedrock::AgentAlias +AWS::Bedrock::DataSource +AWS::Bedrock::KnowledgeBase AWS::Budgets::BudgetsAction AWS::CE::AnomalyMonitor AWS::CE::AnomalySubscription @@ -114,6 +120,7 @@ AWS::CleanRooms::Collaboration AWS::CleanRooms::ConfiguredTable AWS::CleanRooms::ConfiguredTableAssociation AWS::CleanRooms::Membership +AWS::CleanRoomsML::TrainingDataset AWS::CloudFormation::HookDefaultVersion AWS::CloudFormation::HookTypeConfig AWS::CloudFormation::HookVersion @@ -147,8 +154,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 @@ -244,6 +253,14 @@ AWS::DataZone::EnvironmentBlueprintConfiguration AWS::DataZone::EnvironmentProfile AWS::DataZone::Project AWS::DataZone::SubscriptionTarget +AWS::Deadline::Farm +AWS::Deadline::Fleet +AWS::Deadline::LicenseEndpoint +AWS::Deadline::MeteredProduct +AWS::Deadline::Queue +AWS::Deadline::QueueEnvironment +AWS::Deadline::QueueFleetAssociation +AWS::Deadline::StorageProfile AWS::Detective::Graph AWS::Detective::MemberInvitation AWS::Detective::OrganizationAdmin @@ -383,7 +400,9 @@ AWS::ElasticLoadBalancingV2::TargetGroup AWS::ElasticLoadBalancingV2::TrustStore AWS::ElasticLoadBalancingV2::TrustStoreRevocation AWS::EntityResolution::IdMappingWorkflow +AWS::EntityResolution::IdNamespace AWS::EntityResolution::MatchingWorkflow +AWS::EntityResolution::PolicyStatement AWS::EntityResolution::SchemaMapping AWS::EventSchemas::Discoverer AWS::EventSchemas::Registry @@ -462,9 +481,12 @@ AWS::IAM::User AWS::IAM::UserPolicy AWS::IAM::VirtualMFADevice AWS::IVS::Channel +AWS::IVS::EncoderConfiguration AWS::IVS::PlaybackKeyPair +AWS::IVS::PlaybackRestrictionPolicy AWS::IVS::RecordingConfiguration AWS::IVS::Stage +AWS::IVS::StorageConfiguration AWS::IVS::StreamKey AWS::IVSChat::LoggingConfiguration AWS::IVSChat::Room @@ -545,6 +567,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 @@ -867,8 +891,14 @@ AWS::Scheduler::Schedule AWS::Scheduler::ScheduleGroup AWS::SecretsManager::Secret AWS::SecurityHub::AutomationRule +AWS::SecurityHub::DelegatedAdmin AWS::SecurityHub::Hub +AWS::SecurityHub::Insight +AWS::SecurityHub::ProductSubscription 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..4f9e233593 100644 --- a/provider/cmd/pulumi-resource-aws-native/metadata.json +++ b/provider/cmd/pulumi-resource-aws-native/metadata.json @@ -699,9 +699,6 @@ "autoSubDomainIamRole": { "type": "string" }, - "certificate": { - "$ref": "#/types/aws-native:amplify:DomainCertificate" - }, "certificateSettings": { "$ref": "#/types/aws-native:amplify:DomainCertificateSettings" }, @@ -716,9 +713,6 @@ "items": { "$ref": "#/types/aws-native:amplify:DomainSubDomainSetting" } - }, - "updateStatus": { - "type": "string" } }, "outputs": { @@ -782,6 +776,9 @@ "appId", "domainName" ], + "writeOnly": [ + "certificateSettings" + ], "irreversibleNames": { "autoSubDomainIamRole": "AutoSubDomainIAMRole" } @@ -4230,6 +4227,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 +6193,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 +6265,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 +6477,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 +9237,454 @@ "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:bedrock:DataSource": { + "cf": "AWS::Bedrock::DataSource", + "inputs": { + "dataSourceConfiguration": { + "$ref": "#/types/aws-native:bedrock:DataSourceConfiguration" + }, + "description": { + "type": "string", + "description": "Description of the Resource." + }, + "knowledgeBaseId": { + "type": "string", + "description": "The unique identifier of the knowledge base to which to add the data source." + }, + "name": { + "type": "string", + "description": "The name of the data source." + }, + "serverSideEncryptionConfiguration": { + "$ref": "#/types/aws-native:bedrock:DataSourceServerSideEncryptionConfiguration" + }, + "vectorIngestionConfiguration": { + "$ref": "#/types/aws-native:bedrock:DataSourceVectorIngestionConfiguration" + } + }, + "outputs": { + "createdAt": { + "type": "string", + "description": "The time at which the data source was created." + }, + "dataSourceConfiguration": { + "$ref": "#/types/aws-native:bedrock:DataSourceConfiguration" + }, + "dataSourceId": { + "type": "string", + "description": "Identifier for a resource." + }, + "dataSourceStatus": { + "$ref": "#/types/aws-native:bedrock:DataSourceStatus" + }, + "description": { + "type": "string", + "description": "Description of the Resource." + }, + "knowledgeBaseId": { + "type": "string", + "description": "The unique identifier of the knowledge base to which to add the data source.", + "replaceOnChanges": true + }, + "name": { + "type": "string", + "description": "The name of the data source." + }, + "serverSideEncryptionConfiguration": { + "$ref": "#/types/aws-native:bedrock:DataSourceServerSideEncryptionConfiguration" + }, + "updatedAt": { + "type": "string", + "description": "The time at which the knowledge base was last updated." + }, + "vectorIngestionConfiguration": { + "$ref": "#/types/aws-native:bedrock:DataSourceVectorIngestionConfiguration", + "replaceOnChanges": true + } + }, + "autoNamingSpec": { + "sdkName": "name" + }, + "required": [ + "dataSourceConfiguration", + "knowledgeBaseId" + ], + "createOnly": [ + "knowledgeBaseId", + "vectorIngestionConfiguration" + ] + }, + "aws-native:bedrock:KnowledgeBase": { + "cf": "AWS::Bedrock::KnowledgeBase", + "inputs": { + "description": { + "type": "string", + "description": "Description of the Resource." + }, + "knowledgeBaseConfiguration": { + "$ref": "#/types/aws-native:bedrock:KnowledgeBaseConfiguration" + }, + "name": { + "type": "string", + "description": "The name of the knowledge base." + }, + "roleArn": { + "type": "string", + "description": "The ARN of the IAM role with permissions to invoke API operations on the knowledge base. The ARN must begin with AmazonBedrockExecutionRoleForKnowledgeBase_" + }, + "storageConfiguration": { + "$ref": "#/types/aws-native:bedrock:KnowledgeBaseStorageConfiguration" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "outputs": { + "createdAt": { + "type": "string", + "description": "The time at which the knowledge base was created." + }, + "description": { + "type": "string", + "description": "Description of the Resource." + }, + "failureReasons": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of reasons that the API operation on the knowledge base failed." + }, + "knowledgeBaseArn": { + "type": "string", + "description": "The ARN of the knowledge base." + }, + "knowledgeBaseConfiguration": { + "$ref": "#/types/aws-native:bedrock:KnowledgeBaseConfiguration", + "replaceOnChanges": true + }, + "knowledgeBaseId": { + "type": "string", + "description": "The unique identifier of the knowledge base." + }, + "name": { + "type": "string", + "description": "The name of the knowledge base." + }, + "roleArn": { + "type": "string", + "description": "The ARN of the IAM role with permissions to invoke API operations on the knowledge base. The ARN must begin with AmazonBedrockExecutionRoleForKnowledgeBase_" + }, + "status": { + "$ref": "#/types/aws-native:bedrock:KnowledgeBaseStatus" + }, + "storageConfiguration": { + "$ref": "#/types/aws-native:bedrock:KnowledgeBaseStorageConfiguration", + "replaceOnChanges": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "updatedAt": { + "type": "string", + "description": "The time at which the knowledge base was last updated." + } + }, + "autoNamingSpec": { + "sdkName": "name" + }, + "required": [ + "knowledgeBaseConfiguration", + "roleArn", + "storageConfiguration" + ], + "createOnly": [ + "knowledgeBaseConfiguration", + "storageConfiguration" + ], + "tagsProperty": "tags", + "tagsStyle": "stringMap" + }, "aws-native:budgets:BudgetsAction": { "cf": "AWS::Budgets::BudgetsAction", "inputs": { @@ -10322,6 +10920,84 @@ "tagsProperty": "tags", "tagsStyle": "keyValueArray" }, + "aws-native:cleanroomsml:TrainingDataset": { + "cf": "AWS::CleanRoomsML::TrainingDataset", + "inputs": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "roleArn": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An arbitrary set of tags (key-value pairs) for this cleanrooms-ml training dataset." + }, + "trainingData": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:cleanroomsml:TrainingDatasetDataset" + } + } + }, + "outputs": { + "description": { + "type": "string", + "replaceOnChanges": true + }, + "name": { + "type": "string", + "replaceOnChanges": true + }, + "roleArn": { + "type": "string", + "replaceOnChanges": true + }, + "status": { + "$ref": "#/types/aws-native:cleanroomsml:TrainingDatasetStatus" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An arbitrary set of tags (key-value pairs) for this cleanrooms-ml training dataset." + }, + "trainingData": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:cleanroomsml:TrainingDatasetDataset" + }, + "replaceOnChanges": true + }, + "trainingDatasetArn": { + "type": "string" + } + }, + "autoNamingSpec": { + "sdkName": "name", + "minLength": 1, + "maxLength": 63 + }, + "required": [ + "roleArn", + "trainingData" + ], + "createOnly": [ + "description", + "name", + "roleArn", + "trainingData" + ], + "tagsProperty": "tags", + "tagsStyle": "keyValueArray" + }, "aws-native:cloudformation:HookDefaultVersion": { "cf": "AWS::CloudFormation::HookDefaultVersion", "inputs": { @@ -12176,7 +12852,7 @@ "items": { "type": "string" }, - "description": "The list of actions to execute when this alarm transitions into an ALARM state from any other state." + "description": "The list of actions to execute when this alarm transitions into an ALARM state from any other state. Specify each action as an Amazon Resource Name (ARN). For more information about creating alarms and the actions that you can specify, see [PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html) in the *API Reference*." }, "alarmDescription": { "type": "string", @@ -12184,87 +12860,93 @@ }, "alarmName": { "type": "string", - "description": "The name of the alarm." + "description": "The name of the alarm. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the alarm name. \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." }, "comparisonOperator": { "type": "string", - "description": "The arithmetic operation to use when comparing the specified statistic and threshold." + "description": "The arithmetic operation to use when comparing the specified statistic and threshold. The specified statistic value is used as the first operand." }, "datapointsToAlarm": { "type": "integer", - "description": "The number of datapoints that must be breaching to trigger the alarm." + "description": "The number of datapoints that must be breaching to trigger the alarm. This is used only if you are setting an \"M out of N\" alarm. In that case, this value is the M, and the value that you set for ``EvaluationPeriods`` is the N value. For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*.\n If you omit this parameter, CW uses the same value here that you set for ``EvaluationPeriods``, and the alarm goes to alarm state if that many consecutive periods are breaching." }, "dimensions": { "type": "array", "items": { "$ref": "#/types/aws-native:cloudwatch:AlarmDimension" }, - "description": "The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify Dimensions. Instead, you use Metrics." + "description": "The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify ``Dimensions``. Instead, you use ``Metrics``." }, "evaluateLowSampleCountPercentile": { "type": "string", - "description": "Used only for alarms based on percentiles." + "description": "Used only for alarms based on percentiles. If ``ignore``, the alarm state does not change during periods with too few data points to be statistically significant. If ``evaluate`` or this parameter is not used, the alarm is always evaluated and possibly changes state no matter how many data points are available." }, "evaluationPeriods": { "type": "integer", - "description": "The number of periods over which data is compared to the specified threshold." + "description": "The number of periods over which data is compared to the specified threshold. If you are setting an alarm that requires that a number of consecutive data points be breaching to trigger the alarm, this value specifies that number. If you are setting an \"M out of N\" alarm, this value is the N, and ``DatapointsToAlarm`` is the M.\n For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*." }, "extendedStatistic": { "type": "string", - "description": "The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100." + "description": "The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100.\n For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both.\n For an alarm based on a math expression, you can't specify ``ExtendedStatistic``. Instead, you use ``Metrics``." }, "insufficientDataActions": { "type": "array", "items": { "type": "string" }, - "description": "The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state." + "description": "The actions to execute when this alarm transitions to the ``INSUFFICIENT_DATA`` state from any other state. Each action is specified as an Amazon Resource Name (ARN)." }, "metricName": { "type": "string", - "description": "The name of the metric associated with the alarm." + "description": "The name of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you use ``Metrics`` instead and you can't specify ``MetricName``." }, "metrics": { "type": "array", "items": { "$ref": "#/types/aws-native:cloudwatch:AlarmMetricDataQuery" }, - "description": "An array that enables you to create an alarm based on the result of a metric math expression." + "description": "An array that enables you to create an alarm based on the result of a metric math expression. Each item in the array either retrieves a metric or performs a math expression.\n If you specify the ``Metrics`` parameter, you cannot specify ``MetricName``, ``Dimensions``, ``Period``, ``Namespace``, ``Statistic``, ``ExtendedStatistic``, or ``Unit``." }, "namespace": { "type": "string", - "description": "The namespace of the metric associated with the alarm." + "description": "The namespace of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you can't specify ``Namespace`` and you use ``Metrics`` instead.\n For a list of namespaces for metrics from AWS services, see [Services That Publish Metrics.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html)" }, "okActions": { "type": "array", "items": { "type": "string" }, - "description": "The actions to execute when this alarm transitions to the OK state from any other state." + "description": "The actions to execute when this alarm transitions to the ``OK`` state from any other state. Each action is specified as an Amazon Resource Name (ARN)." }, "period": { "type": "integer", - "description": "The period in seconds, over which the statistic is applied." + "description": "The period, in seconds, over which the statistic is applied. This is required for an alarm based on a metric. Valid values are 10, 30, 60, and any multiple of 60.\n For an alarm based on a math expression, you can't specify ``Period``, and instead you use the ``Metrics`` parameter.\n *Minimum:* 10" }, "statistic": { "type": "string", - "description": "The statistic for the metric associated with the alarm, other than percentile." + "description": "The statistic for the metric associated with the alarm, other than percentile. For percentile statistics, use ``ExtendedStatistic``.\n For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both.\n For an alarm based on a math expression, you can't specify ``Statistic``. Instead, you use ``Metrics``." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + } }, "threshold": { "type": "number", - "description": "In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm." + "description": "The value to compare with the specified statistic." }, "thresholdMetricId": { "type": "string", - "description": "In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm." + "description": "In an alarm based on an anomaly detection model, this is the ID of the ``ANOMALY_DETECTION_BAND`` function used as the threshold for the alarm." }, "treatMissingData": { "type": "string", - "description": "Sets how this alarm is to handle missing data points. Valid values are breaching, notBreaching, ignore, and missing." + "description": "Sets how this alarm is to handle missing data points. Valid values are ``breaching``, ``notBreaching``, ``ignore``, and ``missing``. For more information, see [Configuring How Alarms Treat Missing Data](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data) in the *Amazon User Guide*.\n If you omit this parameter, the default behavior of ``missing`` is used." }, "unit": { "type": "string", - "description": "The unit of the metric associated with the alarm." + "description": "The unit of the metric associated with the alarm. Specify this only if you are creating an alarm based on a single metric. Do not specify this if you are specifying a ``Metrics`` array.\n You can specify the following values: 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, or None." } }, "outputs": { @@ -12277,7 +12959,7 @@ "items": { "type": "string" }, - "description": "The list of actions to execute when this alarm transitions into an ALARM state from any other state." + "description": "The list of actions to execute when this alarm transitions into an ALARM state from any other state. Specify each action as an Amazon Resource Name (ARN). For more information about creating alarms and the actions that you can specify, see [PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html) in the *API Reference*." }, "alarmDescription": { "type": "string", @@ -12285,92 +12967,97 @@ }, "alarmName": { "type": "string", - "description": "The name of the alarm.", + "description": "The name of the alarm. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the alarm name. \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.", "replaceOnChanges": true }, "arn": { - "type": "string", - "description": "Amazon Resource Name is a unique name for each resource." + "type": "string" }, "comparisonOperator": { "type": "string", - "description": "The arithmetic operation to use when comparing the specified statistic and threshold." + "description": "The arithmetic operation to use when comparing the specified statistic and threshold. The specified statistic value is used as the first operand." }, "datapointsToAlarm": { "type": "integer", - "description": "The number of datapoints that must be breaching to trigger the alarm." + "description": "The number of datapoints that must be breaching to trigger the alarm. This is used only if you are setting an \"M out of N\" alarm. In that case, this value is the M, and the value that you set for ``EvaluationPeriods`` is the N value. For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*.\n If you omit this parameter, CW uses the same value here that you set for ``EvaluationPeriods``, and the alarm goes to alarm state if that many consecutive periods are breaching." }, "dimensions": { "type": "array", "items": { "$ref": "#/types/aws-native:cloudwatch:AlarmDimension" }, - "description": "The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify Dimensions. Instead, you use Metrics." + "description": "The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify ``Dimensions``. Instead, you use ``Metrics``." }, "evaluateLowSampleCountPercentile": { "type": "string", - "description": "Used only for alarms based on percentiles." + "description": "Used only for alarms based on percentiles. If ``ignore``, the alarm state does not change during periods with too few data points to be statistically significant. If ``evaluate`` or this parameter is not used, the alarm is always evaluated and possibly changes state no matter how many data points are available." }, "evaluationPeriods": { "type": "integer", - "description": "The number of periods over which data is compared to the specified threshold." + "description": "The number of periods over which data is compared to the specified threshold. If you are setting an alarm that requires that a number of consecutive data points be breaching to trigger the alarm, this value specifies that number. If you are setting an \"M out of N\" alarm, this value is the N, and ``DatapointsToAlarm`` is the M.\n For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*." }, "extendedStatistic": { "type": "string", - "description": "The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100." + "description": "The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100.\n For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both.\n For an alarm based on a math expression, you can't specify ``ExtendedStatistic``. Instead, you use ``Metrics``." }, "insufficientDataActions": { "type": "array", "items": { "type": "string" }, - "description": "The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state." + "description": "The actions to execute when this alarm transitions to the ``INSUFFICIENT_DATA`` state from any other state. Each action is specified as an Amazon Resource Name (ARN)." }, "metricName": { "type": "string", - "description": "The name of the metric associated with the alarm." + "description": "The name of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you use ``Metrics`` instead and you can't specify ``MetricName``." }, "metrics": { "type": "array", "items": { "$ref": "#/types/aws-native:cloudwatch:AlarmMetricDataQuery" }, - "description": "An array that enables you to create an alarm based on the result of a metric math expression." + "description": "An array that enables you to create an alarm based on the result of a metric math expression. Each item in the array either retrieves a metric or performs a math expression.\n If you specify the ``Metrics`` parameter, you cannot specify ``MetricName``, ``Dimensions``, ``Period``, ``Namespace``, ``Statistic``, ``ExtendedStatistic``, or ``Unit``." }, "namespace": { "type": "string", - "description": "The namespace of the metric associated with the alarm." + "description": "The namespace of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you can't specify ``Namespace`` and you use ``Metrics`` instead.\n For a list of namespaces for metrics from AWS services, see [Services That Publish Metrics.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html)" }, "okActions": { "type": "array", "items": { "type": "string" }, - "description": "The actions to execute when this alarm transitions to the OK state from any other state." + "description": "The actions to execute when this alarm transitions to the ``OK`` state from any other state. Each action is specified as an Amazon Resource Name (ARN)." }, "period": { "type": "integer", - "description": "The period in seconds, over which the statistic is applied." + "description": "The period, in seconds, over which the statistic is applied. This is required for an alarm based on a metric. Valid values are 10, 30, 60, and any multiple of 60.\n For an alarm based on a math expression, you can't specify ``Period``, and instead you use the ``Metrics`` parameter.\n *Minimum:* 10" }, "statistic": { "type": "string", - "description": "The statistic for the metric associated with the alarm, other than percentile." + "description": "The statistic for the metric associated with the alarm, other than percentile. For percentile statistics, use ``ExtendedStatistic``.\n For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both.\n For an alarm based on a math expression, you can't specify ``Statistic``. Instead, you use ``Metrics``." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + } }, "threshold": { "type": "number", - "description": "In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm." + "description": "The value to compare with the specified statistic." }, "thresholdMetricId": { "type": "string", - "description": "In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm." + "description": "In an alarm based on an anomaly detection model, this is the ID of the ``ANOMALY_DETECTION_BAND`` function used as the threshold for the alarm." }, "treatMissingData": { "type": "string", - "description": "Sets how this alarm is to handle missing data points. Valid values are breaching, notBreaching, ignore, and missing." + "description": "Sets how this alarm is to handle missing data points. Valid values are ``breaching``, ``notBreaching``, ``ignore``, and ``missing``. For more information, see [Configuring How Alarms Treat Missing Data](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data) in the *Amazon User Guide*.\n If you omit this parameter, the default behavior of ``missing`` is used." }, "unit": { "type": "string", - "description": "The unit of the metric associated with the alarm." + "description": "The unit of the metric associated with the alarm. Specify this only if you are creating an alarm based on a single metric. Do not specify this if you are specifying a ``Metrics`` array.\n You can specify the following values: 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, or None." } }, "autoNamingSpec": { @@ -12385,7 +13072,9 @@ ], "irreversibleNames": { "okActions": "OKActions" - } + }, + "tagsProperty": "tags", + "tagsStyle": "keyValueArray" }, "aws-native:cloudwatch:CompositeAlarm": { "cf": "AWS::CloudWatch::CompositeAlarm", @@ -12438,6 +13127,13 @@ "type": "string" }, "description": "The actions to execute when this alarm transitions to the OK state from any other state. Each action is specified as an Amazon Resource Name (ARN)." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "A list of key-value pairs to associate with the composite alarm. You can associate as many as 50 tags with an alarm." } }, "outputs": { @@ -12494,6 +13190,13 @@ "type": "string" }, "description": "The actions to execute when this alarm transitions to the OK state from any other state. Each action is specified as an Amazon Resource Name (ARN)." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "A list of key-value pairs to associate with the composite alarm. You can associate as many as 50 tags with an alarm." } }, "autoNamingSpec": { @@ -12509,7 +13212,9 @@ ], "irreversibleNames": { "okActions": "OKActions" - } + }, + "tagsProperty": "tags", + "tagsStyle": "keyValueArray" }, "aws-native:cloudwatch:MetricStream": { "cf": "AWS::CloudWatch::MetricStream", @@ -12719,6 +13424,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 +13677,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 +14255,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 +14302,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 +14321,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 +14341,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 +14369,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 +16140,8 @@ "deliveryS3KeyPrefix": "DeliveryS3KeyPrefix", "templateS3Uri": "TemplateS3Uri", "templateSsmDocumentDetails": "TemplateSSMDocumentDetails" - } + }, + "tagsProperty": "tags" }, "aws-native:configuration:OrganizationConformancePack": { "cf": "AWS::Config::OrganizationConformancePack", @@ -15355,7 +16234,8 @@ "deliveryS3Bucket": "DeliveryS3Bucket", "deliveryS3KeyPrefix": "DeliveryS3KeyPrefix", "templateS3Uri": "TemplateS3Uri" - } + }, + "tagsProperty": "tags" }, "aws-native:configuration:StoredQuery": { "cf": "AWS::Config::StoredQuery", @@ -16103,6 +16983,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 +17502,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 +17513,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 +17562,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 +17573,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": { @@ -20963,6 +21895,471 @@ "awsId": "Id" } }, + "aws-native:deadline:Farm": { + "cf": "AWS::Deadline::Farm", + "inputs": { + "description": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "kmsKeyArn": { + "type": "string" + } + }, + "outputs": { + "arn": { + "type": "string" + }, + "description": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "farmId": { + "type": "string" + }, + "kmsKeyArn": { + "type": "string", + "replaceOnChanges": true + } + }, + "required": [ + "displayName" + ], + "createOnly": [ + "kmsKeyArn" + ] + }, + "aws-native:deadline:Fleet": { + "cf": "AWS::Deadline::Fleet", + "inputs": { + "configuration": { + "oneOf": [ + { + "$ref": "#/types/aws-native:deadline:FleetConfiguration0Properties" + }, + { + "$ref": "#/types/aws-native:deadline:FleetConfiguration1Properties" + } + ] + }, + "description": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "farmId": { + "type": "string" + }, + "maxWorkerCount": { + "type": "integer" + }, + "minWorkerCount": { + "type": "integer" + }, + "roleArn": { + "type": "string" + } + }, + "outputs": { + "arn": { + "type": "string" + }, + "capabilities": { + "$ref": "#/types/aws-native:deadline:FleetCapabilities" + }, + "configuration": { + "oneOf": [ + { + "$ref": "#/types/aws-native:deadline:FleetConfiguration0Properties" + }, + { + "$ref": "#/types/aws-native:deadline:FleetConfiguration1Properties" + } + ] + }, + "description": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "farmId": { + "type": "string", + "replaceOnChanges": true + }, + "fleetId": { + "type": "string" + }, + "maxWorkerCount": { + "type": "integer" + }, + "minWorkerCount": { + "type": "integer" + }, + "roleArn": { + "type": "string" + }, + "status": { + "$ref": "#/types/aws-native:deadline:FleetStatus" + }, + "workerCount": { + "type": "integer" + } + }, + "required": [ + "configuration", + "displayName", + "maxWorkerCount", + "roleArn" + ], + "createOnly": [ + "farmId" + ] + }, + "aws-native:deadline:LicenseEndpoint": { + "cf": "AWS::Deadline::LicenseEndpoint", + "inputs": { + "securityGroupIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "subnetIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "vpcId": { + "type": "string" + } + }, + "outputs": { + "arn": { + "type": "string" + }, + "dnsName": { + "type": "string" + }, + "licenseEndpointId": { + "type": "string" + }, + "securityGroupIds": { + "type": "array", + "items": { + "type": "string" + }, + "replaceOnChanges": true + }, + "status": { + "$ref": "#/types/aws-native:deadline:LicenseEndpointStatus" + }, + "statusMessage": { + "type": "string" + }, + "subnetIds": { + "type": "array", + "items": { + "type": "string" + }, + "replaceOnChanges": true + }, + "vpcId": { + "type": "string", + "replaceOnChanges": true + } + }, + "required": [ + "securityGroupIds", + "subnetIds", + "vpcId" + ], + "createOnly": [ + "securityGroupIds", + "subnetIds", + "vpcId" + ] + }, + "aws-native:deadline:MeteredProduct": { + "cf": "AWS::Deadline::MeteredProduct", + "inputs": { + "family": { + "type": "string" + }, + "licenseEndpointId": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "productId": { + "type": "string" + }, + "vendor": { + "type": "string" + } + }, + "outputs": { + "arn": { + "type": "string" + }, + "family": { + "type": "string" + }, + "licenseEndpointId": { + "type": "string", + "replaceOnChanges": true + }, + "port": { + "type": "integer" + }, + "productId": { + "type": "string", + "replaceOnChanges": true + }, + "vendor": { + "type": "string" + } + }, + "createOnly": [ + "licenseEndpointId", + "productId" + ] + }, + "aws-native:deadline:Queue": { + "cf": "AWS::Deadline::Queue", + "inputs": { + "allowedStorageProfileIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "defaultBudgetAction": { + "$ref": "#/types/aws-native:deadline:QueueDefaultQueueBudgetAction" + }, + "description": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "farmId": { + "type": "string" + }, + "jobAttachmentSettings": { + "$ref": "#/types/aws-native:deadline:QueueJobAttachmentSettings" + }, + "jobRunAsUser": { + "$ref": "#/types/aws-native:deadline:QueueJobRunAsUser" + }, + "requiredFileSystemLocationNames": { + "type": "array", + "items": { + "type": "string" + } + }, + "roleArn": { + "type": "string" + } + }, + "outputs": { + "allowedStorageProfileIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "arn": { + "type": "string" + }, + "defaultBudgetAction": { + "$ref": "#/types/aws-native:deadline:QueueDefaultQueueBudgetAction" + }, + "description": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "farmId": { + "type": "string", + "replaceOnChanges": true + }, + "jobAttachmentSettings": { + "$ref": "#/types/aws-native:deadline:QueueJobAttachmentSettings" + }, + "jobRunAsUser": { + "$ref": "#/types/aws-native:deadline:QueueJobRunAsUser" + }, + "queueId": { + "type": "string" + }, + "requiredFileSystemLocationNames": { + "type": "array", + "items": { + "type": "string" + } + }, + "roleArn": { + "type": "string" + } + }, + "required": [ + "displayName" + ], + "createOnly": [ + "farmId" + ] + }, + "aws-native:deadline:QueueEnvironment": { + "cf": "AWS::Deadline::QueueEnvironment", + "inputs": { + "farmId": { + "type": "string" + }, + "priority": { + "type": "integer" + }, + "queueId": { + "type": "string" + }, + "template": { + "type": "string" + }, + "templateType": { + "$ref": "#/types/aws-native:deadline:QueueEnvironmentEnvironmentTemplateType" + } + }, + "outputs": { + "farmId": { + "type": "string", + "replaceOnChanges": true + }, + "name": { + "type": "string" + }, + "priority": { + "type": "integer" + }, + "queueEnvironmentId": { + "type": "string" + }, + "queueId": { + "type": "string", + "replaceOnChanges": true + }, + "template": { + "type": "string" + }, + "templateType": { + "$ref": "#/types/aws-native:deadline:QueueEnvironmentEnvironmentTemplateType" + } + }, + "required": [ + "farmId", + "priority", + "queueId", + "template", + "templateType" + ], + "createOnly": [ + "farmId", + "queueId" + ] + }, + "aws-native:deadline:QueueFleetAssociation": { + "cf": "AWS::Deadline::QueueFleetAssociation", + "inputs": { + "farmId": { + "type": "string" + }, + "fleetId": { + "type": "string" + }, + "queueId": { + "type": "string" + } + }, + "outputs": { + "farmId": { + "type": "string", + "replaceOnChanges": true + }, + "fleetId": { + "type": "string", + "replaceOnChanges": true + }, + "queueId": { + "type": "string", + "replaceOnChanges": true + } + }, + "required": [ + "farmId", + "fleetId", + "queueId" + ], + "createOnly": [ + "farmId", + "fleetId", + "queueId" + ] + }, + "aws-native:deadline:StorageProfile": { + "cf": "AWS::Deadline::StorageProfile", + "inputs": { + "displayName": { + "type": "string" + }, + "farmId": { + "type": "string" + }, + "fileSystemLocations": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:deadline:StorageProfileFileSystemLocation" + } + }, + "osFamily": { + "$ref": "#/types/aws-native:deadline:StorageProfileOperatingSystemFamily" + } + }, + "outputs": { + "displayName": { + "type": "string" + }, + "farmId": { + "type": "string", + "replaceOnChanges": true + }, + "fileSystemLocations": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:deadline:StorageProfileFileSystemLocation" + } + }, + "osFamily": { + "$ref": "#/types/aws-native:deadline:StorageProfileOperatingSystemFamily" + }, + "storageProfileId": { + "type": "string" + } + }, + "required": [ + "displayName", + "osFamily" + ], + "createOnly": [ + "farmId" + ] + }, "aws-native:detective:Graph": { "cf": "AWS::Detective::Graph", "inputs": { @@ -22135,12 +23532,18 @@ "authType": { "type": "string" }, + "backupRetentionPeriod": { + "type": "integer" + }, "clusterName": { "type": "string" }, "kmsKeyId": { "type": "string" }, + "preferredBackupWindow": { + "type": "string" + }, "preferredMaintenanceWindow": { "type": "string" }, @@ -22150,6 +23553,9 @@ "shardCount": { "type": "integer" }, + "shardInstanceCount": { + "type": "integer" + }, "subnetIds": { "type": "array", "items": { @@ -22181,6 +23587,9 @@ "type": "string", "replaceOnChanges": true }, + "backupRetentionPeriod": { + "type": "integer" + }, "clusterArn": { "type": "string" }, @@ -22195,6 +23604,9 @@ "type": "string", "replaceOnChanges": true }, + "preferredBackupWindow": { + "type": "string" + }, "preferredMaintenanceWindow": { "type": "string" }, @@ -22204,6 +23616,9 @@ "shardCount": { "type": "integer" }, + "shardInstanceCount": { + "type": "integer" + }, "subnetIds": { "type": "array", "items": { @@ -22449,6 +23864,10 @@ "$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", + "description": "A resource-based policy document that contains permissions to add to the specified table. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html).\n When you attach a resource-based policy while creating a table, the policy creation is *strongly consistent*. For information about the considerations that you should keep in mind while attaching a resource-based policy, see [Resource-based policy considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html)." + }, "sseSpecification": { "$ref": "#/types/aws-native:dynamodb:TableSseSpecification", "description": "Specifies the settings to enable server-side encryption." @@ -22545,6 +23964,10 @@ "$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", + "description": "A resource-based policy document that contains permissions to add to the specified table. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html).\n When you attach a resource-based policy while creating a table, the policy creation is *strongly consistent*. For information about the considerations that you should keep in mind while attaching a resource-based policy, see [Resource-based policy considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html)." + }, "sseSpecification": { "$ref": "#/types/aws-native:dynamodb:TableSseSpecification", "description": "Specifies the settings to enable server-side encryption." @@ -24222,8 +25645,7 @@ }, "outputs": { "internetGatewayId": { - "type": "string", - "description": "ID of internet gateway." + "type": "string" }, "tags": { "type": "array", @@ -25274,14 +26696,14 @@ }, "secondaryPrivateIpAddressCount": { "type": "integer", - "description": "[Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time." + "description": "[Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time." }, "secondaryPrivateIpAddresses": { "type": "array", "items": { "type": "string" }, - "description": "Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time." + "description": "Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time." }, "subnetId": { "type": "string", @@ -25327,14 +26749,14 @@ }, "secondaryPrivateIpAddressCount": { "type": "integer", - "description": "[Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time." + "description": "[Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time." }, "secondaryPrivateIpAddresses": { "type": "array", "items": { "type": "string" }, - "description": "Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time." + "description": "Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time." }, "subnetId": { "type": "string", @@ -26518,11 +27940,11 @@ "inputs": { "cidrIp": { "type": "string", - "description": "The IPv4 address range, in CIDR format.\n You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``).\n For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*." + "description": "The IPv4 address range, in CIDR format.\n You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``.\n For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*." }, "cidrIpv6": { "type": "string", - "description": "The IPv6 address range, in CIDR format.\n You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``).\n For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*." + "description": "The IPv6 address range, in CIDR format.\n You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``.\n For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*." }, "description": { "type": "string", @@ -26530,11 +27952,11 @@ }, "destinationPrefixListId": { "type": "string", - "description": "The prefix list IDs for an AWS service. This is the AWS service that you want to access through a VPC endpoint from instances associated with the security group.\n You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``)." + "description": "The prefix list IDs for an AWS service. This is the AWS service to access through a VPC endpoint from instances associated with the security group.\n You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``." }, "destinationSecurityGroupId": { "type": "string", - "description": "The ID of the security group.\n You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``)." + "description": "The ID of the security group.\n You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``." }, "fromPort": { "type": "integer", @@ -26559,12 +27981,12 @@ }, "cidrIp": { "type": "string", - "description": "The IPv4 address range, in CIDR format.\n You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``).\n For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*.", + "description": "The IPv4 address range, in CIDR format.\n You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``.\n For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*.", "replaceOnChanges": true }, "cidrIpv6": { "type": "string", - "description": "The IPv6 address range, in CIDR format.\n You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``).\n For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*.", + "description": "The IPv6 address range, in CIDR format.\n You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``.\n For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*.", "replaceOnChanges": true }, "description": { @@ -26573,12 +27995,12 @@ }, "destinationPrefixListId": { "type": "string", - "description": "The prefix list IDs for an AWS service. This is the AWS service that you want to access through a VPC endpoint from instances associated with the security group.\n You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``).", + "description": "The prefix list IDs for an AWS service. This is the AWS service to access through a VPC endpoint from instances associated with the security group.\n You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``.", "replaceOnChanges": true }, "destinationSecurityGroupId": { "type": "string", - "description": "The ID of the security group.\n You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``).", + "description": "The ID of the security group.\n You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``.", "replaceOnChanges": true }, "fromPort": { @@ -26849,6 +28271,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 +28308,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 +28316,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 +28354,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 +28396,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 +28408,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 +28442,7 @@ "vpcId" ], "writeOnly": [ + "enableLniAtDeviceIndex", "ipv4IpamPoolId", "ipv4NetmaskLength", "ipv6IpamPoolId", @@ -27809,22 +29240,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 +29267,7 @@ "createOnly": [ "transitGatewayAttachmentId", "transitGatewayRouteTableId" - ], - "irreversibleNames": { - "awsId": "Id" - } + ] }, "aws-native:ec2:TransitGatewayVpcAttachment": { "cf": "AWS::EC2::TransitGatewayVpcAttachment", @@ -30141,7 +31570,7 @@ }, "cpu": { "type": "string", - "description": "The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter.\n The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.\n + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)\n + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)\n + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)\n + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)\n + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)\n + 8192 (8 vCPU) - Available ``memory`` va" + "description": "The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter.\n The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.\n + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)\n + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)\n + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)\n + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)\n + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)\n + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments\n This option requires Linux platform ``1.4.0`` or later.\n + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments\n This option requires Linux platform ``1.4.0`` or later." }, "ephemeralStorage": { "$ref": "#/types/aws-native:ecs:TaskDefinitionEphemeralStorage", @@ -30164,19 +31593,19 @@ }, "ipcMode": { "type": "string", - "description": "The IPC resource namespace to use for the containers in the task. The valid values are ``host``, ``task``, or ``none``. If ``host`` is specified, then all containers within the tasks that specified the ``host`` IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If ``task`` is specified, all containers within the specified task share the same IPC resources. If ``none`` is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see [IPC settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#ipc-settings---ipc) in the *Docker run reference*.\n If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more inform" + "description": "The IPC resource namespace to use for the containers in the task. The valid values are ``host``, ``task``, or ``none``. If ``host`` is specified, then all containers within the tasks that specified the ``host`` IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If ``task`` is specified, all containers within the specified task share the same IPC resources. If ``none`` is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see [IPC settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#ipc-settings---ipc) in the *Docker run reference*.\n If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/).\n If you are setting namespaced kernel parameters using ``systemControls`` for the containers in the task, the following will apply to your IPC resource namespace. For more information, see [System Controls](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html) in the *Amazon Elastic Container Service Developer Guide*.\n + For tasks that use the ``host`` IPC mode, IPC namespace related ``systemControls`` are not supported.\n + For tasks that use the ``task`` IPC mode, IPC namespace related ``systemControls`` will apply to all containers within a task.\n \n This parameter is not supported for Windows containers or tasks run on FARGATElong." }, "memory": { "type": "string", - "description": "The amount (in MiB) of memory used by the task.\n If your tasks runs on Amazon EC2 instances, you must specify either a task-level memory value or a container-level memory value. This field is optional and any value can be used. If a task-level memory value is specified, the container-level memory value is optional. For more information regarding container-level memory and memory reservation, see [ContainerDefinition](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html).\n If your tasks runs on FARGATElong, this field is required. You must use one of the following values. The value you choose determines your range of valid values for the ``cpu`` parameter.\n + 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available ``cpu`` values: 256 (.25 vCPU)\n + 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available ``cpu`` values: 512 (.5 vCPU)\n + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` va" + "description": "The amount (in MiB) of memory used by the task.\n If your tasks runs on Amazon EC2 instances, you must specify either a task-level memory value or a container-level memory value. This field is optional and any value can be used. If a task-level memory value is specified, the container-level memory value is optional. For more information regarding container-level memory and memory reservation, see [ContainerDefinition](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html).\n If your tasks runs on FARGATElong, this field is required. You must use one of the following values. The value you choose determines your range of valid values for the ``cpu`` parameter.\n + 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available ``cpu`` values: 256 (.25 vCPU)\n + 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available ``cpu`` values: 512 (.5 vCPU)\n + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` values: 1024 (1 vCPU)\n + Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 2048 (2 vCPU)\n + Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 4096 (4 vCPU)\n + Between 16 GB and 60 GB in 4 GB increments - Available ``cpu`` values: 8192 (8 vCPU)\n This option requires Linux platform ``1.4.0`` or later.\n + Between 32GB and 120 GB in 8 GB increments - Available ``cpu`` values: 16384 (16 vCPU)\n This option requires Linux platform ``1.4.0`` or later." }, "networkMode": { "type": "string", - "description": "The Docker networking mode to use for the containers in the task. The valid values are ``none``, ``bridge``, ``awsvpc``, and ``host``. If no network mode is specified, the default is ``bridge``.\n For Amazon ECS tasks on Fargate, the ``awsvpc`` network mode is required. For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, ``\u003cdefault\u003e`` or ``awsvpc`` can be used. If the network mode is set to ``none``, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The ``host`` and ``awsvpc`` network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the ``bridge`` mode.\n With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elasti" + "description": "The Docker networking mode to use for the containers in the task. The valid values are ``none``, ``bridge``, ``awsvpc``, and ``host``. If no network mode is specified, the default is ``bridge``.\n For Amazon ECS tasks on Fargate, the ``awsvpc`` network mode is required. For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, ``\u003cdefault\u003e`` or ``awsvpc`` can be used. If the network mode is set to ``none``, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The ``host`` and ``awsvpc`` network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the ``bridge`` mode.\n With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elastic network interface port (for the ``awsvpc`` network mode), so you cannot take advantage of dynamic host port mappings. \n When using the ``host`` network mode, you should not run containers using the root user (UID 0). It is considered best practice to use a non-root user.\n If the network mode is ``awsvpc``, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration value when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*.\n If the network mode is ``host``, you cannot run multiple instantiations of the same task on a single container instance when port mappings are used.\n For more information, see [Network settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#network-settings) in the *Docker run reference*." }, "pidMode": { "type": "string", - "description": "The process namespace to use for the containers in the task. The valid values are ``host`` or ``task``. On Fargate for Linux containers, the only valid value is ``task``. For example, monitoring sidecars might need ``pidMode`` to access information about other containers running in the same task.\n If ``host`` is specified, all containers within the tasks that specified the ``host`` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance.\n If ``task`` is specified, all containers within the specified task share the same process namespace.\n If no value is specified, the default is a private namespace for each container. For more information, see [PID settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#pid-settings---pid) in the *Docker run reference*.\n If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://doc" + "description": "The process namespace to use for the containers in the task. The valid values are ``host`` or ``task``. On Fargate for Linux containers, the only valid value is ``task``. For example, monitoring sidecars might need ``pidMode`` to access information about other containers running in the same task.\n If ``host`` is specified, all containers within the tasks that specified the ``host`` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance.\n If ``task`` is specified, all containers within the specified task share the same process namespace.\n If no value is specified, the default is a private namespace for each container. For more information, see [PID settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#pid-settings---pid) in the *Docker run reference*.\n If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/).\n This parameter is not supported for Windows containers.\n This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate." }, "placementConstraints": { "type": "array", @@ -30205,7 +31634,7 @@ "items": { "$ref": "#/types/aws-native:index:Tag" }, - "description": "The metadata that you apply to the task definition to help you categorize and organize them. Each tag consists of a key and an optional value. You define both of them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values" + "description": "The metadata that you apply to the task definition to help you categorize and organize them. Each tag consists of a key and an optional value. You define both of them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit." }, "taskRoleArn": { "type": "string", @@ -30230,7 +31659,7 @@ }, "cpu": { "type": "string", - "description": "The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter.\n The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.\n + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)\n + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)\n + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)\n + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)\n + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)\n + 8192 (8 vCPU) - Available ``memory`` va", + "description": "The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter.\n The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.\n + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)\n + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)\n + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)\n + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)\n + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)\n + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments\n This option requires Linux platform ``1.4.0`` or later.\n + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments\n This option requires Linux platform ``1.4.0`` or later.", "replaceOnChanges": true }, "ephemeralStorage": { @@ -30258,22 +31687,22 @@ }, "ipcMode": { "type": "string", - "description": "The IPC resource namespace to use for the containers in the task. The valid values are ``host``, ``task``, or ``none``. If ``host`` is specified, then all containers within the tasks that specified the ``host`` IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If ``task`` is specified, all containers within the specified task share the same IPC resources. If ``none`` is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see [IPC settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#ipc-settings---ipc) in the *Docker run reference*.\n If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more inform", + "description": "The IPC resource namespace to use for the containers in the task. The valid values are ``host``, ``task``, or ``none``. If ``host`` is specified, then all containers within the tasks that specified the ``host`` IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If ``task`` is specified, all containers within the specified task share the same IPC resources. If ``none`` is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see [IPC settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#ipc-settings---ipc) in the *Docker run reference*.\n If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/).\n If you are setting namespaced kernel parameters using ``systemControls`` for the containers in the task, the following will apply to your IPC resource namespace. For more information, see [System Controls](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html) in the *Amazon Elastic Container Service Developer Guide*.\n + For tasks that use the ``host`` IPC mode, IPC namespace related ``systemControls`` are not supported.\n + For tasks that use the ``task`` IPC mode, IPC namespace related ``systemControls`` will apply to all containers within a task.\n \n This parameter is not supported for Windows containers or tasks run on FARGATElong.", "replaceOnChanges": true }, "memory": { "type": "string", - "description": "The amount (in MiB) of memory used by the task.\n If your tasks runs on Amazon EC2 instances, you must specify either a task-level memory value or a container-level memory value. This field is optional and any value can be used. If a task-level memory value is specified, the container-level memory value is optional. For more information regarding container-level memory and memory reservation, see [ContainerDefinition](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html).\n If your tasks runs on FARGATElong, this field is required. You must use one of the following values. The value you choose determines your range of valid values for the ``cpu`` parameter.\n + 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available ``cpu`` values: 256 (.25 vCPU)\n + 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available ``cpu`` values: 512 (.5 vCPU)\n + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` va", + "description": "The amount (in MiB) of memory used by the task.\n If your tasks runs on Amazon EC2 instances, you must specify either a task-level memory value or a container-level memory value. This field is optional and any value can be used. If a task-level memory value is specified, the container-level memory value is optional. For more information regarding container-level memory and memory reservation, see [ContainerDefinition](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html).\n If your tasks runs on FARGATElong, this field is required. You must use one of the following values. The value you choose determines your range of valid values for the ``cpu`` parameter.\n + 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available ``cpu`` values: 256 (.25 vCPU)\n + 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available ``cpu`` values: 512 (.5 vCPU)\n + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` values: 1024 (1 vCPU)\n + Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 2048 (2 vCPU)\n + Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 4096 (4 vCPU)\n + Between 16 GB and 60 GB in 4 GB increments - Available ``cpu`` values: 8192 (8 vCPU)\n This option requires Linux platform ``1.4.0`` or later.\n + Between 32GB and 120 GB in 8 GB increments - Available ``cpu`` values: 16384 (16 vCPU)\n This option requires Linux platform ``1.4.0`` or later.", "replaceOnChanges": true }, "networkMode": { "type": "string", - "description": "The Docker networking mode to use for the containers in the task. The valid values are ``none``, ``bridge``, ``awsvpc``, and ``host``. If no network mode is specified, the default is ``bridge``.\n For Amazon ECS tasks on Fargate, the ``awsvpc`` network mode is required. For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, ``\u003cdefault\u003e`` or ``awsvpc`` can be used. If the network mode is set to ``none``, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The ``host`` and ``awsvpc`` network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the ``bridge`` mode.\n With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elasti", + "description": "The Docker networking mode to use for the containers in the task. The valid values are ``none``, ``bridge``, ``awsvpc``, and ``host``. If no network mode is specified, the default is ``bridge``.\n For Amazon ECS tasks on Fargate, the ``awsvpc`` network mode is required. For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, ``\u003cdefault\u003e`` or ``awsvpc`` can be used. If the network mode is set to ``none``, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The ``host`` and ``awsvpc`` network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the ``bridge`` mode.\n With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elastic network interface port (for the ``awsvpc`` network mode), so you cannot take advantage of dynamic host port mappings. \n When using the ``host`` network mode, you should not run containers using the root user (UID 0). It is considered best practice to use a non-root user.\n If the network mode is ``awsvpc``, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration value when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*.\n If the network mode is ``host``, you cannot run multiple instantiations of the same task on a single container instance when port mappings are used.\n For more information, see [Network settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#network-settings) in the *Docker run reference*.", "replaceOnChanges": true }, "pidMode": { "type": "string", - "description": "The process namespace to use for the containers in the task. The valid values are ``host`` or ``task``. On Fargate for Linux containers, the only valid value is ``task``. For example, monitoring sidecars might need ``pidMode`` to access information about other containers running in the same task.\n If ``host`` is specified, all containers within the tasks that specified the ``host`` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance.\n If ``task`` is specified, all containers within the specified task share the same process namespace.\n If no value is specified, the default is a private namespace for each container. For more information, see [PID settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#pid-settings---pid) in the *Docker run reference*.\n If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://doc", + "description": "The process namespace to use for the containers in the task. The valid values are ``host`` or ``task``. On Fargate for Linux containers, the only valid value is ``task``. For example, monitoring sidecars might need ``pidMode`` to access information about other containers running in the same task.\n If ``host`` is specified, all containers within the tasks that specified the ``host`` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance.\n If ``task`` is specified, all containers within the specified task share the same process namespace.\n If no value is specified, the default is a private namespace for each container. For more information, see [PID settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#pid-settings---pid) in the *Docker run reference*.\n If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/).\n This parameter is not supported for Windows containers.\n This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate.", "replaceOnChanges": true }, "placementConstraints": { @@ -30307,7 +31736,7 @@ "items": { "$ref": "#/types/aws-native:index:Tag" }, - "description": "The metadata that you apply to the task definition to help you categorize and organize them. Each tag consists of a key and an optional value. You define both of them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values" + "description": "The metadata that you apply to the task definition to help you categorize and organize them. Each tag consists of a key and an optional value. You define both of them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit." }, "taskDefinitionArn": { "type": "string" @@ -33805,7 +35234,6 @@ "required": [ "idMappingTechniques", "inputSourceConfig", - "outputSourceConfig", "roleArn" ], "createOnly": [ @@ -33814,6 +35242,97 @@ "tagsProperty": "tags", "tagsStyle": "keyValueArray" }, + "aws-native:entityresolution:IdNamespace": { + "cf": "AWS::EntityResolution::IdNamespace", + "inputs": { + "description": { + "type": "string" + }, + "idMappingWorkflowProperties": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:entityresolution:IdNamespaceIdMappingWorkflowProperties" + } + }, + "idNamespaceName": { + "type": "string" + }, + "inputSourceConfig": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:entityresolution:IdNamespaceInputSource" + } + }, + "roleArn": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + } + }, + "type": { + "$ref": "#/types/aws-native:entityresolution:IdNamespaceType" + } + }, + "outputs": { + "createdAt": { + "type": "string", + "description": "The date and time when the IdNamespace was created" + }, + "description": { + "type": "string" + }, + "idMappingWorkflowProperties": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:entityresolution:IdNamespaceIdMappingWorkflowProperties" + } + }, + "idNamespaceArn": { + "type": "string", + "description": "The arn associated with the IdNamespace" + }, + "idNamespaceName": { + "type": "string", + "replaceOnChanges": true + }, + "inputSourceConfig": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:entityresolution:IdNamespaceInputSource" + } + }, + "roleArn": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + } + }, + "type": { + "$ref": "#/types/aws-native:entityresolution:IdNamespaceType" + }, + "updatedAt": { + "type": "string", + "description": "The date and time when the IdNamespace was updated" + } + }, + "autoNamingSpec": { + "sdkName": "idNamespaceName" + }, + "required": [ + "type" + ], + "createOnly": [ + "idNamespaceName" + ], + "tagsProperty": "tags", + "tagsStyle": "keyValueArray" + }, "aws-native:entityresolution:MatchingWorkflow": { "cf": "AWS::EntityResolution::MatchingWorkflow", "inputs": { @@ -33909,6 +35428,71 @@ "tagsProperty": "tags", "tagsStyle": "keyValueArray" }, + "aws-native:entityresolution:PolicyStatement": { + "cf": "AWS::EntityResolution::PolicyStatement", + "inputs": { + "action": { + "type": "array", + "items": { + "type": "string" + } + }, + "arn": { + "type": "string" + }, + "condition": { + "type": "string" + }, + "effect": { + "$ref": "#/types/aws-native:entityresolution:PolicyStatementStatementEffect" + }, + "principal": { + "type": "array", + "items": { + "type": "string" + } + }, + "statementId": { + "type": "string" + } + }, + "outputs": { + "action": { + "type": "array", + "items": { + "type": "string" + } + }, + "arn": { + "type": "string", + "replaceOnChanges": true + }, + "condition": { + "type": "string" + }, + "effect": { + "$ref": "#/types/aws-native:entityresolution:PolicyStatementStatementEffect" + }, + "principal": { + "type": "array", + "items": { + "type": "string" + } + }, + "statementId": { + "type": "string", + "replaceOnChanges": true + } + }, + "required": [ + "arn", + "statementId" + ], + "createOnly": [ + "arn", + "statementId" + ] + }, "aws-native:entityresolution:SchemaMapping": { "cf": "AWS::EntityResolution::SchemaMapping", "inputs": { @@ -36776,7 +38360,6 @@ "applyCapacity", "buildId", "certificateConfiguration", - "certificateType", "computeType", "ec2InstanceType", "fleetType", @@ -36804,7 +38387,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 +38414,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 +38433,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 +38450,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 +38481,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 +38500,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 +40739,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 +40795,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": { @@ -46052,6 +47627,63 @@ "tagsProperty": "tags", "tagsStyle": "keyValueArray" }, + "aws-native:ivs:EncoderConfiguration": { + "cf": "AWS::IVS::EncoderConfiguration", + "inputs": { + "name": { + "type": "string", + "description": "Encoder configuration name." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An array of key-value pairs to apply to this resource." + }, + "video": { + "$ref": "#/types/aws-native:ivs:VideoProperties", + "description": "Video configuration. Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps" + } + }, + "outputs": { + "arn": { + "type": "string", + "description": "Encoder configuration identifier." + }, + "name": { + "type": "string", + "description": "Encoder configuration name.", + "replaceOnChanges": true + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An array of key-value pairs to apply to this resource." + }, + "video": { + "$ref": "#/types/aws-native:ivs:VideoProperties", + "description": "Video configuration. Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps", + "replaceOnChanges": true + } + }, + "autoNamingSpec": { + "sdkName": "name", + "maxLength": 128 + }, + "createOnly": [ + "name", + "video", + "video/Bitrate", + "video/Framerate", + "video/Height", + "video/Width" + ], + "tagsProperty": "tags", + "tagsStyle": "keyValueArray" + }, "aws-native:ivs:PlaybackKeyPair": { "cf": "AWS::IVS::PlaybackKeyPair", "inputs": { @@ -46112,6 +47744,85 @@ "tagsProperty": "tags", "tagsStyle": "keyValueArray" }, + "aws-native:ivs:PlaybackRestrictionPolicy": { + "cf": "AWS::IVS::PlaybackRestrictionPolicy", + "inputs": { + "allowedCountries": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of country codes that control geoblocking restriction. Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries (an empty array)." + }, + "allowedOrigins": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of origin sites that control CORS restriction. Allowed values are the same as valid values of the Origin header defined at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin" + }, + "enableStrictOriginEnforcement": { + "type": "boolean", + "description": "Whether channel playback is constrained by origin site." + }, + "name": { + "type": "string", + "description": "Playback-restriction-policy name." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An array of key-value pairs to apply to this resource." + } + }, + "outputs": { + "allowedCountries": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of country codes that control geoblocking restriction. Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries (an empty array)." + }, + "allowedOrigins": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of origin sites that control CORS restriction. Allowed values are the same as valid values of the Origin header defined at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin" + }, + "arn": { + "type": "string", + "description": "Playback-restriction-policy identifier." + }, + "enableStrictOriginEnforcement": { + "type": "boolean", + "description": "Whether channel playback is constrained by origin site." + }, + "name": { + "type": "string", + "description": "Playback-restriction-policy name." + }, + "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", + "maxLength": 128 + }, + "required": [ + "allowedCountries", + "allowedOrigins" + ], + "tagsProperty": "tags", + "tagsStyle": "keyValueArray" + }, "aws-native:ivs:RecordingConfiguration": { "cf": "AWS::IVS::RecordingConfiguration", "inputs": { @@ -46247,6 +47958,64 @@ "tagsProperty": "tags", "tagsStyle": "keyValueArray" }, + "aws-native:ivs:StorageConfiguration": { + "cf": "AWS::IVS::StorageConfiguration", + "inputs": { + "name": { + "type": "string", + "description": "Storage Configuration Name." + }, + "s3": { + "$ref": "#/types/aws-native:ivs:StorageConfigurationS3StorageConfiguration" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "A list of key-value pairs that contain metadata for the asset model." + } + }, + "outputs": { + "arn": { + "type": "string", + "description": "Storage Configuration ARN is automatically generated on creation and assigned as the unique identifier." + }, + "name": { + "type": "string", + "description": "Storage Configuration Name.", + "replaceOnChanges": true + }, + "s3": { + "$ref": "#/types/aws-native:ivs:StorageConfigurationS3StorageConfiguration", + "replaceOnChanges": true + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "A list of key-value pairs that contain metadata for the asset model." + } + }, + "autoNamingSpec": { + "sdkName": "name", + "maxLength": 128 + }, + "required": [ + "s3" + ], + "createOnly": [ + "name", + "s3", + "s3/BucketName" + ], + "irreversibleNames": { + "s3": "S3" + }, + "tagsProperty": "tags", + "tagsStyle": "keyValueArray" + }, "aws-native:ivs:StreamKey": { "cf": "AWS::IVS::StreamKey", "inputs": { @@ -46596,6 +48365,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 +53387,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 +53497,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 +53535,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 +53646,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 +53672,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": { @@ -54276,6 +56198,13 @@ "aws-native:mediatailor:Channel": { "cf": "AWS::MediaTailor::Channel", "inputs": { + "audiences": { + "type": "array", + "items": { + "type": "string" + }, + "description": "\u003cp\u003eThe list of audiences defined in channel.\u003c/p\u003e" + }, "channelName": { "type": "string" }, @@ -54314,6 +56243,13 @@ "type": "string", "description": "\u003cp\u003eThe ARN of the channel.\u003c/p\u003e" }, + "audiences": { + "type": "array", + "items": { + "type": "string" + }, + "description": "\u003cp\u003eThe list of audiences defined in channel.\u003c/p\u003e" + }, "channelName": { "type": "string", "replaceOnChanges": true @@ -62904,6 +64840,10 @@ "type": "string", "description": "The name of your CEV. The name format is 19.customized_string . For example, a valid name is 19.my_cev1. This setting is required for RDS Custom for Oracle, but optional for Amazon RDS. The combination of Engine and EngineVersion is unique per customer per Region." }, + "imageId": { + "type": "string", + "description": "The identifier of Amazon Machine Image (AMI) used for CEV." + }, "kmsKeyId": { "type": "string", "description": "The AWS KMS key identifier for an encrypted CEV. A symmetric KMS key is required for RDS Custom, but optional for Amazon RDS." @@ -62912,6 +64852,10 @@ "type": "string", "description": "The CEV manifest, which is a JSON document that describes the installation .zip files stored in Amazon S3. Specify the name/value pairs in a file or a quoted string. RDS Custom applies the patches in the order in which they are listed." }, + "sourceCustomDbEngineVersionIdentifier": { + "type": "string", + "description": "The identifier of the source custom engine version." + }, "status": { "$ref": "#/types/aws-native:rds:CustomDbEngineVersionStatus", "description": "The availability status to be assigned to the CEV." @@ -62922,6 +64866,10 @@ "$ref": "#/types/aws-native:index:Tag" }, "description": "An array of key-value pairs to apply to this resource." + }, + "useAwsProvidedLatestImage": { + "type": "boolean", + "description": "A value that indicates whether AWS provided latest image is applied automatically to the Custom Engine Version. By default, AWS provided latest image is applied automatically. This value is only applied on create." } }, "outputs": { @@ -62953,6 +64901,11 @@ "description": "The name of your CEV. The name format is 19.customized_string . For example, a valid name is 19.my_cev1. This setting is required for RDS Custom for Oracle, but optional for Amazon RDS. The combination of Engine and EngineVersion is unique per customer per Region.", "replaceOnChanges": true }, + "imageId": { + "type": "string", + "description": "The identifier of Amazon Machine Image (AMI) used for CEV.", + "replaceOnChanges": true + }, "kmsKeyId": { "type": "string", "description": "The AWS KMS key identifier for an encrypted CEV. A symmetric KMS key is required for RDS Custom, but optional for Amazon RDS.", @@ -62963,6 +64916,11 @@ "description": "The CEV manifest, which is a JSON document that describes the installation .zip files stored in Amazon S3. Specify the name/value pairs in a file or a quoted string. RDS Custom applies the patches in the order in which they are listed.", "replaceOnChanges": true }, + "sourceCustomDbEngineVersionIdentifier": { + "type": "string", + "description": "The identifier of the source custom engine version.", + "replaceOnChanges": true + }, "status": { "$ref": "#/types/aws-native:rds:CustomDbEngineVersionStatus", "description": "The availability status to be assigned to the CEV." @@ -62973,10 +64931,14 @@ "$ref": "#/types/aws-native:index:Tag" }, "description": "An array of key-value pairs to apply to this resource." + }, + "useAwsProvidedLatestImage": { + "type": "boolean", + "description": "A value that indicates whether AWS provided latest image is applied automatically to the Custom Engine Version. By default, AWS provided latest image is applied automatically. This value is only applied on create.", + "replaceOnChanges": true } }, "required": [ - "databaseInstallationFilesS3BucketName", "engine", "engineVersion" ], @@ -62985,11 +64947,16 @@ "databaseInstallationFilesS3Prefix", "engine", "engineVersion", + "imageId", "kmsKeyId", - "manifest" + "manifest", + "sourceCustomDbEngineVersionIdentifier", + "useAwsProvidedLatestImage" ], "writeOnly": [ - "manifest" + "manifest", + "sourceCustomDbEngineVersionIdentifier", + "useAwsProvidedLatestImage" ], "irreversibleNames": { "databaseInstallationFilesS3BucketName": "DatabaseInstallationFilesS3BucketName", @@ -65001,6 +66968,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 +67011,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 +67061,6 @@ ], "createOnly": [ "additionalEncryptionContext", - "integrationName", "kmsKeyId", "sourceArn", "targetArn" @@ -67285,10 +69266,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 +69293,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", @@ -68270,7 +70245,7 @@ "items": { "$ref": "#/types/aws-native:route53:HostedZoneVpc" }, - "description": "*Private hosted zones:* A complex type that contains information about the VPCs that are associated with the specified hosted zone.\n For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``." + "description": "*Private hosted zones:* A complex type that contains information about the VPCs that are associated with the specified hosted zone.\n For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``." } }, "outputs": { @@ -68308,7 +70283,7 @@ "items": { "$ref": "#/types/aws-native:route53:HostedZoneVpc" }, - "description": "*Private hosted zones:* A complex type that contains information about the VPCs that are associated with the specified hosted zone.\n For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``." + "description": "*Private hosted zones:* A complex type that contains information about the VPCs that are associated with the specified hosted zone.\n For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``." } }, "autoNamingSpec": { @@ -70968,6 +72943,10 @@ "type": "string", "description": "The Name of the AppImageConfig." }, + "codeEditorAppImageConfig": { + "$ref": "#/types/aws-native:sagemaker:AppImageConfigCodeEditorAppImageConfig", + "description": "The CodeEditorAppImageConfig." + }, "jupyterLabAppImageConfig": { "$ref": "#/types/aws-native:sagemaker:AppImageConfigJupyterLabAppImageConfig", "description": "The JupyterLabAppImageConfig." @@ -70994,6 +72973,10 @@ "description": "The Name of the AppImageConfig.", "replaceOnChanges": true }, + "codeEditorAppImageConfig": { + "$ref": "#/types/aws-native:sagemaker:AppImageConfigCodeEditorAppImageConfig", + "description": "The CodeEditorAppImageConfig." + }, "jupyterLabAppImageConfig": { "$ref": "#/types/aws-native:sagemaker:AppImageConfigJupyterLabAppImageConfig", "description": "The JupyterLabAppImageConfig." @@ -73553,6 +75536,37 @@ "tagsProperty": "tags", "tagsStyle": "stringMap" }, + "aws-native:securityhub:DelegatedAdmin": { + "cf": "AWS::SecurityHub::DelegatedAdmin", + "inputs": { + "adminAccountId": { + "type": "string", + "description": "The Amazon Web Services account identifier of the account to designate as the Security Hub administrator account" + } + }, + "outputs": { + "adminAccountId": { + "type": "string", + "description": "The Amazon Web Services account identifier of the account to designate as the Security Hub administrator account", + "replaceOnChanges": true + }, + "delegatedAdminIdentifier": { + "type": "string", + "description": "The identifier of the DelegatedAdmin being created and assigned as the unique identifier" + }, + "status": { + "$ref": "#/types/aws-native:securityhub:DelegatedAdminStatus", + "description": "The current status of the Security Hub administrator account. Indicates whether the account is currently enabled as a Security Hub administrator" + } + }, + "required": [ + "adminAccountId" + ], + "createOnly": [ + "adminAccountId" + ], + "tagsProperty": "tags" + }, "aws-native:securityhub:Hub": { "cf": "AWS::SecurityHub::Hub", "inputs": { @@ -73612,6 +75626,77 @@ "tagsProperty": "tags", "tagsStyle": "stringMap" }, + "aws-native:securityhub:Insight": { + "cf": "AWS::SecurityHub::Insight", + "inputs": { + "filters": { + "$ref": "#/types/aws-native:securityhub:InsightAwsSecurityFindingFilters", + "description": "One or more attributes used to filter the findings included in the insight" + }, + "groupByAttribute": { + "type": "string", + "description": "The grouping attribute for the insight's findings" + }, + "name": { + "type": "string", + "description": "The name of a Security Hub insight" + } + }, + "outputs": { + "filters": { + "$ref": "#/types/aws-native:securityhub:InsightAwsSecurityFindingFilters", + "description": "One or more attributes used to filter the findings included in the insight" + }, + "groupByAttribute": { + "type": "string", + "description": "The grouping attribute for the insight's findings" + }, + "insightArn": { + "type": "string", + "description": "The ARN of a Security Hub insight" + }, + "name": { + "type": "string", + "description": "The name of a Security Hub insight" + } + }, + "autoNamingSpec": { + "sdkName": "name", + "minLength": 1, + "maxLength": 128 + }, + "required": [ + "filters", + "groupByAttribute" + ] + }, + "aws-native:securityhub:ProductSubscription": { + "cf": "AWS::SecurityHub::ProductSubscription", + "inputs": { + "productArn": { + "type": "string", + "description": "The generic ARN of the product being subscribed to" + } + }, + "outputs": { + "productArn": { + "type": "string", + "description": "The generic ARN of the product being subscribed to", + "replaceOnChanges": true + }, + "productSubscriptionArn": { + "type": "string", + "description": "The ARN of the product subscription for the account" + } + }, + "required": [ + "productArn" + ], + "createOnly": [ + "productArn" + ], + "tagsProperty": "tags" + }, "aws-native:securityhub:Standard": { "cf": "AWS::SecurityHub::Standard", "inputs": { @@ -73652,6 +75737,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": { @@ -75545,7 +77883,7 @@ }, "name": { "type": "string", - "description": "The name of the parameter.\n The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName``" + "description": "The name of the parameter.\n The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName``" }, "policies": { "type": "string", @@ -75586,7 +77924,7 @@ }, "name": { "type": "string", - "description": "The name of the parameter.\n The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName``", + "description": "The name of the parameter.\n The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName``", "replaceOnChanges": true }, "policies": { @@ -84911,6 +87249,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 +88765,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 +91586,462 @@ } } }, + "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:bedrock:DataSourceChunkingConfiguration": { + "type": "object", + "properties": { + "chunkingStrategy": { + "$ref": "#/types/aws-native:bedrock:DataSourceChunkingStrategy" + }, + "fixedSizeChunkingConfiguration": { + "$ref": "#/types/aws-native:bedrock:DataSourceFixedSizeChunkingConfiguration" + } + } + }, + "aws-native:bedrock:DataSourceChunkingStrategy": { + "type": "string" + }, + "aws-native:bedrock:DataSourceConfiguration": { + "type": "object", + "properties": { + "s3Configuration": { + "$ref": "#/types/aws-native:bedrock:DataSourceS3DataSourceConfiguration" + }, + "type": { + "$ref": "#/types/aws-native:bedrock:DataSourceType" + } + }, + "irreversibleNames": { + "s3Configuration": "S3Configuration" + } + }, + "aws-native:bedrock:DataSourceFixedSizeChunkingConfiguration": { + "type": "object", + "properties": { + "maxTokens": { + "type": "integer", + "description": "The maximum number of tokens to include in a chunk." + }, + "overlapPercentage": { + "type": "integer", + "description": "The percentage of overlap between adjacent chunks of a data source." + } + } + }, + "aws-native:bedrock:DataSourceS3DataSourceConfiguration": { + "type": "object", + "properties": { + "bucketArn": { + "type": "string", + "description": "The ARN of the bucket that contains the data source." + }, + "inclusionPrefixes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of S3 prefixes that define the object containing the data sources." + } + } + }, + "aws-native:bedrock:DataSourceServerSideEncryptionConfiguration": { + "type": "object", + "properties": { + "kmsKeyArn": { + "type": "string", + "description": "The ARN of the AWS KMS key used to encrypt the resource." + } + } + }, + "aws-native:bedrock:DataSourceStatus": { + "type": "string" + }, + "aws-native:bedrock:DataSourceType": { + "type": "string" + }, + "aws-native:bedrock:DataSourceVectorIngestionConfiguration": { + "type": "object", + "properties": { + "chunkingConfiguration": { + "$ref": "#/types/aws-native:bedrock:DataSourceChunkingConfiguration" + } + } + }, + "aws-native:bedrock:KnowledgeBaseConfiguration": { + "type": "object", + "properties": { + "type": { + "$ref": "#/types/aws-native:bedrock:KnowledgeBaseType" + }, + "vectorKnowledgeBaseConfiguration": { + "$ref": "#/types/aws-native:bedrock:KnowledgeBaseVectorKnowledgeBaseConfiguration" + } + } + }, + "aws-native:bedrock:KnowledgeBaseOpenSearchServerlessConfiguration": { + "type": "object", + "properties": { + "collectionArn": { + "type": "string", + "description": "The ARN of the OpenSearch Service vector store." + }, + "fieldMapping": { + "$ref": "#/types/aws-native:bedrock:KnowledgeBaseOpenSearchServerlessFieldMapping" + }, + "vectorIndexName": { + "type": "string", + "description": "The name of the vector store." + } + } + }, + "aws-native:bedrock:KnowledgeBaseOpenSearchServerlessFieldMapping": { + "type": "object", + "properties": { + "metadataField": { + "type": "string", + "description": "The name of the field in which Amazon Bedrock stores metadata about the vector store." + }, + "textField": { + "type": "string", + "description": "The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose." + }, + "vectorField": { + "type": "string", + "description": "The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources." + } + } + }, + "aws-native:bedrock:KnowledgeBasePineconeConfiguration": { + "type": "object", + "properties": { + "connectionString": { + "type": "string", + "description": "The endpoint URL for your index management page." + }, + "credentialsSecretArn": { + "type": "string", + "description": "The ARN of the secret that you created in AWS Secrets Manager that is linked to your Pinecone API key." + }, + "fieldMapping": { + "$ref": "#/types/aws-native:bedrock:KnowledgeBasePineconeFieldMapping" + }, + "namespace": { + "type": "string", + "description": "The namespace to be used to write new data to your database." + } + } + }, + "aws-native:bedrock:KnowledgeBasePineconeFieldMapping": { + "type": "object", + "properties": { + "metadataField": { + "type": "string", + "description": "The name of the field in which Amazon Bedrock stores metadata about the vector store." + }, + "textField": { + "type": "string", + "description": "The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose." + } + } + }, + "aws-native:bedrock:KnowledgeBaseRdsConfiguration": { + "type": "object", + "properties": { + "credentialsSecretArn": { + "type": "string", + "description": "The ARN of the secret that you created in AWS Secrets Manager that is linked to your Amazon RDS database." + }, + "databaseName": { + "type": "string", + "description": "The name of your Amazon RDS database." + }, + "fieldMapping": { + "$ref": "#/types/aws-native:bedrock:KnowledgeBaseRdsFieldMapping" + }, + "resourceArn": { + "type": "string", + "description": "The ARN of the vector store." + }, + "tableName": { + "type": "string", + "description": "The name of the table in the database." + } + } + }, + "aws-native:bedrock:KnowledgeBaseRdsFieldMapping": { + "type": "object", + "properties": { + "metadataField": { + "type": "string", + "description": "The name of the field in which Amazon Bedrock stores metadata about the vector store." + }, + "primaryKeyField": { + "type": "string", + "description": "The name of the field in which Amazon Bedrock stores the ID for each entry." + }, + "textField": { + "type": "string", + "description": "The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose." + }, + "vectorField": { + "type": "string", + "description": "The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources." + } + } + }, + "aws-native:bedrock:KnowledgeBaseStatus": { + "type": "string" + }, + "aws-native:bedrock:KnowledgeBaseStorageConfiguration": { + "type": "object", + "properties": { + "opensearchServerlessConfiguration": { + "$ref": "#/types/aws-native:bedrock:KnowledgeBaseOpenSearchServerlessConfiguration" + }, + "pineconeConfiguration": { + "$ref": "#/types/aws-native:bedrock:KnowledgeBasePineconeConfiguration" + }, + "rdsConfiguration": { + "$ref": "#/types/aws-native:bedrock:KnowledgeBaseRdsConfiguration" + }, + "type": { + "$ref": "#/types/aws-native:bedrock:KnowledgeBaseStorageType" + } + } + }, + "aws-native:bedrock:KnowledgeBaseStorageType": { + "type": "string" + }, + "aws-native:bedrock:KnowledgeBaseType": { + "type": "string" + }, + "aws-native:bedrock:KnowledgeBaseVectorKnowledgeBaseConfiguration": { + "type": "object", + "properties": { + "embeddingModelArn": { + "type": "string", + "description": "The ARN of the model used to create vector embeddings for the knowledge base." + } + } + }, "aws-native:budgets:BudgetsActionActionThreshold": { "type": "object", "properties": { @@ -89721,6 +92622,9 @@ "items": { "type": "string" } + }, + "differentialPrivacy": { + "$ref": "#/types/aws-native:cleanrooms:ConfiguredTableDifferentialPrivacy" } } }, @@ -89806,6 +92710,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": { @@ -89914,6 +92837,87 @@ } } }, + "aws-native:cleanroomsml:TrainingDatasetColumnSchema": { + "type": "object", + "properties": { + "columnName": { + "type": "string" + }, + "columnTypes": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:cleanroomsml:TrainingDatasetColumnType" + } + } + } + }, + "aws-native:cleanroomsml:TrainingDatasetColumnType": { + "type": "string" + }, + "aws-native:cleanroomsml:TrainingDatasetDataSource": { + "type": "object", + "properties": { + "glueDataSource": { + "$ref": "#/types/aws-native:cleanroomsml:TrainingDatasetGlueDataSource" + } + } + }, + "aws-native:cleanroomsml:TrainingDatasetDataset": { + "type": "object", + "properties": { + "inputConfig": { + "$ref": "#/types/aws-native:cleanroomsml:TrainingDatasetDatasetInputConfig" + }, + "type": { + "$ref": "#/types/aws-native:cleanroomsml:TrainingDatasetDatasetType" + } + } + }, + "aws-native:cleanroomsml:TrainingDatasetDatasetInputConfig": { + "type": "object", + "properties": { + "dataSource": { + "$ref": "#/types/aws-native:cleanroomsml:TrainingDatasetDataSource" + }, + "schema": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:cleanroomsml:TrainingDatasetColumnSchema" + } + } + } + }, + "aws-native:cleanroomsml:TrainingDatasetDatasetType": { + "type": "string" + }, + "aws-native:cleanroomsml:TrainingDatasetGlueDataSource": { + "type": "object", + "properties": { + "catalogId": { + "type": "string" + }, + "databaseName": { + "type": "string" + }, + "tableName": { + "type": "string" + } + } + }, + "aws-native:cleanroomsml:TrainingDatasetStatus": { + "type": "string" + }, + "aws-native:cleanroomsml:TrainingDatasetTag": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + } + }, "aws-native:cloudformation:HookTypeConfigConfigurationAlias": { "type": "string" }, @@ -90384,7 +93388,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 +93396,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 +93414,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 +93460,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 +93516,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 +93528,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 +93566,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 +93581,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 +93609,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 +93680,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 +93688,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 +93706,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 +93748,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 +93762,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 +94054,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 +94104,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." } } }, @@ -91824,11 +94828,11 @@ "properties": { "name": { "type": "string", - "description": "The name of the dimension." + "description": "The name of the dimension, from 1–255 characters in length. This dimension name must have been included when the metric was published." }, "value": { "type": "string", - "description": "The value for the dimension." + "description": "The value for the dimension, from 1–255 characters in length." } } }, @@ -91840,15 +94844,15 @@ "items": { "$ref": "#/types/aws-native:cloudwatch:AlarmDimension" }, - "description": "The dimensions for the metric." + "description": "The metric dimensions that you want to be used for the metric that the alarm will watch." }, "metricName": { "type": "string", - "description": "The name of the metric." + "description": "The name of the metric that you want the alarm to watch. This is a required field." }, "namespace": { "type": "string", - "description": "The namespace of the metric." + "description": "The namespace of the metric that the alarm will watch." } } }, @@ -91861,27 +94865,27 @@ }, "expression": { "type": "string", - "description": "The math expression to be performed on the returned data." + "description": "The math expression to be performed on the returned data, if this object is performing a math expression. This expression can use the ``Id`` of the other metrics to refer to those metrics, and can also use the ``Id`` of other expressions to use the result of those expressions. For more information about metric math expressions, see [Metric Math Syntax and Functions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) in the *User Guide*.\n Within each MetricDataQuery object, you must specify either ``Expression`` or ``MetricStat`` but not both." }, "id": { "type": "string", - "description": "A short name used to tie this object to the results in the response." + "description": "A short name used to tie this object to the results in the response. This name must be unique within a single call to ``GetMetricData``. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscore. The first character must be a lowercase letter." }, "label": { "type": "string", - "description": "A human-readable label for this metric or expression." + "description": "A human-readable label for this metric or expression. This is especially useful if this is an expression, so that you know what the value represents. If the metric or expression is shown in a CW dashboard widget, the label is shown. If ``Label`` is omitted, CW generates a default." }, "metricStat": { "$ref": "#/types/aws-native:cloudwatch:AlarmMetricStat", - "description": "The metric to be returned, along with statistics, period, and units." + "description": "The metric to be returned, along with statistics, period, and units. Use this parameter only if this object is retrieving a metric and not performing a math expression on returned data.\n Within one MetricDataQuery object, you must specify either ``Expression`` or ``MetricStat`` but not both." }, "period": { "type": "integer", - "description": "The period in seconds, over which the statistic is applied." + "description": "The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a ``PutMetricData`` operation that includes a ``StorageResolution of 1 second``." }, "returnData": { "type": "boolean", - "description": "This option indicates whether to return the timestamps and raw data values of this metric." + "description": "This option indicates whether to return the timestamps and raw data values of this metric.\n When you create an alarm based on a metric math expression, specify ``True`` for this value for only the one math expression that the alarm is based on. You must specify ``False`` for ``ReturnData`` for all the other metrics and expressions used in the alarm.\n This field is required." } } }, @@ -91894,15 +94898,41 @@ }, "period": { "type": "integer", - "description": "The granularity, in seconds, of the returned data points." + "description": "The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a ``PutMetricData`` call that includes a ``StorageResolution`` of 1 second.\n If the ``StartTime`` parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned:\n + Start time between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute).\n + Start time between 15 and 63 days ago - Use a multiple of 300 seconds (5 minutes).\n + Start time greater than 63 days ago - Use a multiple of 3600 seconds (1 hour)." }, "stat": { "type": "string", - "description": "The statistic to return." + "description": "The statistic to return. It can include any CW statistic or extended statistic. For a list of valid values, see the table in [Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the *User Guide*." }, "unit": { "type": "string", - "description": "The unit to use for the returned data points." + "description": "The unit to use for the returned data points. \n Valid values are: 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, or None." + } + } + }, + "aws-native:cloudwatch:AlarmTag": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "A unique identifier for the tag. The combination of tag keys and values can help you organize and categorize your resources." + }, + "value": { + "type": "string", + "description": "The value for the specified tag key." + } + } + }, + "aws-native:cloudwatch:CompositeAlarmTag": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "A unique identifier for the tag. The combination of tag keys and values can help you organize and categorize your resources." + }, + "value": { + "type": "string", + "description": "The value for the specified tag key." } } }, @@ -91980,6 +95010,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 +95098,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 +95340,9 @@ } } }, + "aws-native:codestarconnections:RepositoryLinkProviderType": { + "type": "string" + }, "aws-native:codestarconnections:RepositoryLinkTag": { "type": "object", "properties": { @@ -92254,6 +95356,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 +97379,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": { @@ -97676,6 +100803,346 @@ } } }, + "aws-native:deadline:FleetAcceleratorCountRange": { + "type": "object", + "properties": { + "max": { + "type": "integer" + }, + "min": { + "type": "integer" + } + } + }, + "aws-native:deadline:FleetAcceleratorTotalMemoryMiBRange": { + "type": "object", + "properties": { + "max": { + "type": "integer" + }, + "min": { + "type": "integer" + } + } + }, + "aws-native:deadline:FleetAcceleratorType": { + "type": "string" + }, + "aws-native:deadline:FleetAmountCapability": { + "type": "object", + "properties": { + "max": { + "type": "number" + }, + "min": { + "type": "number" + }, + "name": { + "type": "string" + } + } + }, + "aws-native:deadline:FleetAttributeCapability": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "values": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "aws-native:deadline:FleetAutoScalingMode": { + "type": "string" + }, + "aws-native:deadline:FleetCapabilities": { + "type": "object", + "properties": { + "amounts": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:deadline:FleetAmountCapability" + } + }, + "attributes": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:deadline:FleetAttributeCapability" + } + } + } + }, + "aws-native:deadline:FleetConfiguration0Properties": { + "type": "object", + "properties": { + "customerManaged": { + "$ref": "#/types/aws-native:deadline:FleetCustomerManagedFleetConfiguration" + } + } + }, + "aws-native:deadline:FleetConfiguration1Properties": { + "type": "object", + "properties": { + "serviceManagedEc2": { + "$ref": "#/types/aws-native:deadline:FleetServiceManagedEc2FleetConfiguration" + } + } + }, + "aws-native:deadline:FleetCpuArchitectureType": { + "type": "string" + }, + "aws-native:deadline:FleetCustomerManagedFleetConfiguration": { + "type": "object", + "properties": { + "mode": { + "$ref": "#/types/aws-native:deadline:FleetAutoScalingMode" + }, + "storageProfileId": { + "type": "string" + }, + "workerCapabilities": { + "$ref": "#/types/aws-native:deadline:FleetCustomerManagedWorkerCapabilities" + } + } + }, + "aws-native:deadline:FleetCustomerManagedFleetOperatingSystemFamily": { + "type": "string" + }, + "aws-native:deadline:FleetCustomerManagedWorkerCapabilities": { + "type": "object", + "properties": { + "acceleratorCount": { + "$ref": "#/types/aws-native:deadline:FleetAcceleratorCountRange" + }, + "acceleratorTotalMemoryMiB": { + "$ref": "#/types/aws-native:deadline:FleetAcceleratorTotalMemoryMiBRange" + }, + "acceleratorTypes": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:deadline:FleetAcceleratorType" + } + }, + "cpuArchitectureType": { + "$ref": "#/types/aws-native:deadline:FleetCpuArchitectureType" + }, + "customAmounts": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:deadline:FleetAmountCapability" + } + }, + "customAttributes": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:deadline:FleetAttributeCapability" + } + }, + "memoryMiB": { + "$ref": "#/types/aws-native:deadline:FleetMemoryMiBRange" + }, + "osFamily": { + "$ref": "#/types/aws-native:deadline:FleetCustomerManagedFleetOperatingSystemFamily" + }, + "vCpuCount": { + "$ref": "#/types/aws-native:deadline:FleetVCpuCountRange" + } + } + }, + "aws-native:deadline:FleetEc2EbsVolume": { + "type": "object", + "properties": { + "iops": { + "type": "integer" + }, + "sizeGiB": { + "type": "integer" + }, + "throughputMiB": { + "type": "integer" + } + } + }, + "aws-native:deadline:FleetEc2MarketType": { + "type": "string" + }, + "aws-native:deadline:FleetMemoryMiBRange": { + "type": "object", + "properties": { + "max": { + "type": "integer" + }, + "min": { + "type": "integer" + } + } + }, + "aws-native:deadline:FleetServiceManagedEc2FleetConfiguration": { + "type": "object", + "properties": { + "instanceCapabilities": { + "$ref": "#/types/aws-native:deadline:FleetServiceManagedEc2InstanceCapabilities" + }, + "instanceMarketOptions": { + "$ref": "#/types/aws-native:deadline:FleetServiceManagedEc2InstanceMarketOptions" + } + } + }, + "aws-native:deadline:FleetServiceManagedEc2InstanceCapabilities": { + "type": "object", + "properties": { + "allowedInstanceTypes": { + "type": "array", + "items": { + "type": "string" + } + }, + "cpuArchitectureType": { + "$ref": "#/types/aws-native:deadline:FleetCpuArchitectureType" + }, + "customAmounts": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:deadline:FleetAmountCapability" + } + }, + "customAttributes": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:deadline:FleetAttributeCapability" + } + }, + "excludedInstanceTypes": { + "type": "array", + "items": { + "type": "string" + } + }, + "memoryMiB": { + "$ref": "#/types/aws-native:deadline:FleetMemoryMiBRange" + }, + "osFamily": { + "$ref": "#/types/aws-native:deadline:FleetServiceManagedFleetOperatingSystemFamily" + }, + "rootEbsVolume": { + "$ref": "#/types/aws-native:deadline:FleetEc2EbsVolume" + }, + "vCpuCount": { + "$ref": "#/types/aws-native:deadline:FleetVCpuCountRange" + } + } + }, + "aws-native:deadline:FleetServiceManagedEc2InstanceMarketOptions": { + "type": "object", + "properties": { + "type": { + "$ref": "#/types/aws-native:deadline:FleetEc2MarketType" + } + } + }, + "aws-native:deadline:FleetServiceManagedFleetOperatingSystemFamily": { + "type": "string" + }, + "aws-native:deadline:FleetStatus": { + "type": "string" + }, + "aws-native:deadline:FleetVCpuCountRange": { + "type": "object", + "properties": { + "max": { + "type": "integer" + }, + "min": { + "type": "integer" + } + } + }, + "aws-native:deadline:LicenseEndpointStatus": { + "type": "string" + }, + "aws-native:deadline:QueueDefaultQueueBudgetAction": { + "type": "string" + }, + "aws-native:deadline:QueueEnvironmentEnvironmentTemplateType": { + "type": "string" + }, + "aws-native:deadline:QueueJobAttachmentSettings": { + "type": "object", + "properties": { + "rootPrefix": { + "type": "string" + }, + "s3BucketName": { + "type": "string" + } + }, + "irreversibleNames": { + "s3BucketName": "S3BucketName" + } + }, + "aws-native:deadline:QueueJobRunAsUser": { + "type": "object", + "properties": { + "posix": { + "$ref": "#/types/aws-native:deadline:QueuePosixUser" + }, + "runAs": { + "$ref": "#/types/aws-native:deadline:QueueRunAs" + }, + "windows": { + "$ref": "#/types/aws-native:deadline:QueueWindowsUser" + } + } + }, + "aws-native:deadline:QueuePosixUser": { + "type": "object", + "properties": { + "group": { + "type": "string" + }, + "user": { + "type": "string" + } + } + }, + "aws-native:deadline:QueueRunAs": { + "type": "string" + }, + "aws-native:deadline:QueueWindowsUser": { + "type": "object", + "properties": { + "passwordArn": { + "type": "string" + }, + "user": { + "type": "string" + } + } + }, + "aws-native:deadline:StorageProfileFileSystemLocation": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "type": { + "$ref": "#/types/aws-native:deadline:StorageProfileFileSystemLocationType" + } + } + }, + "aws-native:deadline:StorageProfileFileSystemLocationType": { + "type": "string" + }, + "aws-native:deadline:StorageProfileOperatingSystemFamily": { + "type": "string" + }, "aws-native:detective:GraphTag": { "type": "object", "properties": { @@ -98370,6 +101837,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 +101871,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 +102143,15 @@ } } }, + "aws-native:dynamodb:TableResourcePolicy": { + "type": "object", + "properties": { + "policyDocument": { + "$ref": "pulumi.json#/Any", + "description": "A resource-based policy document that contains permissions to add to the specified DDB table, index, or both. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html)." + } + } + }, "aws-native:dynamodb:TableS3BucketSource": { "type": "object", "properties": { @@ -98701,6 +102199,10 @@ "aws-native:dynamodb:TableStreamSpecification": { "type": "object", "properties": { + "resourcePolicy": { + "$ref": "#/types/aws-native:dynamodb:TableResourcePolicy", + "description": "Creates or updates a resource-based policy document that contains the permissions for DDB resources, such as a table's streams. Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource.\n In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html)." + }, "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." @@ -98725,7 +102227,7 @@ "properties": { "attributeName": { "type": "string", - "description": "The name of the TTL attribute used to store the expiration time for items in the table.\n + The ``AttributeName`` property is required when enabling the TTL, or when TTL is already enabled.\n + To update this property, you must first disable TTL and then enable TTL with the new attribute name." + "description": "The name of the TTL attribute used to store the expiration time for items in the table.\n + The ``AttributeName`` property is required when enabling the TTL, or when TTL is already enabled.\n + To update this property, you must first disable TTL and then enable TTL with the new attribute name." }, "enabled": { "type": "boolean", @@ -99690,10 +103192,12 @@ "type": "object", "properties": { "key": { - "type": "string" + "type": "string", + "description": "The tag key." }, "value": { - "type": "string" + "type": "string", + "description": "The tag value." } } }, @@ -100048,7 +103552,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 +103664,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 +103841,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 +103861,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 +103869,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 +103926,6 @@ "autoRecovery": { "type": "string", "description": "Disables the automatic recovery behavior of your instance or sets it to default." - }, - "rebootMigration": { - "type": "string" } } }, @@ -100713,7 +104214,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", @@ -101674,9 +105175,6 @@ "ipProtocol": { "type": "string" }, - "sourceSecurityGroupId": { - "type": "string" - }, "toPort": { "type": "integer" } @@ -103724,21 +107222,21 @@ }, "cpu": { "type": "integer", - "description": "The number of ``cpu`` units reserved for the container. This parameter maps to ``CpuShares`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cpu-shares`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n This field is optional for tasks using the Fargate launch type, and the only requirement is that the total amount of CPU reserved for all containers within a task be lower than the task-level ``cpu`` value.\n You can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the [Amazon EC2 Instances](https://docs.aws.amazon.com/ec2/instance-types/) detail page by 1,024.\n Linux containers share unallocated CPU units with other containers on the cont" + "description": "The number of ``cpu`` units reserved for the container. This parameter maps to ``CpuShares`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cpu-shares`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n This field is optional for tasks using the Fargate launch type, and the only requirement is that the total amount of CPU reserved for all containers within a task be lower than the task-level ``cpu`` value.\n You can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the [Amazon EC2 Instances](https://docs.aws.amazon.com/ec2/instance-types/) detail page by 1,024.\n Linux containers share unallocated CPU units with other containers on the container instance with the same ratio as their allocated amount. For example, if you run a single-container task on a single-core instance type with 512 CPU units specified for that container, and that's the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time. However, if you launched another copy of the same task on that container instance, each task is guaranteed a minimum of 512 CPU units when needed. Moreover, each container could float to higher CPU usage if the other container was not using it. If both tasks were 100% active all of the time, they would be limited to 512 CPU units.\n On Linux container instances, the Docker daemon on the container instance uses the CPU value to calculate the relative CPU share ratios for running containers. For more information, see [CPU share constraint](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#cpu-share-constraint) in the Docker documentation. The minimum valid CPU share value that the Linux kernel allows is 2. However, the CPU parameter isn't required, and you can use CPU values below 2 in your container definitions. For CPU values below 2 (including null), the behavior varies based on your Amazon ECS container agent version:\n + *Agent versions less than or equal to 1.1.0:* Null and zero CPU values are passed to Docker as 0, which Docker then converts to 1,024 CPU shares. CPU values of 1 are passed to Docker as 1, which the Linux kernel converts to two CPU shares.\n + *Agent versions greater than or equal to 1.2.0:* Null, zero, and CPU values of 1 are passed to Docker as 2.\n \n On Windows container instances, the CPU limit is enforced as an absolute limit, or a quota. Windows containers only have access to the specified amount of CPU that's described in the task definition. A null or zero CPU value is passed to Docker as ``0``, which Windows interprets as 1% of one CPU." }, "credentialSpecs": { "type": "array", "items": { "type": "string" }, - "description": "A list of ARNs in SSM or Amazon S3 to a credential spec (``CredSpec``) file that configures the container for Active Directory authentication. We recommend that you use this parameter instead of the ``dockerSecurityOptions``. The maximum number of ARNs is 1.\n There are two formats for each ARN.\n + credentialspecdomainless:MyARN You use credentialspecdomainless:MyARN to provide a CredSpec with an additional section for a secret in . You provide the login credentials to the domain in the secret. Each task that runs on any container instance can join different domains. You can use this format without joining the container instance to a domain. + credentialspec:MyARN You use credentialspec:MyARN to provide a CredSpec for a single domain. You must join the container instance to the domain before you start any tasks that use this task definition. \n In both formats, replace ``MyARN`` with the ARN in SSM or Amazon S3.\n If you provide a ``credentialspecdomainless:MyARN``, the ``credspec`` must" + "description": "A list of ARNs in SSM or Amazon S3 to a credential spec (``CredSpec``) file that configures the container for Active Directory authentication. We recommend that you use this parameter instead of the ``dockerSecurityOptions``. The maximum number of ARNs is 1.\n There are two formats for each ARN.\n + credentialspecdomainless:MyARN You use credentialspecdomainless:MyARN to provide a CredSpec with an additional section for a secret in . You provide the login credentials to the domain in the secret. Each task that runs on any container instance can join different domains. You can use this format without joining the container instance to a domain. + credentialspec:MyARN You use credentialspec:MyARN to provide a CredSpec for a single domain. You must join the container instance to the domain before you start any tasks that use this task definition. \n In both formats, replace ``MyARN`` with the ARN in SSM or Amazon S3.\n If you provide a ``credentialspecdomainless:MyARN``, the ``credspec`` must provide a ARN in ASMlong for a secret containing the username, password, and the domain to connect to. For better security, the instance isn't joined to the domain for domainless authentication. Other applications on the instance can't use the domainless credentials. You can use this parameter to run tasks on the same instance, even it the tasks need to join different domains. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) and [Using gMSAs for Linux Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html)." }, "dependsOn": { "type": "array", "items": { "$ref": "#/types/aws-native:ecs:TaskDefinitionContainerDependency" }, - "description": "The dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed.\n For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [" + "description": "The dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed.\n For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*.\n For tasks using the Fargate launch type, the task or service requires the following platforms:\n + Linux platform version ``1.3.0`` or later.\n + Windows platform version ``1.0.0`` or later.\n \n If the task definition is used in a blue/green deployment that uses [AWS::CodeDeploy::DeploymentGroup BlueGreenDeploymentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-bluegreendeploymentconfiguration.html), the ``dependsOn`` parameter is not supported. For more information see [Issue #680](https://docs.aws.amazon.com/https://github.com/aws-cloudformation/cloudformation-coverage-roadmap/issues/680) on the on the GitHub website." }, "disableNetworking": { "type": "boolean", @@ -103770,7 +107268,7 @@ "items": { "type": "string" }, - "description": "A list of strings to provide custom configuration for multiple security systems. For more information about valid values, see [Docker Run Security Configuration](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). This field isn't valid for containers in tasks using the Fargate launch type.\n For Linux tasks on EC2, this parameter can be used to reference custom labels for SELinux and AppArmor multi-level security systems.\n For any tasks on EC2, this parameter can be used to reference a credential spec file that configures a container for Active Directory authentication. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) and [Using gMSAs for Linux Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html) in the *Amazon Elastic Container Service Developer Guide*.\n This parameter maps to ``SecurityOpt`` in the [Create a co" + "description": "A list of strings to provide custom configuration for multiple security systems. For more information about valid values, see [Docker Run Security Configuration](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). This field isn't valid for containers in tasks using the Fargate launch type.\n For Linux tasks on EC2, this parameter can be used to reference custom labels for SELinux and AppArmor multi-level security systems.\n For any tasks on EC2, this parameter can be used to reference a credential spec file that configures a container for Active Directory authentication. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) and [Using gMSAs for Linux Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html) in the *Amazon Elastic Container Service Developer Guide*.\n This parameter maps to ``SecurityOpt`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--security-opt`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n The Amazon ECS container agent running on a container instance must register with the ``ECS_SELINUX_CAPABLE=true`` or ``ECS_APPARMOR_CAPABLE=true`` environment variables before containers placed on that instance can use these security options. For more information, see [Amazon ECS Container Agent Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*.\n For more information about valid values, see [Docker Run Security Configuration](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). \n Valid values: \"no-new-privileges\" | \"apparmor:PROFILE\" | \"label:value\" | \"credentialspec:CredentialSpecFilePath\"" }, "entryPoint": { "type": "array", @@ -103791,7 +107289,7 @@ "items": { "$ref": "#/types/aws-native:ecs:TaskDefinitionEnvironmentFile" }, - "description": "A list of files containing the environment variables to pass to a container. This parameter maps to the ``--env-file`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n You can specify up to ten environment files. The file must have a ``.env`` file extension. Each line in an environment file contains an environment variable in ``VARIABLE=VALUE`` format. Lines beginning with ``#`` are treated as comments and are ignored. For more information about the environment variable file syntax, see [Declare default environment variables in file](https://docs.aws.amazon.com/https://docs.docker.com/compose/env-file/).\n If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend t" + "description": "A list of files containing the environment variables to pass to a container. This parameter maps to the ``--env-file`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n You can specify up to ten environment files. The file must have a ``.env`` file extension. Each line in an environment file contains an environment variable in ``VARIABLE=VALUE`` format. Lines beginning with ``#`` are treated as comments and are ignored. For more information about the environment variable file syntax, see [Declare default environment variables in file](https://docs.aws.amazon.com/https://docs.docker.com/compose/env-file/).\n If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Specifying Environment Variables](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) in the *Amazon Elastic Container Service Developer Guide*." }, "essential": { "type": "boolean", @@ -103818,7 +107316,7 @@ }, "image": { "type": "string", - "description": "The image used to start a container. This string is passed directly to the Docker daemon. By default, images in the Docker Hub registry are available. Other repositories are specified with either ``repository-url/image:tag`` or ``repository-url/image@digest``. Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to ``Image`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``IMAGE`` parameter of [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n + When a new task starts, the Amazon ECS container agent pulls the latest version of the specified image and tag for the container to use. However, subsequent updates to a repository image " + "description": "The image used to start a container. This string is passed directly to the Docker daemon. By default, images in the Docker Hub registry are available. Other repositories are specified with either ``repository-url/image:tag`` or ``repository-url/image@digest``. Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to ``Image`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``IMAGE`` parameter of [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n + When a new task starts, the Amazon ECS container agent pulls the latest version of the specified image and tag for the container to use. However, subsequent updates to a repository image aren't propagated to already running tasks.\n + Images in Amazon ECR repositories can be specified by either using the full ``registry/repository:tag`` or ``registry/repository@digest``. For example, ``012345678910.dkr.ecr.\u003cregion-name\u003e.amazonaws.com/\u003crepository-name\u003e:latest`` or ``012345678910.dkr.ecr.\u003cregion-name\u003e.amazonaws.com/\u003crepository-name\u003e@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE``. \n + Images in official repositories on Docker Hub use a single name (for example, ``ubuntu`` or ``mongo``).\n + Images in other repositories on Docker Hub are qualified with an organization name (for example, ``amazon/amazon-ecs-agent``).\n + Images in other online repositories are qualified further by a domain name (for example, ``quay.io/assemblyline/ubuntu``)." }, "interactive": { "type": "boolean", @@ -103829,7 +107327,7 @@ "items": { "type": "string" }, - "description": "The ``links`` parameter allows containers to communicate with each other without the need for port mappings. This parameter is only supported if the network mode of a task definition is ``bridge``. The ``name:internalName`` construct is analogous to ``name:alias`` in Docker links. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. For more information about linking Docker containers, go to [Legacy container links](https://docs.aws.amazon.com/https://docs.docker.com/network/links/) in the Docker documentation. This parameter maps to ``Links`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--link`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n This parameter is not supported for W" + "description": "The ``links`` parameter allows containers to communicate with each other without the need for port mappings. This parameter is only supported if the network mode of a task definition is ``bridge``. The ``name:internalName`` construct is analogous to ``name:alias`` in Docker links. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. For more information about linking Docker containers, go to [Legacy container links](https://docs.aws.amazon.com/https://docs.docker.com/network/links/) in the Docker documentation. This parameter maps to ``Links`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--link`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n This parameter is not supported for Windows containers.\n Containers that are collocated on a single container instance may be able to communicate with each other without requiring links or host port mappings. Network isolation is achieved on the container instance using security groups and VPC settings." }, "linuxParameters": { "$ref": "#/types/aws-native:ecs:TaskDefinitionLinuxParameters", @@ -103837,15 +107335,15 @@ }, "logConfiguration": { "$ref": "#/types/aws-native:ecs:TaskDefinitionLogConfiguration", - "description": "The log configuration specification for the container.\n This parameter maps to ``LogConfig`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--log-driver`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). By default, containers use the same logging driver that the Docker daemon uses. However, the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.aws.amazon.com/htt" + "description": "The log configuration specification for the container.\n This parameter maps to ``LogConfig`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--log-driver`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). By default, containers use the same logging driver that the Docker daemon uses. However, the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.aws.amazon.com/https://docs.docker.com/engine/admin/logging/overview/) in the Docker documentation.\n Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon (shown in the [LogConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_LogConfiguration.html) data type). Additional log drivers may be available in future releases of the Amazon ECS container agent.\n This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'`` \n The Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the ``ECS_AVAILABLE_LOGGING_DRIVERS`` environment variable before containers placed on that instance can use these log configuration options. For more information, see [Amazon ECS Container Agent Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*." }, "memory": { "type": "integer", - "description": "The amount (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. The total amount of memory reserved for all containers within a task must be lower than the task ``memory`` value, if one is specified. This parameter maps to ``Memory`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n If using the Fargate launch type, this parameter is optional.\n If using the EC2 launch type, you must specify either a task-level memory value or a container-level memory value. If you specify both a container-level ``memory`` and ``memoryReservation`` value, ``memory`` must be greater than ``memoryReserva" + "description": "The amount (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. The total amount of memory reserved for all containers within a task must be lower than the task ``memory`` value, if one is specified. This parameter maps to ``Memory`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n If using the Fargate launch type, this parameter is optional.\n If using the EC2 launch type, you must specify either a task-level memory value or a container-level memory value. If you specify both a container-level ``memory`` and ``memoryReservation`` value, ``memory`` must be greater than ``memoryReservation``. If you specify ``memoryReservation``, then that value is subtracted from the available memory resources for the container instance where the container is placed. Otherwise, the value of ``memory`` is used.\n The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container, so you should not specify fewer than 6 MiB of memory for your containers.\n The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container, so you should not specify fewer than 4 MiB of memory for your containers." }, "memoryReservation": { "type": "integer", - "description": "The soft limit (in MiB) of memory to reserve for the container. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit. However, your container can consume more memory when it needs to, up to either the hard limit specified with the ``memory`` parameter (if applicable), or all of the available memory on the container instance, whichever comes first. This parameter maps to ``MemoryReservation`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory-reservation`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n If a task-level memory value is not specified, you must specify a non-zero integer for one or both of ``memory`` or ``memoryReservation`` in a container definiti" + "description": "The soft limit (in MiB) of memory to reserve for the container. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit. However, your container can consume more memory when it needs to, up to either the hard limit specified with the ``memory`` parameter (if applicable), or all of the available memory on the container instance, whichever comes first. This parameter maps to ``MemoryReservation`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory-reservation`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n If a task-level memory value is not specified, you must specify a non-zero integer for one or both of ``memory`` or ``memoryReservation`` in a container definition. If you specify both, ``memory`` must be greater than ``memoryReservation``. If you specify ``memoryReservation``, then that value is subtracted from the available memory resources for the container instance where the container is placed. Otherwise, the value of ``memory`` is used.\n For example, if your container normally uses 128 MiB of memory, but occasionally bursts to 256 MiB of memory for short periods of time, you can set a ``memoryReservation`` of 128 MiB, and a ``memory`` hard limit of 300 MiB. This configuration would allow the container to only reserve 128 MiB of memory from the remaining resources on the container instance, but also allow the container to consume more memory resources when needed.\n The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container. So, don't specify less than 6 MiB of memory for your containers. \n The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container. So, don't specify less than 4 MiB of memory for your containers." }, "mountPoints": { "type": "array", @@ -103863,7 +107361,7 @@ "items": { "$ref": "#/types/aws-native:ecs:TaskDefinitionPortMapping" }, - "description": "The list of port mappings for the container. Port mappings allow containers to access ports on the host container instance to send or receive traffic.\n For task definitions that use the ``awsvpc`` network mode, you should only specify the ``containerPort``. The ``hostPort`` can be left blank or it must be the same value as the ``containerPort``.\n Port mappings on Windows use the ``NetNAT`` gateway address rather than ``localhost``. There is no loopback for port mappings on Windows, so you cannot access a container's mapped port from the host itself. \n This parameter maps to ``PortBindings`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--publish`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). If the network mode of a task definition is set to" + "description": "The list of port mappings for the container. Port mappings allow containers to access ports on the host container instance to send or receive traffic.\n For task definitions that use the ``awsvpc`` network mode, you should only specify the ``containerPort``. The ``hostPort`` can be left blank or it must be the same value as the ``containerPort``.\n Port mappings on Windows use the ``NetNAT`` gateway address rather than ``localhost``. There is no loopback for port mappings on Windows, so you cannot access a container's mapped port from the host itself. \n This parameter maps to ``PortBindings`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--publish`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). If the network mode of a task definition is set to ``none``, then you can't specify port mappings. If the network mode of a task definition is set to ``host``, then host ports must either be undefined or they must match the container port in the port mapping.\n After a task reaches the ``RUNNING`` status, manual and automatic host and container port assignments are visible in the *Network Bindings* section of a container description for a selected task in the Amazon ECS console. The assignments are also visible in the ``networkBindings`` section [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) responses." }, "privileged": { "type": "boolean", @@ -103897,11 +107395,11 @@ }, "startTimeout": { "type": "integer", - "description": "Time duration (in seconds) to wait before giving up on resolving dependencies for a container. For example, you specify two containers in a task definition with containerA having a dependency on containerB reaching a ``COMPLETE``, ``SUCCESS``, or ``HEALTHY`` status. If a ``startTimeout`` value is specified for containerB and it doesn't reach the desired status within that time then containerA gives up and not start. This results in the task transitioning to a ``STOPPED`` state.\n When the ``ECS_CONTAINER_START_TIMEOUT`` container agent configuration variable is used, it's enforced independently from this start timeout value.\n For tasks using the Fargate launch type, the task or service requires the following platforms:\n + Linux platform version ``1.3.0`` or later.\n + Windows platform version ``1.0.0`` or later.\n \n For tasks using the EC2 launch type, your container instances require at least version ``1.26.0`` of the container agent to use a container start timeout value. However" + "description": "Time duration (in seconds) to wait before giving up on resolving dependencies for a container. For example, you specify two containers in a task definition with containerA having a dependency on containerB reaching a ``COMPLETE``, ``SUCCESS``, or ``HEALTHY`` status. If a ``startTimeout`` value is specified for containerB and it doesn't reach the desired status within that time then containerA gives up and not start. This results in the task transitioning to a ``STOPPED`` state.\n When the ``ECS_CONTAINER_START_TIMEOUT`` container agent configuration variable is used, it's enforced independently from this start timeout value.\n For tasks using the Fargate launch type, the task or service requires the following platforms:\n + Linux platform version ``1.3.0`` or later.\n + Windows platform version ``1.0.0`` or later.\n \n For tasks using the EC2 launch type, your container instances require at least version ``1.26.0`` of the container agent to use a container start timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version ``1.26.0-1`` of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*.\n The valid values are 2-120 seconds." }, "stopTimeout": { "type": "integer", - "description": "Time duration (in seconds) to wait before the container is forcefully killed if it doesn't exit normally on its own.\n For tasks using the Fargate launch type, the task or service requires the following platforms:\n + Linux platform version ``1.3.0`` or later.\n + Windows platform version ``1.0.0`` or later.\n \n The max stop timeout value is 120 seconds and if the parameter is not specified, the default value of 30 seconds is used.\n For tasks that use the EC2 launch type, if the ``stopTimeout`` parameter isn't specified, the value set for the Amazon ECS container agent configuration variable ``ECS_CONTAINER_STOP_TIMEOUT`` is used. If neither the ``stopTimeout`` parameter or the ``ECS_CONTAINER_STOP_TIMEOUT`` agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to use a container stop timeout value. However, we recomm" + "description": "Time duration (in seconds) to wait before the container is forcefully killed if it doesn't exit normally on its own.\n For tasks using the Fargate launch type, the task or service requires the following platforms:\n + Linux platform version ``1.3.0`` or later.\n + Windows platform version ``1.0.0`` or later.\n \n The max stop timeout value is 120 seconds and if the parameter is not specified, the default value of 30 seconds is used.\n For tasks that use the EC2 launch type, if the ``stopTimeout`` parameter isn't specified, the value set for the Amazon ECS container agent configuration variable ``ECS_CONTAINER_STOP_TIMEOUT`` is used. If neither the ``stopTimeout`` parameter or the ``ECS_CONTAINER_STOP_TIMEOUT`` agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to use a container stop timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*.\n The valid values are 2-120 seconds." }, "systemControls": { "type": "array", @@ -103939,7 +107437,7 @@ "properties": { "condition": { "type": "string", - "description": "The dependency condition of the container. The following are the available conditions and their behavior:\n + ``START`` - This condition emulates the behavior of links and volumes today. It validates that a dependent container is started before permitting other containers to start.\n + ``COMPLETE`` - This condition validates that a dependent container runs to completion (exits) before permitting other containers to start. This can be useful for nonessential containers that run a script and then exit. This condition can't be set on an essential container.\n + ``SUCCESS`` - This condition is the same as ``COMPLETE``, but it also requires that the container exits with a ``zero`` status. This condition can't be set on an essential container.\n + ``HEALTHY`` - This condition validates that the dependent container passes its Docker health check before permitting other containers to start. This requires that the dependent container has health checks configured. This condition is confi" + "description": "The dependency condition of the container. The following are the available conditions and their behavior:\n + ``START`` - This condition emulates the behavior of links and volumes today. It validates that a dependent container is started before permitting other containers to start.\n + ``COMPLETE`` - This condition validates that a dependent container runs to completion (exits) before permitting other containers to start. This can be useful for nonessential containers that run a script and then exit. This condition can't be set on an essential container.\n + ``SUCCESS`` - This condition is the same as ``COMPLETE``, but it also requires that the container exits with a ``zero`` status. This condition can't be set on an essential container.\n + ``HEALTHY`` - This condition validates that the dependent container passes its Docker health check before permitting other containers to start. This requires that the dependent container has health checks configured. This condition is confirmed only at task startup." }, "containerName": { "type": "string", @@ -104031,7 +107529,7 @@ "properties": { "type": { "type": "string", - "description": "The file type to use. The only supported value is ``s3``." + "description": "The file type to use. Environment files are objects in Amazon S3. The only supported value is ``s3``." }, "value": { "type": "string", @@ -104044,7 +107542,32 @@ "properties": { "sizeInGiB": { "type": "integer", - "description": "The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``21`` GiB and the maximum supported value is ``200`` GiB." + "description": "The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``20`` GiB and the maximum supported value is ``200`` GiB." + } + } + }, + "aws-native:ecs:TaskDefinitionFSxAuthorizationConfig": { + "type": "object", + "properties": { + "credentialsParameter": { + "type": "string" + }, + "domain": { + "type": "string" + } + } + }, + "aws-native:ecs:TaskDefinitionFSxWindowsFileServerVolumeConfiguration": { + "type": "object", + "properties": { + "authorizationConfig": { + "$ref": "#/types/aws-native:ecs:TaskDefinitionFSxAuthorizationConfig" + }, + "fileSystemId": { + "type": "string" + }, + "rootDirectory": { + "type": "string" } } }, @@ -104056,7 +107579,7 @@ "additionalProperties": { "type": "string" }, - "description": "The options to use when configuring the log router. This field is optional and can be used to add additional metadata, such as the task, task definition, cluster, and container instance details to the log event.\n If specified, valid option keys are:\n + ``enable-ecs-log-metadata``, which can be ``true`` or ``false``\n + ``config-file-type``, which can be ``s3`` or ``file``\n + ``config-file-value``, which is either an S3 ARN or a file path" + "description": "The options to use when configuring the log router. This field is optional and can be used to add additional metadata, such as the task, task definition, cluster, and container instance details to the log event.\n If specified, valid option keys are:\n + ``enable-ecs-log-metadata``, which can be ``true`` or ``false`` \n + ``config-file-type``, which can be ``s3`` or ``file`` \n + ``config-file-value``, which is either an S3 ARN or a file path" }, "type": { "type": "string", @@ -104135,14 +107658,14 @@ "items": { "type": "string" }, - "description": "The Linux capabilities for the container that have been added to the default configuration provided by Docker. This parameter maps to ``CapAdd`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-add`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n Tasks launched on FARGATElong only support adding the ``SYS_PTRACE`` kernel capability.\n Valid values: ``\"ALL\" | \"AUDIT_CONTROL\" | \"AUDIT_WRITE\" | \"BLOCK_SUSPEND\" | \"CHOWN\" | \"DAC_OVERRIDE\" | \"DAC_READ_SEARCH\" | \"FOWNER\" | \"FSETID\" | \"IPC_LOCK\" | \"IPC_OWNER\" | \"KILL\" | \"LEASE\" | \"LINUX_IMMUTABLE\" | \"MAC_ADMIN\" | \"MAC_OVERRIDE\" | \"MKNOD\" | \"NET_ADMIN\" | \"NET_BIND_SERVICE\" | \"NET_BROADCAST\" | \"NET_RAW\" | \"SETFCAP\" | \"SETGID\" | \"SETPCAP\" | \"SETUID\" | \"SYS_ADMIN\" | \"SYS_BOOT\" " + "description": "The Linux capabilities for the container that have been added to the default configuration provided by Docker. This parameter maps to ``CapAdd`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-add`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n Tasks launched on FARGATElong only support adding the ``SYS_PTRACE`` kernel capability.\n Valid values: ``\"ALL\" | \"AUDIT_CONTROL\" | \"AUDIT_WRITE\" | \"BLOCK_SUSPEND\" | \"CHOWN\" | \"DAC_OVERRIDE\" | \"DAC_READ_SEARCH\" | \"FOWNER\" | \"FSETID\" | \"IPC_LOCK\" | \"IPC_OWNER\" | \"KILL\" | \"LEASE\" | \"LINUX_IMMUTABLE\" | \"MAC_ADMIN\" | \"MAC_OVERRIDE\" | \"MKNOD\" | \"NET_ADMIN\" | \"NET_BIND_SERVICE\" | \"NET_BROADCAST\" | \"NET_RAW\" | \"SETFCAP\" | \"SETGID\" | \"SETPCAP\" | \"SETUID\" | \"SYS_ADMIN\" | \"SYS_BOOT\" | \"SYS_CHROOT\" | \"SYS_MODULE\" | \"SYS_NICE\" | \"SYS_PACCT\" | \"SYS_PTRACE\" | \"SYS_RAWIO\" | \"SYS_RESOURCE\" | \"SYS_TIME\" | \"SYS_TTY_CONFIG\" | \"SYSLOG\" | \"WAKE_ALARM\"``" }, "drop": { "type": "array", "items": { "type": "string" }, - "description": "The Linux capabilities for the container that have been removed from the default configuration provided by Docker. This parameter maps to ``CapDrop`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-drop`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n Valid values: ``\"ALL\" | \"AUDIT_CONTROL\" | \"AUDIT_WRITE\" | \"BLOCK_SUSPEND\" | \"CHOWN\" | \"DAC_OVERRIDE\" | \"DAC_READ_SEARCH\" | \"FOWNER\" | \"FSETID\" | \"IPC_LOCK\" | \"IPC_OWNER\" | \"KILL\" | \"LEASE\" | \"LINUX_IMMUTABLE\" | \"MAC_ADMIN\" | \"MAC_OVERRIDE\" | \"MKNOD\" | \"NET_ADMIN\" | \"NET_BIND_SERVICE\" | \"NET_BROADCAST\" | \"NET_RAW\" | \"SETFCAP\" | \"SETGID\" | \"SETPCAP\" | \"SETUID\" | \"SYS_ADMIN\" | \"SYS_BOOT\" | \"SYS_CHROOT\" | \"SYS_MODULE\" | \"SYS_NICE\" | \"SYS_PACCT\" | \"SYS_PTRACE\" | \"SYS_RAWIO\"" + "description": "The Linux capabilities for the container that have been removed from the default configuration provided by Docker. This parameter maps to ``CapDrop`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-drop`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n Valid values: ``\"ALL\" | \"AUDIT_CONTROL\" | \"AUDIT_WRITE\" | \"BLOCK_SUSPEND\" | \"CHOWN\" | \"DAC_OVERRIDE\" | \"DAC_READ_SEARCH\" | \"FOWNER\" | \"FSETID\" | \"IPC_LOCK\" | \"IPC_OWNER\" | \"KILL\" | \"LEASE\" | \"LINUX_IMMUTABLE\" | \"MAC_ADMIN\" | \"MAC_OVERRIDE\" | \"MKNOD\" | \"NET_ADMIN\" | \"NET_BIND_SERVICE\" | \"NET_BROADCAST\" | \"NET_RAW\" | \"SETFCAP\" | \"SETGID\" | \"SETPCAP\" | \"SETUID\" | \"SYS_ADMIN\" | \"SYS_BOOT\" | \"SYS_CHROOT\" | \"SYS_MODULE\" | \"SYS_NICE\" | \"SYS_PACCT\" | \"SYS_PTRACE\" | \"SYS_RAWIO\" | \"SYS_RESOURCE\" | \"SYS_TIME\" | \"SYS_TTY_CONFIG\" | \"SYSLOG\" | \"WAKE_ALARM\"``" } } }, @@ -104203,7 +107726,7 @@ "properties": { "logDriver": { "type": "string", - "description": "The log driver to use for the container.\n For tasks on FARGATElong, the supported log drivers are ``awslogs``, ``splunk``, and ``awsfirelens``.\n For tasks hosted on Amazon EC2 instances, the supported log drivers are ``awslogs``, ``fluentd``, ``gelf``, ``json-file``, ``journald``, ``logentries``,``syslog``, ``splunk``, and ``awsfirelens``.\n For more information about using the ``awslogs`` log driver, see [Using the awslogs log driver](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html) in the *Amazon Elastic Container Service Developer Guide*.\n For more information about using the ``awsfirelens`` log driver, see [Custom log routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*.\n If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs" + "description": "The log driver to use for the container.\n For tasks on FARGATElong, the supported log drivers are ``awslogs``, ``splunk``, and ``awsfirelens``.\n For tasks hosted on Amazon EC2 instances, the supported log drivers are ``awslogs``, ``fluentd``, ``gelf``, ``json-file``, ``journald``, ``logentries``,``syslog``, ``splunk``, and ``awsfirelens``.\n For more information about using the ``awslogs`` log driver, see [Using the awslogs log driver](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html) in the *Amazon Elastic Container Service Developer Guide*.\n For more information about using the ``awsfirelens`` log driver, see [Custom log routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*.\n If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs-agent) and customize it to work with that driver. We encourage you to submit pull requests for changes that you would like to have included. However, we don't currently provide support for running modified copies of this software." }, "options": { "type": "object", @@ -104256,7 +107779,7 @@ "properties": { "appProtocol": { "$ref": "#/types/aws-native:ecs:TaskDefinitionPortMappingAppProtocol", - "description": "The application protocol that's used for the port mapping. This parameter only applies to Service Connect. We recommend that you set this parameter to be consistent with the protocol that your application uses. If you set this parameter, Amazon ECS adds protocol-specific connection handling to the Service Connect proxy. If you set this parameter, Amazon ECS adds protocol-specific telemetry in the Amazon ECS console and CloudWatch.\n If you don't set a value for this parameter, then TCP is used. However, Amazon ECS doesn't add protocol-specific telemetry for TCP.\n ``appProtocol`` is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment.\n Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS se" + "description": "The application protocol that's used for the port mapping. This parameter only applies to Service Connect. We recommend that you set this parameter to be consistent with the protocol that your application uses. If you set this parameter, Amazon ECS adds protocol-specific connection handling to the Service Connect proxy. If you set this parameter, Amazon ECS adds protocol-specific telemetry in the Amazon ECS console and CloudWatch.\n If you don't set a value for this parameter, then TCP is used. However, Amazon ECS doesn't add protocol-specific telemetry for TCP.\n ``appProtocol`` is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment.\n Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*." }, "containerPort": { "type": "integer", @@ -104264,11 +107787,11 @@ }, "containerPortRange": { "type": "string", - "description": "The port number range on the container that's bound to the dynamically mapped host port range. \n The following rules apply when you specify a ``containerPortRange``:\n + You must use either the ``bridge`` network mode or the ``awsvpc`` network mode.\n + This parameter is available for both the EC2 and FARGATElong launch types.\n + This parameter is available for both the Linux and Windows operating systems.\n + The container instance must have at least version 1.67.0 of the container agent and at least version 1.67.0-1 of the ``ecs-init`` package \n + You can specify a maximum of 100 port ranges per container.\n + You do not specify a ``hostPortRange``. The value of the ``hostPortRange`` is set as follows:\n + For containers in a task with the ``awsvpc`` network mode, the ``hostPortRange`` is set to the same value as the ``containerPortRange``. This is a static mapping strategy.\n + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open host " + "description": "The port number range on the container that's bound to the dynamically mapped host port range. \n The following rules apply when you specify a ``containerPortRange``:\n + You must use either the ``bridge`` network mode or the ``awsvpc`` network mode.\n + This parameter is available for both the EC2 and FARGATElong launch types.\n + This parameter is available for both the Linux and Windows operating systems.\n + The container instance must have at least version 1.67.0 of the container agent and at least version 1.67.0-1 of the ``ecs-init`` package \n + You can specify a maximum of 100 port ranges per container.\n + You do not specify a ``hostPortRange``. The value of the ``hostPortRange`` is set as follows:\n + For containers in a task with the ``awsvpc`` network mode, the ``hostPortRange`` is set to the same value as the ``containerPortRange``. This is a static mapping strategy.\n + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open host ports from the default ephemeral range and passes it to docker to bind them to the container ports.\n \n + The ``containerPortRange`` valid values are between 1 and 65535.\n + A port can only be included in one port mapping per container.\n + You cannot specify overlapping port ranges.\n + The first port in the range must be less than last port in the range.\n + Docker recommends that you turn off the docker-proxy in the Docker daemon config file when you have a large number of ports.\n For more information, see [Issue #11185](https://docs.aws.amazon.com/https://github.com/moby/moby/issues/11185) on the Github website.\n For information about how to turn off the docker-proxy in the Docker daemon config file, see [Docker daemon](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/bootstrap_container_instance.html#bootstrap_docker_daemon) in the *Amazon ECS Developer Guide*.\n \n You can call [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) to view the ``hostPortRange`` which are the host ports that are bound to the container ports." }, "hostPort": { "type": "integer", - "description": "The port number on the container instance to reserve for your container.\n If you specify a ``containerPortRange``, leave this field empty and the value of the ``hostPort`` is set as follows:\n + For containers in a task with the ``awsvpc`` network mode, the ``hostPort`` is set to the same value as the ``containerPort``. This is a static mapping strategy.\n + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open ports on the host and automatically binds them to the container ports. This is a dynamic mapping strategy.\n \n If you use containers in a task with the ``awsvpc`` or ``host`` network mode, the ``hostPort`` can either be left blank or set to the same value as the ``containerPort``.\n If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0``) while specifying a ``containerPort`` and your container automatically" + "description": "The port number on the container instance to reserve for your container.\n If you specify a ``containerPortRange``, leave this field empty and the value of the ``hostPort`` is set as follows:\n + For containers in a task with the ``awsvpc`` network mode, the ``hostPort`` is set to the same value as the ``containerPort``. This is a static mapping strategy.\n + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open ports on the host and automatically binds them to the container ports. This is a dynamic mapping strategy.\n \n If you use containers in a task with the ``awsvpc`` or ``host`` network mode, the ``hostPort`` can either be left blank or set to the same value as the ``containerPort``.\n If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0``) while specifying a ``containerPort`` and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version.\n The default ephemeral port range for Docker version 1.6.0 and later is listed on the instance under ``/proc/sys/net/ipv4/ip_local_port_range``. If this kernel parameter is unavailable, the default ephemeral port range from 49153 through 65535 (Linux) or 49152 through 65535 (Windows) is used. Do not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range.\n The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678-51680. Any host port that was previously specified in a running task is also reserved while the task is running. That is, after a task stops, the host port is released. The current reserved ports are displayed in the ``remainingResources`` of [DescribeContainerInstances](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html) output. A container instance can have up to 100 reserved ports at a time. This number includes the default reserved ports. Automatically assigned ports aren't included in the 100 reserved ports quota." }, "name": { "type": "string", @@ -104295,7 +107818,7 @@ "items": { "$ref": "#/types/aws-native:ecs:TaskDefinitionKeyValuePair" }, - "description": "The set of network configuration parameters to provide the Container Network Interface (CNI) plugin, specified as key-value pairs.\n + ``IgnoredUID`` - (Required) The user ID (UID) of the proxy container as defined by the ``user`` parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If ``IgnoredGID`` is specified, this field can be empty.\n + ``IgnoredGID`` - (Required) The group ID (GID) of the proxy container as defined by the ``user`` parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If ``IgnoredUID`` is specified, this field can be empty.\n + ``AppPorts`` - (Required) The list of ports that the application uses. Network traffic to these ports is forwarded to the ``ProxyIngressPort`` and ``ProxyEgressPort``.\n + ``ProxyIngressPort`` - (Required) Specifies the port that incoming traffic to the ``AppPorts`` is directed to.\n + ``ProxyEgressPort`` - (Required) Specifies the port that outgoi" + "description": "The set of network configuration parameters to provide the Container Network Interface (CNI) plugin, specified as key-value pairs.\n + ``IgnoredUID`` - (Required) The user ID (UID) of the proxy container as defined by the ``user`` parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If ``IgnoredGID`` is specified, this field can be empty.\n + ``IgnoredGID`` - (Required) The group ID (GID) of the proxy container as defined by the ``user`` parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If ``IgnoredUID`` is specified, this field can be empty.\n + ``AppPorts`` - (Required) The list of ports that the application uses. Network traffic to these ports is forwarded to the ``ProxyIngressPort`` and ``ProxyEgressPort``.\n + ``ProxyIngressPort`` - (Required) Specifies the port that incoming traffic to the ``AppPorts`` is directed to.\n + ``ProxyEgressPort`` - (Required) Specifies the port that outgoing traffic from the ``AppPorts`` is directed to.\n + ``EgressIgnoredPorts`` - (Required) The egress traffic going to the specified ports is ignored and not redirected to the ``ProxyEgressPort``. It can be an empty list.\n + ``EgressIgnoredIPs`` - (Required) The egress traffic going to the specified IP addresses is ignored and not redirected to the ``ProxyEgressPort``. It can be an empty list." }, "type": { "type": "string", @@ -104429,6 +107952,9 @@ "$ref": "#/types/aws-native:ecs:TaskDefinitionEfsVolumeConfiguration", "description": "This parameter is specified when you use an Amazon Elastic File System file system for task storage." }, + "fSxWindowsFileServerVolumeConfiguration": { + "$ref": "#/types/aws-native:ecs:TaskDefinitionFSxWindowsFileServerVolumeConfiguration" + }, "host": { "$ref": "#/types/aws-native:ecs:TaskDefinitionHostVolumeProperties", "description": "This parameter is specified when you use bind mount host volumes. The contents of the ``host`` parameter determine whether your bind mount host volume persists on the host container instance and where it's stored. If the ``host`` parameter is empty, then the Docker daemon assigns a host path for your data volume. However, the data isn't guaranteed to persist after the containers that are associated with it stop running.\n Windows containers can mount whole directories on the same drive as ``$env:ProgramData``. Windows containers can't mount directories on a different drive, and mount point can't be across drives. For example, you can mount ``C:\\my\\path:C:\\my\\path`` and ``D:\\:D:\\``, but not ``D:\\my\\path:C:\\my\\path`` or ``D:\\:C:\\my\\path``." @@ -104629,11 +108155,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 +108755,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 +108774,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 +110112,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": { @@ -106645,6 +110188,65 @@ } } }, + "aws-native:entityresolution:IdNamespaceIdMappingWorkflowProperties": { + "type": "object", + "properties": { + "idMappingType": { + "$ref": "#/types/aws-native:entityresolution:IdNamespaceIdMappingWorkflowPropertiesIdMappingType" + }, + "providerProperties": { + "$ref": "#/types/aws-native:entityresolution:IdNamespaceNamespaceProviderProperties" + } + } + }, + "aws-native:entityresolution:IdNamespaceIdMappingWorkflowPropertiesIdMappingType": { + "type": "string" + }, + "aws-native:entityresolution:IdNamespaceInputSource": { + "type": "object", + "properties": { + "inputSourceArn": { + "type": "string" + }, + "schemaName": { + "type": "string" + } + }, + "irreversibleNames": { + "inputSourceArn": "InputSourceARN" + } + }, + "aws-native:entityresolution:IdNamespaceNamespaceProviderProperties": { + "type": "object", + "properties": { + "providerConfiguration": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Additional Provider configuration that would be required for the provider service. The Configuration must be in JSON string format." + }, + "providerServiceArn": { + "type": "string" + } + } + }, + "aws-native:entityresolution:IdNamespaceTag": { + "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:entityresolution:IdNamespaceType": { + "type": "string" + }, "aws-native:entityresolution:MatchingWorkflowInputSource": { "type": "object", "properties": { @@ -106791,6 +110393,9 @@ } } }, + "aws-native:entityresolution:PolicyStatementStatementEffect": { + "type": "string" + }, "aws-native:entityresolution:SchemaMappingSchemaAttributeType": { "type": "string" }, @@ -115760,10 +119365,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": { @@ -116855,6 +120474,19 @@ "aws-native:ivs:ChannelType": { "type": "string" }, + "aws-native:ivs:EncoderConfigurationTag": { + "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:ivs:PlaybackKeyPairTag": { "type": "object", "properties": { @@ -116866,6 +120498,19 @@ } } }, + "aws-native:ivs:PlaybackRestrictionPolicyTag": { + "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:ivs:RecordingConfigurationDestinationConfiguration": { "type": "object", "properties": { @@ -116973,6 +120618,27 @@ } } }, + "aws-native:ivs:StorageConfigurationS3StorageConfiguration": { + "type": "object", + "properties": { + "bucketName": { + "type": "string", + "description": "Location (S3 bucket name) where recorded videos will be stored. Note that the StorageConfiguration and S3 bucket must be in the same region as the Composition.", + "replaceOnChanges": true + } + } + }, + "aws-native:ivs:StorageConfigurationTag": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + } + }, "aws-native:ivs:StreamKeyTag": { "type": "object", "properties": { @@ -116984,6 +120650,31 @@ } } }, + "aws-native:ivs:VideoProperties": { + "type": "object", + "properties": { + "bitrate": { + "type": "integer", + "description": "Bitrate for generated output, in bps. Default: 2500000.", + "replaceOnChanges": true + }, + "framerate": { + "type": "number", + "description": "Video frame rate, in fps. Default: 30.", + "replaceOnChanges": true + }, + "height": { + "type": "integer", + "description": "Video-resolution height. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 720.", + "replaceOnChanges": true + }, + "width": { + "type": "integer", + "description": "Video-resolution width. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 1280.", + "replaceOnChanges": true + } + } + }, "aws-native:ivschat:LoggingConfigurationCloudWatchLogsDestinationConfiguration": { "type": "object", "properties": { @@ -117312,6 +121003,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": { @@ -121035,7 +124794,7 @@ }, "updateRuntimeOn": { "$ref": "#/types/aws-native:lambda:FunctionRuntimeManagementConfigUpdateRuntimeOn", - "description": "Specify the runtime update mode.\n + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates.\n + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date.\n + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback).\n \n *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual``" + "description": "Specify the runtime update mode.\n + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates.\n + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date.\n + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback).\n \n *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual``" } } }, @@ -123629,12 +127388,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 +127400,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 +127413,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 +163254,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" }, @@ -159979,11 +163756,11 @@ "properties": { "vpcId": { "type": "string", - "description": "*Private hosted zones only:* The ID of an Amazon VPC.\n For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``." + "description": "*Private hosted zones only:* The ID of an Amazon VPC.\n For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``." }, "vpcRegion": { "type": "string", - "description": "*Private hosted zones only:* The region that an Amazon VPC was created in.\n For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``." + "description": "*Private hosted zones only:* The region that an Amazon VPC was created in.\n For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``." } }, "irreversibleNames": { @@ -162434,6 +166211,15 @@ "aws-native:s3outposts:EndpointStatus": { "type": "string" }, + "aws-native:sagemaker:AppImageConfigCodeEditorAppImageConfig": { + "type": "object", + "properties": { + "containerConfig": { + "$ref": "#/types/aws-native:sagemaker:AppImageConfigContainerConfig", + "description": "The container configuration for a SageMaker image." + } + } + }, "aws-native:sagemaker:AppImageConfigContainerConfig": { "type": "object", "properties": { @@ -162972,6 +166758,13 @@ "aws-native:sagemaker:DomainCodeEditorAppSettings": { "type": "object", "properties": { + "customImages": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:sagemaker:DomainCustomImage" + }, + "description": "A list of custom images for use for CodeEditor apps." + }, "defaultResourceSpec": { "$ref": "#/types/aws-native:sagemaker:DomainResourceSpec", "description": "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the CodeEditor app." @@ -166803,6 +170596,13 @@ "aws-native:sagemaker:UserProfileCodeEditorAppSettings": { "type": "object", "properties": { + "customImages": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:sagemaker:UserProfileCustomImage" + }, + "description": "A list of custom images for use for CodeEditor apps." + }, "defaultResourceSpec": { "$ref": "#/types/aws-native:sagemaker:UserProfileResourceSpec", "description": "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the CodeEditor app." @@ -167873,6 +171673,858 @@ } } }, + "aws-native:securityhub:DelegatedAdminStatus": { + "type": "string" + }, + "aws-native:securityhub:InsightAwsSecurityFindingFilters": { + "type": "object", + "properties": { + "awsAccountId": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The AWS account ID in which a finding is generated." + }, + "awsAccountName": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The name of the AWS account in which a finding is generated." + }, + "companyName": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The name of the findings provider (company) that owns the solution (product) that generates findings." + }, + "complianceAssociatedStandardsId": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The unique identifier of a standard in which a control is enabled." + }, + "complianceSecurityControlId": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The unique identifier of a control across standards." + }, + "complianceSecurityControlParametersName": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The name of a security control parameter." + }, + "complianceSecurityControlParametersValue": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The current value of a security control parameter." + }, + "complianceStatus": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "Exclusive to findings that are generated as the result of a check run against a specific rule in a supported standard." + }, + "confidence": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightNumberFilter" + }, + "description": "A finding's confidence." + }, + "createdAt": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightDateFilter" + }, + "description": "An ISO8601-formatted timestamp that indicates when the security findings provider captured the potential security issue that a finding captured." + }, + "criticality": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightNumberFilter" + }, + "description": "The level of importance assigned to the resources associated with the finding." + }, + "description": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "A finding's description." + }, + "findingProviderFieldsConfidence": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightNumberFilter" + }, + "description": "The finding provider value for the finding confidence." + }, + "findingProviderFieldsCriticality": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightNumberFilter" + }, + "description": "The finding provider value for the level of importance assigned to the resources associated with the findings." + }, + "findingProviderFieldsRelatedFindingsId": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The finding identifier of a related finding that is identified by the finding provider." + }, + "findingProviderFieldsRelatedFindingsProductArn": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The ARN of the solution that generated a related finding that is identified by the finding provider." + }, + "findingProviderFieldsSeverityLabel": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The finding provider value for the severity label." + }, + "findingProviderFieldsSeverityOriginal": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The finding provider's original value for the severity." + }, + "findingProviderFieldsTypes": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "One or more finding types that the finding provider assigned to the finding." + }, + "firstObservedAt": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightDateFilter" + }, + "description": "An ISO8601-formatted timestamp that indicates when the security findings provider first observed the potential security issue that a finding captured." + }, + "generatorId": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The identifier for the solution-specific component (a discrete unit of logic) that generated a finding." + }, + "id": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The security findings provider-specific identifier for a finding." + }, + "keyword": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightKeywordFilter" + }, + "description": "A keyword for a finding." + }, + "lastObservedAt": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightDateFilter" + }, + "description": "An ISO8601-formatted timestamp that indicates when the security findings provider most recently observed the potential security issue that a finding captured." + }, + "malwareName": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The name of the malware that was observed." + }, + "malwarePath": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The filesystem path of the malware that was observed." + }, + "malwareState": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The state of the malware that was observed." + }, + "malwareType": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The type of the malware that was observed." + }, + "networkDestinationDomain": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The destination domain of network-related information about a finding." + }, + "networkDestinationIpV4": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightIpFilter" + }, + "description": "The destination IPv4 address of network-related information about a finding." + }, + "networkDestinationIpV6": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightIpFilter" + }, + "description": "The destination IPv6 address of network-related information about a finding." + }, + "networkDestinationPort": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightNumberFilter" + }, + "description": "The destination port of network-related information about a finding." + }, + "networkDirection": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "Indicates the direction of network traffic associated with a finding." + }, + "networkProtocol": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The protocol of network-related information about a finding." + }, + "networkSourceDomain": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The source domain of network-related information about a finding." + }, + "networkSourceIpV4": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightIpFilter" + }, + "description": "The source IPv4 address of network-related information about a finding." + }, + "networkSourceIpV6": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightIpFilter" + }, + "description": "The source IPv6 address of network-related information about a finding." + }, + "networkSourceMac": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The source media access control (MAC) address of network-related information about a finding." + }, + "networkSourcePort": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightNumberFilter" + }, + "description": "The source port of network-related information about a finding." + }, + "noteText": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The text of a note." + }, + "noteUpdatedAt": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightDateFilter" + }, + "description": "The timestamp of when the note was updated." + }, + "noteUpdatedBy": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The principal that created a note." + }, + "processLaunchedAt": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightDateFilter" + }, + "description": "A timestamp that identifies when the process was launched." + }, + "processName": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The name of the process." + }, + "processParentPid": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightNumberFilter" + }, + "description": "The parent process ID." + }, + "processPath": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The path to the process executable." + }, + "processPid": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightNumberFilter" + }, + "description": "The process ID." + }, + "processTerminatedAt": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightDateFilter" + }, + "description": "A timestamp that identifies when the process was terminated." + }, + "productArn": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The ARN generated by Security Hub that uniquely identifies a third-party company (security findings provider) after this provider's product (solution that generates findings) is registered with Security Hub." + }, + "productFields": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightMapFilter" + }, + "description": "A data type where security findings providers can include additional solution-specific details that aren't part of the defined AwsSecurityFinding format." + }, + "productName": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The name of the solution (product) that generates findings." + }, + "recommendationText": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The recommendation of what to do about the issue described in a finding." + }, + "recordState": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The updated record state for the finding." + }, + "region": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The Region from which the finding was generated." + }, + "relatedFindingsId": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The solution-generated identifier for a related finding." + }, + "relatedFindingsProductArn": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The ARN of the solution that generated a related finding." + }, + "resourceApplicationArn": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The ARN of the application that is related to a finding." + }, + "resourceApplicationName": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The name of the application that is related to a finding." + }, + "resourceAwsEc2InstanceIamInstanceProfileArn": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The IAM profile ARN of the instance." + }, + "resourceAwsEc2InstanceImageId": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The Amazon Machine Image (AMI) ID of the instance." + }, + "resourceAwsEc2InstanceIpV4Addresses": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightIpFilter" + }, + "description": "The IPv4 addresses associated with the instance." + }, + "resourceAwsEc2InstanceIpV6Addresses": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightIpFilter" + }, + "description": "The IPv6 addresses associated with the instance." + }, + "resourceAwsEc2InstanceKeyName": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The key name associated with the instance." + }, + "resourceAwsEc2InstanceLaunchedAt": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightDateFilter" + }, + "description": "The date and time the instance was launched." + }, + "resourceAwsEc2InstanceSubnetId": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The identifier of the subnet that the instance was launched in." + }, + "resourceAwsEc2InstanceType": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The instance type of the instance." + }, + "resourceAwsEc2InstanceVpcId": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The identifier of the VPC that the instance was launched in." + }, + "resourceAwsIamAccessKeyCreatedAt": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightDateFilter" + }, + "description": "The creation date/time of the IAM access key related to a finding." + }, + "resourceAwsIamAccessKeyPrincipalName": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The name of the principal that is associated with an IAM access key." + }, + "resourceAwsIamAccessKeyStatus": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The status of the IAM access key related to a finding." + }, + "resourceAwsIamAccessKeyUserName": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The user associated with the IAM access key related to a finding." + }, + "resourceAwsIamUserUserName": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The name of an IAM user." + }, + "resourceAwsS3BucketOwnerId": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The canonical user ID of the owner of the S3 bucket." + }, + "resourceAwsS3BucketOwnerName": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The display name of the owner of the S3 bucket." + }, + "resourceContainerImageId": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The identifier of the image related to a finding." + }, + "resourceContainerImageName": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The name of the image related to a finding." + }, + "resourceContainerLaunchedAt": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightDateFilter" + }, + "description": "A timestamp that identifies when the container was started." + }, + "resourceContainerName": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The name of the container related to a finding." + }, + "resourceDetailsOther": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightMapFilter" + }, + "description": "The details of a resource that doesn't have a specific subfield for the resource type defined." + }, + "resourceId": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The canonical identifier for the given resource type." + }, + "resourcePartition": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The canonical AWS partition name that the Region is assigned to." + }, + "resourceRegion": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The canonical AWS external Region name where this resource is located." + }, + "resourceTags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightMapFilter" + }, + "description": "A list of AWS tags associated with a resource at the time the finding was processed." + }, + "resourceType": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "Specifies the type of the resource that details are provided for." + }, + "sample": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightBooleanFilter" + }, + "description": "Indicates whether or not sample findings are included in the filter results." + }, + "severityLabel": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The label of a finding's severity." + }, + "severityNormalized": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightNumberFilter" + }, + "description": "The normalized severity of a finding." + }, + "severityProduct": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightNumberFilter" + }, + "description": "The native severity as defined by the security findings provider's solution that generated the finding." + }, + "sourceUrl": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "A URL that links to a page about the current finding in the security findings provider's solution." + }, + "threatIntelIndicatorCategory": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The category of a threat intelligence indicator." + }, + "threatIntelIndicatorLastObservedAt": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightDateFilter" + }, + "description": "A timestamp that identifies the last observation of a threat intelligence indicator." + }, + "threatIntelIndicatorSource": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The source of the threat intelligence." + }, + "threatIntelIndicatorSourceUrl": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The URL for more details from the source of the threat intelligence." + }, + "threatIntelIndicatorType": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The type of a threat intelligence indicator." + }, + "threatIntelIndicatorValue": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The value of a threat intelligence indicator." + }, + "title": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "A finding's title." + }, + "type": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "A finding type in the format of namespace/category/classifier that classifies a finding." + }, + "updatedAt": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightDateFilter" + }, + "description": "An ISO8601-formatted timestamp that indicates when the security findings provider last updated the finding record." + }, + "userDefinedFields": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightMapFilter" + }, + "description": "A list of name/value string pairs associated with the finding." + }, + "verificationState": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The veracity of a finding." + }, + "vulnerabilitiesExploitAvailable": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "Indicates whether a software vulnerability in your environment has a known exploit." + }, + "vulnerabilitiesFixAvailable": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "Indicates whether a vulnerability is fixed in a newer version of the affected software packages." + }, + "workflowState": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The workflow state of a finding." + }, + "workflowStatus": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The status of the investigation into a finding." + } + }, + "irreversibleNames": { + "networkDestinationIpV4": "NetworkDestinationIpV4", + "networkDestinationIpV6": "NetworkDestinationIpV6", + "networkSourceIpV4": "NetworkSourceIpV4", + "networkSourceIpV6": "NetworkSourceIpV6", + "resourceAwsEc2InstanceIpV4Addresses": "ResourceAwsEc2InstanceIpV4Addresses", + "resourceAwsEc2InstanceIpV6Addresses": "ResourceAwsEc2InstanceIpV6Addresses", + "resourceAwsS3BucketOwnerId": "ResourceAwsS3BucketOwnerId", + "resourceAwsS3BucketOwnerName": "ResourceAwsS3BucketOwnerName" + } + }, + "aws-native:securityhub:InsightBooleanFilter": { + "type": "object", + "properties": { + "value": { + "type": "boolean", + "description": "The value of the boolean." + } + } + }, + "aws-native:securityhub:InsightDateFilter": { + "type": "object", + "properties": { + "dateRange": { + "$ref": "#/types/aws-native:securityhub:InsightDateRange" + }, + "end": { + "type": "string" + }, + "start": { + "type": "string" + } + } + }, + "aws-native:securityhub:InsightDateRange": { + "type": "object", + "properties": { + "unit": { + "$ref": "#/types/aws-native:securityhub:InsightDateRangeUnit", + "description": "A date range unit for the date filter." + }, + "value": { + "type": "number", + "description": "A date range value for the date filter." + } + } + }, + "aws-native:securityhub:InsightDateRangeUnit": { + "type": "string" + }, + "aws-native:securityhub:InsightIpFilter": { + "type": "object", + "properties": { + "cidr": { + "type": "string", + "description": "A finding's CIDR value." + } + } + }, + "aws-native:securityhub:InsightKeywordFilter": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "A value for the keyword." + } + } + }, + "aws-native:securityhub:InsightMapFilter": { + "type": "object", + "properties": { + "comparison": { + "$ref": "#/types/aws-native:securityhub:InsightMapFilterComparison", + "description": "The condition to apply to the key value when filtering Security Hub findings with a map filter." + }, + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + } + }, + "aws-native:securityhub:InsightMapFilterComparison": { + "type": "string" + }, + "aws-native:securityhub:InsightNumberFilter": { + "type": "object", + "properties": { + "eq": { + "type": "number", + "description": "The equal-to condition to be applied to a single field when querying for findings." + }, + "gte": { + "type": "number", + "description": "The greater-than-equal condition to be applied to a single field when querying for findings." + }, + "lte": { + "type": "number", + "description": "The less-than-equal condition to be applied to a single field when querying for findings." + } + } + }, + "aws-native:securityhub:InsightStringFilter": { + "type": "object", + "properties": { + "comparison": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilterComparison" + }, + "value": { + "type": "string" + } + } + }, + "aws-native:securityhub:InsightStringFilterComparison": { + "type": "string" + }, "aws-native:securityhub:StandardsControl": { "type": "object", "properties": { @@ -167886,6 +172538,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" }, @@ -170213,6 +175009,14 @@ } } }, + "aws-native:verifiedpermissions:IdentitySourceCognitoGroupConfiguration": { + "type": "object", + "properties": { + "groupEntityType": { + "type": "string" + } + } + }, "aws-native:verifiedpermissions:IdentitySourceCognitoUserPoolConfiguration": { "type": "object", "properties": { @@ -170222,6 +175026,9 @@ "type": "string" } }, + "groupConfiguration": { + "$ref": "#/types/aws-native:verifiedpermissions:IdentitySourceCognitoGroupConfiguration" + }, "userPoolArn": { "type": "string" } @@ -173796,6 +178603,12 @@ "flowName" ] }, + "aws-native:appintegrations:getApplication": { + "cf": "AWS::AppIntegrations::Application", + "ids": [ + "applicationArn" + ] + }, "aws-native:appintegrations:getDataIntegration": { "cf": "AWS::AppIntegrations::DataIntegration", "ids": [ @@ -173932,6 +178745,12 @@ "arn" ] }, + "aws-native:aps:getScraper": { + "cf": "AWS::APS::Scraper", + "ids": [ + "arn" + ] + }, "aws-native:aps:getWorkspace": { "cf": "AWS::APS::Workspace", "ids": [ @@ -174110,6 +178929,32 @@ "arn" ] }, + "aws-native:bedrock:getAgent": { + "cf": "AWS::Bedrock::Agent", + "ids": [ + "agentId" + ] + }, + "aws-native:bedrock:getAgentAlias": { + "cf": "AWS::Bedrock::AgentAlias", + "ids": [ + "agentId", + "agentAliasId" + ] + }, + "aws-native:bedrock:getDataSource": { + "cf": "AWS::Bedrock::DataSource", + "ids": [ + "knowledgeBaseId", + "dataSourceId" + ] + }, + "aws-native:bedrock:getKnowledgeBase": { + "cf": "AWS::Bedrock::KnowledgeBase", + "ids": [ + "knowledgeBaseId" + ] + }, "aws-native:budgets:getBudgetsAction": { "cf": "AWS::Budgets::BudgetsAction", "ids": [ @@ -174198,6 +179043,12 @@ "membershipIdentifier" ] }, + "aws-native:cleanroomsml:getTrainingDataset": { + "cf": "AWS::CleanRoomsML::TrainingDataset", + "ids": [ + "trainingDatasetArn" + ] + }, "aws-native:cloudformation:getHookDefaultVersion": { "cf": "AWS::CloudFormation::HookDefaultVersion", "ids": [ @@ -174390,6 +179241,12 @@ "arn" ] }, + "aws-native:codeartifact:getPackageGroup": { + "cf": "AWS::CodeArtifact::PackageGroup", + "ids": [ + "arn" + ] + }, "aws-native:codeartifact:getRepository": { "cf": "AWS::CodeArtifact::Repository", "ids": [ @@ -174402,6 +179259,12 @@ "arn" ] }, + "aws-native:codeconnections:getConnection": { + "cf": "AWS::CodeConnections::Connection", + "ids": [ + "connectionArn" + ] + }, "aws-native:codedeploy:getApplication": { "cf": "AWS::CodeDeploy::Application", "ids": [ @@ -174950,6 +179813,51 @@ "id" ] }, + "aws-native:deadline:getFarm": { + "cf": "AWS::Deadline::Farm", + "ids": [ + "arn" + ] + }, + "aws-native:deadline:getFleet": { + "cf": "AWS::Deadline::Fleet", + "ids": [ + "arn" + ] + }, + "aws-native:deadline:getLicenseEndpoint": { + "cf": "AWS::Deadline::LicenseEndpoint", + "ids": [ + "arn" + ] + }, + "aws-native:deadline:getMeteredProduct": { + "cf": "AWS::Deadline::MeteredProduct", + "ids": [ + "arn" + ] + }, + "aws-native:deadline:getQueue": { + "cf": "AWS::Deadline::Queue", + "ids": [ + "arn" + ] + }, + "aws-native:deadline:getQueueEnvironment": { + "cf": "AWS::Deadline::QueueEnvironment", + "ids": [ + "farmId", + "queueId", + "queueEnvironmentId" + ] + }, + "aws-native:deadline:getStorageProfile": { + "cf": "AWS::Deadline::StorageProfile", + "ids": [ + "farmId", + "storageProfileId" + ] + }, "aws-native:detective:getGraph": { "cf": "AWS::Detective::Graph", "ids": [ @@ -175438,12 +180346,6 @@ "transitGatewayRouteTableId" ] }, - "aws-native:ec2:getTransitGatewayRouteTableAssociation": { - "cf": "AWS::EC2::TransitGatewayRouteTableAssociation", - "ids": [ - "id" - ] - }, "aws-native:ec2:getTransitGatewayVpcAttachment": { "cf": "AWS::EC2::TransitGatewayVpcAttachment", "ids": [ @@ -175802,12 +180704,25 @@ "workflowName" ] }, + "aws-native:entityresolution:getIdNamespace": { + "cf": "AWS::EntityResolution::IdNamespace", + "ids": [ + "idNamespaceName" + ] + }, "aws-native:entityresolution:getMatchingWorkflow": { "cf": "AWS::EntityResolution::MatchingWorkflow", "ids": [ "workflowName" ] }, + "aws-native:entityresolution:getPolicyStatement": { + "cf": "AWS::EntityResolution::PolicyStatement", + "ids": [ + "arn", + "statementId" + ] + }, "aws-native:entityresolution:getSchemaMapping": { "cf": "AWS::EntityResolution::SchemaMapping", "ids": [ @@ -176706,12 +181621,24 @@ "arn" ] }, + "aws-native:ivs:getEncoderConfiguration": { + "cf": "AWS::IVS::EncoderConfiguration", + "ids": [ + "arn" + ] + }, "aws-native:ivs:getPlaybackKeyPair": { "cf": "AWS::IVS::PlaybackKeyPair", "ids": [ "arn" ] }, + "aws-native:ivs:getPlaybackRestrictionPolicy": { + "cf": "AWS::IVS::PlaybackRestrictionPolicy", + "ids": [ + "arn" + ] + }, "aws-native:ivs:getRecordingConfiguration": { "cf": "AWS::IVS::RecordingConfiguration", "ids": [ @@ -176724,6 +181651,12 @@ "arn" ] }, + "aws-native:ivs:getStorageConfiguration": { + "cf": "AWS::IVS::StorageConfiguration", + "ids": [ + "arn" + ] + }, "aws-native:ivs:getStreamKey": { "cf": "AWS::IVS::StreamKey", "ids": [ @@ -176748,6 +181681,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": [ @@ -178507,18 +183452,55 @@ "ruleArn" ] }, + "aws-native:securityhub:getDelegatedAdmin": { + "cf": "AWS::SecurityHub::DelegatedAdmin", + "ids": [ + "delegatedAdminIdentifier" + ] + }, "aws-native:securityhub:getHub": { "cf": "AWS::SecurityHub::Hub", "ids": [ "arn" ] }, + "aws-native:securityhub:getInsight": { + "cf": "AWS::SecurityHub::Insight", + "ids": [ + "insightArn" + ] + }, + "aws-native:securityhub:getProductSubscription": { + "cf": "AWS::SecurityHub::ProductSubscription", + "ids": [ + "productSubscriptionArn" + ] + }, "aws-native:securityhub:getStandard": { "cf": "AWS::SecurityHub::Standard", "ids": [ "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..ff3b520661 100644 --- a/provider/cmd/pulumi-resource-aws-native/schema.json +++ b/provider/cmd/pulumi-resource-aws-native/schema.json @@ -40,18 +40,21 @@ "backup": "Backup", "backupgateway": "BackupGateway", "batch": "Batch", + "bedrock": "Bedrock", "budgets": "Budgets", "cassandra": "Cassandra", "ce": "Ce", "certificatemanager": "CertificateManager", "chatbot": "Chatbot", "cleanrooms": "CleanRooms", + "cleanroomsml": "CleanRoomsMl", "cloudformation": "CloudFormation", "cloudfront": "CloudFront", "cloudtrail": "CloudTrail", "cloudwatch": "CloudWatch", "codeartifact": "CodeArtifact", "codebuild": "CodeBuild", + "codeconnections": "CodeConnections", "codedeploy": "CodeDeploy", "codeguruprofiler": "CodeGuruProfiler", "codegurureviewer": "CodeGuruReviewer", @@ -69,6 +72,7 @@ "datapipeline": "DataPipeline", "datasync": "DataSync", "datazone": "DataZone", + "deadline": "Deadline", "detective": "Detective", "devicefarm": "DeviceFarm", "devopsguru": "DevOpsGuru", @@ -193,6 +197,7 @@ "scheduler": "Scheduler", "secretsmanager": "SecretsManager", "securityhub": "SecurityHub", + "securitylake": "SecurityLake", "servicecatalog": "ServiceCatalog", "servicecatalogappregistry": "ServiceCatalogAppRegistry", "ses": "Ses", @@ -6947,6 +6952,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 +8879,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 +9005,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": { @@ -9041,10 +9184,6 @@ { "name": "Enabled", "value": "ENABLED" - }, - { - "name": "Disabled", - "value": "DISABLED" } ] }, @@ -12468,6 +12607,757 @@ }, "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:bedrock:DataSourceChunkingConfiguration": { + "description": "Details about how to chunk the documents in the data source. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried.", + "properties": { + "chunkingStrategy": { + "$ref": "#/types/aws-native:bedrock:DataSourceChunkingStrategy" + }, + "fixedSizeChunkingConfiguration": { + "$ref": "#/types/aws-native:bedrock:DataSourceFixedSizeChunkingConfiguration" + } + }, + "type": "object", + "required": [ + "chunkingStrategy" + ] + }, + "aws-native:bedrock:DataSourceChunkingStrategy": { + "description": "Knowledge base can split your source data into chunks. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried. You have the following options for chunking your data. If you opt for NONE, then you may want to pre-process your files by splitting them up such that each file corresponds to a chunk.", + "type": "string", + "enum": [ + { + "name": "FixedSize", + "value": "FIXED_SIZE" + }, + { + "name": "None", + "value": "NONE" + } + ] + }, + "aws-native:bedrock:DataSourceConfiguration": { + "description": "Specifies a raw data source location to ingest.", + "properties": { + "s3Configuration": { + "$ref": "#/types/aws-native:bedrock:DataSourceS3DataSourceConfiguration" + }, + "type": { + "$ref": "#/types/aws-native:bedrock:DataSourceType" + } + }, + "type": "object", + "required": [ + "s3Configuration", + "type" + ] + }, + "aws-native:bedrock:DataSourceFixedSizeChunkingConfiguration": { + "description": "Configurations for when you choose fixed-size chunking. If you set the chunkingStrategy as NONE, exclude this field.", + "properties": { + "maxTokens": { + "type": "integer", + "description": "The maximum number of tokens to include in a chunk." + }, + "overlapPercentage": { + "type": "integer", + "description": "The percentage of overlap between adjacent chunks of a data source." + } + }, + "type": "object", + "required": [ + "maxTokens", + "overlapPercentage" + ] + }, + "aws-native:bedrock:DataSourceS3DataSourceConfiguration": { + "description": "Contains information about the S3 configuration of the data source.", + "properties": { + "bucketArn": { + "type": "string", + "description": "The ARN of the bucket that contains the data source." + }, + "inclusionPrefixes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of S3 prefixes that define the object containing the data sources." + } + }, + "type": "object", + "required": [ + "bucketArn" + ] + }, + "aws-native:bedrock:DataSourceServerSideEncryptionConfiguration": { + "description": "Contains details about the server-side encryption for the data source.", + "properties": { + "kmsKeyArn": { + "type": "string", + "description": "The ARN of the AWS KMS key used to encrypt the resource." + } + }, + "type": "object" + }, + "aws-native:bedrock:DataSourceStatus": { + "description": "The status of a data source.", + "type": "string", + "enum": [ + { + "name": "Available", + "value": "AVAILABLE" + }, + { + "name": "Deleting", + "value": "DELETING" + } + ] + }, + "aws-native:bedrock:DataSourceType": { + "description": "The type of the data source location.", + "type": "string", + "enum": [ + { + "name": "S3", + "value": "S3" + } + ] + }, + "aws-native:bedrock:DataSourceVectorIngestionConfiguration": { + "description": "Details about how to chunk the documents in the data source. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried.", + "properties": { + "chunkingConfiguration": { + "$ref": "#/types/aws-native:bedrock:DataSourceChunkingConfiguration" + } + }, + "type": "object" + }, + "aws-native:bedrock:KnowledgeBaseConfiguration": { + "description": "Contains details about the embeddings model used for the knowledge base.", + "properties": { + "type": { + "$ref": "#/types/aws-native:bedrock:KnowledgeBaseType" + }, + "vectorKnowledgeBaseConfiguration": { + "$ref": "#/types/aws-native:bedrock:KnowledgeBaseVectorKnowledgeBaseConfiguration" + } + }, + "type": "object", + "required": [ + "type", + "vectorKnowledgeBaseConfiguration" + ] + }, + "aws-native:bedrock:KnowledgeBaseOpenSearchServerlessConfiguration": { + "description": "Contains the storage configuration of the knowledge base in Amazon OpenSearch Service.", + "properties": { + "collectionArn": { + "type": "string", + "description": "The ARN of the OpenSearch Service vector store." + }, + "fieldMapping": { + "$ref": "#/types/aws-native:bedrock:KnowledgeBaseOpenSearchServerlessFieldMapping" + }, + "vectorIndexName": { + "type": "string", + "description": "The name of the vector store." + } + }, + "type": "object", + "required": [ + "collectionArn", + "fieldMapping", + "vectorIndexName" + ] + }, + "aws-native:bedrock:KnowledgeBaseOpenSearchServerlessFieldMapping": { + "description": "A mapping of Bedrock Knowledge Base fields to OpenSearch Serverless field names", + "properties": { + "metadataField": { + "type": "string", + "description": "The name of the field in which Amazon Bedrock stores metadata about the vector store." + }, + "textField": { + "type": "string", + "description": "The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose." + }, + "vectorField": { + "type": "string", + "description": "The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources." + } + }, + "type": "object", + "required": [ + "metadataField", + "textField", + "vectorField" + ] + }, + "aws-native:bedrock:KnowledgeBasePineconeConfiguration": { + "description": "Contains the storage configuration of the knowledge base in Pinecone.", + "properties": { + "connectionString": { + "type": "string", + "description": "The endpoint URL for your index management page." + }, + "credentialsSecretArn": { + "type": "string", + "description": "The ARN of the secret that you created in AWS Secrets Manager that is linked to your Pinecone API key." + }, + "fieldMapping": { + "$ref": "#/types/aws-native:bedrock:KnowledgeBasePineconeFieldMapping" + }, + "namespace": { + "type": "string", + "description": "The namespace to be used to write new data to your database." + } + }, + "type": "object", + "required": [ + "connectionString", + "credentialsSecretArn", + "fieldMapping" + ] + }, + "aws-native:bedrock:KnowledgeBasePineconeFieldMapping": { + "description": "Contains the names of the fields to which to map information about the vector store.", + "properties": { + "metadataField": { + "type": "string", + "description": "The name of the field in which Amazon Bedrock stores metadata about the vector store." + }, + "textField": { + "type": "string", + "description": "The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose." + } + }, + "type": "object", + "required": [ + "metadataField", + "textField" + ] + }, + "aws-native:bedrock:KnowledgeBaseRdsConfiguration": { + "description": "Contains details about the storage configuration of the knowledge base in Amazon RDS. For more information, see Create a vector index in Amazon RDS.", + "properties": { + "credentialsSecretArn": { + "type": "string", + "description": "The ARN of the secret that you created in AWS Secrets Manager that is linked to your Amazon RDS database." + }, + "databaseName": { + "type": "string", + "description": "The name of your Amazon RDS database." + }, + "fieldMapping": { + "$ref": "#/types/aws-native:bedrock:KnowledgeBaseRdsFieldMapping" + }, + "resourceArn": { + "type": "string", + "description": "The ARN of the vector store." + }, + "tableName": { + "type": "string", + "description": "The name of the table in the database." + } + }, + "type": "object", + "required": [ + "credentialsSecretArn", + "databaseName", + "fieldMapping", + "resourceArn", + "tableName" + ] + }, + "aws-native:bedrock:KnowledgeBaseRdsFieldMapping": { + "description": "Contains the names of the fields to which to map information about the vector store.", + "properties": { + "metadataField": { + "type": "string", + "description": "The name of the field in which Amazon Bedrock stores metadata about the vector store." + }, + "primaryKeyField": { + "type": "string", + "description": "The name of the field in which Amazon Bedrock stores the ID for each entry." + }, + "textField": { + "type": "string", + "description": "The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose." + }, + "vectorField": { + "type": "string", + "description": "The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources." + } + }, + "type": "object", + "required": [ + "metadataField", + "primaryKeyField", + "textField", + "vectorField" + ] + }, + "aws-native:bedrock:KnowledgeBaseStatus": { + "description": "The status of a knowledge base.", + "type": "string", + "enum": [ + { + "name": "Creating", + "value": "CREATING" + }, + { + "name": "Active", + "value": "ACTIVE" + }, + { + "name": "Deleting", + "value": "DELETING" + }, + { + "name": "Updating", + "value": "UPDATING" + }, + { + "name": "Failed", + "value": "FAILED" + } + ] + }, + "aws-native:bedrock:KnowledgeBaseStorageConfiguration": { + "description": "The vector store service in which the knowledge base is stored.", + "properties": { + "opensearchServerlessConfiguration": { + "$ref": "#/types/aws-native:bedrock:KnowledgeBaseOpenSearchServerlessConfiguration" + }, + "pineconeConfiguration": { + "$ref": "#/types/aws-native:bedrock:KnowledgeBasePineconeConfiguration" + }, + "rdsConfiguration": { + "$ref": "#/types/aws-native:bedrock:KnowledgeBaseRdsConfiguration" + }, + "type": { + "$ref": "#/types/aws-native:bedrock:KnowledgeBaseStorageType" + } + }, + "type": "object", + "required": [ + "type" + ] + }, + "aws-native:bedrock:KnowledgeBaseStorageType": { + "description": "The storage type of a knowledge base.", + "type": "string", + "enum": [ + { + "name": "OpensearchServerless", + "value": "OPENSEARCH_SERVERLESS" + }, + { + "name": "Pinecone", + "value": "PINECONE" + }, + { + "name": "Rds", + "value": "RDS" + } + ] + }, + "aws-native:bedrock:KnowledgeBaseType": { + "description": "The type of a knowledge base.", + "type": "string", + "enum": [ + { + "name": "Vector", + "value": "VECTOR" + } + ] + }, + "aws-native:bedrock:KnowledgeBaseVectorKnowledgeBaseConfiguration": { + "description": "Contains details about the model used to create vector embeddings for the knowledge base.", + "properties": { + "embeddingModelArn": { + "type": "string", + "description": "The ARN of the model used to create vector embeddings for the knowledge base." + } + }, + "type": "object", + "required": [ + "embeddingModelArn" + ] + }, "aws-native:budgets:BudgetsActionActionThreshold": { "properties": { "type": { @@ -13527,6 +14417,9 @@ "items": { "type": "string" } + }, + "differentialPrivacy": { + "$ref": "#/types/aws-native:cleanrooms:ConfiguredTableDifferentialPrivacy" } }, "type": "object", @@ -13647,6 +14540,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 +14656,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" } ] }, @@ -13873,6 +14835,144 @@ "value" ] }, + "aws-native:cleanroomsml:TrainingDatasetColumnSchema": { + "properties": { + "columnName": { + "type": "string" + }, + "columnTypes": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:cleanroomsml:TrainingDatasetColumnType" + } + } + }, + "type": "object", + "required": [ + "columnName", + "columnTypes" + ] + }, + "aws-native:cleanroomsml:TrainingDatasetColumnType": { + "type": "string", + "enum": [ + { + "name": "UserId", + "value": "USER_ID" + }, + { + "name": "ItemId", + "value": "ITEM_ID" + }, + { + "name": "Timestamp", + "value": "TIMESTAMP" + }, + { + "name": "CategoricalFeature", + "value": "CATEGORICAL_FEATURE" + }, + { + "name": "NumericalFeature", + "value": "NUMERICAL_FEATURE" + } + ] + }, + "aws-native:cleanroomsml:TrainingDatasetDataSource": { + "properties": { + "glueDataSource": { + "$ref": "#/types/aws-native:cleanroomsml:TrainingDatasetGlueDataSource" + } + }, + "type": "object", + "required": [ + "glueDataSource" + ] + }, + "aws-native:cleanroomsml:TrainingDatasetDataset": { + "properties": { + "inputConfig": { + "$ref": "#/types/aws-native:cleanroomsml:TrainingDatasetDatasetInputConfig" + }, + "type": { + "$ref": "#/types/aws-native:cleanroomsml:TrainingDatasetDatasetType" + } + }, + "type": "object", + "required": [ + "inputConfig", + "type" + ] + }, + "aws-native:cleanroomsml:TrainingDatasetDatasetInputConfig": { + "properties": { + "dataSource": { + "$ref": "#/types/aws-native:cleanroomsml:TrainingDatasetDataSource" + }, + "schema": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:cleanroomsml:TrainingDatasetColumnSchema" + } + } + }, + "type": "object", + "required": [ + "dataSource", + "schema" + ] + }, + "aws-native:cleanroomsml:TrainingDatasetDatasetType": { + "type": "string", + "enum": [ + { + "name": "Interactions", + "value": "INTERACTIONS" + } + ] + }, + "aws-native:cleanroomsml:TrainingDatasetGlueDataSource": { + "properties": { + "catalogId": { + "type": "string" + }, + "databaseName": { + "type": "string" + }, + "tableName": { + "type": "string" + } + }, + "type": "object", + "required": [ + "databaseName", + "tableName" + ] + }, + "aws-native:cleanroomsml:TrainingDatasetStatus": { + "type": "string", + "enum": [ + { + "name": "Active", + "value": "ACTIVE" + } + ] + }, + "aws-native:cleanroomsml:TrainingDatasetTag": { + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "required": [ + "key", + "value" + ] + }, "aws-native:cloudformation:HookTypeConfigConfigurationAlias": { "description": "An alias by which to refer to this extension configuration data.", "type": "string", @@ -14691,7 +15791,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 +15817,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 +15825,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 +15843,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 +15889,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 +15946,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 +15958,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 +15996,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 +16006,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 +16042,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 +16113,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 +16121,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 +16139,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 +16181,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 +16195,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 +16529,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 +16574,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 +16590,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" @@ -16391,15 +17491,15 @@ ] }, "aws-native:cloudwatch:AlarmDimension": { - "description": "Dimensions are arbitrary name/value pairs that can be associated with a CloudWatch metric.", + "description": "Dimension is an embedded property of the ``AWS::CloudWatch::Alarm`` type. Dimensions are name/value pairs that can be associated with a CW metric. You can specify a maximum of 10 dimensions for a given metric.", "properties": { "name": { "type": "string", - "description": "The name of the dimension." + "description": "The name of the dimension, from 1–255 characters in length. This dimension name must have been included when the metric was published." }, "value": { "type": "string", - "description": "The value for the dimension." + "description": "The value for the dimension, from 1–255 characters in length." } }, "type": "object", @@ -16409,28 +17509,28 @@ ] }, "aws-native:cloudwatch:AlarmMetric": { - "description": "The Metric property type represents a specific metric.", + "description": "The ``Metric`` property type represents a specific metric. ``Metric`` is a property of the [MetricStat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricstat.html) property type.", "properties": { "dimensions": { "type": "array", "items": { "$ref": "#/types/aws-native:cloudwatch:AlarmDimension" }, - "description": "The dimensions for the metric." + "description": "The metric dimensions that you want to be used for the metric that the alarm will watch." }, "metricName": { "type": "string", - "description": "The name of the metric." + "description": "The name of the metric that you want the alarm to watch. This is a required field." }, "namespace": { "type": "string", - "description": "The namespace of the metric." + "description": "The namespace of the metric that the alarm will watch." } }, "type": "object" }, "aws-native:cloudwatch:AlarmMetricDataQuery": { - "description": "This property type specifies the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a math expression on metric data.", + "description": "The ``MetricDataQuery`` property type specifies the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a math expression on metric data. \n Any expression used must return a single time series. For more information, see [Metric Math Syntax and Functions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) in the *User Guide*.", "properties": { "accountId": { "type": "string", @@ -16438,27 +17538,27 @@ }, "expression": { "type": "string", - "description": "The math expression to be performed on the returned data." + "description": "The math expression to be performed on the returned data, if this object is performing a math expression. This expression can use the ``Id`` of the other metrics to refer to those metrics, and can also use the ``Id`` of other expressions to use the result of those expressions. For more information about metric math expressions, see [Metric Math Syntax and Functions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) in the *User Guide*.\n Within each MetricDataQuery object, you must specify either ``Expression`` or ``MetricStat`` but not both." }, "id": { "type": "string", - "description": "A short name used to tie this object to the results in the response." + "description": "A short name used to tie this object to the results in the response. This name must be unique within a single call to ``GetMetricData``. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscore. The first character must be a lowercase letter." }, "label": { "type": "string", - "description": "A human-readable label for this metric or expression." + "description": "A human-readable label for this metric or expression. This is especially useful if this is an expression, so that you know what the value represents. If the metric or expression is shown in a CW dashboard widget, the label is shown. If ``Label`` is omitted, CW generates a default." }, "metricStat": { "$ref": "#/types/aws-native:cloudwatch:AlarmMetricStat", - "description": "The metric to be returned, along with statistics, period, and units." + "description": "The metric to be returned, along with statistics, period, and units. Use this parameter only if this object is retrieving a metric and not performing a math expression on returned data.\n Within one MetricDataQuery object, you must specify either ``Expression`` or ``MetricStat`` but not both." }, "period": { "type": "integer", - "description": "The period in seconds, over which the statistic is applied." + "description": "The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a ``PutMetricData`` operation that includes a ``StorageResolution of 1 second``." }, "returnData": { "type": "boolean", - "description": "This option indicates whether to return the timestamps and raw data values of this metric." + "description": "This option indicates whether to return the timestamps and raw data values of this metric.\n When you create an alarm based on a metric math expression, specify ``True`` for this value for only the one math expression that the alarm is based on. You must specify ``False`` for ``ReturnData`` for all the other metrics and expressions used in the alarm.\n This field is required." } }, "type": "object", @@ -16467,7 +17567,7 @@ ] }, "aws-native:cloudwatch:AlarmMetricStat": { - "description": "This structure defines the metric to be returned, along with the statistics, period, and units.", + "description": "This structure defines the metric to be returned, along with the statistics, period, and units.\n ``MetricStat`` is a property of the [MetricDataQuery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html) property type.", "properties": { "metric": { "$ref": "#/types/aws-native:cloudwatch:AlarmMetric", @@ -16475,15 +17575,15 @@ }, "period": { "type": "integer", - "description": "The granularity, in seconds, of the returned data points." + "description": "The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a ``PutMetricData`` call that includes a ``StorageResolution`` of 1 second.\n If the ``StartTime`` parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned:\n + Start time between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute).\n + Start time between 15 and 63 days ago - Use a multiple of 300 seconds (5 minutes).\n + Start time greater than 63 days ago - Use a multiple of 3600 seconds (1 hour)." }, "stat": { "type": "string", - "description": "The statistic to return." + "description": "The statistic to return. It can include any CW statistic or extended statistic. For a list of valid values, see the table in [Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the *User Guide*." }, "unit": { "type": "string", - "description": "The unit to use for the returned data points." + "description": "The unit to use for the returned data points. \n Valid values are: 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, or None." } }, "type": "object", @@ -16493,6 +17593,41 @@ "stat" ] }, + "aws-native:cloudwatch:AlarmTag": { + "properties": { + "key": { + "type": "string", + "description": "A unique identifier for the tag. The combination of tag keys and values can help you organize and categorize your resources." + }, + "value": { + "type": "string", + "description": "The value for the specified tag key." + } + }, + "type": "object", + "required": [ + "key", + "value" + ] + }, + "aws-native:cloudwatch:CompositeAlarmTag": { + "description": "Metadata that you can assign to a composite alarm, Tags can help you organize and categorize your resources.", + "properties": { + "key": { + "type": "string", + "description": "A unique identifier for the tag. The combination of tag keys and values can help you organize and categorize your resources." + }, + "value": { + "type": "string", + "description": "The value for the specified tag key." + } + }, + "type": "object", + "required": [ + "key", + "value" + ] + }, "aws-native:cloudwatch:MetricStreamFilter": { "description": "This structure defines the metrics that will be streamed.", "properties": { @@ -16591,6 +17726,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 +17892,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 +18232,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 +18276,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 +21479,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": { @@ -25935,6 +27274,570 @@ "formName" ] }, + "aws-native:deadline:FleetAcceleratorCountRange": { + "properties": { + "max": { + "type": "integer" + }, + "min": { + "type": "integer" + } + }, + "type": "object", + "required": [ + "min" + ] + }, + "aws-native:deadline:FleetAcceleratorTotalMemoryMiBRange": { + "properties": { + "max": { + "type": "integer" + }, + "min": { + "type": "integer" + } + }, + "type": "object", + "required": [ + "min" + ] + }, + "aws-native:deadline:FleetAcceleratorType": { + "type": "string", + "enum": [ + { + "name": "Gpu", + "value": "gpu" + } + ] + }, + "aws-native:deadline:FleetAmountCapability": { + "properties": { + "max": { + "type": "number" + }, + "min": { + "type": "number" + }, + "name": { + "type": "string" + } + }, + "type": "object", + "required": [ + "min", + "name" + ] + }, + "aws-native:deadline:FleetAttributeCapability": { + "properties": { + "name": { + "type": "string" + }, + "values": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "type": "object", + "required": [ + "name", + "values" + ] + }, + "aws-native:deadline:FleetAutoScalingMode": { + "type": "string", + "enum": [ + { + "name": "NoScaling", + "value": "NO_SCALING" + }, + { + "name": "EventBasedAutoScaling", + "value": "EVENT_BASED_AUTO_SCALING" + } + ] + }, + "aws-native:deadline:FleetCapabilities": { + "properties": { + "amounts": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:deadline:FleetAmountCapability" + } + }, + "attributes": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:deadline:FleetAttributeCapability" + } + } + }, + "type": "object" + }, + "aws-native:deadline:FleetConfiguration0Properties": { + "properties": { + "customerManaged": { + "$ref": "#/types/aws-native:deadline:FleetCustomerManagedFleetConfiguration" + } + }, + "type": "object", + "required": [ + "customerManaged" + ] + }, + "aws-native:deadline:FleetConfiguration1Properties": { + "properties": { + "serviceManagedEc2": { + "$ref": "#/types/aws-native:deadline:FleetServiceManagedEc2FleetConfiguration" + } + }, + "type": "object", + "required": [ + "serviceManagedEc2" + ] + }, + "aws-native:deadline:FleetCpuArchitectureType": { + "type": "string", + "enum": [ + { + "name": "X8664", + "value": "x86_64" + }, + { + "name": "Arm64", + "value": "arm64" + } + ] + }, + "aws-native:deadline:FleetCustomerManagedFleetConfiguration": { + "properties": { + "mode": { + "$ref": "#/types/aws-native:deadline:FleetAutoScalingMode" + }, + "storageProfileId": { + "type": "string" + }, + "workerCapabilities": { + "$ref": "#/types/aws-native:deadline:FleetCustomerManagedWorkerCapabilities" + } + }, + "type": "object", + "required": [ + "mode", + "workerCapabilities" + ] + }, + "aws-native:deadline:FleetCustomerManagedFleetOperatingSystemFamily": { + "type": "string", + "enum": [ + { + "name": "Windows", + "value": "WINDOWS" + }, + { + "name": "Linux", + "value": "LINUX" + }, + { + "name": "Macos", + "value": "MACOS" + } + ] + }, + "aws-native:deadline:FleetCustomerManagedWorkerCapabilities": { + "properties": { + "acceleratorCount": { + "$ref": "#/types/aws-native:deadline:FleetAcceleratorCountRange" + }, + "acceleratorTotalMemoryMiB": { + "$ref": "#/types/aws-native:deadline:FleetAcceleratorTotalMemoryMiBRange" + }, + "acceleratorTypes": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:deadline:FleetAcceleratorType" + } + }, + "cpuArchitectureType": { + "$ref": "#/types/aws-native:deadline:FleetCpuArchitectureType" + }, + "customAmounts": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:deadline:FleetAmountCapability" + } + }, + "customAttributes": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:deadline:FleetAttributeCapability" + } + }, + "memoryMiB": { + "$ref": "#/types/aws-native:deadline:FleetMemoryMiBRange" + }, + "osFamily": { + "$ref": "#/types/aws-native:deadline:FleetCustomerManagedFleetOperatingSystemFamily" + }, + "vCpuCount": { + "$ref": "#/types/aws-native:deadline:FleetVCpuCountRange" + } + }, + "type": "object", + "required": [ + "cpuArchitectureType", + "memoryMiB", + "osFamily", + "vCpuCount" + ] + }, + "aws-native:deadline:FleetEc2EbsVolume": { + "properties": { + "iops": { + "type": "integer" + }, + "sizeGiB": { + "type": "integer" + }, + "throughputMiB": { + "type": "integer" + } + }, + "type": "object" + }, + "aws-native:deadline:FleetEc2MarketType": { + "type": "string", + "enum": [ + { + "name": "OnDemand", + "value": "on-demand" + }, + { + "name": "Spot", + "value": "spot" + } + ] + }, + "aws-native:deadline:FleetMemoryMiBRange": { + "properties": { + "max": { + "type": "integer" + }, + "min": { + "type": "integer" + } + }, + "type": "object", + "required": [ + "min" + ] + }, + "aws-native:deadline:FleetServiceManagedEc2FleetConfiguration": { + "properties": { + "instanceCapabilities": { + "$ref": "#/types/aws-native:deadline:FleetServiceManagedEc2InstanceCapabilities" + }, + "instanceMarketOptions": { + "$ref": "#/types/aws-native:deadline:FleetServiceManagedEc2InstanceMarketOptions" + } + }, + "type": "object", + "required": [ + "instanceCapabilities", + "instanceMarketOptions" + ] + }, + "aws-native:deadline:FleetServiceManagedEc2InstanceCapabilities": { + "properties": { + "allowedInstanceTypes": { + "type": "array", + "items": { + "type": "string" + } + }, + "cpuArchitectureType": { + "$ref": "#/types/aws-native:deadline:FleetCpuArchitectureType" + }, + "customAmounts": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:deadline:FleetAmountCapability" + } + }, + "customAttributes": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:deadline:FleetAttributeCapability" + } + }, + "excludedInstanceTypes": { + "type": "array", + "items": { + "type": "string" + } + }, + "memoryMiB": { + "$ref": "#/types/aws-native:deadline:FleetMemoryMiBRange" + }, + "osFamily": { + "$ref": "#/types/aws-native:deadline:FleetServiceManagedFleetOperatingSystemFamily" + }, + "rootEbsVolume": { + "$ref": "#/types/aws-native:deadline:FleetEc2EbsVolume" + }, + "vCpuCount": { + "$ref": "#/types/aws-native:deadline:FleetVCpuCountRange" + } + }, + "type": "object", + "required": [ + "cpuArchitectureType", + "memoryMiB", + "osFamily", + "vCpuCount" + ] + }, + "aws-native:deadline:FleetServiceManagedEc2InstanceMarketOptions": { + "properties": { + "type": { + "$ref": "#/types/aws-native:deadline:FleetEc2MarketType" + } + }, + "type": "object", + "required": [ + "type" + ] + }, + "aws-native:deadline:FleetServiceManagedFleetOperatingSystemFamily": { + "type": "string", + "enum": [ + { + "name": "Windows", + "value": "WINDOWS" + }, + { + "name": "Linux", + "value": "LINUX" + } + ] + }, + "aws-native:deadline:FleetStatus": { + "type": "string", + "enum": [ + { + "name": "Active", + "value": "ACTIVE" + }, + { + "name": "CreateInProgress", + "value": "CREATE_IN_PROGRESS" + }, + { + "name": "UpdateInProgress", + "value": "UPDATE_IN_PROGRESS" + }, + { + "name": "CreateFailed", + "value": "CREATE_FAILED" + }, + { + "name": "UpdateFailed", + "value": "UPDATE_FAILED" + } + ] + }, + "aws-native:deadline:FleetVCpuCountRange": { + "properties": { + "max": { + "type": "integer" + }, + "min": { + "type": "integer" + } + }, + "type": "object", + "required": [ + "min" + ] + }, + "aws-native:deadline:LicenseEndpointStatus": { + "type": "string", + "enum": [ + { + "name": "CreateInProgress", + "value": "CREATE_IN_PROGRESS" + }, + { + "name": "DeleteInProgress", + "value": "DELETE_IN_PROGRESS" + }, + { + "name": "Ready", + "value": "READY" + }, + { + "name": "NotReady", + "value": "NOT_READY" + } + ] + }, + "aws-native:deadline:QueueDefaultQueueBudgetAction": { + "type": "string", + "enum": [ + { + "name": "None", + "value": "NONE" + }, + { + "name": "StopSchedulingAndCompleteTasks", + "value": "STOP_SCHEDULING_AND_COMPLETE_TASKS" + }, + { + "name": "StopSchedulingAndCancelTasks", + "value": "STOP_SCHEDULING_AND_CANCEL_TASKS" + } + ] + }, + "aws-native:deadline:QueueEnvironmentEnvironmentTemplateType": { + "type": "string", + "enum": [ + { + "name": "Json", + "value": "JSON" + }, + { + "name": "Yaml", + "value": "YAML" + } + ] + }, + "aws-native:deadline:QueueJobAttachmentSettings": { + "properties": { + "rootPrefix": { + "type": "string" + }, + "s3BucketName": { + "type": "string" + } + }, + "type": "object", + "required": [ + "rootPrefix", + "s3BucketName" + ] + }, + "aws-native:deadline:QueueJobRunAsUser": { + "properties": { + "posix": { + "$ref": "#/types/aws-native:deadline:QueuePosixUser" + }, + "runAs": { + "$ref": "#/types/aws-native:deadline:QueueRunAs" + }, + "windows": { + "$ref": "#/types/aws-native:deadline:QueueWindowsUser" + } + }, + "type": "object", + "required": [ + "runAs" + ] + }, + "aws-native:deadline:QueuePosixUser": { + "properties": { + "group": { + "type": "string" + }, + "user": { + "type": "string" + } + }, + "type": "object", + "required": [ + "group", + "user" + ] + }, + "aws-native:deadline:QueueRunAs": { + "type": "string", + "enum": [ + { + "name": "QueueConfiguredUser", + "value": "QUEUE_CONFIGURED_USER" + }, + { + "name": "WorkerAgentUser", + "value": "WORKER_AGENT_USER" + } + ] + }, + "aws-native:deadline:QueueWindowsUser": { + "properties": { + "passwordArn": { + "type": "string" + }, + "user": { + "type": "string" + } + }, + "type": "object", + "required": [ + "passwordArn", + "user" + ] + }, + "aws-native:deadline:StorageProfileFileSystemLocation": { + "properties": { + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "type": { + "$ref": "#/types/aws-native:deadline:StorageProfileFileSystemLocationType" + } + }, + "type": "object", + "required": [ + "name", + "path", + "type" + ] + }, + "aws-native:deadline:StorageProfileFileSystemLocationType": { + "type": "string", + "enum": [ + { + "name": "Shared", + "value": "SHARED" + }, + { + "name": "Local", + "value": "LOCAL" + } + ] + }, + "aws-native:deadline:StorageProfileOperatingSystemFamily": { + "type": "string", + "enum": [ + { + "name": "Windows", + "value": "WINDOWS" + }, + { + "name": "Linux", + "value": "LINUX" + }, + { + "name": "Macos", + "value": "MACOS" + } + ] + }, "aws-native:detective:GraphTag": { "description": "A key-value pair to associate with a resource.", "properties": { @@ -26959,6 +28862,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 +28897,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 +29239,19 @@ "writeCapacityUnits" ] }, + "aws-native:dynamodb:TableResourcePolicy": { + "description": "Creates or updates a resource-based policy document that contains the permissions for DDB resources, such as a table, its indexes, and stream. Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource.\n In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html).\n While defining resource-based policies in your CFNshort templates, the following considerations apply:\n + The maximum size supported for a resource-based policy document in JSON format is 20 KB. DDB counts whitespaces when calculating the size of a policy against this limit. \n + Resource-based policies don't support [drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html#). If you update a policy outside of the CFNshort stack template, you'll need to update the CFNshort stack with the changes.\n + Resource-based policies don't support out-of-band changes. If you add, update, or delete a policy outside of the CFNshort template, the change won't be overwritten if there are no changes to the policy within the template.\n For example, say that your template contains a resource-based policy, which you later update outside of the template. If you don't make any changes to the policy in the template, the updated policy in DDB won’t be synced with the policy in the template.\n Conversely, say that your template doesn’t contain a resource-based policy, but you add a policy outside of the template. This policy won’t be removed from DDB as long as you don’t add it to the template. When you add a policy to the template and update the stack, the existing policy in DDB will be updated to match the one defined in the template.\n \n For a full list of all considerations, see [Resource-based policy considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html).", + "properties": { + "policyDocument": { + "$ref": "pulumi.json#/Any", + "description": "A resource-based policy document that contains permissions to add to the specified DDB table, index, or both. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html)." + } + }, + "type": "object", + "required": [ + "policyDocument" + ] + }, "aws-native:dynamodb:TableS3BucketSource": { "description": "The S3 bucket that is being imported from.", "properties": { @@ -27353,6 +29297,10 @@ "aws-native:dynamodb:TableStreamSpecification": { "description": "Represents the DynamoDB Streams configuration for a table in DynamoDB.", "properties": { + "resourcePolicy": { + "$ref": "#/types/aws-native:dynamodb:TableResourcePolicy", + "description": "Creates or updates a resource-based policy document that contains the permissions for DDB resources, such as a table's streams. Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource.\n In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html)." + }, "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." @@ -27386,7 +29334,7 @@ "properties": { "attributeName": { "type": "string", - "description": "The name of the TTL attribute used to store the expiration time for items in the table.\n + The ``AttributeName`` property is required when enabling the TTL, or when TTL is already enabled.\n + To update this property, you must first disable TTL and then enable TTL with the new attribute name." + "description": "The name of the TTL attribute used to store the expiration time for items in the table.\n + The ``AttributeName`` property is required when enabling the TTL, or when TTL is already enabled.\n + To update this property, you must first disable TTL and then enable TTL with the new attribute name." }, "enabled": { "type": "boolean", @@ -28978,12 +30926,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 +31463,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 +31576,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 +31650,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 +31678,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 +31762,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 +31782,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 +31790,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 +31849,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 +32145,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 +33186,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" @@ -31293,9 +33241,6 @@ "ipProtocol": { "type": "string" }, - "sourceSecurityGroupId": { - "type": "string" - }, "toPort": { "type": "integer" } @@ -34253,21 +36198,21 @@ }, "cpu": { "type": "integer", - "description": "The number of ``cpu`` units reserved for the container. This parameter maps to ``CpuShares`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cpu-shares`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n This field is optional for tasks using the Fargate launch type, and the only requirement is that the total amount of CPU reserved for all containers within a task be lower than the task-level ``cpu`` value.\n You can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the [Amazon EC2 Instances](https://docs.aws.amazon.com/ec2/instance-types/) detail page by 1,024.\n Linux containers share unallocated CPU units with other containers on the cont" + "description": "The number of ``cpu`` units reserved for the container. This parameter maps to ``CpuShares`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cpu-shares`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n This field is optional for tasks using the Fargate launch type, and the only requirement is that the total amount of CPU reserved for all containers within a task be lower than the task-level ``cpu`` value.\n You can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the [Amazon EC2 Instances](https://docs.aws.amazon.com/ec2/instance-types/) detail page by 1,024.\n Linux containers share unallocated CPU units with other containers on the container instance with the same ratio as their allocated amount. For example, if you run a single-container task on a single-core instance type with 512 CPU units specified for that container, and that's the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time. However, if you launched another copy of the same task on that container instance, each task is guaranteed a minimum of 512 CPU units when needed. Moreover, each container could float to higher CPU usage if the other container was not using it. If both tasks were 100% active all of the time, they would be limited to 512 CPU units.\n On Linux container instances, the Docker daemon on the container instance uses the CPU value to calculate the relative CPU share ratios for running containers. For more information, see [CPU share constraint](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#cpu-share-constraint) in the Docker documentation. The minimum valid CPU share value that the Linux kernel allows is 2. However, the CPU parameter isn't required, and you can use CPU values below 2 in your container definitions. For CPU values below 2 (including null), the behavior varies based on your Amazon ECS container agent version:\n + *Agent versions less than or equal to 1.1.0:* Null and zero CPU values are passed to Docker as 0, which Docker then converts to 1,024 CPU shares. CPU values of 1 are passed to Docker as 1, which the Linux kernel converts to two CPU shares.\n + *Agent versions greater than or equal to 1.2.0:* Null, zero, and CPU values of 1 are passed to Docker as 2.\n \n On Windows container instances, the CPU limit is enforced as an absolute limit, or a quota. Windows containers only have access to the specified amount of CPU that's described in the task definition. A null or zero CPU value is passed to Docker as ``0``, which Windows interprets as 1% of one CPU." }, "credentialSpecs": { "type": "array", "items": { "type": "string" }, - "description": "A list of ARNs in SSM or Amazon S3 to a credential spec (``CredSpec``) file that configures the container for Active Directory authentication. We recommend that you use this parameter instead of the ``dockerSecurityOptions``. The maximum number of ARNs is 1.\n There are two formats for each ARN.\n + credentialspecdomainless:MyARN You use credentialspecdomainless:MyARN to provide a CredSpec with an additional section for a secret in . You provide the login credentials to the domain in the secret. Each task that runs on any container instance can join different domains. You can use this format without joining the container instance to a domain. + credentialspec:MyARN You use credentialspec:MyARN to provide a CredSpec for a single domain. You must join the container instance to the domain before you start any tasks that use this task definition. \n In both formats, replace ``MyARN`` with the ARN in SSM or Amazon S3.\n If you provide a ``credentialspecdomainless:MyARN``, the ``credspec`` must" + "description": "A list of ARNs in SSM or Amazon S3 to a credential spec (``CredSpec``) file that configures the container for Active Directory authentication. We recommend that you use this parameter instead of the ``dockerSecurityOptions``. The maximum number of ARNs is 1.\n There are two formats for each ARN.\n + credentialspecdomainless:MyARN You use credentialspecdomainless:MyARN to provide a CredSpec with an additional section for a secret in . You provide the login credentials to the domain in the secret. Each task that runs on any container instance can join different domains. You can use this format without joining the container instance to a domain. + credentialspec:MyARN You use credentialspec:MyARN to provide a CredSpec for a single domain. You must join the container instance to the domain before you start any tasks that use this task definition. \n In both formats, replace ``MyARN`` with the ARN in SSM or Amazon S3.\n If you provide a ``credentialspecdomainless:MyARN``, the ``credspec`` must provide a ARN in ASMlong for a secret containing the username, password, and the domain to connect to. For better security, the instance isn't joined to the domain for domainless authentication. Other applications on the instance can't use the domainless credentials. You can use this parameter to run tasks on the same instance, even it the tasks need to join different domains. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) and [Using gMSAs for Linux Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html)." }, "dependsOn": { "type": "array", "items": { "$ref": "#/types/aws-native:ecs:TaskDefinitionContainerDependency" }, - "description": "The dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed.\n For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [" + "description": "The dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed.\n For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*.\n For tasks using the Fargate launch type, the task or service requires the following platforms:\n + Linux platform version ``1.3.0`` or later.\n + Windows platform version ``1.0.0`` or later.\n \n If the task definition is used in a blue/green deployment that uses [AWS::CodeDeploy::DeploymentGroup BlueGreenDeploymentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-bluegreendeploymentconfiguration.html), the ``dependsOn`` parameter is not supported. For more information see [Issue #680](https://docs.aws.amazon.com/https://github.com/aws-cloudformation/cloudformation-coverage-roadmap/issues/680) on the on the GitHub website." }, "disableNetworking": { "type": "boolean", @@ -34299,7 +36244,7 @@ "items": { "type": "string" }, - "description": "A list of strings to provide custom configuration for multiple security systems. For more information about valid values, see [Docker Run Security Configuration](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). This field isn't valid for containers in tasks using the Fargate launch type.\n For Linux tasks on EC2, this parameter can be used to reference custom labels for SELinux and AppArmor multi-level security systems.\n For any tasks on EC2, this parameter can be used to reference a credential spec file that configures a container for Active Directory authentication. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) and [Using gMSAs for Linux Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html) in the *Amazon Elastic Container Service Developer Guide*.\n This parameter maps to ``SecurityOpt`` in the [Create a co" + "description": "A list of strings to provide custom configuration for multiple security systems. For more information about valid values, see [Docker Run Security Configuration](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). This field isn't valid for containers in tasks using the Fargate launch type.\n For Linux tasks on EC2, this parameter can be used to reference custom labels for SELinux and AppArmor multi-level security systems.\n For any tasks on EC2, this parameter can be used to reference a credential spec file that configures a container for Active Directory authentication. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) and [Using gMSAs for Linux Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html) in the *Amazon Elastic Container Service Developer Guide*.\n This parameter maps to ``SecurityOpt`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--security-opt`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n The Amazon ECS container agent running on a container instance must register with the ``ECS_SELINUX_CAPABLE=true`` or ``ECS_APPARMOR_CAPABLE=true`` environment variables before containers placed on that instance can use these security options. For more information, see [Amazon ECS Container Agent Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*.\n For more information about valid values, see [Docker Run Security Configuration](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). \n Valid values: \"no-new-privileges\" | \"apparmor:PROFILE\" | \"label:value\" | \"credentialspec:CredentialSpecFilePath\"" }, "entryPoint": { "type": "array", @@ -34320,7 +36265,7 @@ "items": { "$ref": "#/types/aws-native:ecs:TaskDefinitionEnvironmentFile" }, - "description": "A list of files containing the environment variables to pass to a container. This parameter maps to the ``--env-file`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n You can specify up to ten environment files. The file must have a ``.env`` file extension. Each line in an environment file contains an environment variable in ``VARIABLE=VALUE`` format. Lines beginning with ``#`` are treated as comments and are ignored. For more information about the environment variable file syntax, see [Declare default environment variables in file](https://docs.aws.amazon.com/https://docs.docker.com/compose/env-file/).\n If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend t" + "description": "A list of files containing the environment variables to pass to a container. This parameter maps to the ``--env-file`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n You can specify up to ten environment files. The file must have a ``.env`` file extension. Each line in an environment file contains an environment variable in ``VARIABLE=VALUE`` format. Lines beginning with ``#`` are treated as comments and are ignored. For more information about the environment variable file syntax, see [Declare default environment variables in file](https://docs.aws.amazon.com/https://docs.docker.com/compose/env-file/).\n If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Specifying Environment Variables](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) in the *Amazon Elastic Container Service Developer Guide*." }, "essential": { "type": "boolean", @@ -34347,7 +36292,7 @@ }, "image": { "type": "string", - "description": "The image used to start a container. This string is passed directly to the Docker daemon. By default, images in the Docker Hub registry are available. Other repositories are specified with either ``repository-url/image:tag`` or ``repository-url/image@digest``. Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to ``Image`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``IMAGE`` parameter of [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n + When a new task starts, the Amazon ECS container agent pulls the latest version of the specified image and tag for the container to use. However, subsequent updates to a repository image " + "description": "The image used to start a container. This string is passed directly to the Docker daemon. By default, images in the Docker Hub registry are available. Other repositories are specified with either ``repository-url/image:tag`` or ``repository-url/image@digest``. Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to ``Image`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``IMAGE`` parameter of [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n + When a new task starts, the Amazon ECS container agent pulls the latest version of the specified image and tag for the container to use. However, subsequent updates to a repository image aren't propagated to already running tasks.\n + Images in Amazon ECR repositories can be specified by either using the full ``registry/repository:tag`` or ``registry/repository@digest``. For example, ``012345678910.dkr.ecr.\u003cregion-name\u003e.amazonaws.com/\u003crepository-name\u003e:latest`` or ``012345678910.dkr.ecr.\u003cregion-name\u003e.amazonaws.com/\u003crepository-name\u003e@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE``. \n + Images in official repositories on Docker Hub use a single name (for example, ``ubuntu`` or ``mongo``).\n + Images in other repositories on Docker Hub are qualified with an organization name (for example, ``amazon/amazon-ecs-agent``).\n + Images in other online repositories are qualified further by a domain name (for example, ``quay.io/assemblyline/ubuntu``)." }, "interactive": { "type": "boolean", @@ -34358,7 +36303,7 @@ "items": { "type": "string" }, - "description": "The ``links`` parameter allows containers to communicate with each other without the need for port mappings. This parameter is only supported if the network mode of a task definition is ``bridge``. The ``name:internalName`` construct is analogous to ``name:alias`` in Docker links. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. For more information about linking Docker containers, go to [Legacy container links](https://docs.aws.amazon.com/https://docs.docker.com/network/links/) in the Docker documentation. This parameter maps to ``Links`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--link`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n This parameter is not supported for W" + "description": "The ``links`` parameter allows containers to communicate with each other without the need for port mappings. This parameter is only supported if the network mode of a task definition is ``bridge``. The ``name:internalName`` construct is analogous to ``name:alias`` in Docker links. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. For more information about linking Docker containers, go to [Legacy container links](https://docs.aws.amazon.com/https://docs.docker.com/network/links/) in the Docker documentation. This parameter maps to ``Links`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--link`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n This parameter is not supported for Windows containers.\n Containers that are collocated on a single container instance may be able to communicate with each other without requiring links or host port mappings. Network isolation is achieved on the container instance using security groups and VPC settings." }, "linuxParameters": { "$ref": "#/types/aws-native:ecs:TaskDefinitionLinuxParameters", @@ -34366,15 +36311,15 @@ }, "logConfiguration": { "$ref": "#/types/aws-native:ecs:TaskDefinitionLogConfiguration", - "description": "The log configuration specification for the container.\n This parameter maps to ``LogConfig`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--log-driver`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). By default, containers use the same logging driver that the Docker daemon uses. However, the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.aws.amazon.com/htt" + "description": "The log configuration specification for the container.\n This parameter maps to ``LogConfig`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--log-driver`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). By default, containers use the same logging driver that the Docker daemon uses. However, the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.aws.amazon.com/https://docs.docker.com/engine/admin/logging/overview/) in the Docker documentation.\n Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon (shown in the [LogConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_LogConfiguration.html) data type). Additional log drivers may be available in future releases of the Amazon ECS container agent.\n This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'`` \n The Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the ``ECS_AVAILABLE_LOGGING_DRIVERS`` environment variable before containers placed on that instance can use these log configuration options. For more information, see [Amazon ECS Container Agent Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*." }, "memory": { "type": "integer", - "description": "The amount (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. The total amount of memory reserved for all containers within a task must be lower than the task ``memory`` value, if one is specified. This parameter maps to ``Memory`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n If using the Fargate launch type, this parameter is optional.\n If using the EC2 launch type, you must specify either a task-level memory value or a container-level memory value. If you specify both a container-level ``memory`` and ``memoryReservation`` value, ``memory`` must be greater than ``memoryReserva" + "description": "The amount (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. The total amount of memory reserved for all containers within a task must be lower than the task ``memory`` value, if one is specified. This parameter maps to ``Memory`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n If using the Fargate launch type, this parameter is optional.\n If using the EC2 launch type, you must specify either a task-level memory value or a container-level memory value. If you specify both a container-level ``memory`` and ``memoryReservation`` value, ``memory`` must be greater than ``memoryReservation``. If you specify ``memoryReservation``, then that value is subtracted from the available memory resources for the container instance where the container is placed. Otherwise, the value of ``memory`` is used.\n The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container, so you should not specify fewer than 6 MiB of memory for your containers.\n The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container, so you should not specify fewer than 4 MiB of memory for your containers." }, "memoryReservation": { "type": "integer", - "description": "The soft limit (in MiB) of memory to reserve for the container. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit. However, your container can consume more memory when it needs to, up to either the hard limit specified with the ``memory`` parameter (if applicable), or all of the available memory on the container instance, whichever comes first. This parameter maps to ``MemoryReservation`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory-reservation`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n If a task-level memory value is not specified, you must specify a non-zero integer for one or both of ``memory`` or ``memoryReservation`` in a container definiti" + "description": "The soft limit (in MiB) of memory to reserve for the container. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit. However, your container can consume more memory when it needs to, up to either the hard limit specified with the ``memory`` parameter (if applicable), or all of the available memory on the container instance, whichever comes first. This parameter maps to ``MemoryReservation`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory-reservation`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n If a task-level memory value is not specified, you must specify a non-zero integer for one or both of ``memory`` or ``memoryReservation`` in a container definition. If you specify both, ``memory`` must be greater than ``memoryReservation``. If you specify ``memoryReservation``, then that value is subtracted from the available memory resources for the container instance where the container is placed. Otherwise, the value of ``memory`` is used.\n For example, if your container normally uses 128 MiB of memory, but occasionally bursts to 256 MiB of memory for short periods of time, you can set a ``memoryReservation`` of 128 MiB, and a ``memory`` hard limit of 300 MiB. This configuration would allow the container to only reserve 128 MiB of memory from the remaining resources on the container instance, but also allow the container to consume more memory resources when needed.\n The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container. So, don't specify less than 6 MiB of memory for your containers. \n The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container. So, don't specify less than 4 MiB of memory for your containers." }, "mountPoints": { "type": "array", @@ -34392,7 +36337,7 @@ "items": { "$ref": "#/types/aws-native:ecs:TaskDefinitionPortMapping" }, - "description": "The list of port mappings for the container. Port mappings allow containers to access ports on the host container instance to send or receive traffic.\n For task definitions that use the ``awsvpc`` network mode, you should only specify the ``containerPort``. The ``hostPort`` can be left blank or it must be the same value as the ``containerPort``.\n Port mappings on Windows use the ``NetNAT`` gateway address rather than ``localhost``. There is no loopback for port mappings on Windows, so you cannot access a container's mapped port from the host itself. \n This parameter maps to ``PortBindings`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--publish`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). If the network mode of a task definition is set to" + "description": "The list of port mappings for the container. Port mappings allow containers to access ports on the host container instance to send or receive traffic.\n For task definitions that use the ``awsvpc`` network mode, you should only specify the ``containerPort``. The ``hostPort`` can be left blank or it must be the same value as the ``containerPort``.\n Port mappings on Windows use the ``NetNAT`` gateway address rather than ``localhost``. There is no loopback for port mappings on Windows, so you cannot access a container's mapped port from the host itself. \n This parameter maps to ``PortBindings`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--publish`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). If the network mode of a task definition is set to ``none``, then you can't specify port mappings. If the network mode of a task definition is set to ``host``, then host ports must either be undefined or they must match the container port in the port mapping.\n After a task reaches the ``RUNNING`` status, manual and automatic host and container port assignments are visible in the *Network Bindings* section of a container description for a selected task in the Amazon ECS console. The assignments are also visible in the ``networkBindings`` section [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) responses." }, "privileged": { "type": "boolean", @@ -34426,11 +36371,11 @@ }, "startTimeout": { "type": "integer", - "description": "Time duration (in seconds) to wait before giving up on resolving dependencies for a container. For example, you specify two containers in a task definition with containerA having a dependency on containerB reaching a ``COMPLETE``, ``SUCCESS``, or ``HEALTHY`` status. If a ``startTimeout`` value is specified for containerB and it doesn't reach the desired status within that time then containerA gives up and not start. This results in the task transitioning to a ``STOPPED`` state.\n When the ``ECS_CONTAINER_START_TIMEOUT`` container agent configuration variable is used, it's enforced independently from this start timeout value.\n For tasks using the Fargate launch type, the task or service requires the following platforms:\n + Linux platform version ``1.3.0`` or later.\n + Windows platform version ``1.0.0`` or later.\n \n For tasks using the EC2 launch type, your container instances require at least version ``1.26.0`` of the container agent to use a container start timeout value. However" + "description": "Time duration (in seconds) to wait before giving up on resolving dependencies for a container. For example, you specify two containers in a task definition with containerA having a dependency on containerB reaching a ``COMPLETE``, ``SUCCESS``, or ``HEALTHY`` status. If a ``startTimeout`` value is specified for containerB and it doesn't reach the desired status within that time then containerA gives up and not start. This results in the task transitioning to a ``STOPPED`` state.\n When the ``ECS_CONTAINER_START_TIMEOUT`` container agent configuration variable is used, it's enforced independently from this start timeout value.\n For tasks using the Fargate launch type, the task or service requires the following platforms:\n + Linux platform version ``1.3.0`` or later.\n + Windows platform version ``1.0.0`` or later.\n \n For tasks using the EC2 launch type, your container instances require at least version ``1.26.0`` of the container agent to use a container start timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version ``1.26.0-1`` of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*.\n The valid values are 2-120 seconds." }, "stopTimeout": { "type": "integer", - "description": "Time duration (in seconds) to wait before the container is forcefully killed if it doesn't exit normally on its own.\n For tasks using the Fargate launch type, the task or service requires the following platforms:\n + Linux platform version ``1.3.0`` or later.\n + Windows platform version ``1.0.0`` or later.\n \n The max stop timeout value is 120 seconds and if the parameter is not specified, the default value of 30 seconds is used.\n For tasks that use the EC2 launch type, if the ``stopTimeout`` parameter isn't specified, the value set for the Amazon ECS container agent configuration variable ``ECS_CONTAINER_STOP_TIMEOUT`` is used. If neither the ``stopTimeout`` parameter or the ``ECS_CONTAINER_STOP_TIMEOUT`` agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to use a container stop timeout value. However, we recomm" + "description": "Time duration (in seconds) to wait before the container is forcefully killed if it doesn't exit normally on its own.\n For tasks using the Fargate launch type, the task or service requires the following platforms:\n + Linux platform version ``1.3.0`` or later.\n + Windows platform version ``1.0.0`` or later.\n \n The max stop timeout value is 120 seconds and if the parameter is not specified, the default value of 30 seconds is used.\n For tasks that use the EC2 launch type, if the ``stopTimeout`` parameter isn't specified, the value set for the Amazon ECS container agent configuration variable ``ECS_CONTAINER_STOP_TIMEOUT`` is used. If neither the ``stopTimeout`` parameter or the ``ECS_CONTAINER_STOP_TIMEOUT`` agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to use a container stop timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*.\n The valid values are 2-120 seconds." }, "systemControls": { "type": "array", @@ -34469,11 +36414,11 @@ ] }, "aws-native:ecs:TaskDefinitionContainerDependency": { - "description": "The ``ContainerDependency`` property specifies the dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed.\n Your Amazon ECS container instances require at least version 1.26.0 of the container agent to enable container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you are using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For m", + "description": "The ``ContainerDependency`` property specifies the dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed.\n Your Amazon ECS container instances require at least version 1.26.0 of the container agent to enable container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you are using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*.\n For tasks using the Fargate launch type, this parameter requires that the task or service uses platform version 1.3.0 or later.", "properties": { "condition": { "type": "string", - "description": "The dependency condition of the container. The following are the available conditions and their behavior:\n + ``START`` - This condition emulates the behavior of links and volumes today. It validates that a dependent container is started before permitting other containers to start.\n + ``COMPLETE`` - This condition validates that a dependent container runs to completion (exits) before permitting other containers to start. This can be useful for nonessential containers that run a script and then exit. This condition can't be set on an essential container.\n + ``SUCCESS`` - This condition is the same as ``COMPLETE``, but it also requires that the container exits with a ``zero`` status. This condition can't be set on an essential container.\n + ``HEALTHY`` - This condition validates that the dependent container passes its Docker health check before permitting other containers to start. This requires that the dependent container has health checks configured. This condition is confi" + "description": "The dependency condition of the container. The following are the available conditions and their behavior:\n + ``START`` - This condition emulates the behavior of links and volumes today. It validates that a dependent container is started before permitting other containers to start.\n + ``COMPLETE`` - This condition validates that a dependent container runs to completion (exits) before permitting other containers to start. This can be useful for nonessential containers that run a script and then exit. This condition can't be set on an essential container.\n + ``SUCCESS`` - This condition is the same as ``COMPLETE``, but it also requires that the container exits with a ``zero`` status. This condition can't be set on an essential container.\n + ``HEALTHY`` - This condition validates that the dependent container passes its Docker health check before permitting other containers to start. This requires that the dependent container has health checks configured. This condition is confirmed only at task startup." }, "containerName": { "type": "string", @@ -34579,11 +36524,11 @@ ] }, "aws-native:ecs:TaskDefinitionEnvironmentFile": { - "description": "A list of files containing the environment variables to pass to a container. You can specify up to ten environment files. The file must have a ``.env`` file extension. Each line in an environment file should contain an environment variable in ``VARIABLE=VALUE`` format. Lines beginning with ``#`` are treated as comments and are ignored.\n If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Specifying environment variables](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) in the *Amazon Elastic Container Service Developer Guide*.\n You must use the following platforms for the Fargate launch type:\n + Linux platform version ``1.4.0`` or la", + "description": "A list of files containing the environment variables to pass to a container. You can specify up to ten environment files. The file must have a ``.env`` file extension. Each line in an environment file should contain an environment variable in ``VARIABLE=VALUE`` format. Lines beginning with ``#`` are treated as comments and are ignored.\n If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Use a file to pass environment variables to a container](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/use-environment-file.html) in the *Amazon Elastic Container Service Developer Guide*.\n Environment variable files are objects in Amazon S3 and all Amazon S3 security considerations apply. \n You must use the following platforms for the Fargate launch type:\n + Linux platform version ``1.4.0`` or later.\n + Windows platform version ``1.0.0`` or later.\n \n Consider the following when using the Fargate launch type:\n + The file is handled like a native Docker env-file.\n + There is no support for shell escape handling.\n + The container entry point interperts the ``VARIABLE`` values.", "properties": { "type": { "type": "string", - "description": "The file type to use. The only supported value is ``s3``." + "description": "The file type to use. Environment files are objects in Amazon S3. The only supported value is ``s3``." }, "value": { "type": "string", @@ -34597,11 +36542,44 @@ "properties": { "sizeInGiB": { "type": "integer", - "description": "The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``21`` GiB and the maximum supported value is ``200`` GiB." + "description": "The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``20`` GiB and the maximum supported value is ``200`` GiB." } }, "type": "object" }, + "aws-native:ecs:TaskDefinitionFSxAuthorizationConfig": { + "properties": { + "credentialsParameter": { + "type": "string" + }, + "domain": { + "type": "string" + } + }, + "type": "object", + "required": [ + "credentialsParameter", + "domain" + ] + }, + "aws-native:ecs:TaskDefinitionFSxWindowsFileServerVolumeConfiguration": { + "properties": { + "authorizationConfig": { + "$ref": "#/types/aws-native:ecs:TaskDefinitionFSxAuthorizationConfig" + }, + "fileSystemId": { + "type": "string" + }, + "rootDirectory": { + "type": "string" + } + }, + "type": "object", + "required": [ + "fileSystemId", + "rootDirectory" + ] + }, "aws-native:ecs:TaskDefinitionFirelensConfiguration": { "description": "The FireLens configuration for the container. This is used to specify and configure a log router for container logs. For more information, see [Custom log routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*.", "properties": { @@ -34610,7 +36588,7 @@ "additionalProperties": { "type": "string" }, - "description": "The options to use when configuring the log router. This field is optional and can be used to add additional metadata, such as the task, task definition, cluster, and container instance details to the log event.\n If specified, valid option keys are:\n + ``enable-ecs-log-metadata``, which can be ``true`` or ``false``\n + ``config-file-type``, which can be ``s3`` or ``file``\n + ``config-file-value``, which is either an S3 ARN or a file path" + "description": "The options to use when configuring the log router. This field is optional and can be used to add additional metadata, such as the task, task definition, cluster, and container instance details to the log event.\n If specified, valid option keys are:\n + ``enable-ecs-log-metadata``, which can be ``true`` or ``false`` \n + ``config-file-type``, which can be ``s3`` or ``file`` \n + ``config-file-value``, which is either an S3 ARN or a file path" }, "type": { "type": "string", @@ -34620,7 +36598,7 @@ "type": "object" }, "aws-native:ecs:TaskDefinitionHealthCheck": { - "description": "The ``HealthCheck`` property specifies an object representing a container health check. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image (such as those specified in a parent image or from the image's Dockerfile). This configuration maps to the ``HEALTHCHECK`` parameter of [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/).\n The Amazon ECS container agent only monitors and reports on the health checks specified in the task definition. Amazon ECS does not monitor Docker health checks that are embedded in a container image and not specified in the container definition. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image.\n If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a servi", + "description": "The ``HealthCheck`` property specifies an object representing a container health check. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image (such as those specified in a parent image or from the image's Dockerfile). This configuration maps to the ``HEALTHCHECK`` parameter of [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/).\n The Amazon ECS container agent only monitors and reports on the health checks specified in the task definition. Amazon ECS does not monitor Docker health checks that are embedded in a container image and not specified in the container definition. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image.\n If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a service, if the task reports as unhealthy then the task will be stopped and the service scheduler will replace it.\n The following are notes about container health check support:\n + Container health checks require version 1.17.0 or greater of the Amazon ECS container agent. For more information, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html).\n + Container health checks are supported for Fargate tasks if you are using platform version 1.1.0 or greater. For more information, see [Platform Versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html).\n + Container health checks are not supported for tasks that are part of a service that is configured to use a Classic Load Balancer.", "properties": { "command": { "type": "array", @@ -34687,21 +36665,21 @@ "type": "object" }, "aws-native:ecs:TaskDefinitionKernelCapabilities": { - "description": "The ``KernelCapabilities`` property specifies the Linux capabilities for the container that are added to or dropped from the default configuration that is provided by Docker. For more information on the default capabilities and the non-default available capabilities, see [Runtime privilege and Linux capabilities](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) in the *Docker run reference*. For more detailed information on these Linux capabilities, see the [capabilities(7)](https://docs.aws.amazon.com/http://man7.org/linux/man-pages/man7/capabilities.7.html) Linux manual page.", + "description": "The Linux capabilities to add or remove from the default Docker configuration for a container defined in the task definition. For more information about the default capabilities and the non-default available capabilities, see [Runtime privilege and Linux capabilities](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) in the *Docker run reference*. For more detailed information about these Linux capabilities, see the [capabilities(7)](https://docs.aws.amazon.com/http://man7.org/linux/man-pages/man7/capabilities.7.html) Linux manual page.", "properties": { "add": { "type": "array", "items": { "type": "string" }, - "description": "The Linux capabilities for the container that have been added to the default configuration provided by Docker. This parameter maps to ``CapAdd`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-add`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n Tasks launched on FARGATElong only support adding the ``SYS_PTRACE`` kernel capability.\n Valid values: ``\"ALL\" | \"AUDIT_CONTROL\" | \"AUDIT_WRITE\" | \"BLOCK_SUSPEND\" | \"CHOWN\" | \"DAC_OVERRIDE\" | \"DAC_READ_SEARCH\" | \"FOWNER\" | \"FSETID\" | \"IPC_LOCK\" | \"IPC_OWNER\" | \"KILL\" | \"LEASE\" | \"LINUX_IMMUTABLE\" | \"MAC_ADMIN\" | \"MAC_OVERRIDE\" | \"MKNOD\" | \"NET_ADMIN\" | \"NET_BIND_SERVICE\" | \"NET_BROADCAST\" | \"NET_RAW\" | \"SETFCAP\" | \"SETGID\" | \"SETPCAP\" | \"SETUID\" | \"SYS_ADMIN\" | \"SYS_BOOT\" " + "description": "The Linux capabilities for the container that have been added to the default configuration provided by Docker. This parameter maps to ``CapAdd`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-add`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n Tasks launched on FARGATElong only support adding the ``SYS_PTRACE`` kernel capability.\n Valid values: ``\"ALL\" | \"AUDIT_CONTROL\" | \"AUDIT_WRITE\" | \"BLOCK_SUSPEND\" | \"CHOWN\" | \"DAC_OVERRIDE\" | \"DAC_READ_SEARCH\" | \"FOWNER\" | \"FSETID\" | \"IPC_LOCK\" | \"IPC_OWNER\" | \"KILL\" | \"LEASE\" | \"LINUX_IMMUTABLE\" | \"MAC_ADMIN\" | \"MAC_OVERRIDE\" | \"MKNOD\" | \"NET_ADMIN\" | \"NET_BIND_SERVICE\" | \"NET_BROADCAST\" | \"NET_RAW\" | \"SETFCAP\" | \"SETGID\" | \"SETPCAP\" | \"SETUID\" | \"SYS_ADMIN\" | \"SYS_BOOT\" | \"SYS_CHROOT\" | \"SYS_MODULE\" | \"SYS_NICE\" | \"SYS_PACCT\" | \"SYS_PTRACE\" | \"SYS_RAWIO\" | \"SYS_RESOURCE\" | \"SYS_TIME\" | \"SYS_TTY_CONFIG\" | \"SYSLOG\" | \"WAKE_ALARM\"``" }, "drop": { "type": "array", "items": { "type": "string" }, - "description": "The Linux capabilities for the container that have been removed from the default configuration provided by Docker. This parameter maps to ``CapDrop`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-drop`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n Valid values: ``\"ALL\" | \"AUDIT_CONTROL\" | \"AUDIT_WRITE\" | \"BLOCK_SUSPEND\" | \"CHOWN\" | \"DAC_OVERRIDE\" | \"DAC_READ_SEARCH\" | \"FOWNER\" | \"FSETID\" | \"IPC_LOCK\" | \"IPC_OWNER\" | \"KILL\" | \"LEASE\" | \"LINUX_IMMUTABLE\" | \"MAC_ADMIN\" | \"MAC_OVERRIDE\" | \"MKNOD\" | \"NET_ADMIN\" | \"NET_BIND_SERVICE\" | \"NET_BROADCAST\" | \"NET_RAW\" | \"SETFCAP\" | \"SETGID\" | \"SETPCAP\" | \"SETUID\" | \"SYS_ADMIN\" | \"SYS_BOOT\" | \"SYS_CHROOT\" | \"SYS_MODULE\" | \"SYS_NICE\" | \"SYS_PACCT\" | \"SYS_PTRACE\" | \"SYS_RAWIO\"" + "description": "The Linux capabilities for the container that have been removed from the default configuration provided by Docker. This parameter maps to ``CapDrop`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-drop`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration).\n Valid values: ``\"ALL\" | \"AUDIT_CONTROL\" | \"AUDIT_WRITE\" | \"BLOCK_SUSPEND\" | \"CHOWN\" | \"DAC_OVERRIDE\" | \"DAC_READ_SEARCH\" | \"FOWNER\" | \"FSETID\" | \"IPC_LOCK\" | \"IPC_OWNER\" | \"KILL\" | \"LEASE\" | \"LINUX_IMMUTABLE\" | \"MAC_ADMIN\" | \"MAC_OVERRIDE\" | \"MKNOD\" | \"NET_ADMIN\" | \"NET_BIND_SERVICE\" | \"NET_BROADCAST\" | \"NET_RAW\" | \"SETFCAP\" | \"SETGID\" | \"SETPCAP\" | \"SETUID\" | \"SYS_ADMIN\" | \"SYS_BOOT\" | \"SYS_CHROOT\" | \"SYS_MODULE\" | \"SYS_NICE\" | \"SYS_PACCT\" | \"SYS_PTRACE\" | \"SYS_RAWIO\" | \"SYS_RESOURCE\" | \"SYS_TIME\" | \"SYS_TTY_CONFIG\" | \"SYSLOG\" | \"WAKE_ALARM\"``" } }, "type": "object" @@ -34765,7 +36743,7 @@ "properties": { "logDriver": { "type": "string", - "description": "The log driver to use for the container.\n For tasks on FARGATElong, the supported log drivers are ``awslogs``, ``splunk``, and ``awsfirelens``.\n For tasks hosted on Amazon EC2 instances, the supported log drivers are ``awslogs``, ``fluentd``, ``gelf``, ``json-file``, ``journald``, ``logentries``,``syslog``, ``splunk``, and ``awsfirelens``.\n For more information about using the ``awslogs`` log driver, see [Using the awslogs log driver](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html) in the *Amazon Elastic Container Service Developer Guide*.\n For more information about using the ``awsfirelens`` log driver, see [Custom log routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*.\n If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs" + "description": "The log driver to use for the container.\n For tasks on FARGATElong, the supported log drivers are ``awslogs``, ``splunk``, and ``awsfirelens``.\n For tasks hosted on Amazon EC2 instances, the supported log drivers are ``awslogs``, ``fluentd``, ``gelf``, ``json-file``, ``journald``, ``logentries``,``syslog``, ``splunk``, and ``awsfirelens``.\n For more information about using the ``awslogs`` log driver, see [Using the awslogs log driver](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html) in the *Amazon Elastic Container Service Developer Guide*.\n For more information about using the ``awsfirelens`` log driver, see [Custom log routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*.\n If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs-agent) and customize it to work with that driver. We encourage you to submit pull requests for changes that you would like to have included. However, we don't currently provide support for running modified copies of this software." }, "options": { "type": "object", @@ -34827,7 +36805,7 @@ "properties": { "appProtocol": { "$ref": "#/types/aws-native:ecs:TaskDefinitionPortMappingAppProtocol", - "description": "The application protocol that's used for the port mapping. This parameter only applies to Service Connect. We recommend that you set this parameter to be consistent with the protocol that your application uses. If you set this parameter, Amazon ECS adds protocol-specific connection handling to the Service Connect proxy. If you set this parameter, Amazon ECS adds protocol-specific telemetry in the Amazon ECS console and CloudWatch.\n If you don't set a value for this parameter, then TCP is used. However, Amazon ECS doesn't add protocol-specific telemetry for TCP.\n ``appProtocol`` is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment.\n Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS se" + "description": "The application protocol that's used for the port mapping. This parameter only applies to Service Connect. We recommend that you set this parameter to be consistent with the protocol that your application uses. If you set this parameter, Amazon ECS adds protocol-specific connection handling to the Service Connect proxy. If you set this parameter, Amazon ECS adds protocol-specific telemetry in the Amazon ECS console and CloudWatch.\n If you don't set a value for this parameter, then TCP is used. However, Amazon ECS doesn't add protocol-specific telemetry for TCP.\n ``appProtocol`` is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment.\n Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*." }, "containerPort": { "type": "integer", @@ -34835,11 +36813,11 @@ }, "containerPortRange": { "type": "string", - "description": "The port number range on the container that's bound to the dynamically mapped host port range. \n The following rules apply when you specify a ``containerPortRange``:\n + You must use either the ``bridge`` network mode or the ``awsvpc`` network mode.\n + This parameter is available for both the EC2 and FARGATElong launch types.\n + This parameter is available for both the Linux and Windows operating systems.\n + The container instance must have at least version 1.67.0 of the container agent and at least version 1.67.0-1 of the ``ecs-init`` package \n + You can specify a maximum of 100 port ranges per container.\n + You do not specify a ``hostPortRange``. The value of the ``hostPortRange`` is set as follows:\n + For containers in a task with the ``awsvpc`` network mode, the ``hostPortRange`` is set to the same value as the ``containerPortRange``. This is a static mapping strategy.\n + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open host " + "description": "The port number range on the container that's bound to the dynamically mapped host port range. \n The following rules apply when you specify a ``containerPortRange``:\n + You must use either the ``bridge`` network mode or the ``awsvpc`` network mode.\n + This parameter is available for both the EC2 and FARGATElong launch types.\n + This parameter is available for both the Linux and Windows operating systems.\n + The container instance must have at least version 1.67.0 of the container agent and at least version 1.67.0-1 of the ``ecs-init`` package \n + You can specify a maximum of 100 port ranges per container.\n + You do not specify a ``hostPortRange``. The value of the ``hostPortRange`` is set as follows:\n + For containers in a task with the ``awsvpc`` network mode, the ``hostPortRange`` is set to the same value as the ``containerPortRange``. This is a static mapping strategy.\n + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open host ports from the default ephemeral range and passes it to docker to bind them to the container ports.\n \n + The ``containerPortRange`` valid values are between 1 and 65535.\n + A port can only be included in one port mapping per container.\n + You cannot specify overlapping port ranges.\n + The first port in the range must be less than last port in the range.\n + Docker recommends that you turn off the docker-proxy in the Docker daemon config file when you have a large number of ports.\n For more information, see [Issue #11185](https://docs.aws.amazon.com/https://github.com/moby/moby/issues/11185) on the Github website.\n For information about how to turn off the docker-proxy in the Docker daemon config file, see [Docker daemon](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/bootstrap_container_instance.html#bootstrap_docker_daemon) in the *Amazon ECS Developer Guide*.\n \n You can call [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) to view the ``hostPortRange`` which are the host ports that are bound to the container ports." }, "hostPort": { "type": "integer", - "description": "The port number on the container instance to reserve for your container.\n If you specify a ``containerPortRange``, leave this field empty and the value of the ``hostPort`` is set as follows:\n + For containers in a task with the ``awsvpc`` network mode, the ``hostPort`` is set to the same value as the ``containerPort``. This is a static mapping strategy.\n + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open ports on the host and automatically binds them to the container ports. This is a dynamic mapping strategy.\n \n If you use containers in a task with the ``awsvpc`` or ``host`` network mode, the ``hostPort`` can either be left blank or set to the same value as the ``containerPort``.\n If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0``) while specifying a ``containerPort`` and your container automatically" + "description": "The port number on the container instance to reserve for your container.\n If you specify a ``containerPortRange``, leave this field empty and the value of the ``hostPort`` is set as follows:\n + For containers in a task with the ``awsvpc`` network mode, the ``hostPort`` is set to the same value as the ``containerPort``. This is a static mapping strategy.\n + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open ports on the host and automatically binds them to the container ports. This is a dynamic mapping strategy.\n \n If you use containers in a task with the ``awsvpc`` or ``host`` network mode, the ``hostPort`` can either be left blank or set to the same value as the ``containerPort``.\n If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0``) while specifying a ``containerPort`` and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version.\n The default ephemeral port range for Docker version 1.6.0 and later is listed on the instance under ``/proc/sys/net/ipv4/ip_local_port_range``. If this kernel parameter is unavailable, the default ephemeral port range from 49153 through 65535 (Linux) or 49152 through 65535 (Windows) is used. Do not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range.\n The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678-51680. Any host port that was previously specified in a running task is also reserved while the task is running. That is, after a task stops, the host port is released. The current reserved ports are displayed in the ``remainingResources`` of [DescribeContainerInstances](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html) output. A container instance can have up to 100 reserved ports at a time. This number includes the default reserved ports. Automatically assigned ports aren't included in the 100 reserved ports quota." }, "name": { "type": "string", @@ -34853,7 +36831,7 @@ "type": "object" }, "aws-native:ecs:TaskDefinitionPortMappingAppProtocol": { - "description": "The application protocol that's used for the port mapping. This parameter only applies to Service Connect. We recommend that you set this parameter to be consistent with the protocol that your application uses. If you set this parameter, Amazon ECS adds protocol-specific connection handling to the Service Connect proxy. If you set this parameter, Amazon ECS adds protocol-specific telemetry in the Amazon ECS console and CloudWatch.\n If you don't set a value for this parameter, then TCP is used. However, Amazon ECS doesn't add protocol-specific telemetry for TCP.\n ``appProtocol`` is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment.\n Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS se", + "description": "The application protocol that's used for the port mapping. This parameter only applies to Service Connect. We recommend that you set this parameter to be consistent with the protocol that your application uses. If you set this parameter, Amazon ECS adds protocol-specific connection handling to the Service Connect proxy. If you set this parameter, Amazon ECS adds protocol-specific telemetry in the Amazon ECS console and CloudWatch.\n If you don't set a value for this parameter, then TCP is used. However, Amazon ECS doesn't add protocol-specific telemetry for TCP.\n ``appProtocol`` is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment.\n Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*.", "type": "string", "enum": [ { @@ -34882,7 +36860,7 @@ "items": { "$ref": "#/types/aws-native:ecs:TaskDefinitionKeyValuePair" }, - "description": "The set of network configuration parameters to provide the Container Network Interface (CNI) plugin, specified as key-value pairs.\n + ``IgnoredUID`` - (Required) The user ID (UID) of the proxy container as defined by the ``user`` parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If ``IgnoredGID`` is specified, this field can be empty.\n + ``IgnoredGID`` - (Required) The group ID (GID) of the proxy container as defined by the ``user`` parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If ``IgnoredUID`` is specified, this field can be empty.\n + ``AppPorts`` - (Required) The list of ports that the application uses. Network traffic to these ports is forwarded to the ``ProxyIngressPort`` and ``ProxyEgressPort``.\n + ``ProxyIngressPort`` - (Required) Specifies the port that incoming traffic to the ``AppPorts`` is directed to.\n + ``ProxyEgressPort`` - (Required) Specifies the port that outgoi" + "description": "The set of network configuration parameters to provide the Container Network Interface (CNI) plugin, specified as key-value pairs.\n + ``IgnoredUID`` - (Required) The user ID (UID) of the proxy container as defined by the ``user`` parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If ``IgnoredGID`` is specified, this field can be empty.\n + ``IgnoredGID`` - (Required) The group ID (GID) of the proxy container as defined by the ``user`` parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If ``IgnoredUID`` is specified, this field can be empty.\n + ``AppPorts`` - (Required) The list of ports that the application uses. Network traffic to these ports is forwarded to the ``ProxyIngressPort`` and ``ProxyEgressPort``.\n + ``ProxyIngressPort`` - (Required) Specifies the port that incoming traffic to the ``AppPorts`` is directed to.\n + ``ProxyEgressPort`` - (Required) Specifies the port that outgoing traffic from the ``AppPorts`` is directed to.\n + ``EgressIgnoredPorts`` - (Required) The egress traffic going to the specified ports is ignored and not redirected to the ``ProxyEgressPort``. It can be an empty list.\n + ``EgressIgnoredIPs`` - (Required) The egress traffic going to the specified IP addresses is ignored and not redirected to the ``ProxyEgressPort``. It can be an empty list." }, "type": { "type": "string", @@ -34955,7 +36933,7 @@ ] }, "aws-native:ecs:TaskDefinitionSystemControl": { - "description": "A list of namespaced kernel parameters to set in the container. This parameter maps to ``Sysctls`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--sysctl`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). For example, you can configure ``net.ipv4.tcp_keepalive_time`` setting to maintain longer lived connections.\n We don't recommend that you specify network-related ``systemControls`` parameters for multiple containers in a single task that also uses either the ``awsvpc`` or ``host`` network mode. Doing this has the following disadvantages:\n + For tasks that use the ``awsvpc`` network mode including Fargate, if you set ``systemControls`` for any container, it applies to all containers in the task. If you set different ``sy", + "description": "A list of namespaced kernel parameters to set in the container. This parameter maps to ``Sysctls`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--sysctl`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). For example, you can configure ``net.ipv4.tcp_keepalive_time`` setting to maintain longer lived connections.\n We don't recommend that you specify network-related ``systemControls`` parameters for multiple containers in a single task that also uses either the ``awsvpc`` or ``host`` network mode. Doing this has the following disadvantages:\n + For tasks that use the ``awsvpc`` network mode including Fargate, if you set ``systemControls`` for any container, it applies to all containers in the task. If you set different ``systemControls`` for multiple containers in a single task, the container that's started last determines which ``systemControls`` take effect.\n + For tasks that use the ``host`` network mode, the network namespace ``systemControls`` aren't supported.\n \n If you're setting an IPC resource namespace to use for the containers in the task, the following conditions apply to your system controls. For more information, see [IPC mode](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#task_definition_ipcmode).\n + For tasks that use the ``host`` IPC mode, IPC namespace ``systemControls`` aren't supported.\n + For tasks that use the ``task`` IPC mode, IPC namespace ``systemControls`` values apply to all containers within a task.\n \n This parameter is not supported for Windows containers.\n This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate.", "properties": { "namespace": { "type": "string", @@ -34969,7 +36947,7 @@ "type": "object" }, "aws-native:ecs:TaskDefinitionTag": { - "description": "The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix", + "description": "The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.", "properties": { "key": { "type": "string", @@ -35044,6 +37022,9 @@ "$ref": "#/types/aws-native:ecs:TaskDefinitionEfsVolumeConfiguration", "description": "This parameter is specified when you use an Amazon Elastic File System file system for task storage." }, + "fSxWindowsFileServerVolumeConfiguration": { + "$ref": "#/types/aws-native:ecs:TaskDefinitionFSxWindowsFileServerVolumeConfiguration" + }, "host": { "$ref": "#/types/aws-native:ecs:TaskDefinitionHostVolumeProperties", "description": "This parameter is specified when you use bind mount host volumes. The contents of the ``host`` parameter determine whether your bind mount host volume persists on the host container instance and where it's stored. If the ``host`` parameter is empty, then the Docker daemon assigns a host path for your data volume. However, the data isn't guaranteed to persist after the containers that are associated with it stop running.\n Windows containers can mount whole directories on the same drive as ``$env:ProgramData``. Windows containers can't mount directories on a different drive, and mount point can't be across drives. For example, you can mount ``C:\\my\\path:C:\\my\\path`` and ``D:\\:D:\\``, but not ``D:\\my\\path:C:\\my\\path`` or ``D:\\:C:\\my\\path``." @@ -35291,7 +37272,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 +37281,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 +38079,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 +38109,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 +39694,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": { @@ -37774,6 +39788,92 @@ "value" ] }, + "aws-native:entityresolution:IdNamespaceIdMappingWorkflowProperties": { + "properties": { + "idMappingType": { + "$ref": "#/types/aws-native:entityresolution:IdNamespaceIdMappingWorkflowPropertiesIdMappingType" + }, + "providerProperties": { + "$ref": "#/types/aws-native:entityresolution:IdNamespaceNamespaceProviderProperties" + } + }, + "type": "object", + "required": [ + "idMappingType" + ] + }, + "aws-native:entityresolution:IdNamespaceIdMappingWorkflowPropertiesIdMappingType": { + "type": "string", + "enum": [ + { + "name": "Provider", + "value": "PROVIDER" + } + ] + }, + "aws-native:entityresolution:IdNamespaceInputSource": { + "properties": { + "inputSourceArn": { + "type": "string" + }, + "schemaName": { + "type": "string" + } + }, + "type": "object", + "required": [ + "inputSourceArn" + ] + }, + "aws-native:entityresolution:IdNamespaceNamespaceProviderProperties": { + "properties": { + "providerConfiguration": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Additional Provider configuration that would be required for the provider service. The Configuration must be in JSON string format." + }, + "providerServiceArn": { + "type": "string" + } + }, + "type": "object", + "required": [ + "providerServiceArn" + ] + }, + "aws-native:entityresolution:IdNamespaceTag": { + "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:entityresolution:IdNamespaceType": { + "type": "string", + "enum": [ + { + "name": "Source", + "value": "SOURCE" + }, + { + "name": "Target", + "value": "TARGET" + } + ] + }, "aws-native:entityresolution:MatchingWorkflowInputSource": { "properties": { "applyNormalization": { @@ -37964,6 +40064,19 @@ "value" ] }, + "aws-native:entityresolution:PolicyStatementStatementEffect": { + "type": "string", + "enum": [ + { + "name": "Allow", + "value": "Allow" + }, + { + "name": "Deny", + "value": "Deny" + } + ] + }, "aws-native:entityresolution:SchemaMappingSchemaAttributeType": { "type": "string", "enum": [ @@ -41661,7 +43774,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 +43854,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 +53540,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": { @@ -52874,6 +55004,24 @@ } ] }, + "aws-native:ivs:EncoderConfigurationTag": { + "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:ivs:PlaybackKeyPairTag": { "properties": { "key": { @@ -52889,6 +55037,24 @@ "value" ] }, + "aws-native:ivs:PlaybackRestrictionPolicyTag": { + "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:ivs:RecordingConfigurationDestinationConfiguration": { "description": "Recording Destination Configuration.", "properties": { @@ -53096,6 +55262,35 @@ "value" ] }, + "aws-native:ivs:StorageConfigurationS3StorageConfiguration": { + "description": "A complex type that describes an S3 location where recorded videos will be stored.", + "properties": { + "bucketName": { + "type": "string", + "description": "Location (S3 bucket name) where recorded videos will be stored. Note that the StorageConfiguration and S3 bucket must be in the same region as the Composition.", + "replaceOnChanges": true + } + }, + "type": "object", + "required": [ + "bucketName" + ] + }, + "aws-native:ivs:StorageConfigurationTag": { + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "required": [ + "key", + "value" + ] + }, "aws-native:ivs:StreamKeyTag": { "properties": { "key": { @@ -53111,6 +55306,32 @@ "value" ] }, + "aws-native:ivs:VideoProperties": { + "description": "Video configuration. Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps", + "properties": { + "bitrate": { + "type": "integer", + "description": "Bitrate for generated output, in bps. Default: 2500000.", + "replaceOnChanges": true + }, + "framerate": { + "type": "number", + "description": "Video frame rate, in fps. Default: 30.", + "replaceOnChanges": true + }, + "height": { + "type": "integer", + "description": "Video-resolution height. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 720.", + "replaceOnChanges": true + }, + "width": { + "type": "integer", + "description": "Video-resolution width. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 1280.", + "replaceOnChanges": true + } + }, + "type": "object" + }, "aws-native:ivschat:LoggingConfigurationCloudWatchLogsDestinationConfiguration": { "description": "CloudWatch destination configuration for IVS Chat logging.", "properties": { @@ -53599,6 +55820,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": { @@ -58918,7 +61234,7 @@ }, "updateRuntimeOn": { "$ref": "#/types/aws-native:lambda:FunctionRuntimeManagementConfigUpdateRuntimeOn", - "description": "Specify the runtime update mode.\n + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates.\n + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date.\n + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback).\n \n *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual``" + "description": "Specify the runtime update mode.\n + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates.\n + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date.\n + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback).\n \n *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual``" } }, "type": "object", @@ -58927,7 +61243,7 @@ ] }, "aws-native:lambda:FunctionRuntimeManagementConfigUpdateRuntimeOn": { - "description": "Specify the runtime update mode.\n + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates.\n + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date.\n + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback).\n \n *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual``", + "description": "Specify the runtime update mode.\n + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates.\n + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date.\n + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback).\n \n *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual``", "type": "string", "enum": [ { @@ -62398,7 +64714,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 +64728,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 +64743,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 +64761,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 +64799,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 +64913,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 +113817,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", @@ -112355,15 +114691,15 @@ ] }, "aws-native:route53:HostedZoneVpc": { - "description": "*Private hosted zones only:* A complex type that contains information about an Amazon VPC. Route 53 Resolver uses the records in the private hosted zone to route traffic in that VPC. \n For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``.", + "description": "*Private hosted zones only:* A complex type that contains information about an Amazon VPC. Route 53 Resolver uses the records in the private hosted zone to route traffic in that VPC. \n For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``.", "properties": { "vpcId": { "type": "string", - "description": "*Private hosted zones only:* The ID of an Amazon VPC.\n For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``." + "description": "*Private hosted zones only:* The ID of an Amazon VPC.\n For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``." }, "vpcRegion": { "type": "string", - "description": "*Private hosted zones only:* The region that an Amazon VPC was created in.\n For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``." + "description": "*Private hosted zones only:* The region that an Amazon VPC was created in.\n For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``." } }, "type": "object", @@ -116206,6 +118542,16 @@ } ] }, + "aws-native:sagemaker:AppImageConfigCodeEditorAppImageConfig": { + "description": "The configuration for the kernels in a SageMaker image running as a CodeEditor app.", + "properties": { + "containerConfig": { + "$ref": "#/types/aws-native:sagemaker:AppImageConfigContainerConfig", + "description": "The container configuration for a SageMaker image." + } + }, + "type": "object" + }, "aws-native:sagemaker:AppImageConfigContainerConfig": { "description": "The container configuration for a SageMaker image.", "properties": { @@ -117180,6 +119526,13 @@ "aws-native:sagemaker:DomainCodeEditorAppSettings": { "description": "The CodeEditor app settings.", "properties": { + "customImages": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:sagemaker:DomainCustomImage" + }, + "description": "A list of custom images for use for CodeEditor apps." + }, "defaultResourceSpec": { "$ref": "#/types/aws-native:sagemaker:DomainResourceSpec", "description": "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the CodeEditor app." @@ -122981,6 +125334,13 @@ "aws-native:sagemaker:UserProfileCodeEditorAppSettings": { "description": "The CodeEditor app settings.", "properties": { + "customImages": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:sagemaker:UserProfileCustomImage" + }, + "description": "A list of custom images for use for CodeEditor apps." + }, "defaultResourceSpec": { "$ref": "#/types/aws-native:sagemaker:UserProfileResourceSpec", "description": "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the CodeEditor app." @@ -124677,6 +127037,927 @@ }, "type": "object" }, + "aws-native:securityhub:DelegatedAdminStatus": { + "description": "The current status of the Security Hub administrator account. Indicates whether the account is currently enabled as a Security Hub administrator", + "type": "string", + "enum": [ + { + "name": "Enabled", + "value": "ENABLED" + }, + { + "name": "DisableInProgress", + "value": "DISABLE_IN_PROGRESS" + } + ] + }, + "aws-native:securityhub:InsightAwsSecurityFindingFilters": { + "description": "A collection of filters that are applied to all active findings aggregated by AWS Security Hub.", + "properties": { + "awsAccountId": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The AWS account ID in which a finding is generated." + }, + "awsAccountName": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The name of the AWS account in which a finding is generated." + }, + "companyName": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The name of the findings provider (company) that owns the solution (product) that generates findings." + }, + "complianceAssociatedStandardsId": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The unique identifier of a standard in which a control is enabled." + }, + "complianceSecurityControlId": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The unique identifier of a control across standards." + }, + "complianceSecurityControlParametersName": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The name of a security control parameter." + }, + "complianceSecurityControlParametersValue": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The current value of a security control parameter." + }, + "complianceStatus": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "Exclusive to findings that are generated as the result of a check run against a specific rule in a supported standard." + }, + "confidence": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightNumberFilter" + }, + "description": "A finding's confidence." + }, + "createdAt": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightDateFilter" + }, + "description": "An ISO8601-formatted timestamp that indicates when the security findings provider captured the potential security issue that a finding captured." + }, + "criticality": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightNumberFilter" + }, + "description": "The level of importance assigned to the resources associated with the finding." + }, + "description": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "A finding's description." + }, + "findingProviderFieldsConfidence": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightNumberFilter" + }, + "description": "The finding provider value for the finding confidence." + }, + "findingProviderFieldsCriticality": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightNumberFilter" + }, + "description": "The finding provider value for the level of importance assigned to the resources associated with the findings." + }, + "findingProviderFieldsRelatedFindingsId": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The finding identifier of a related finding that is identified by the finding provider." + }, + "findingProviderFieldsRelatedFindingsProductArn": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The ARN of the solution that generated a related finding that is identified by the finding provider." + }, + "findingProviderFieldsSeverityLabel": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The finding provider value for the severity label." + }, + "findingProviderFieldsSeverityOriginal": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The finding provider's original value for the severity." + }, + "findingProviderFieldsTypes": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "One or more finding types that the finding provider assigned to the finding." + }, + "firstObservedAt": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightDateFilter" + }, + "description": "An ISO8601-formatted timestamp that indicates when the security findings provider first observed the potential security issue that a finding captured." + }, + "generatorId": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The identifier for the solution-specific component (a discrete unit of logic) that generated a finding." + }, + "id": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The security findings provider-specific identifier for a finding." + }, + "keyword": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightKeywordFilter" + }, + "description": "A keyword for a finding." + }, + "lastObservedAt": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightDateFilter" + }, + "description": "An ISO8601-formatted timestamp that indicates when the security findings provider most recently observed the potential security issue that a finding captured." + }, + "malwareName": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The name of the malware that was observed." + }, + "malwarePath": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The filesystem path of the malware that was observed." + }, + "malwareState": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The state of the malware that was observed." + }, + "malwareType": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The type of the malware that was observed." + }, + "networkDestinationDomain": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The destination domain of network-related information about a finding." + }, + "networkDestinationIpV4": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightIpFilter" + }, + "description": "The destination IPv4 address of network-related information about a finding." + }, + "networkDestinationIpV6": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightIpFilter" + }, + "description": "The destination IPv6 address of network-related information about a finding." + }, + "networkDestinationPort": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightNumberFilter" + }, + "description": "The destination port of network-related information about a finding." + }, + "networkDirection": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "Indicates the direction of network traffic associated with a finding." + }, + "networkProtocol": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The protocol of network-related information about a finding." + }, + "networkSourceDomain": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The source domain of network-related information about a finding." + }, + "networkSourceIpV4": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightIpFilter" + }, + "description": "The source IPv4 address of network-related information about a finding." + }, + "networkSourceIpV6": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightIpFilter" + }, + "description": "The source IPv6 address of network-related information about a finding." + }, + "networkSourceMac": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The source media access control (MAC) address of network-related information about a finding." + }, + "networkSourcePort": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightNumberFilter" + }, + "description": "The source port of network-related information about a finding." + }, + "noteText": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The text of a note." + }, + "noteUpdatedAt": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightDateFilter" + }, + "description": "The timestamp of when the note was updated." + }, + "noteUpdatedBy": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The principal that created a note." + }, + "processLaunchedAt": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightDateFilter" + }, + "description": "A timestamp that identifies when the process was launched." + }, + "processName": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The name of the process." + }, + "processParentPid": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightNumberFilter" + }, + "description": "The parent process ID." + }, + "processPath": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The path to the process executable." + }, + "processPid": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightNumberFilter" + }, + "description": "The process ID." + }, + "processTerminatedAt": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightDateFilter" + }, + "description": "A timestamp that identifies when the process was terminated." + }, + "productArn": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The ARN generated by Security Hub that uniquely identifies a third-party company (security findings provider) after this provider's product (solution that generates findings) is registered with Security Hub." + }, + "productFields": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightMapFilter" + }, + "description": "A data type where security findings providers can include additional solution-specific details that aren't part of the defined AwsSecurityFinding format." + }, + "productName": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The name of the solution (product) that generates findings." + }, + "recommendationText": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The recommendation of what to do about the issue described in a finding." + }, + "recordState": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The updated record state for the finding." + }, + "region": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The Region from which the finding was generated." + }, + "relatedFindingsId": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The solution-generated identifier for a related finding." + }, + "relatedFindingsProductArn": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The ARN of the solution that generated a related finding." + }, + "resourceApplicationArn": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The ARN of the application that is related to a finding." + }, + "resourceApplicationName": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The name of the application that is related to a finding." + }, + "resourceAwsEc2InstanceIamInstanceProfileArn": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The IAM profile ARN of the instance." + }, + "resourceAwsEc2InstanceImageId": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The Amazon Machine Image (AMI) ID of the instance." + }, + "resourceAwsEc2InstanceIpV4Addresses": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightIpFilter" + }, + "description": "The IPv4 addresses associated with the instance." + }, + "resourceAwsEc2InstanceIpV6Addresses": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightIpFilter" + }, + "description": "The IPv6 addresses associated with the instance." + }, + "resourceAwsEc2InstanceKeyName": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The key name associated with the instance." + }, + "resourceAwsEc2InstanceLaunchedAt": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightDateFilter" + }, + "description": "The date and time the instance was launched." + }, + "resourceAwsEc2InstanceSubnetId": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The identifier of the subnet that the instance was launched in." + }, + "resourceAwsEc2InstanceType": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The instance type of the instance." + }, + "resourceAwsEc2InstanceVpcId": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The identifier of the VPC that the instance was launched in." + }, + "resourceAwsIamAccessKeyCreatedAt": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightDateFilter" + }, + "description": "The creation date/time of the IAM access key related to a finding." + }, + "resourceAwsIamAccessKeyPrincipalName": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The name of the principal that is associated with an IAM access key." + }, + "resourceAwsIamAccessKeyStatus": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The status of the IAM access key related to a finding." + }, + "resourceAwsIamAccessKeyUserName": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The user associated with the IAM access key related to a finding." + }, + "resourceAwsIamUserUserName": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The name of an IAM user." + }, + "resourceAwsS3BucketOwnerId": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The canonical user ID of the owner of the S3 bucket." + }, + "resourceAwsS3BucketOwnerName": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The display name of the owner of the S3 bucket." + }, + "resourceContainerImageId": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The identifier of the image related to a finding." + }, + "resourceContainerImageName": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The name of the image related to a finding." + }, + "resourceContainerLaunchedAt": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightDateFilter" + }, + "description": "A timestamp that identifies when the container was started." + }, + "resourceContainerName": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The name of the container related to a finding." + }, + "resourceDetailsOther": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightMapFilter" + }, + "description": "The details of a resource that doesn't have a specific subfield for the resource type defined." + }, + "resourceId": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The canonical identifier for the given resource type." + }, + "resourcePartition": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The canonical AWS partition name that the Region is assigned to." + }, + "resourceRegion": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The canonical AWS external Region name where this resource is located." + }, + "resourceTags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightMapFilter" + }, + "description": "A list of AWS tags associated with a resource at the time the finding was processed." + }, + "resourceType": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "Specifies the type of the resource that details are provided for." + }, + "sample": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightBooleanFilter" + }, + "description": "Indicates whether or not sample findings are included in the filter results." + }, + "severityLabel": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The label of a finding's severity." + }, + "severityNormalized": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightNumberFilter" + }, + "description": "The normalized severity of a finding." + }, + "severityProduct": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightNumberFilter" + }, + "description": "The native severity as defined by the security findings provider's solution that generated the finding." + }, + "sourceUrl": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "A URL that links to a page about the current finding in the security findings provider's solution." + }, + "threatIntelIndicatorCategory": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The category of a threat intelligence indicator." + }, + "threatIntelIndicatorLastObservedAt": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightDateFilter" + }, + "description": "A timestamp that identifies the last observation of a threat intelligence indicator." + }, + "threatIntelIndicatorSource": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The source of the threat intelligence." + }, + "threatIntelIndicatorSourceUrl": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The URL for more details from the source of the threat intelligence." + }, + "threatIntelIndicatorType": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The type of a threat intelligence indicator." + }, + "threatIntelIndicatorValue": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The value of a threat intelligence indicator." + }, + "title": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "A finding's title." + }, + "type": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "A finding type in the format of namespace/category/classifier that classifies a finding." + }, + "updatedAt": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightDateFilter" + }, + "description": "An ISO8601-formatted timestamp that indicates when the security findings provider last updated the finding record." + }, + "userDefinedFields": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightMapFilter" + }, + "description": "A list of name/value string pairs associated with the finding." + }, + "verificationState": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The veracity of a finding." + }, + "vulnerabilitiesExploitAvailable": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "Indicates whether a software vulnerability in your environment has a known exploit." + }, + "vulnerabilitiesFixAvailable": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "Indicates whether a vulnerability is fixed in a newer version of the affected software packages." + }, + "workflowState": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The workflow state of a finding." + }, + "workflowStatus": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilter" + }, + "description": "The status of the investigation into a finding." + } + }, + "type": "object" + }, + "aws-native:securityhub:InsightBooleanFilter": { + "description": "Boolean filter for querying findings.", + "properties": { + "value": { + "type": "boolean", + "description": "The value of the boolean." + } + }, + "type": "object", + "required": [ + "value" + ] + }, + "aws-native:securityhub:InsightDateFilter": { + "description": "A date filter for querying findings.", + "properties": { + "dateRange": { + "$ref": "#/types/aws-native:securityhub:InsightDateRange" + }, + "end": { + "type": "string" + }, + "start": { + "type": "string" + } + }, + "type": "object" + }, + "aws-native:securityhub:InsightDateRange": { + "description": "A date range for the date filter.", + "properties": { + "unit": { + "$ref": "#/types/aws-native:securityhub:InsightDateRangeUnit", + "description": "A date range unit for the date filter." + }, + "value": { + "type": "number", + "description": "A date range value for the date filter." + } + }, + "type": "object", + "required": [ + "unit", + "value" + ] + }, + "aws-native:securityhub:InsightDateRangeUnit": { + "description": "A date range unit for the date filter.", + "type": "string", + "enum": [ + { + "name": "Days", + "value": "DAYS" + } + ] + }, + "aws-native:securityhub:InsightIpFilter": { + "description": "The IP filter for querying findings.", + "properties": { + "cidr": { + "type": "string", + "description": "A finding's CIDR value." + } + }, + "type": "object", + "required": [ + "cidr" + ] + }, + "aws-native:securityhub:InsightKeywordFilter": { + "description": "A keyword filter for querying findings.", + "properties": { + "value": { + "type": "string", + "description": "A value for the keyword." + } + }, + "type": "object", + "required": [ + "value" + ] + }, + "aws-native:securityhub:InsightMapFilter": { + "description": "A map filter for filtering AWS Security Hub findings.", + "properties": { + "comparison": { + "$ref": "#/types/aws-native:securityhub:InsightMapFilterComparison", + "description": "The condition to apply to the key value when filtering Security Hub findings with a map filter." + }, + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "required": [ + "comparison", + "key", + "value" + ] + }, + "aws-native:securityhub:InsightMapFilterComparison": { + "description": "The condition to apply to the key value when filtering Security Hub findings with a map filter.", + "type": "string", + "enum": [ + { + "name": "Equals", + "value": "EQUALS" + }, + { + "name": "NotEquals", + "value": "NOT_EQUALS" + } + ] + }, + "aws-native:securityhub:InsightNumberFilter": { + "description": "A number filter for querying findings.", + "properties": { + "eq": { + "type": "number", + "description": "The equal-to condition to be applied to a single field when querying for findings." + }, + "gte": { + "type": "number", + "description": "The greater-than-equal condition to be applied to a single field when querying for findings." + }, + "lte": { + "type": "number", + "description": "The less-than-equal condition to be applied to a single field when querying for findings." + } + }, + "type": "object" + }, + "aws-native:securityhub:InsightStringFilter": { + "description": "A string filter for filtering AWS Security Hub findings.", + "properties": { + "comparison": { + "$ref": "#/types/aws-native:securityhub:InsightStringFilterComparison" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "required": [ + "comparison", + "value" + ] + }, + "aws-native:securityhub:InsightStringFilterComparison": { + "description": "The condition to apply to a string value when filtering Security Hub findings.", + "type": "string", + "enum": [ + { + "name": "Equals", + "value": "EQUALS" + }, + { + "name": "Prefix", + "value": "PREFIX" + }, + { + "name": "NotEquals", + "value": "NOT_EQUALS" + }, + { + "name": "PrefixNotEquals", + "value": "PREFIX_NOT_EQUALS" + } + ] + }, "aws-native:securityhub:StandardsControl": { "description": "Provides details about an individual security control. For a list of ASH controls, see [controls reference](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-controls-reference.html) in the *User Guide*.", "properties": { @@ -124694,6 +127975,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": [ @@ -128408,6 +131868,17 @@ "value" ] }, + "aws-native:verifiedpermissions:IdentitySourceCognitoGroupConfiguration": { + "properties": { + "groupEntityType": { + "type": "string" + } + }, + "type": "object", + "required": [ + "groupEntityType" + ] + }, "aws-native:verifiedpermissions:IdentitySourceCognitoUserPoolConfiguration": { "properties": { "clientIds": { @@ -128416,6 +131887,9 @@ "type": "string" } }, + "groupConfiguration": { + "$ref": "#/types/aws-native:verifiedpermissions:IdentitySourceCognitoGroupConfiguration" + }, "userPoolArn": { "type": "string" } @@ -134430,11 +137904,13 @@ "required": [ "appId", "arn", + "certificate", "certificateRecord", "domainName", "domainStatus", "statusReason", - "subDomainSettings" + "subDomainSettings", + "updateStatus" ], "inputProperties": { "appId": { @@ -134449,9 +137925,6 @@ "autoSubDomainIamRole": { "type": "string" }, - "certificate": { - "$ref": "#/types/aws-native:amplify:DomainCertificate" - }, "certificateSettings": { "$ref": "#/types/aws-native:amplify:DomainCertificateSettings" }, @@ -134466,9 +137939,6 @@ "items": { "$ref": "#/types/aws-native:amplify:DomainSubDomainSetting" } - }, - "updateStatus": { - "type": "string" } }, "requiredInputs": [ @@ -137799,6 +141269,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 +143133,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 +143214,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 +143407,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 +146050,464 @@ } } }, + "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:bedrock:DataSource": { + "description": "Definition of AWS::Bedrock::DataSource Resource Type", + "properties": { + "createdAt": { + "type": "string", + "description": "The time at which the data source was created." + }, + "dataSourceConfiguration": { + "$ref": "#/types/aws-native:bedrock:DataSourceConfiguration" + }, + "dataSourceId": { + "type": "string", + "description": "Identifier for a resource." + }, + "dataSourceStatus": { + "$ref": "#/types/aws-native:bedrock:DataSourceStatus" + }, + "description": { + "type": "string", + "description": "Description of the Resource." + }, + "knowledgeBaseId": { + "type": "string", + "description": "The unique identifier of the knowledge base to which to add the data source.", + "replaceOnChanges": true + }, + "name": { + "type": "string", + "description": "The name of the data source." + }, + "serverSideEncryptionConfiguration": { + "$ref": "#/types/aws-native:bedrock:DataSourceServerSideEncryptionConfiguration" + }, + "updatedAt": { + "type": "string", + "description": "The time at which the knowledge base was last updated." + }, + "vectorIngestionConfiguration": { + "$ref": "#/types/aws-native:bedrock:DataSourceVectorIngestionConfiguration", + "replaceOnChanges": true + } + }, + "type": "object", + "required": [ + "createdAt", + "dataSourceConfiguration", + "dataSourceId", + "dataSourceStatus", + "knowledgeBaseId", + "name", + "updatedAt" + ], + "inputProperties": { + "dataSourceConfiguration": { + "$ref": "#/types/aws-native:bedrock:DataSourceConfiguration" + }, + "description": { + "type": "string", + "description": "Description of the Resource." + }, + "knowledgeBaseId": { + "type": "string", + "description": "The unique identifier of the knowledge base to which to add the data source." + }, + "name": { + "type": "string", + "description": "The name of the data source." + }, + "serverSideEncryptionConfiguration": { + "$ref": "#/types/aws-native:bedrock:DataSourceServerSideEncryptionConfiguration" + }, + "vectorIngestionConfiguration": { + "$ref": "#/types/aws-native:bedrock:DataSourceVectorIngestionConfiguration" + } + }, + "requiredInputs": [ + "dataSourceConfiguration", + "knowledgeBaseId" + ] + }, + "aws-native:bedrock:KnowledgeBase": { + "description": "Definition of AWS::Bedrock::KnowledgeBase Resource Type", + "properties": { + "createdAt": { + "type": "string", + "description": "The time at which the knowledge base was created." + }, + "description": { + "type": "string", + "description": "Description of the Resource." + }, + "failureReasons": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of reasons that the API operation on the knowledge base failed." + }, + "knowledgeBaseArn": { + "type": "string", + "description": "The ARN of the knowledge base." + }, + "knowledgeBaseConfiguration": { + "$ref": "#/types/aws-native:bedrock:KnowledgeBaseConfiguration", + "replaceOnChanges": true + }, + "knowledgeBaseId": { + "type": "string", + "description": "The unique identifier of the knowledge base." + }, + "name": { + "type": "string", + "description": "The name of the knowledge base." + }, + "roleArn": { + "type": "string", + "description": "The ARN of the IAM role with permissions to invoke API operations on the knowledge base. The ARN must begin with AmazonBedrockExecutionRoleForKnowledgeBase_" + }, + "status": { + "$ref": "#/types/aws-native:bedrock:KnowledgeBaseStatus" + }, + "storageConfiguration": { + "$ref": "#/types/aws-native:bedrock:KnowledgeBaseStorageConfiguration", + "replaceOnChanges": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "updatedAt": { + "type": "string", + "description": "The time at which the knowledge base was last updated." + } + }, + "type": "object", + "required": [ + "createdAt", + "failureReasons", + "knowledgeBaseArn", + "knowledgeBaseConfiguration", + "knowledgeBaseId", + "name", + "roleArn", + "status", + "storageConfiguration", + "updatedAt" + ], + "inputProperties": { + "description": { + "type": "string", + "description": "Description of the Resource." + }, + "knowledgeBaseConfiguration": { + "$ref": "#/types/aws-native:bedrock:KnowledgeBaseConfiguration" + }, + "name": { + "type": "string", + "description": "The name of the knowledge base." + }, + "roleArn": { + "type": "string", + "description": "The ARN of the IAM role with permissions to invoke API operations on the knowledge base. The ARN must begin with AmazonBedrockExecutionRoleForKnowledgeBase_" + }, + "storageConfiguration": { + "$ref": "#/types/aws-native:bedrock:KnowledgeBaseStorageConfiguration" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "requiredInputs": [ + "knowledgeBaseConfiguration", + "roleArn", + "storageConfiguration" + ] + }, "aws-native:budgets:BudgetsAction": { "description": "An example resource schema demonstrating some basic constructs and validation rules.", "properties": { @@ -143641,6 +147721,79 @@ "queryLogStatus" ] }, + "aws-native:cleanroomsml:TrainingDataset": { + "description": "Definition of AWS::CleanRoomsML::TrainingDataset Resource Type", + "properties": { + "description": { + "type": "string", + "replaceOnChanges": true + }, + "name": { + "type": "string", + "replaceOnChanges": true + }, + "roleArn": { + "type": "string", + "replaceOnChanges": true + }, + "status": { + "$ref": "#/types/aws-native:cleanroomsml:TrainingDatasetStatus" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An arbitrary set of tags (key-value pairs) for this cleanrooms-ml training dataset." + }, + "trainingData": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:cleanroomsml:TrainingDatasetDataset" + }, + "replaceOnChanges": true + }, + "trainingDatasetArn": { + "type": "string" + } + }, + "type": "object", + "required": [ + "name", + "roleArn", + "status", + "trainingData", + "trainingDatasetArn" + ], + "inputProperties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "roleArn": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An arbitrary set of tags (key-value pairs) for this cleanrooms-ml training dataset." + }, + "trainingData": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:cleanroomsml:TrainingDatasetDataset" + } + } + }, + "requiredInputs": [ + "roleArn", + "trainingData" + ] + }, "aws-native:cloudformation:HookDefaultVersion": { "description": "Set a version as default version for a hook in CloudFormation Registry.\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 hookDefaultVersion = new AwsNative.CloudFormation.HookDefaultVersion(\"hookDefaultVersion\", new()\n {\n TypeVersionArn = \"arn:aws:cloudformation:us-west-2:123456789012:type/hook/My-Sample-Hook/00000001\",\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/cloudformation\"\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 := cloudformation.NewHookDefaultVersion(ctx, \"hookDefaultVersion\", \u0026cloudformation.HookDefaultVersionArgs{\n\t\t\tTypeVersionArn: pulumi.String(\"arn:aws:cloudformation:us-west-2:123456789012:type/hook/My-Sample-Hook/00000001\"),\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 hookDefaultVersion = new aws_native.cloudformation.HookDefaultVersion(\"hookDefaultVersion\", {typeVersionArn: \"arn:aws:cloudformation:us-west-2:123456789012:type/hook/My-Sample-Hook/00000001\"});\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\nhook_default_version = aws_native.cloudformation.HookDefaultVersion(\"hookDefaultVersion\", type_version_arn=\"arn:aws:cloudformation:us-west-2:123456789012:type/hook/My-Sample-Hook/00000001\")\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 hookDefaultVersion = new AwsNative.CloudFormation.HookDefaultVersion(\"hookDefaultVersion\", new()\n {\n TypeVersionArn = \"arn:aws:cloudformation:us-west-2:123456789012:type/hook/My-Sample-Hook/00000001\",\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/cloudformation\"\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 := cloudformation.NewHookDefaultVersion(ctx, \"hookDefaultVersion\", \u0026cloudformation.HookDefaultVersionArgs{\n\t\t\tTypeVersionArn: pulumi.String(\"arn:aws:cloudformation:us-west-2:123456789012:type/hook/My-Sample-Hook/00000001\"),\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 hookDefaultVersion = new aws_native.cloudformation.HookDefaultVersion(\"hookDefaultVersion\", {typeVersionArn: \"arn:aws:cloudformation:us-west-2:123456789012:type/hook/My-Sample-Hook/00000001\"});\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\nhook_default_version = aws_native.cloudformation.HookDefaultVersion(\"hookDefaultVersion\", type_version_arn=\"arn:aws:cloudformation:us-west-2:123456789012:type/hook/My-Sample-Hook/00000001\")\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 hookDefaultVersion = new AwsNative.CloudFormation.HookDefaultVersion(\"hookDefaultVersion\", new()\n {\n TypeName = \"My::Sample::Hook\",\n VersionId = \"1\",\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/cloudformation\"\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 := cloudformation.NewHookDefaultVersion(ctx, \"hookDefaultVersion\", \u0026cloudformation.HookDefaultVersionArgs{\n\t\t\tTypeName: pulumi.String(\"My::Sample::Hook\"),\n\t\t\tVersionId: pulumi.String(\"1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws_native from \"@pulumi/aws-native\";\n\nconst hookDefaultVersion = new aws_native.cloudformation.HookDefaultVersion(\"hookDefaultVersion\", {\n typeName: \"My::Sample::Hook\",\n versionId: \"1\",\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\nhook_default_version = aws_native.cloudformation.HookDefaultVersion(\"hookDefaultVersion\",\n type_name=\"My::Sample::Hook\",\n version_id=\"1\")\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 hookDefaultVersion = new AwsNative.CloudFormation.HookDefaultVersion(\"hookDefaultVersion\", new()\n {\n TypeName = \"My::Sample::Hook\",\n VersionId = \"1\",\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/cloudformation\"\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 := cloudformation.NewHookDefaultVersion(ctx, \"hookDefaultVersion\", \u0026cloudformation.HookDefaultVersionArgs{\n\t\t\tTypeName: pulumi.String(\"My::Sample::Hook\"),\n\t\t\tVersionId: pulumi.String(\"1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws_native from \"@pulumi/aws-native\";\n\nconst hookDefaultVersion = new aws_native.cloudformation.HookDefaultVersion(\"hookDefaultVersion\", {\n typeName: \"My::Sample::Hook\",\n versionId: \"1\",\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\nhook_default_version = aws_native.cloudformation.HookDefaultVersion(\"hookDefaultVersion\",\n type_name=\"My::Sample::Hook\",\n version_id=\"1\")\n\n```\n\n{{% /example %}}\n{{% /examples %}}\n", "properties": { @@ -145474,7 +149627,7 @@ ] }, "aws-native:cloudwatch:Alarm": { - "description": "Resource Type definition for AWS::CloudWatch::Alarm", + "description": "The ``AWS::CloudWatch::Alarm`` type specifies an alarm and associates it with the specified metric or metric math expression.\n When this operation creates an alarm, the alarm state is immediately set to ``INSUFFICIENT_DATA``. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed.\n When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm.", "properties": { "actionsEnabled": { "type": "boolean", @@ -145485,7 +149638,7 @@ "items": { "type": "string" }, - "description": "The list of actions to execute when this alarm transitions into an ALARM state from any other state." + "description": "The list of actions to execute when this alarm transitions into an ALARM state from any other state. Specify each action as an Amazon Resource Name (ARN). For more information about creating alarms and the actions that you can specify, see [PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html) in the *API Reference*." }, "alarmDescription": { "type": "string", @@ -145493,199 +149646,210 @@ }, "alarmName": { "type": "string", - "description": "The name of the alarm.", + "description": "The name of the alarm. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the alarm name. \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.", "replaceOnChanges": true }, "arn": { + "type": "string" + }, + "comparisonOperator": { "type": "string", - "description": "Amazon Resource Name is a unique name for each resource." + "description": "The arithmetic operation to use when comparing the specified statistic and threshold. The specified statistic value is used as the first operand." + }, + "datapointsToAlarm": { + "type": "integer", + "description": "The number of datapoints that must be breaching to trigger the alarm. This is used only if you are setting an \"M out of N\" alarm. In that case, this value is the M, and the value that you set for ``EvaluationPeriods`` is the N value. For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*.\n If you omit this parameter, CW uses the same value here that you set for ``EvaluationPeriods``, and the alarm goes to alarm state if that many consecutive periods are breaching." + }, + "dimensions": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:cloudwatch:AlarmDimension" + }, + "description": "The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify ``Dimensions``. Instead, you use ``Metrics``." + }, + "evaluateLowSampleCountPercentile": { + "type": "string", + "description": "Used only for alarms based on percentiles. If ``ignore``, the alarm state does not change during periods with too few data points to be statistically significant. If ``evaluate`` or this parameter is not used, the alarm is always evaluated and possibly changes state no matter how many data points are available." + }, + "evaluationPeriods": { + "type": "integer", + "description": "The number of periods over which data is compared to the specified threshold. If you are setting an alarm that requires that a number of consecutive data points be breaching to trigger the alarm, this value specifies that number. If you are setting an \"M out of N\" alarm, this value is the N, and ``DatapointsToAlarm`` is the M.\n For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*." + }, + "extendedStatistic": { + "type": "string", + "description": "The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100.\n For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both.\n For an alarm based on a math expression, you can't specify ``ExtendedStatistic``. Instead, you use ``Metrics``." + }, + "insufficientDataActions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The actions to execute when this alarm transitions to the ``INSUFFICIENT_DATA`` state from any other state. Each action is specified as an Amazon Resource Name (ARN)." + }, + "metricName": { + "type": "string", + "description": "The name of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you use ``Metrics`` instead and you can't specify ``MetricName``." + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:cloudwatch:AlarmMetricDataQuery" + }, + "description": "An array that enables you to create an alarm based on the result of a metric math expression. Each item in the array either retrieves a metric or performs a math expression.\n If you specify the ``Metrics`` parameter, you cannot specify ``MetricName``, ``Dimensions``, ``Period``, ``Namespace``, ``Statistic``, ``ExtendedStatistic``, or ``Unit``." + }, + "namespace": { + "type": "string", + "description": "The namespace of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you can't specify ``Namespace`` and you use ``Metrics`` instead.\n For a list of namespaces for metrics from AWS services, see [Services That Publish Metrics.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html)" + }, + "okActions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The actions to execute when this alarm transitions to the ``OK`` state from any other state. Each action is specified as an Amazon Resource Name (ARN)." + }, + "period": { + "type": "integer", + "description": "The period, in seconds, over which the statistic is applied. This is required for an alarm based on a metric. Valid values are 10, 30, 60, and any multiple of 60.\n For an alarm based on a math expression, you can't specify ``Period``, and instead you use the ``Metrics`` parameter.\n *Minimum:* 10" + }, + "statistic": { + "type": "string", + "description": "The statistic for the metric associated with the alarm, other than percentile. For percentile statistics, use ``ExtendedStatistic``.\n For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both.\n For an alarm based on a math expression, you can't specify ``Statistic``. Instead, you use ``Metrics``." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + } + }, + "threshold": { + "type": "number", + "description": "The value to compare with the specified statistic." + }, + "thresholdMetricId": { + "type": "string", + "description": "In an alarm based on an anomaly detection model, this is the ID of the ``ANOMALY_DETECTION_BAND`` function used as the threshold for the alarm." + }, + "treatMissingData": { + "type": "string", + "description": "Sets how this alarm is to handle missing data points. Valid values are ``breaching``, ``notBreaching``, ``ignore``, and ``missing``. For more information, see [Configuring How Alarms Treat Missing Data](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data) in the *Amazon User Guide*.\n If you omit this parameter, the default behavior of ``missing`` is used." + }, + "unit": { + "type": "string", + "description": "The unit of the metric associated with the alarm. Specify this only if you are creating an alarm based on a single metric. Do not specify this if you are specifying a ``Metrics`` array.\n You can specify the following values: 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, or None." + } + }, + "type": "object", + "required": [ + "arn", + "comparisonOperator", + "evaluationPeriods" + ], + "inputProperties": { + "actionsEnabled": { + "type": "boolean", + "description": "Indicates whether actions should be executed during any changes to the alarm state. The default is TRUE." + }, + "alarmActions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The list of actions to execute when this alarm transitions into an ALARM state from any other state. Specify each action as an Amazon Resource Name (ARN). For more information about creating alarms and the actions that you can specify, see [PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html) in the *API Reference*." + }, + "alarmDescription": { + "type": "string", + "description": "The description of the alarm." + }, + "alarmName": { + "type": "string", + "description": "The name of the alarm. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the alarm name. \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." }, "comparisonOperator": { "type": "string", - "description": "The arithmetic operation to use when comparing the specified statistic and threshold." + "description": "The arithmetic operation to use when comparing the specified statistic and threshold. The specified statistic value is used as the first operand." }, "datapointsToAlarm": { "type": "integer", - "description": "The number of datapoints that must be breaching to trigger the alarm." + "description": "The number of datapoints that must be breaching to trigger the alarm. This is used only if you are setting an \"M out of N\" alarm. In that case, this value is the M, and the value that you set for ``EvaluationPeriods`` is the N value. For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*.\n If you omit this parameter, CW uses the same value here that you set for ``EvaluationPeriods``, and the alarm goes to alarm state if that many consecutive periods are breaching." }, "dimensions": { "type": "array", "items": { "$ref": "#/types/aws-native:cloudwatch:AlarmDimension" }, - "description": "The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify Dimensions. Instead, you use Metrics." + "description": "The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify ``Dimensions``. Instead, you use ``Metrics``." }, "evaluateLowSampleCountPercentile": { "type": "string", - "description": "Used only for alarms based on percentiles." + "description": "Used only for alarms based on percentiles. If ``ignore``, the alarm state does not change during periods with too few data points to be statistically significant. If ``evaluate`` or this parameter is not used, the alarm is always evaluated and possibly changes state no matter how many data points are available." }, "evaluationPeriods": { "type": "integer", - "description": "The number of periods over which data is compared to the specified threshold." + "description": "The number of periods over which data is compared to the specified threshold. If you are setting an alarm that requires that a number of consecutive data points be breaching to trigger the alarm, this value specifies that number. If you are setting an \"M out of N\" alarm, this value is the N, and ``DatapointsToAlarm`` is the M.\n For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*." }, "extendedStatistic": { "type": "string", - "description": "The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100." + "description": "The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100.\n For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both.\n For an alarm based on a math expression, you can't specify ``ExtendedStatistic``. Instead, you use ``Metrics``." }, "insufficientDataActions": { "type": "array", "items": { "type": "string" }, - "description": "The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state." + "description": "The actions to execute when this alarm transitions to the ``INSUFFICIENT_DATA`` state from any other state. Each action is specified as an Amazon Resource Name (ARN)." }, "metricName": { "type": "string", - "description": "The name of the metric associated with the alarm." + "description": "The name of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you use ``Metrics`` instead and you can't specify ``MetricName``." }, "metrics": { "type": "array", "items": { "$ref": "#/types/aws-native:cloudwatch:AlarmMetricDataQuery" }, - "description": "An array that enables you to create an alarm based on the result of a metric math expression." + "description": "An array that enables you to create an alarm based on the result of a metric math expression. Each item in the array either retrieves a metric or performs a math expression.\n If you specify the ``Metrics`` parameter, you cannot specify ``MetricName``, ``Dimensions``, ``Period``, ``Namespace``, ``Statistic``, ``ExtendedStatistic``, or ``Unit``." }, "namespace": { "type": "string", - "description": "The namespace of the metric associated with the alarm." + "description": "The namespace of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you can't specify ``Namespace`` and you use ``Metrics`` instead.\n For a list of namespaces for metrics from AWS services, see [Services That Publish Metrics.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html)" }, "okActions": { "type": "array", "items": { "type": "string" }, - "description": "The actions to execute when this alarm transitions to the OK state from any other state." + "description": "The actions to execute when this alarm transitions to the ``OK`` state from any other state. Each action is specified as an Amazon Resource Name (ARN)." }, "period": { "type": "integer", - "description": "The period in seconds, over which the statistic is applied." + "description": "The period, in seconds, over which the statistic is applied. This is required for an alarm based on a metric. Valid values are 10, 30, 60, and any multiple of 60.\n For an alarm based on a math expression, you can't specify ``Period``, and instead you use the ``Metrics`` parameter.\n *Minimum:* 10" }, "statistic": { "type": "string", - "description": "The statistic for the metric associated with the alarm, other than percentile." + "description": "The statistic for the metric associated with the alarm, other than percentile. For percentile statistics, use ``ExtendedStatistic``.\n For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both.\n For an alarm based on a math expression, you can't specify ``Statistic``. Instead, you use ``Metrics``." }, - "threshold": { - "type": "number", - "description": "In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm." - }, - "thresholdMetricId": { - "type": "string", - "description": "In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm." - }, - "treatMissingData": { - "type": "string", - "description": "Sets how this alarm is to handle missing data points. Valid values are breaching, notBreaching, ignore, and missing." - }, - "unit": { - "type": "string", - "description": "The unit of the metric associated with the alarm." - } - }, - "type": "object", - "required": [ - "arn", - "comparisonOperator", - "evaluationPeriods" - ], - "inputProperties": { - "actionsEnabled": { - "type": "boolean", - "description": "Indicates whether actions should be executed during any changes to the alarm state. The default is TRUE." - }, - "alarmActions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The list of actions to execute when this alarm transitions into an ALARM state from any other state." - }, - "alarmDescription": { - "type": "string", - "description": "The description of the alarm." - }, - "alarmName": { - "type": "string", - "description": "The name of the alarm." - }, - "comparisonOperator": { - "type": "string", - "description": "The arithmetic operation to use when comparing the specified statistic and threshold." - }, - "datapointsToAlarm": { - "type": "integer", - "description": "The number of datapoints that must be breaching to trigger the alarm." - }, - "dimensions": { - "type": "array", - "items": { - "$ref": "#/types/aws-native:cloudwatch:AlarmDimension" - }, - "description": "The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify Dimensions. Instead, you use Metrics." - }, - "evaluateLowSampleCountPercentile": { - "type": "string", - "description": "Used only for alarms based on percentiles." - }, - "evaluationPeriods": { - "type": "integer", - "description": "The number of periods over which data is compared to the specified threshold." - }, - "extendedStatistic": { - "type": "string", - "description": "The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100." - }, - "insufficientDataActions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state." - }, - "metricName": { - "type": "string", - "description": "The name of the metric associated with the alarm." - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/types/aws-native:cloudwatch:AlarmMetricDataQuery" - }, - "description": "An array that enables you to create an alarm based on the result of a metric math expression." - }, - "namespace": { - "type": "string", - "description": "The namespace of the metric associated with the alarm." - }, - "okActions": { + "tags": { "type": "array", "items": { - "type": "string" - }, - "description": "The actions to execute when this alarm transitions to the OK state from any other state." - }, - "period": { - "type": "integer", - "description": "The period in seconds, over which the statistic is applied." - }, - "statistic": { - "type": "string", - "description": "The statistic for the metric associated with the alarm, other than percentile." + "$ref": "#/types/aws-native:index:Tag" + } }, "threshold": { "type": "number", - "description": "In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm." + "description": "The value to compare with the specified statistic." }, "thresholdMetricId": { "type": "string", - "description": "In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm." + "description": "In an alarm based on an anomaly detection model, this is the ID of the ``ANOMALY_DETECTION_BAND`` function used as the threshold for the alarm." }, "treatMissingData": { "type": "string", - "description": "Sets how this alarm is to handle missing data points. Valid values are breaching, notBreaching, ignore, and missing." + "description": "Sets how this alarm is to handle missing data points. Valid values are ``breaching``, ``notBreaching``, ``ignore``, and ``missing``. For more information, see [Configuring How Alarms Treat Missing Data](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data) in the *Amazon User Guide*.\n If you omit this parameter, the default behavior of ``missing`` is used." }, "unit": { "type": "string", - "description": "The unit of the metric associated with the alarm." + "description": "The unit of the metric associated with the alarm. Specify this only if you are creating an alarm based on a single metric. Do not specify this if you are specifying a ``Metrics`` array.\n You can specify the following values: 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, or None." } }, "requiredInputs": [ @@ -145749,6 +149913,13 @@ "type": "string" }, "description": "The actions to execute when this alarm transitions to the OK state from any other state. Each action is specified as an Amazon Resource Name (ARN)." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "A list of key-value pairs to associate with the composite alarm. You can associate as many as 50 tags with an alarm." } }, "type": "object", @@ -145805,6 +149976,13 @@ "type": "string" }, "description": "The actions to execute when this alarm transitions to the OK state from any other state. Each action is specified as an Amazon Resource Name (ARN)." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "A list of key-value pairs to associate with the composite alarm. You can associate as many as 50 tags with an alarm." } }, "requiredInputs": [ @@ -146013,6 +150191,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 +150437,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 +150940,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 +151020,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 +151048,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 +151075,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 +151094,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 +153577,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 +153598,8 @@ "type": "object", "required": [ "instanceArn", + "lastModifiedRegion", + "lastModifiedTime", "name", "values" ], @@ -149753,6 +154109,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 +154120,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 +154185,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 +154202,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." @@ -153974,6 +158376,502 @@ "type" ] }, + "aws-native:deadline:Farm": { + "description": "Definition of AWS::Deadline::Farm Resource Type", + "properties": { + "arn": { + "type": "string" + }, + "description": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "farmId": { + "type": "string" + }, + "kmsKeyArn": { + "type": "string", + "replaceOnChanges": true + } + }, + "type": "object", + "required": [ + "arn", + "displayName", + "farmId" + ], + "inputProperties": { + "description": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "kmsKeyArn": { + "type": "string" + } + }, + "requiredInputs": [ + "displayName" + ] + }, + "aws-native:deadline:Fleet": { + "description": "Definition of AWS::Deadline::Fleet Resource Type", + "properties": { + "arn": { + "type": "string" + }, + "capabilities": { + "$ref": "#/types/aws-native:deadline:FleetCapabilities" + }, + "configuration": { + "oneOf": [ + { + "$ref": "#/types/aws-native:deadline:FleetConfiguration0Properties" + }, + { + "$ref": "#/types/aws-native:deadline:FleetConfiguration1Properties" + } + ] + }, + "description": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "farmId": { + "type": "string", + "replaceOnChanges": true + }, + "fleetId": { + "type": "string" + }, + "maxWorkerCount": { + "type": "integer" + }, + "minWorkerCount": { + "type": "integer" + }, + "roleArn": { + "type": "string" + }, + "status": { + "$ref": "#/types/aws-native:deadline:FleetStatus" + }, + "workerCount": { + "type": "integer" + } + }, + "type": "object", + "required": [ + "arn", + "capabilities", + "configuration", + "displayName", + "fleetId", + "maxWorkerCount", + "roleArn", + "status", + "workerCount" + ], + "inputProperties": { + "configuration": { + "oneOf": [ + { + "$ref": "#/types/aws-native:deadline:FleetConfiguration0Properties" + }, + { + "$ref": "#/types/aws-native:deadline:FleetConfiguration1Properties" + } + ] + }, + "description": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "farmId": { + "type": "string" + }, + "maxWorkerCount": { + "type": "integer" + }, + "minWorkerCount": { + "type": "integer" + }, + "roleArn": { + "type": "string" + } + }, + "requiredInputs": [ + "configuration", + "displayName", + "maxWorkerCount", + "roleArn" + ] + }, + "aws-native:deadline:LicenseEndpoint": { + "description": "Definition of AWS::Deadline::LicenseEndpoint Resource Type", + "properties": { + "arn": { + "type": "string" + }, + "dnsName": { + "type": "string" + }, + "licenseEndpointId": { + "type": "string" + }, + "securityGroupIds": { + "type": "array", + "items": { + "type": "string" + }, + "replaceOnChanges": true + }, + "status": { + "$ref": "#/types/aws-native:deadline:LicenseEndpointStatus" + }, + "statusMessage": { + "type": "string" + }, + "subnetIds": { + "type": "array", + "items": { + "type": "string" + }, + "replaceOnChanges": true + }, + "vpcId": { + "type": "string", + "replaceOnChanges": true + } + }, + "type": "object", + "required": [ + "arn", + "dnsName", + "licenseEndpointId", + "securityGroupIds", + "status", + "statusMessage", + "subnetIds", + "vpcId" + ], + "inputProperties": { + "securityGroupIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "subnetIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "vpcId": { + "type": "string" + } + }, + "requiredInputs": [ + "securityGroupIds", + "subnetIds", + "vpcId" + ] + }, + "aws-native:deadline:MeteredProduct": { + "description": "Definition of AWS::Deadline::MeteredProduct Resource Type", + "properties": { + "arn": { + "type": "string" + }, + "family": { + "type": "string" + }, + "licenseEndpointId": { + "type": "string", + "replaceOnChanges": true + }, + "port": { + "type": "integer" + }, + "productId": { + "type": "string", + "replaceOnChanges": true + }, + "vendor": { + "type": "string" + } + }, + "type": "object", + "required": [ + "arn" + ], + "inputProperties": { + "family": { + "type": "string" + }, + "licenseEndpointId": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "productId": { + "type": "string" + }, + "vendor": { + "type": "string" + } + } + }, + "aws-native:deadline:Queue": { + "description": "Definition of AWS::Deadline::Queue Resource Type", + "properties": { + "allowedStorageProfileIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "arn": { + "type": "string" + }, + "defaultBudgetAction": { + "$ref": "#/types/aws-native:deadline:QueueDefaultQueueBudgetAction" + }, + "description": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "farmId": { + "type": "string", + "replaceOnChanges": true + }, + "jobAttachmentSettings": { + "$ref": "#/types/aws-native:deadline:QueueJobAttachmentSettings" + }, + "jobRunAsUser": { + "$ref": "#/types/aws-native:deadline:QueueJobRunAsUser" + }, + "queueId": { + "type": "string" + }, + "requiredFileSystemLocationNames": { + "type": "array", + "items": { + "type": "string" + } + }, + "roleArn": { + "type": "string" + } + }, + "type": "object", + "required": [ + "arn", + "displayName", + "queueId" + ], + "inputProperties": { + "allowedStorageProfileIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "defaultBudgetAction": { + "$ref": "#/types/aws-native:deadline:QueueDefaultQueueBudgetAction" + }, + "description": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "farmId": { + "type": "string" + }, + "jobAttachmentSettings": { + "$ref": "#/types/aws-native:deadline:QueueJobAttachmentSettings" + }, + "jobRunAsUser": { + "$ref": "#/types/aws-native:deadline:QueueJobRunAsUser" + }, + "requiredFileSystemLocationNames": { + "type": "array", + "items": { + "type": "string" + } + }, + "roleArn": { + "type": "string" + } + }, + "requiredInputs": [ + "displayName" + ] + }, + "aws-native:deadline:QueueEnvironment": { + "description": "Definition of AWS::Deadline::QueueEnvironment Resource Type", + "properties": { + "farmId": { + "type": "string", + "replaceOnChanges": true + }, + "name": { + "type": "string" + }, + "priority": { + "type": "integer" + }, + "queueEnvironmentId": { + "type": "string" + }, + "queueId": { + "type": "string", + "replaceOnChanges": true + }, + "template": { + "type": "string" + }, + "templateType": { + "$ref": "#/types/aws-native:deadline:QueueEnvironmentEnvironmentTemplateType" + } + }, + "type": "object", + "required": [ + "farmId", + "name", + "priority", + "queueEnvironmentId", + "queueId", + "template", + "templateType" + ], + "inputProperties": { + "farmId": { + "type": "string" + }, + "priority": { + "type": "integer" + }, + "queueId": { + "type": "string" + }, + "template": { + "type": "string" + }, + "templateType": { + "$ref": "#/types/aws-native:deadline:QueueEnvironmentEnvironmentTemplateType" + } + }, + "requiredInputs": [ + "farmId", + "priority", + "queueId", + "template", + "templateType" + ] + }, + "aws-native:deadline:QueueFleetAssociation": { + "description": "Definition of AWS::Deadline::QueueFleetAssociation Resource Type", + "properties": { + "farmId": { + "type": "string", + "replaceOnChanges": true + }, + "fleetId": { + "type": "string", + "replaceOnChanges": true + }, + "queueId": { + "type": "string", + "replaceOnChanges": true + } + }, + "type": "object", + "required": [ + "farmId", + "fleetId", + "queueId" + ], + "inputProperties": { + "farmId": { + "type": "string" + }, + "fleetId": { + "type": "string" + }, + "queueId": { + "type": "string" + } + }, + "requiredInputs": [ + "farmId", + "fleetId", + "queueId" + ] + }, + "aws-native:deadline:StorageProfile": { + "description": "Definition of AWS::Deadline::StorageProfile Resource Type", + "properties": { + "displayName": { + "type": "string" + }, + "farmId": { + "type": "string", + "replaceOnChanges": true + }, + "fileSystemLocations": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:deadline:StorageProfileFileSystemLocation" + } + }, + "osFamily": { + "$ref": "#/types/aws-native:deadline:StorageProfileOperatingSystemFamily" + }, + "storageProfileId": { + "type": "string" + } + }, + "type": "object", + "required": [ + "displayName", + "osFamily", + "storageProfileId" + ], + "inputProperties": { + "displayName": { + "type": "string" + }, + "farmId": { + "type": "string" + }, + "fileSystemLocations": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:deadline:StorageProfileFileSystemLocation" + } + }, + "osFamily": { + "$ref": "#/types/aws-native:deadline:StorageProfileOperatingSystemFamily" + } + }, + "requiredInputs": [ + "displayName", + "osFamily" + ] + }, "aws-native:detective:Graph": { "description": "Resource schema for AWS::Detective::Graph", "properties": { @@ -155112,6 +160010,9 @@ "type": "string", "replaceOnChanges": true }, + "backupRetentionPeriod": { + "type": "integer" + }, "clusterArn": { "type": "string" }, @@ -155126,6 +160027,9 @@ "type": "string", "replaceOnChanges": true }, + "preferredBackupWindow": { + "type": "string" + }, "preferredMaintenanceWindow": { "type": "string" }, @@ -155135,6 +160039,9 @@ "shardCount": { "type": "integer" }, + "shardInstanceCount": { + "type": "integer" + }, "subnetIds": { "type": "array", "items": { @@ -155174,12 +160081,18 @@ "authType": { "type": "string" }, + "backupRetentionPeriod": { + "type": "integer" + }, "clusterName": { "type": "string" }, "kmsKeyId": { "type": "string" }, + "preferredBackupWindow": { + "type": "string" + }, "preferredMaintenanceWindow": { "type": "string" }, @@ -155189,6 +160102,9 @@ "shardCount": { "type": "integer" }, + "shardInstanceCount": { + "type": "integer" + }, "subnetIds": { "type": "array", "items": { @@ -155345,7 +160261,7 @@ ] }, "aws-native:dynamodb:Table": { - "description": "The ``AWS::DynamoDB::Table`` resource creates a DDB table. For more information, see [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) in the *API Reference*.\n You should be aware of the following behaviors when working with DDB tables:\n + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute).\n \n Our guidance is to use the latest schema documented here for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes.\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 myDynamoDBTable = new AwsNative.DynamoDb.Table(\"myDynamoDBTable\", new()\n {\n AttributeDefinitions = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableAttributeDefinitionArgs\n {\n AttributeName = \"Album\",\n AttributeType = \"S\",\n },\n new AwsNative.DynamoDb.Inputs.TableAttributeDefinitionArgs\n {\n AttributeName = \"Artist\",\n AttributeType = \"S\",\n },\n new AwsNative.DynamoDb.Inputs.TableAttributeDefinitionArgs\n {\n AttributeName = \"Sales\",\n AttributeType = \"N\",\n },\n new AwsNative.DynamoDb.Inputs.TableAttributeDefinitionArgs\n {\n AttributeName = \"NumberOfSongs\",\n AttributeType = \"N\",\n },\n },\n KeySchema = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Album\",\n KeyType = \"HASH\",\n },\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Artist\",\n KeyType = \"RANGE\",\n },\n },\n ProvisionedThroughput = new AwsNative.DynamoDb.Inputs.TableProvisionedThroughputArgs\n {\n ReadCapacityUnits = 5,\n WriteCapacityUnits = 5,\n },\n TableName = \"myTableName\",\n GlobalSecondaryIndexes = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableGlobalSecondaryIndexArgs\n {\n IndexName = \"myGSI\",\n KeySchema = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Sales\",\n KeyType = \"HASH\",\n },\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Artist\",\n KeyType = \"RANGE\",\n },\n },\n Projection = new AwsNative.DynamoDb.Inputs.TableProjectionArgs\n {\n NonKeyAttributes = new[]\n {\n \"Album\",\n \"NumberOfSongs\",\n },\n ProjectionType = \"INCLUDE\",\n },\n ProvisionedThroughput = new AwsNative.DynamoDb.Inputs.TableProvisionedThroughputArgs\n {\n ReadCapacityUnits = 5,\n WriteCapacityUnits = 5,\n },\n },\n new AwsNative.DynamoDb.Inputs.TableGlobalSecondaryIndexArgs\n {\n IndexName = \"myGSI2\",\n KeySchema = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"NumberOfSongs\",\n KeyType = \"HASH\",\n },\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Sales\",\n KeyType = \"RANGE\",\n },\n },\n Projection = new AwsNative.DynamoDb.Inputs.TableProjectionArgs\n {\n NonKeyAttributes = new[]\n {\n \"Album\",\n \"Artist\",\n },\n ProjectionType = \"INCLUDE\",\n },\n ProvisionedThroughput = new AwsNative.DynamoDb.Inputs.TableProvisionedThroughputArgs\n {\n ReadCapacityUnits = 5,\n WriteCapacityUnits = 5,\n },\n },\n },\n LocalSecondaryIndexes = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableLocalSecondaryIndexArgs\n {\n IndexName = \"myLSI\",\n KeySchema = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Album\",\n KeyType = \"HASH\",\n },\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Sales\",\n KeyType = \"RANGE\",\n },\n },\n Projection = new AwsNative.DynamoDb.Inputs.TableProjectionArgs\n {\n NonKeyAttributes = new[]\n {\n \"Artist\",\n \"NumberOfSongs\",\n },\n ProjectionType = \"INCLUDE\",\n },\n },\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/dynamodb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dynamodb.NewTable(ctx, \"myDynamoDBTable\", \u0026dynamodb.TableArgs{\n\t\t\tAttributeDefinitions: dynamodb.TableAttributeDefinitionArray{\n\t\t\t\t\u0026dynamodb.TableAttributeDefinitionArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Album\"),\n\t\t\t\t\tAttributeType: pulumi.String(\"S\"),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableAttributeDefinitionArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Artist\"),\n\t\t\t\t\tAttributeType: pulumi.String(\"S\"),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableAttributeDefinitionArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Sales\"),\n\t\t\t\t\tAttributeType: pulumi.String(\"N\"),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableAttributeDefinitionArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"NumberOfSongs\"),\n\t\t\t\t\tAttributeType: pulumi.String(\"N\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tKeySchema: pulumi.Any{\n\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Album\"),\n\t\t\t\t\tKeyType: pulumi.String(\"HASH\"),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Artist\"),\n\t\t\t\t\tKeyType: pulumi.String(\"RANGE\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tProvisionedThroughput: \u0026dynamodb.TableProvisionedThroughputArgs{\n\t\t\t\tReadCapacityUnits: pulumi.Int(5),\n\t\t\t\tWriteCapacityUnits: pulumi.Int(5),\n\t\t\t},\n\t\t\tTableName: pulumi.String(\"myTableName\"),\n\t\t\tGlobalSecondaryIndexes: dynamodb.TableGlobalSecondaryIndexArray{\n\t\t\t\t\u0026dynamodb.TableGlobalSecondaryIndexArgs{\n\t\t\t\t\tIndexName: pulumi.String(\"myGSI\"),\n\t\t\t\t\tKeySchema: []dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Sales\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"HASH\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Artist\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"RANGE\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tProjection: \u0026dynamodb.TableProjectionArgs{\n\t\t\t\t\t\tNonKeyAttributes: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Album\"),\n\t\t\t\t\t\t\tpulumi.String(\"NumberOfSongs\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tProjectionType: pulumi.String(\"INCLUDE\"),\n\t\t\t\t\t},\n\t\t\t\t\tProvisionedThroughput: \u0026dynamodb.TableProvisionedThroughputArgs{\n\t\t\t\t\t\tReadCapacityUnits: pulumi.Int(5),\n\t\t\t\t\t\tWriteCapacityUnits: pulumi.Int(5),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableGlobalSecondaryIndexArgs{\n\t\t\t\t\tIndexName: pulumi.String(\"myGSI2\"),\n\t\t\t\t\tKeySchema: []dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"NumberOfSongs\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"HASH\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Sales\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"RANGE\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tProjection: \u0026dynamodb.TableProjectionArgs{\n\t\t\t\t\t\tNonKeyAttributes: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Album\"),\n\t\t\t\t\t\t\tpulumi.String(\"Artist\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tProjectionType: pulumi.String(\"INCLUDE\"),\n\t\t\t\t\t},\n\t\t\t\t\tProvisionedThroughput: \u0026dynamodb.TableProvisionedThroughputArgs{\n\t\t\t\t\t\tReadCapacityUnits: pulumi.Int(5),\n\t\t\t\t\t\tWriteCapacityUnits: pulumi.Int(5),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tLocalSecondaryIndexes: dynamodb.TableLocalSecondaryIndexArray{\n\t\t\t\t\u0026dynamodb.TableLocalSecondaryIndexArgs{\n\t\t\t\t\tIndexName: pulumi.String(\"myLSI\"),\n\t\t\t\t\tKeySchema: []dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Album\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"HASH\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Sales\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"RANGE\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tProjection: \u0026dynamodb.TableProjectionArgs{\n\t\t\t\t\t\tNonKeyAttributes: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Artist\"),\n\t\t\t\t\t\t\tpulumi.String(\"NumberOfSongs\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tProjectionType: pulumi.String(\"INCLUDE\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws_native from \"@pulumi/aws-native\";\n\nconst myDynamoDBTable = new aws_native.dynamodb.Table(\"myDynamoDBTable\", {\n attributeDefinitions: [\n {\n attributeName: \"Album\",\n attributeType: \"S\",\n },\n {\n attributeName: \"Artist\",\n attributeType: \"S\",\n },\n {\n attributeName: \"Sales\",\n attributeType: \"N\",\n },\n {\n attributeName: \"NumberOfSongs\",\n attributeType: \"N\",\n },\n ],\n keySchema: [\n {\n attributeName: \"Album\",\n keyType: \"HASH\",\n },\n {\n attributeName: \"Artist\",\n keyType: \"RANGE\",\n },\n ],\n provisionedThroughput: {\n readCapacityUnits: 5,\n writeCapacityUnits: 5,\n },\n tableName: \"myTableName\",\n globalSecondaryIndexes: [\n {\n indexName: \"myGSI\",\n keySchema: [\n {\n attributeName: \"Sales\",\n keyType: \"HASH\",\n },\n {\n attributeName: \"Artist\",\n keyType: \"RANGE\",\n },\n ],\n projection: {\n nonKeyAttributes: [\n \"Album\",\n \"NumberOfSongs\",\n ],\n projectionType: \"INCLUDE\",\n },\n provisionedThroughput: {\n readCapacityUnits: 5,\n writeCapacityUnits: 5,\n },\n },\n {\n indexName: \"myGSI2\",\n keySchema: [\n {\n attributeName: \"NumberOfSongs\",\n keyType: \"HASH\",\n },\n {\n attributeName: \"Sales\",\n keyType: \"RANGE\",\n },\n ],\n projection: {\n nonKeyAttributes: [\n \"Album\",\n \"Artist\",\n ],\n projectionType: \"INCLUDE\",\n },\n provisionedThroughput: {\n readCapacityUnits: 5,\n writeCapacityUnits: 5,\n },\n },\n ],\n localSecondaryIndexes: [{\n indexName: \"myLSI\",\n keySchema: [\n {\n attributeName: \"Album\",\n keyType: \"HASH\",\n },\n {\n attributeName: \"Sales\",\n keyType: \"RANGE\",\n },\n ],\n projection: {\n nonKeyAttributes: [\n \"Artist\",\n \"NumberOfSongs\",\n ],\n projectionType: \"INCLUDE\",\n },\n }],\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\nmy_dynamo_db_table = aws_native.dynamodb.Table(\"myDynamoDBTable\",\n attribute_definitions=[\n aws_native.dynamodb.TableAttributeDefinitionArgs(\n attribute_name=\"Album\",\n attribute_type=\"S\",\n ),\n aws_native.dynamodb.TableAttributeDefinitionArgs(\n attribute_name=\"Artist\",\n attribute_type=\"S\",\n ),\n aws_native.dynamodb.TableAttributeDefinitionArgs(\n attribute_name=\"Sales\",\n attribute_type=\"N\",\n ),\n aws_native.dynamodb.TableAttributeDefinitionArgs(\n attribute_name=\"NumberOfSongs\",\n attribute_type=\"N\",\n ),\n ],\n key_schema=[\n aws_native.dynamodb.TableKeySchemaArgs(\n attribute_name=\"Album\",\n key_type=\"HASH\",\n ),\n aws_native.dynamodb.TableKeySchemaArgs(\n attribute_name=\"Artist\",\n key_type=\"RANGE\",\n ),\n ],\n provisioned_throughput=aws_native.dynamodb.TableProvisionedThroughputArgs(\n read_capacity_units=5,\n write_capacity_units=5,\n ),\n table_name=\"myTableName\",\n global_secondary_indexes=[\n aws_native.dynamodb.TableGlobalSecondaryIndexArgs(\n index_name=\"myGSI\",\n key_schema=[\n aws_native.dynamodb.TableKeySchemaArgs(\n attribute_name=\"Sales\",\n key_type=\"HASH\",\n ),\n aws_native.dynamodb.TableKeySchemaArgs(\n attribute_name=\"Artist\",\n key_type=\"RANGE\",\n ),\n ],\n projection=aws_native.dynamodb.TableProjectionArgs(\n non_key_attributes=[\n \"Album\",\n \"NumberOfSongs\",\n ],\n projection_type=\"INCLUDE\",\n ),\n provisioned_throughput=aws_native.dynamodb.TableProvisionedThroughputArgs(\n read_capacity_units=5,\n write_capacity_units=5,\n ),\n ),\n aws_native.dynamodb.TableGlobalSecondaryIndexArgs(\n index_name=\"myGSI2\",\n key_schema=[\n aws_native.dynamodb.TableKeySchemaArgs(\n attribute_name=\"NumberOfSongs\",\n key_type=\"HASH\",\n ),\n aws_native.dynamodb.TableKeySchemaArgs(\n attribute_name=\"Sales\",\n key_type=\"RANGE\",\n ),\n ],\n projection=aws_native.dynamodb.TableProjectionArgs(\n non_key_attributes=[\n \"Album\",\n \"Artist\",\n ],\n projection_type=\"INCLUDE\",\n ),\n provisioned_throughput=aws_native.dynamodb.TableProvisionedThroughputArgs(\n read_capacity_units=5,\n write_capacity_units=5,\n ),\n ),\n ],\n local_secondary_indexes=[aws_native.dynamodb.TableLocalSecondaryIndexArgs(\n index_name=\"myLSI\",\n key_schema=[\n aws_native.dynamodb.TableKeySchemaArgs(\n attribute_name=\"Album\",\n key_type=\"HASH\",\n ),\n aws_native.dynamodb.TableKeySchemaArgs(\n attribute_name=\"Sales\",\n key_type=\"RANGE\",\n ),\n ],\n projection=aws_native.dynamodb.TableProjectionArgs(\n non_key_attributes=[\n \"Artist\",\n \"NumberOfSongs\",\n ],\n projection_type=\"INCLUDE\",\n ),\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 myDynamoDBTable = new AwsNative.DynamoDb.Table(\"myDynamoDBTable\", new()\n {\n AttributeDefinitions = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableAttributeDefinitionArgs\n {\n AttributeName = \"Album\",\n AttributeType = \"S\",\n },\n new AwsNative.DynamoDb.Inputs.TableAttributeDefinitionArgs\n {\n AttributeName = \"Artist\",\n AttributeType = \"S\",\n },\n new AwsNative.DynamoDb.Inputs.TableAttributeDefinitionArgs\n {\n AttributeName = \"Sales\",\n AttributeType = \"N\",\n },\n new AwsNative.DynamoDb.Inputs.TableAttributeDefinitionArgs\n {\n AttributeName = \"NumberOfSongs\",\n AttributeType = \"N\",\n },\n },\n KeySchema = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Album\",\n KeyType = \"HASH\",\n },\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Artist\",\n KeyType = \"RANGE\",\n },\n },\n ProvisionedThroughput = new AwsNative.DynamoDb.Inputs.TableProvisionedThroughputArgs\n {\n ReadCapacityUnits = 5,\n WriteCapacityUnits = 5,\n },\n TableName = \"myTableName\",\n GlobalSecondaryIndexes = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableGlobalSecondaryIndexArgs\n {\n IndexName = \"myGSI\",\n KeySchema = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Sales\",\n KeyType = \"HASH\",\n },\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Artist\",\n KeyType = \"RANGE\",\n },\n },\n Projection = new AwsNative.DynamoDb.Inputs.TableProjectionArgs\n {\n NonKeyAttributes = new[]\n {\n \"Album\",\n \"NumberOfSongs\",\n },\n ProjectionType = \"INCLUDE\",\n },\n ProvisionedThroughput = new AwsNative.DynamoDb.Inputs.TableProvisionedThroughputArgs\n {\n ReadCapacityUnits = 5,\n WriteCapacityUnits = 5,\n },\n },\n new AwsNative.DynamoDb.Inputs.TableGlobalSecondaryIndexArgs\n {\n IndexName = \"myGSI2\",\n KeySchema = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"NumberOfSongs\",\n KeyType = \"HASH\",\n },\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Sales\",\n KeyType = \"RANGE\",\n },\n },\n Projection = new AwsNative.DynamoDb.Inputs.TableProjectionArgs\n {\n NonKeyAttributes = new[]\n {\n \"Album\",\n \"Artist\",\n },\n ProjectionType = \"INCLUDE\",\n },\n ProvisionedThroughput = new AwsNative.DynamoDb.Inputs.TableProvisionedThroughputArgs\n {\n ReadCapacityUnits = 5,\n WriteCapacityUnits = 5,\n },\n },\n },\n LocalSecondaryIndexes = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableLocalSecondaryIndexArgs\n {\n IndexName = \"myLSI\",\n KeySchema = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Album\",\n KeyType = \"HASH\",\n },\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Sales\",\n KeyType = \"RANGE\",\n },\n },\n Projection = new AwsNative.DynamoDb.Inputs.TableProjectionArgs\n {\n NonKeyAttributes = new[]\n {\n \"Artist\",\n \"NumberOfSongs\",\n },\n ProjectionType = \"INCLUDE\",\n },\n },\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/dynamodb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dynamodb.NewTable(ctx, \"myDynamoDBTable\", \u0026dynamodb.TableArgs{\n\t\t\tAttributeDefinitions: dynamodb.TableAttributeDefinitionArray{\n\t\t\t\t\u0026dynamodb.TableAttributeDefinitionArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Album\"),\n\t\t\t\t\tAttributeType: pulumi.String(\"S\"),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableAttributeDefinitionArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Artist\"),\n\t\t\t\t\tAttributeType: pulumi.String(\"S\"),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableAttributeDefinitionArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Sales\"),\n\t\t\t\t\tAttributeType: pulumi.String(\"N\"),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableAttributeDefinitionArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"NumberOfSongs\"),\n\t\t\t\t\tAttributeType: pulumi.String(\"N\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tKeySchema: pulumi.Any{\n\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Album\"),\n\t\t\t\t\tKeyType: pulumi.String(\"HASH\"),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Artist\"),\n\t\t\t\t\tKeyType: pulumi.String(\"RANGE\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tProvisionedThroughput: \u0026dynamodb.TableProvisionedThroughputArgs{\n\t\t\t\tReadCapacityUnits: pulumi.Int(5),\n\t\t\t\tWriteCapacityUnits: pulumi.Int(5),\n\t\t\t},\n\t\t\tTableName: pulumi.String(\"myTableName\"),\n\t\t\tGlobalSecondaryIndexes: dynamodb.TableGlobalSecondaryIndexArray{\n\t\t\t\t\u0026dynamodb.TableGlobalSecondaryIndexArgs{\n\t\t\t\t\tIndexName: pulumi.String(\"myGSI\"),\n\t\t\t\t\tKeySchema: []dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Sales\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"HASH\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Artist\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"RANGE\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tProjection: \u0026dynamodb.TableProjectionArgs{\n\t\t\t\t\t\tNonKeyAttributes: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Album\"),\n\t\t\t\t\t\t\tpulumi.String(\"NumberOfSongs\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tProjectionType: pulumi.String(\"INCLUDE\"),\n\t\t\t\t\t},\n\t\t\t\t\tProvisionedThroughput: \u0026dynamodb.TableProvisionedThroughputArgs{\n\t\t\t\t\t\tReadCapacityUnits: pulumi.Int(5),\n\t\t\t\t\t\tWriteCapacityUnits: pulumi.Int(5),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableGlobalSecondaryIndexArgs{\n\t\t\t\t\tIndexName: pulumi.String(\"myGSI2\"),\n\t\t\t\t\tKeySchema: []dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"NumberOfSongs\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"HASH\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Sales\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"RANGE\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tProjection: \u0026dynamodb.TableProjectionArgs{\n\t\t\t\t\t\tNonKeyAttributes: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Album\"),\n\t\t\t\t\t\t\tpulumi.String(\"Artist\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tProjectionType: pulumi.String(\"INCLUDE\"),\n\t\t\t\t\t},\n\t\t\t\t\tProvisionedThroughput: \u0026dynamodb.TableProvisionedThroughputArgs{\n\t\t\t\t\t\tReadCapacityUnits: pulumi.Int(5),\n\t\t\t\t\t\tWriteCapacityUnits: pulumi.Int(5),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tLocalSecondaryIndexes: dynamodb.TableLocalSecondaryIndexArray{\n\t\t\t\t\u0026dynamodb.TableLocalSecondaryIndexArgs{\n\t\t\t\t\tIndexName: pulumi.String(\"myLSI\"),\n\t\t\t\t\tKeySchema: []dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Album\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"HASH\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Sales\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"RANGE\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tProjection: \u0026dynamodb.TableProjectionArgs{\n\t\t\t\t\t\tNonKeyAttributes: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Artist\"),\n\t\t\t\t\t\t\tpulumi.String(\"NumberOfSongs\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tProjectionType: pulumi.String(\"INCLUDE\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws_native from \"@pulumi/aws-native\";\n\nconst myDynamoDBTable = new aws_native.dynamodb.Table(\"myDynamoDBTable\", {\n attributeDefinitions: [\n {\n attributeName: \"Album\",\n attributeType: \"S\",\n },\n {\n attributeName: \"Artist\",\n attributeType: \"S\",\n },\n {\n attributeName: \"Sales\",\n attributeType: \"N\",\n },\n {\n attributeName: \"NumberOfSongs\",\n attributeType: \"N\",\n },\n ],\n keySchema: [\n {\n attributeName: \"Album\",\n keyType: \"HASH\",\n },\n {\n attributeName: \"Artist\",\n keyType: \"RANGE\",\n },\n ],\n provisionedThroughput: {\n readCapacityUnits: 5,\n writeCapacityUnits: 5,\n },\n tableName: \"myTableName\",\n globalSecondaryIndexes: [\n {\n indexName: \"myGSI\",\n keySchema: [\n {\n attributeName: \"Sales\",\n keyType: \"HASH\",\n },\n {\n attributeName: \"Artist\",\n keyType: \"RANGE\",\n },\n ],\n projection: {\n nonKeyAttributes: [\n \"Album\",\n \"NumberOfSongs\",\n ],\n projectionType: \"INCLUDE\",\n },\n provisionedThroughput: {\n readCapacityUnits: 5,\n writeCapacityUnits: 5,\n },\n },\n {\n indexName: \"myGSI2\",\n keySchema: [\n {\n attributeName: \"NumberOfSongs\",\n keyType: \"HASH\",\n },\n {\n attributeName: \"Sales\",\n keyType: \"RANGE\",\n },\n ],\n projection: {\n nonKeyAttributes: [\n \"Album\",\n \"Artist\",\n ],\n projectionType: \"INCLUDE\",\n },\n provisionedThroughput: {\n readCapacityUnits: 5,\n writeCapacityUnits: 5,\n },\n },\n ],\n localSecondaryIndexes: [{\n indexName: \"myLSI\",\n keySchema: [\n {\n attributeName: \"Album\",\n keyType: \"HASH\",\n },\n {\n attributeName: \"Sales\",\n keyType: \"RANGE\",\n },\n ],\n projection: {\n nonKeyAttributes: [\n \"Artist\",\n \"NumberOfSongs\",\n ],\n projectionType: \"INCLUDE\",\n },\n }],\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\nmy_dynamo_db_table = aws_native.dynamodb.Table(\"myDynamoDBTable\",\n attribute_definitions=[\n aws_native.dynamodb.TableAttributeDefinitionArgs(\n attribute_name=\"Album\",\n attribute_type=\"S\",\n ),\n aws_native.dynamodb.TableAttributeDefinitionArgs(\n attribute_name=\"Artist\",\n attribute_type=\"S\",\n ),\n aws_native.dynamodb.TableAttributeDefinitionArgs(\n attribute_name=\"Sales\",\n attribute_type=\"N\",\n ),\n aws_native.dynamodb.TableAttributeDefinitionArgs(\n attribute_name=\"NumberOfSongs\",\n attribute_type=\"N\",\n ),\n ],\n key_schema=[\n aws_native.dynamodb.TableKeySchemaArgs(\n attribute_name=\"Album\",\n key_type=\"HASH\",\n ),\n aws_native.dynamodb.TableKeySchemaArgs(\n attribute_name=\"Artist\",\n key_type=\"RANGE\",\n ),\n ],\n provisioned_throughput=aws_native.dynamodb.TableProvisionedThroughputArgs(\n read_capacity_units=5,\n write_capacity_units=5,\n ),\n table_name=\"myTableName\",\n global_secondary_indexes=[\n aws_native.dynamodb.TableGlobalSecondaryIndexArgs(\n index_name=\"myGSI\",\n key_schema=[\n aws_native.dynamodb.TableKeySchemaArgs(\n attribute_name=\"Sales\",\n key_type=\"HASH\",\n ),\n aws_native.dynamodb.TableKeySchemaArgs(\n attribute_name=\"Artist\",\n key_type=\"RANGE\",\n ),\n ],\n projection=aws_native.dynamodb.TableProjectionArgs(\n non_key_attributes=[\n \"Album\",\n \"NumberOfSongs\",\n ],\n projection_type=\"INCLUDE\",\n ),\n provisioned_throughput=aws_native.dynamodb.TableProvisionedThroughputArgs(\n read_capacity_units=5,\n write_capacity_units=5,\n ),\n ),\n aws_native.dynamodb.TableGlobalSecondaryIndexArgs(\n index_name=\"myGSI2\",\n key_schema=[\n aws_native.dynamodb.TableKeySchemaArgs(\n attribute_name=\"NumberOfSongs\",\n key_type=\"HASH\",\n ),\n aws_native.dynamodb.TableKeySchemaArgs(\n attribute_name=\"Sales\",\n key_type=\"RANGE\",\n ),\n ],\n projection=aws_native.dynamodb.TableProjectionArgs(\n non_key_attributes=[\n \"Album\",\n \"Artist\",\n ],\n projection_type=\"INCLUDE\",\n ),\n provisioned_throughput=aws_native.dynamodb.TableProvisionedThroughputArgs(\n read_capacity_units=5,\n write_capacity_units=5,\n ),\n ),\n ],\n local_secondary_indexes=[aws_native.dynamodb.TableLocalSecondaryIndexArgs(\n index_name=\"myLSI\",\n key_schema=[\n aws_native.dynamodb.TableKeySchemaArgs(\n attribute_name=\"Album\",\n key_type=\"HASH\",\n ),\n aws_native.dynamodb.TableKeySchemaArgs(\n attribute_name=\"Sales\",\n key_type=\"RANGE\",\n ),\n ],\n projection=aws_native.dynamodb.TableProjectionArgs(\n non_key_attributes=[\n \"Artist\",\n \"NumberOfSongs\",\n ],\n projection_type=\"INCLUDE\",\n ),\n )])\n\n```\n\n{{% /example %}}\n{{% /examples %}}\n", + "description": "The ``AWS::DynamoDB::Table`` resource creates a DDB table. For more information, see [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) in the *API Reference*.\n You should be aware of the following behaviors when working with DDB tables:\n + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute).\n \n Our guidance is to use the latest schema documented here for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes.\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 myDynamoDBTable = new AwsNative.DynamoDb.Table(\"myDynamoDBTable\", new()\n {\n AttributeDefinitions = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableAttributeDefinitionArgs\n {\n AttributeName = \"Album\",\n AttributeType = \"S\",\n },\n new AwsNative.DynamoDb.Inputs.TableAttributeDefinitionArgs\n {\n AttributeName = \"Artist\",\n AttributeType = \"S\",\n },\n new AwsNative.DynamoDb.Inputs.TableAttributeDefinitionArgs\n {\n AttributeName = \"Sales\",\n AttributeType = \"N\",\n },\n new AwsNative.DynamoDb.Inputs.TableAttributeDefinitionArgs\n {\n AttributeName = \"NumberOfSongs\",\n AttributeType = \"N\",\n },\n },\n KeySchema = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Album\",\n KeyType = \"HASH\",\n },\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Artist\",\n KeyType = \"RANGE\",\n },\n },\n ProvisionedThroughput = new AwsNative.DynamoDb.Inputs.TableProvisionedThroughputArgs\n {\n ReadCapacityUnits = 5,\n WriteCapacityUnits = 5,\n },\n TableName = \"myTableName\",\n GlobalSecondaryIndexes = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableGlobalSecondaryIndexArgs\n {\n IndexName = \"myGSI\",\n KeySchema = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Sales\",\n KeyType = \"HASH\",\n },\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Artist\",\n KeyType = \"RANGE\",\n },\n },\n Projection = new AwsNative.DynamoDb.Inputs.TableProjectionArgs\n {\n NonKeyAttributes = new[]\n {\n \"Album\",\n \"NumberOfSongs\",\n },\n ProjectionType = \"INCLUDE\",\n },\n ProvisionedThroughput = new AwsNative.DynamoDb.Inputs.TableProvisionedThroughputArgs\n {\n ReadCapacityUnits = 5,\n WriteCapacityUnits = 5,\n },\n },\n new AwsNative.DynamoDb.Inputs.TableGlobalSecondaryIndexArgs\n {\n IndexName = \"myGSI2\",\n KeySchema = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"NumberOfSongs\",\n KeyType = \"HASH\",\n },\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Sales\",\n KeyType = \"RANGE\",\n },\n },\n Projection = new AwsNative.DynamoDb.Inputs.TableProjectionArgs\n {\n NonKeyAttributes = new[]\n {\n \"Album\",\n \"Artist\",\n },\n ProjectionType = \"INCLUDE\",\n },\n ProvisionedThroughput = new AwsNative.DynamoDb.Inputs.TableProvisionedThroughputArgs\n {\n ReadCapacityUnits = 5,\n WriteCapacityUnits = 5,\n },\n },\n },\n LocalSecondaryIndexes = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableLocalSecondaryIndexArgs\n {\n IndexName = \"myLSI\",\n KeySchema = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Album\",\n KeyType = \"HASH\",\n },\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Sales\",\n KeyType = \"RANGE\",\n },\n },\n Projection = new AwsNative.DynamoDb.Inputs.TableProjectionArgs\n {\n NonKeyAttributes = new[]\n {\n \"Artist\",\n \"NumberOfSongs\",\n },\n ProjectionType = \"INCLUDE\",\n },\n },\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/dynamodb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dynamodb.NewTable(ctx, \"myDynamoDBTable\", \u0026dynamodb.TableArgs{\n\t\t\tAttributeDefinitions: dynamodb.TableAttributeDefinitionArray{\n\t\t\t\t\u0026dynamodb.TableAttributeDefinitionArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Album\"),\n\t\t\t\t\tAttributeType: pulumi.String(\"S\"),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableAttributeDefinitionArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Artist\"),\n\t\t\t\t\tAttributeType: pulumi.String(\"S\"),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableAttributeDefinitionArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Sales\"),\n\t\t\t\t\tAttributeType: pulumi.String(\"N\"),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableAttributeDefinitionArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"NumberOfSongs\"),\n\t\t\t\t\tAttributeType: pulumi.String(\"N\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tKeySchema: pulumi.Any{\n\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Album\"),\n\t\t\t\t\tKeyType: pulumi.String(\"HASH\"),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Artist\"),\n\t\t\t\t\tKeyType: pulumi.String(\"RANGE\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tProvisionedThroughput: \u0026dynamodb.TableProvisionedThroughputArgs{\n\t\t\t\tReadCapacityUnits: pulumi.Int(5),\n\t\t\t\tWriteCapacityUnits: pulumi.Int(5),\n\t\t\t},\n\t\t\tTableName: pulumi.String(\"myTableName\"),\n\t\t\tGlobalSecondaryIndexes: dynamodb.TableGlobalSecondaryIndexArray{\n\t\t\t\t\u0026dynamodb.TableGlobalSecondaryIndexArgs{\n\t\t\t\t\tIndexName: pulumi.String(\"myGSI\"),\n\t\t\t\t\tKeySchema: []dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Sales\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"HASH\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Artist\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"RANGE\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tProjection: \u0026dynamodb.TableProjectionArgs{\n\t\t\t\t\t\tNonKeyAttributes: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Album\"),\n\t\t\t\t\t\t\tpulumi.String(\"NumberOfSongs\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tProjectionType: pulumi.String(\"INCLUDE\"),\n\t\t\t\t\t},\n\t\t\t\t\tProvisionedThroughput: \u0026dynamodb.TableProvisionedThroughputArgs{\n\t\t\t\t\t\tReadCapacityUnits: pulumi.Int(5),\n\t\t\t\t\t\tWriteCapacityUnits: pulumi.Int(5),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableGlobalSecondaryIndexArgs{\n\t\t\t\t\tIndexName: pulumi.String(\"myGSI2\"),\n\t\t\t\t\tKeySchema: []dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"NumberOfSongs\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"HASH\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Sales\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"RANGE\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tProjection: \u0026dynamodb.TableProjectionArgs{\n\t\t\t\t\t\tNonKeyAttributes: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Album\"),\n\t\t\t\t\t\t\tpulumi.String(\"Artist\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tProjectionType: pulumi.String(\"INCLUDE\"),\n\t\t\t\t\t},\n\t\t\t\t\tProvisionedThroughput: \u0026dynamodb.TableProvisionedThroughputArgs{\n\t\t\t\t\t\tReadCapacityUnits: pulumi.Int(5),\n\t\t\t\t\t\tWriteCapacityUnits: pulumi.Int(5),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tLocalSecondaryIndexes: dynamodb.TableLocalSecondaryIndexArray{\n\t\t\t\t\u0026dynamodb.TableLocalSecondaryIndexArgs{\n\t\t\t\t\tIndexName: pulumi.String(\"myLSI\"),\n\t\t\t\t\tKeySchema: []dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Album\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"HASH\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Sales\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"RANGE\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tProjection: \u0026dynamodb.TableProjectionArgs{\n\t\t\t\t\t\tNonKeyAttributes: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Artist\"),\n\t\t\t\t\t\t\tpulumi.String(\"NumberOfSongs\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tProjectionType: pulumi.String(\"INCLUDE\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws_native from \"@pulumi/aws-native\";\n\nconst myDynamoDBTable = new aws_native.dynamodb.Table(\"myDynamoDBTable\", {\n attributeDefinitions: [\n {\n attributeName: \"Album\",\n attributeType: \"S\",\n },\n {\n attributeName: \"Artist\",\n attributeType: \"S\",\n },\n {\n attributeName: \"Sales\",\n attributeType: \"N\",\n },\n {\n attributeName: \"NumberOfSongs\",\n attributeType: \"N\",\n },\n ],\n keySchema: [\n {\n attributeName: \"Album\",\n keyType: \"HASH\",\n },\n {\n attributeName: \"Artist\",\n keyType: \"RANGE\",\n },\n ],\n provisionedThroughput: {\n readCapacityUnits: 5,\n writeCapacityUnits: 5,\n },\n tableName: \"myTableName\",\n globalSecondaryIndexes: [\n {\n indexName: \"myGSI\",\n keySchema: [\n {\n attributeName: \"Sales\",\n keyType: \"HASH\",\n },\n {\n attributeName: \"Artist\",\n keyType: \"RANGE\",\n },\n ],\n projection: {\n nonKeyAttributes: [\n \"Album\",\n \"NumberOfSongs\",\n ],\n projectionType: \"INCLUDE\",\n },\n provisionedThroughput: {\n readCapacityUnits: 5,\n writeCapacityUnits: 5,\n },\n },\n {\n indexName: \"myGSI2\",\n keySchema: [\n {\n attributeName: \"NumberOfSongs\",\n keyType: \"HASH\",\n },\n {\n attributeName: \"Sales\",\n keyType: \"RANGE\",\n },\n ],\n projection: {\n nonKeyAttributes: [\n \"Album\",\n \"Artist\",\n ],\n projectionType: \"INCLUDE\",\n },\n provisionedThroughput: {\n readCapacityUnits: 5,\n writeCapacityUnits: 5,\n },\n },\n ],\n localSecondaryIndexes: [{\n indexName: \"myLSI\",\n keySchema: [\n {\n attributeName: \"Album\",\n keyType: \"HASH\",\n },\n {\n attributeName: \"Sales\",\n keyType: \"RANGE\",\n },\n ],\n projection: {\n nonKeyAttributes: [\n \"Artist\",\n \"NumberOfSongs\",\n ],\n projectionType: \"INCLUDE\",\n },\n }],\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\nmy_dynamo_db_table = aws_native.dynamodb.Table(\"myDynamoDBTable\",\n attribute_definitions=[\n aws_native.dynamodb.TableAttributeDefinitionArgs(\n attribute_name=\"Album\",\n attribute_type=\"S\",\n ),\n aws_native.dynamodb.TableAttributeDefinitionArgs(\n attribute_name=\"Artist\",\n attribute_type=\"S\",\n ),\n aws_native.dynamodb.TableAttributeDefinitionArgs(\n attribute_name=\"Sales\",\n attribute_type=\"N\",\n ),\n aws_native.dynamodb.TableAttributeDefinitionArgs(\n attribute_name=\"NumberOfSongs\",\n attribute_type=\"N\",\n ),\n ],\n key_schema=[\n aws_native.dynamodb.TableKeySchemaArgs(\n attribute_name=\"Album\",\n key_type=\"HASH\",\n ),\n aws_native.dynamodb.TableKeySchemaArgs(\n attribute_name=\"Artist\",\n key_type=\"RANGE\",\n ),\n ],\n provisioned_throughput=aws_native.dynamodb.TableProvisionedThroughputArgs(\n read_capacity_units=5,\n write_capacity_units=5,\n ),\n table_name=\"myTableName\",\n global_secondary_indexes=[\n aws_native.dynamodb.TableGlobalSecondaryIndexArgs(\n index_name=\"myGSI\",\n key_schema=[\n aws_native.dynamodb.TableKeySchemaArgs(\n attribute_name=\"Sales\",\n key_type=\"HASH\",\n ),\n aws_native.dynamodb.TableKeySchemaArgs(\n attribute_name=\"Artist\",\n key_type=\"RANGE\",\n ),\n ],\n projection=aws_native.dynamodb.TableProjectionArgs(\n non_key_attributes=[\n \"Album\",\n \"NumberOfSongs\",\n ],\n projection_type=\"INCLUDE\",\n ),\n provisioned_throughput=aws_native.dynamodb.TableProvisionedThroughputArgs(\n read_capacity_units=5,\n write_capacity_units=5,\n ),\n ),\n aws_native.dynamodb.TableGlobalSecondaryIndexArgs(\n index_name=\"myGSI2\",\n key_schema=[\n aws_native.dynamodb.TableKeySchemaArgs(\n attribute_name=\"NumberOfSongs\",\n key_type=\"HASH\",\n ),\n aws_native.dynamodb.TableKeySchemaArgs(\n attribute_name=\"Sales\",\n key_type=\"RANGE\",\n ),\n ],\n projection=aws_native.dynamodb.TableProjectionArgs(\n non_key_attributes=[\n \"Album\",\n \"Artist\",\n ],\n projection_type=\"INCLUDE\",\n ),\n provisioned_throughput=aws_native.dynamodb.TableProvisionedThroughputArgs(\n read_capacity_units=5,\n write_capacity_units=5,\n ),\n ),\n ],\n local_secondary_indexes=[aws_native.dynamodb.TableLocalSecondaryIndexArgs(\n index_name=\"myLSI\",\n key_schema=[\n aws_native.dynamodb.TableKeySchemaArgs(\n attribute_name=\"Album\",\n key_type=\"HASH\",\n ),\n aws_native.dynamodb.TableKeySchemaArgs(\n attribute_name=\"Sales\",\n key_type=\"RANGE\",\n ),\n ],\n projection=aws_native.dynamodb.TableProjectionArgs(\n non_key_attributes=[\n \"Artist\",\n \"NumberOfSongs\",\n ],\n projection_type=\"INCLUDE\",\n ),\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 myDynamoDBTable = new AwsNative.DynamoDb.Table(\"myDynamoDBTable\", new()\n {\n AttributeDefinitions = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableAttributeDefinitionArgs\n {\n AttributeName = \"Album\",\n AttributeType = \"S\",\n },\n new AwsNative.DynamoDb.Inputs.TableAttributeDefinitionArgs\n {\n AttributeName = \"Artist\",\n AttributeType = \"S\",\n },\n new AwsNative.DynamoDb.Inputs.TableAttributeDefinitionArgs\n {\n AttributeName = \"Sales\",\n AttributeType = \"N\",\n },\n new AwsNative.DynamoDb.Inputs.TableAttributeDefinitionArgs\n {\n AttributeName = \"NumberOfSongs\",\n AttributeType = \"N\",\n },\n },\n KeySchema = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Album\",\n KeyType = \"HASH\",\n },\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Artist\",\n KeyType = \"RANGE\",\n },\n },\n ProvisionedThroughput = new AwsNative.DynamoDb.Inputs.TableProvisionedThroughputArgs\n {\n ReadCapacityUnits = 5,\n WriteCapacityUnits = 5,\n },\n TableName = \"myTableName\",\n GlobalSecondaryIndexes = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableGlobalSecondaryIndexArgs\n {\n IndexName = \"myGSI\",\n KeySchema = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Sales\",\n KeyType = \"HASH\",\n },\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Artist\",\n KeyType = \"RANGE\",\n },\n },\n Projection = new AwsNative.DynamoDb.Inputs.TableProjectionArgs\n {\n NonKeyAttributes = new[]\n {\n \"Album\",\n \"NumberOfSongs\",\n },\n ProjectionType = \"INCLUDE\",\n },\n ProvisionedThroughput = new AwsNative.DynamoDb.Inputs.TableProvisionedThroughputArgs\n {\n ReadCapacityUnits = 5,\n WriteCapacityUnits = 5,\n },\n },\n new AwsNative.DynamoDb.Inputs.TableGlobalSecondaryIndexArgs\n {\n IndexName = \"myGSI2\",\n KeySchema = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"NumberOfSongs\",\n KeyType = \"HASH\",\n },\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Sales\",\n KeyType = \"RANGE\",\n },\n },\n Projection = new AwsNative.DynamoDb.Inputs.TableProjectionArgs\n {\n NonKeyAttributes = new[]\n {\n \"Album\",\n \"Artist\",\n },\n ProjectionType = \"INCLUDE\",\n },\n ProvisionedThroughput = new AwsNative.DynamoDb.Inputs.TableProvisionedThroughputArgs\n {\n ReadCapacityUnits = 5,\n WriteCapacityUnits = 5,\n },\n },\n },\n LocalSecondaryIndexes = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableLocalSecondaryIndexArgs\n {\n IndexName = \"myLSI\",\n KeySchema = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Album\",\n KeyType = \"HASH\",\n },\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Sales\",\n KeyType = \"RANGE\",\n },\n },\n Projection = new AwsNative.DynamoDb.Inputs.TableProjectionArgs\n {\n NonKeyAttributes = new[]\n {\n \"Artist\",\n \"NumberOfSongs\",\n },\n ProjectionType = \"INCLUDE\",\n },\n },\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/dynamodb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dynamodb.NewTable(ctx, \"myDynamoDBTable\", \u0026dynamodb.TableArgs{\n\t\t\tAttributeDefinitions: dynamodb.TableAttributeDefinitionArray{\n\t\t\t\t\u0026dynamodb.TableAttributeDefinitionArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Album\"),\n\t\t\t\t\tAttributeType: pulumi.String(\"S\"),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableAttributeDefinitionArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Artist\"),\n\t\t\t\t\tAttributeType: pulumi.String(\"S\"),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableAttributeDefinitionArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Sales\"),\n\t\t\t\t\tAttributeType: pulumi.String(\"N\"),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableAttributeDefinitionArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"NumberOfSongs\"),\n\t\t\t\t\tAttributeType: pulumi.String(\"N\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tKeySchema: pulumi.Any{\n\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Album\"),\n\t\t\t\t\tKeyType: pulumi.String(\"HASH\"),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Artist\"),\n\t\t\t\t\tKeyType: pulumi.String(\"RANGE\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tProvisionedThroughput: \u0026dynamodb.TableProvisionedThroughputArgs{\n\t\t\t\tReadCapacityUnits: pulumi.Int(5),\n\t\t\t\tWriteCapacityUnits: pulumi.Int(5),\n\t\t\t},\n\t\t\tTableName: pulumi.String(\"myTableName\"),\n\t\t\tGlobalSecondaryIndexes: dynamodb.TableGlobalSecondaryIndexArray{\n\t\t\t\t\u0026dynamodb.TableGlobalSecondaryIndexArgs{\n\t\t\t\t\tIndexName: pulumi.String(\"myGSI\"),\n\t\t\t\t\tKeySchema: []dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Sales\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"HASH\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Artist\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"RANGE\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tProjection: \u0026dynamodb.TableProjectionArgs{\n\t\t\t\t\t\tNonKeyAttributes: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Album\"),\n\t\t\t\t\t\t\tpulumi.String(\"NumberOfSongs\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tProjectionType: pulumi.String(\"INCLUDE\"),\n\t\t\t\t\t},\n\t\t\t\t\tProvisionedThroughput: \u0026dynamodb.TableProvisionedThroughputArgs{\n\t\t\t\t\t\tReadCapacityUnits: pulumi.Int(5),\n\t\t\t\t\t\tWriteCapacityUnits: pulumi.Int(5),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableGlobalSecondaryIndexArgs{\n\t\t\t\t\tIndexName: pulumi.String(\"myGSI2\"),\n\t\t\t\t\tKeySchema: []dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"NumberOfSongs\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"HASH\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Sales\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"RANGE\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tProjection: \u0026dynamodb.TableProjectionArgs{\n\t\t\t\t\t\tNonKeyAttributes: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Album\"),\n\t\t\t\t\t\t\tpulumi.String(\"Artist\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tProjectionType: pulumi.String(\"INCLUDE\"),\n\t\t\t\t\t},\n\t\t\t\t\tProvisionedThroughput: \u0026dynamodb.TableProvisionedThroughputArgs{\n\t\t\t\t\t\tReadCapacityUnits: pulumi.Int(5),\n\t\t\t\t\t\tWriteCapacityUnits: pulumi.Int(5),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tLocalSecondaryIndexes: dynamodb.TableLocalSecondaryIndexArray{\n\t\t\t\t\u0026dynamodb.TableLocalSecondaryIndexArgs{\n\t\t\t\t\tIndexName: pulumi.String(\"myLSI\"),\n\t\t\t\t\tKeySchema: []dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Album\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"HASH\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Sales\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"RANGE\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tProjection: \u0026dynamodb.TableProjectionArgs{\n\t\t\t\t\t\tNonKeyAttributes: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Artist\"),\n\t\t\t\t\t\t\tpulumi.String(\"NumberOfSongs\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tProjectionType: pulumi.String(\"INCLUDE\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws_native from \"@pulumi/aws-native\";\n\nconst myDynamoDBTable = new aws_native.dynamodb.Table(\"myDynamoDBTable\", {\n attributeDefinitions: [\n {\n attributeName: \"Album\",\n attributeType: \"S\",\n },\n {\n attributeName: \"Artist\",\n attributeType: \"S\",\n },\n {\n attributeName: \"Sales\",\n attributeType: \"N\",\n },\n {\n attributeName: \"NumberOfSongs\",\n attributeType: \"N\",\n },\n ],\n keySchema: [\n {\n attributeName: \"Album\",\n keyType: \"HASH\",\n },\n {\n attributeName: \"Artist\",\n keyType: \"RANGE\",\n },\n ],\n provisionedThroughput: {\n readCapacityUnits: 5,\n writeCapacityUnits: 5,\n },\n tableName: \"myTableName\",\n globalSecondaryIndexes: [\n {\n indexName: \"myGSI\",\n keySchema: [\n {\n attributeName: \"Sales\",\n keyType: \"HASH\",\n },\n {\n attributeName: \"Artist\",\n keyType: \"RANGE\",\n },\n ],\n projection: {\n nonKeyAttributes: [\n \"Album\",\n \"NumberOfSongs\",\n ],\n projectionType: \"INCLUDE\",\n },\n provisionedThroughput: {\n readCapacityUnits: 5,\n writeCapacityUnits: 5,\n },\n },\n {\n indexName: \"myGSI2\",\n keySchema: [\n {\n attributeName: \"NumberOfSongs\",\n keyType: \"HASH\",\n },\n {\n attributeName: \"Sales\",\n keyType: \"RANGE\",\n },\n ],\n projection: {\n nonKeyAttributes: [\n \"Album\",\n \"Artist\",\n ],\n projectionType: \"INCLUDE\",\n },\n provisionedThroughput: {\n readCapacityUnits: 5,\n writeCapacityUnits: 5,\n },\n },\n ],\n localSecondaryIndexes: [{\n indexName: \"myLSI\",\n keySchema: [\n {\n attributeName: \"Album\",\n keyType: \"HASH\",\n },\n {\n attributeName: \"Sales\",\n keyType: \"RANGE\",\n },\n ],\n projection: {\n nonKeyAttributes: [\n \"Artist\",\n \"NumberOfSongs\",\n ],\n projectionType: \"INCLUDE\",\n },\n }],\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\nmy_dynamo_db_table = aws_native.dynamodb.Table(\"myDynamoDBTable\",\n attribute_definitions=[\n aws_native.dynamodb.TableAttributeDefinitionArgs(\n attribute_name=\"Album\",\n attribute_type=\"S\",\n ),\n aws_native.dynamodb.TableAttributeDefinitionArgs(\n attribute_name=\"Artist\",\n attribute_type=\"S\",\n ),\n aws_native.dynamodb.TableAttributeDefinitionArgs(\n attribute_name=\"Sales\",\n attribute_type=\"N\",\n ),\n aws_native.dynamodb.TableAttributeDefinitionArgs(\n attribute_name=\"NumberOfSongs\",\n attribute_type=\"N\",\n ),\n ],\n key_schema=[\n aws_native.dynamodb.TableKeySchemaArgs(\n attribute_name=\"Album\",\n key_type=\"HASH\",\n ),\n aws_native.dynamodb.TableKeySchemaArgs(\n attribute_name=\"Artist\",\n key_type=\"RANGE\",\n ),\n ],\n provisioned_throughput=aws_native.dynamodb.TableProvisionedThroughputArgs(\n read_capacity_units=5,\n write_capacity_units=5,\n ),\n table_name=\"myTableName\",\n global_secondary_indexes=[\n aws_native.dynamodb.TableGlobalSecondaryIndexArgs(\n index_name=\"myGSI\",\n key_schema=[\n aws_native.dynamodb.TableKeySchemaArgs(\n attribute_name=\"Sales\",\n key_type=\"HASH\",\n ),\n aws_native.dynamodb.TableKeySchemaArgs(\n attribute_name=\"Artist\",\n key_type=\"RANGE\",\n ),\n ],\n projection=aws_native.dynamodb.TableProjectionArgs(\n non_key_attributes=[\n \"Album\",\n \"NumberOfSongs\",\n ],\n projection_type=\"INCLUDE\",\n ),\n provisioned_throughput=aws_native.dynamodb.TableProvisionedThroughputArgs(\n read_capacity_units=5,\n write_capacity_units=5,\n ),\n ),\n aws_native.dynamodb.TableGlobalSecondaryIndexArgs(\n index_name=\"myGSI2\",\n key_schema=[\n aws_native.dynamodb.TableKeySchemaArgs(\n attribute_name=\"NumberOfSongs\",\n key_type=\"HASH\",\n ),\n aws_native.dynamodb.TableKeySchemaArgs(\n attribute_name=\"Sales\",\n key_type=\"RANGE\",\n ),\n ],\n projection=aws_native.dynamodb.TableProjectionArgs(\n non_key_attributes=[\n \"Album\",\n \"Artist\",\n ],\n projection_type=\"INCLUDE\",\n ),\n provisioned_throughput=aws_native.dynamodb.TableProvisionedThroughputArgs(\n read_capacity_units=5,\n write_capacity_units=5,\n ),\n ),\n ],\n local_secondary_indexes=[aws_native.dynamodb.TableLocalSecondaryIndexArgs(\n index_name=\"myLSI\",\n key_schema=[\n aws_native.dynamodb.TableKeySchemaArgs(\n attribute_name=\"Album\",\n key_type=\"HASH\",\n ),\n aws_native.dynamodb.TableKeySchemaArgs(\n attribute_name=\"Sales\",\n key_type=\"RANGE\",\n ),\n ],\n projection=aws_native.dynamodb.TableProjectionArgs(\n non_key_attributes=[\n \"Artist\",\n \"NumberOfSongs\",\n ],\n projection_type=\"INCLUDE\",\n ),\n )])\n\n```\n\n{{% /example %}}\n{{% /examples %}}\n", "properties": { "arn": { "type": "string" @@ -155414,107 +160330,115 @@ "$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." }, - "sseSpecification": { - "$ref": "#/types/aws-native:dynamodb:TableSseSpecification", - "description": "Specifies the settings to enable server-side encryption." - }, - "streamArn": { - "type": "string" - }, - "streamSpecification": { - "$ref": "#/types/aws-native:dynamodb:TableStreamSpecification", - "description": "The settings for the DDB table stream, which capture changes to items stored in the table." - }, - "tableClass": { - "type": "string", - "description": "The table class of the new table. Valid values are ``STANDARD`` and ``STANDARD_INFREQUENT_ACCESS``." - }, - "tableName": { - "type": "string", - "description": "A name for the table. If you don't specify a name, CFNlong generates a unique physical ID and uses that ID for the table name. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html).\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.", - "replaceOnChanges": true - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/types/aws-native:index:Tag" - }, - "description": "An array of key-value pairs to apply to this resource.\n For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)." - }, - "timeToLiveSpecification": { - "$ref": "#/types/aws-native:dynamodb:TableTimeToLiveSpecification", - "description": "Specifies the Time to Live (TTL) settings for the table.\n For detailed information about the limits in DynamoDB, see [Limits in Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the Amazon DynamoDB Developer Guide." - } - }, - "type": "object", - "required": [ - "arn", - "keySchema", - "streamArn" - ], - "inputProperties": { - "attributeDefinitions": { - "type": "array", - "items": { - "$ref": "#/types/aws-native:dynamodb:TableAttributeDefinition" - }, - "description": "A list of attributes that describe the key schema for the table and indexes.\n This property is required to create a DDB table.\n Update requires: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt). Replacement if you edit an existing AttributeDefinition." - }, - "billingMode": { - "type": "string", - "description": "Specify how you are charged for read and write throughput and how you manage capacity.\n Valid values include:\n + ``PROVISIONED`` - We recommend using ``PROVISIONED`` for predictable workloads. ``PROVISIONED`` sets the billing mode to [Provisioned Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual).\n + ``PAY_PER_REQUEST`` - We recommend using ``PAY_PER_REQUEST`` for unpredictable workloads. ``PAY_PER_REQUEST`` sets the billing mode to [On-Demand Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand).\n \n If not specified, the default is ``PROVISIONED``." - }, - "contributorInsightsSpecification": { - "$ref": "#/types/aws-native:dynamodb:TableContributorInsightsSpecification", - "description": "The settings used to enable or disable CloudWatch Contributor Insights for the specified table." - }, - "deletionProtectionEnabled": { - "type": "boolean", - "description": "Determines if a table is protected from deletion. When enabled, the table cannot be deleted by any user or process. This setting is disabled by default. For more information, see [Using deletion protection](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.Basics.html#WorkingWithTables.Basics.DeletionProtection) in the *Developer Guide*." - }, - "globalSecondaryIndexes": { - "type": "array", - "items": { - "$ref": "#/types/aws-native:dynamodb:TableGlobalSecondaryIndex" - }, - "description": "Global secondary indexes to be created on the table. You can create up to 20 global secondary indexes.\n If you update a table to include a new global secondary index, CFNlong initiates the index creation and then proceeds with the stack update. CFNlong doesn't wait for the index to complete creation because the backfilling phase can take a long time, depending on the size of the table. You can't use the index or update the table until the index's status is ``ACTIVE``. You can track its status by using the DynamoDB [DescribeTable](https://docs.aws.amazon.com/cli/latest/reference/dynamodb/describe-table.html) command.\n If you add or delete an index during an update, we recommend that you don't update any other resources. If your stack fails to update and is rolled back while adding a new index, you must manually delete the index. \n Updates are not supported. The following are exceptions:\n + If you update either the contributor insights specification or the provisioned throughput values of global secondary indexes, you can update the table without interruption.\n + You can delete or add one global secondary index without interruption. If you do both in the same update (for example, by changing the index's logical ID), the update fails." - }, - "importSourceSpecification": { - "$ref": "#/types/aws-native:dynamodb:TableImportSourceSpecification", - "description": "Specifies the properties of data being imported from the S3 bucket source to the table.\n If you specify the ``ImportSourceSpecification`` property, and also specify either the ``StreamSpecification``, the ``TableClass`` property, or the ``DeletionProtectionEnabled`` property, the IAM entity creating/updating stack must have ``UpdateTable`` permission." - }, - "keySchema": { - "oneOf": [ - { - "type": "array", - "items": { - "$ref": "#/types/aws-native:dynamodb:TableKeySchema" - } - }, - { - "$ref": "pulumi.json#/Any" - } - ], - "description": "Specifies the attributes that make up the primary key for the table. The attributes in the ``KeySchema`` property must also be defined in the ``AttributeDefinitions`` property." - }, - "kinesisStreamSpecification": { - "$ref": "#/types/aws-native:dynamodb:TableKinesisStreamSpecification", - "description": "The Kinesis Data Streams configuration for the specified table." - }, - "localSecondaryIndexes": { - "type": "array", - "items": { - "$ref": "#/types/aws-native:dynamodb:TableLocalSecondaryIndex" - }, - "description": "Local secondary indexes to be created on the table. You can create up to 5 local secondary indexes. Each index is scoped to a given hash key value. The size of each hash key can be up to 10 gigabytes." - }, - "pointInTimeRecoverySpecification": { - "$ref": "#/types/aws-native:dynamodb:TablePointInTimeRecoverySpecification", - "description": "The settings used to enable point in time recovery." - }, - "provisionedThroughput": { - "$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", + "description": "A resource-based policy document that contains permissions to add to the specified table. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html).\n When you attach a resource-based policy while creating a table, the policy creation is *strongly consistent*. For information about the considerations that you should keep in mind while attaching a resource-based policy, see [Resource-based policy considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html)." + }, + "sseSpecification": { + "$ref": "#/types/aws-native:dynamodb:TableSseSpecification", + "description": "Specifies the settings to enable server-side encryption." + }, + "streamArn": { + "type": "string" + }, + "streamSpecification": { + "$ref": "#/types/aws-native:dynamodb:TableStreamSpecification", + "description": "The settings for the DDB table stream, which capture changes to items stored in the table." + }, + "tableClass": { + "type": "string", + "description": "The table class of the new table. Valid values are ``STANDARD`` and ``STANDARD_INFREQUENT_ACCESS``." + }, + "tableName": { + "type": "string", + "description": "A name for the table. If you don't specify a name, CFNlong generates a unique physical ID and uses that ID for the table name. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html).\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.", + "replaceOnChanges": true + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An array of key-value pairs to apply to this resource.\n For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)." + }, + "timeToLiveSpecification": { + "$ref": "#/types/aws-native:dynamodb:TableTimeToLiveSpecification", + "description": "Specifies the Time to Live (TTL) settings for the table.\n For detailed information about the limits in DynamoDB, see [Limits in Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the Amazon DynamoDB Developer Guide." + } + }, + "type": "object", + "required": [ + "arn", + "keySchema", + "streamArn" + ], + "inputProperties": { + "attributeDefinitions": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:dynamodb:TableAttributeDefinition" + }, + "description": "A list of attributes that describe the key schema for the table and indexes.\n This property is required to create a DDB table.\n Update requires: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt). Replacement if you edit an existing AttributeDefinition." + }, + "billingMode": { + "type": "string", + "description": "Specify how you are charged for read and write throughput and how you manage capacity.\n Valid values include:\n + ``PROVISIONED`` - We recommend using ``PROVISIONED`` for predictable workloads. ``PROVISIONED`` sets the billing mode to [Provisioned Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual).\n + ``PAY_PER_REQUEST`` - We recommend using ``PAY_PER_REQUEST`` for unpredictable workloads. ``PAY_PER_REQUEST`` sets the billing mode to [On-Demand Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand).\n \n If not specified, the default is ``PROVISIONED``." + }, + "contributorInsightsSpecification": { + "$ref": "#/types/aws-native:dynamodb:TableContributorInsightsSpecification", + "description": "The settings used to enable or disable CloudWatch Contributor Insights for the specified table." + }, + "deletionProtectionEnabled": { + "type": "boolean", + "description": "Determines if a table is protected from deletion. When enabled, the table cannot be deleted by any user or process. This setting is disabled by default. For more information, see [Using deletion protection](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.Basics.html#WorkingWithTables.Basics.DeletionProtection) in the *Developer Guide*." + }, + "globalSecondaryIndexes": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:dynamodb:TableGlobalSecondaryIndex" + }, + "description": "Global secondary indexes to be created on the table. You can create up to 20 global secondary indexes.\n If you update a table to include a new global secondary index, CFNlong initiates the index creation and then proceeds with the stack update. CFNlong doesn't wait for the index to complete creation because the backfilling phase can take a long time, depending on the size of the table. You can't use the index or update the table until the index's status is ``ACTIVE``. You can track its status by using the DynamoDB [DescribeTable](https://docs.aws.amazon.com/cli/latest/reference/dynamodb/describe-table.html) command.\n If you add or delete an index during an update, we recommend that you don't update any other resources. If your stack fails to update and is rolled back while adding a new index, you must manually delete the index. \n Updates are not supported. The following are exceptions:\n + If you update either the contributor insights specification or the provisioned throughput values of global secondary indexes, you can update the table without interruption.\n + You can delete or add one global secondary index without interruption. If you do both in the same update (for example, by changing the index's logical ID), the update fails." + }, + "importSourceSpecification": { + "$ref": "#/types/aws-native:dynamodb:TableImportSourceSpecification", + "description": "Specifies the properties of data being imported from the S3 bucket source to the table.\n If you specify the ``ImportSourceSpecification`` property, and also specify either the ``StreamSpecification``, the ``TableClass`` property, or the ``DeletionProtectionEnabled`` property, the IAM entity creating/updating stack must have ``UpdateTable`` permission." + }, + "keySchema": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/types/aws-native:dynamodb:TableKeySchema" + } + }, + { + "$ref": "pulumi.json#/Any" + } + ], + "description": "Specifies the attributes that make up the primary key for the table. The attributes in the ``KeySchema`` property must also be defined in the ``AttributeDefinitions`` property." + }, + "kinesisStreamSpecification": { + "$ref": "#/types/aws-native:dynamodb:TableKinesisStreamSpecification", + "description": "The Kinesis Data Streams configuration for the specified table." + }, + "localSecondaryIndexes": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:dynamodb:TableLocalSecondaryIndex" + }, + "description": "Local secondary indexes to be created on the table. You can create up to 5 local secondary indexes. Each index is scoped to a given hash key value. The size of each hash key can be up to 10 gigabytes." + }, + "pointInTimeRecoverySpecification": { + "$ref": "#/types/aws-native:dynamodb:TablePointInTimeRecoverySpecification", + "description": "The settings used to enable point in time recovery." + }, + "provisionedThroughput": { + "$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", + "description": "A resource-based policy document that contains permissions to add to the specified table. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html).\n When you attach a resource-based policy while creating a table, the policy creation is *strongly consistent*. For information about the considerations that you should keep in mind while attaching a resource-based policy, see [Resource-based policy considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html)." }, "sseSpecification": { "$ref": "#/types/aws-native:dynamodb:TableSseSpecification", @@ -157088,11 +162012,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", @@ -158153,7 +163076,7 @@ ] }, "aws-native:ec2:NatGateway": { - "description": "Specifies a network address translation (NAT) gateway in the specified subnet. You can create either a public NAT gateway or a private NAT gateway. The default is a public NAT gateway. If you create a public NAT gateway, you must specify an elastic IP address.\n With a NAT gateway, instances in a private subnet can connect to the internet, other AWS services, or an on-premises network using the IP address of the NAT gateway. For more information, see [NAT gateways](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) in the *Amazon VPC User Guide*.\n If you add a default route (``AWS::EC2::Route`` resource) that points to a NAT gateway, specify the NAT gateway ID for the route's ``NatGatewayId`` property.\n When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*.", + "description": "Specifies a network address translation (NAT) gateway in the specified subnet. You can create either a public NAT gateway or a private NAT gateway. The default is a public NAT gateway. If you create a public NAT gateway, you must specify an elastic IP address.\n With a NAT gateway, instances in a private subnet can connect to the internet, other AWS services, or an on-premises network using the IP address of the NAT gateway. For more information, see [NAT gateways](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) in the *Amazon VPC User Guide*.\n If you add a default route (``AWS::EC2::Route`` resource) that points to a NAT gateway, specify the NAT gateway ID for the route's ``NatGatewayId`` property.\n When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*.", "properties": { "allocationId": { "type": "string", @@ -158186,14 +163109,14 @@ }, "secondaryPrivateIpAddressCount": { "type": "integer", - "description": "[Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time." + "description": "[Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time." }, "secondaryPrivateIpAddresses": { "type": "array", "items": { "type": "string" }, - "description": "Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time." + "description": "Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time." }, "subnetId": { "type": "string", @@ -158239,14 +163162,14 @@ }, "secondaryPrivateIpAddressCount": { "type": "integer", - "description": "[Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time." + "description": "[Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time." }, "secondaryPrivateIpAddresses": { "type": "array", "items": { "type": "string" }, - "description": "Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time." + "description": "Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time." }, "subnetId": { "type": "string", @@ -159411,19 +164334,19 @@ ] }, "aws-native:ec2:SecurityGroupEgress": { - "description": "Adds the specified outbound (egress) rule to a security group.\n An outbound rule permits instances to send traffic to the specified IPv4 or IPv6 address range, the IP addresses that are specified by a prefix list, or the instances that are associated with a destination security group. For more information, see [Security group rules](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html).\n You must specify exactly one of the following destinations: an IPv4 or IPv6 address range, a prefix list, or a security group. Otherwise, the stack launches successfully but the rule is not added to the security group.\n You must specify a protocol for each rule (for example, TCP). If the protocol is TCP or UDP, you must also specify a port or port range. If the protocol is ICMP or ICMPv6, you must also specify the ICMP/ICMPv6 type and code. To specify all types or all codes, use -1.\n Rule changes are propagated to instances associated with the security group as quickly as possible", + "description": "Adds the specified outbound (egress) rule to a security group.\n An outbound rule permits instances to send traffic to the specified IPv4 or IPv6 address range, the IP addresses that are specified by a prefix list, or the instances that are associated with a destination security group. For more information, see [Security group rules](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html).\n You must specify exactly one of the following destinations: an IPv4 address range, an IPv6 address range, a prefix list, or a security group.\n You must specify a protocol for each rule (for example, TCP). If the protocol is TCP or UDP, you must also specify a port or port range. If the protocol is ICMP or ICMPv6, you must also specify the ICMP/ICMPv6 type and code. To specify all types or all codes, use -1.\n Rule changes are propagated to instances associated with the security group as quickly as possible. However, a small delay might occur.", "properties": { "awsId": { "type": "string" }, "cidrIp": { "type": "string", - "description": "The IPv4 address range, in CIDR format.\n You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``).\n For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*.", + "description": "The IPv4 address range, in CIDR format.\n You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``.\n For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*.", "replaceOnChanges": true }, "cidrIpv6": { "type": "string", - "description": "The IPv6 address range, in CIDR format.\n You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``).\n For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*.", + "description": "The IPv6 address range, in CIDR format.\n You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``.\n For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*.", "replaceOnChanges": true }, "description": { @@ -159432,12 +164355,12 @@ }, "destinationPrefixListId": { "type": "string", - "description": "The prefix list IDs for an AWS service. This is the AWS service that you want to access through a VPC endpoint from instances associated with the security group.\n You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``).", + "description": "The prefix list IDs for an AWS service. This is the AWS service to access through a VPC endpoint from instances associated with the security group.\n You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``.", "replaceOnChanges": true }, "destinationSecurityGroupId": { "type": "string", - "description": "The ID of the security group.\n You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``).", + "description": "The ID of the security group.\n You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``.", "replaceOnChanges": true }, "fromPort": { @@ -159470,11 +164393,11 @@ "inputProperties": { "cidrIp": { "type": "string", - "description": "The IPv4 address range, in CIDR format.\n You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``).\n For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*." + "description": "The IPv4 address range, in CIDR format.\n You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``.\n For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*." }, "cidrIpv6": { "type": "string", - "description": "The IPv6 address range, in CIDR format.\n You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``).\n For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*." + "description": "The IPv6 address range, in CIDR format.\n You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``.\n For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*." }, "description": { "type": "string", @@ -159482,11 +164405,11 @@ }, "destinationPrefixListId": { "type": "string", - "description": "The prefix list IDs for an AWS service. This is the AWS service that you want to access through a VPC endpoint from instances associated with the security group.\n You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``)." + "description": "The prefix list IDs for an AWS service. This is the AWS service to access through a VPC endpoint from instances associated with the security group.\n You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``." }, "destinationSecurityGroupId": { "type": "string", - "description": "The ID of the security group.\n You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``)." + "description": "The ID of the security group.\n You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``." }, "fromPort": { "type": "integer", @@ -159713,6 +164636,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 +164678,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 +164690,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 +164735,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 +164772,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 +164780,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 +165600,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": [ @@ -162935,7 +167866,7 @@ } }, "aws-native:ecs:TaskDefinition": { - "description": "Registers a new task definition from the supplied ``family`` and ``containerDefinitions``. Optionally, you can add data volumes to your containers with the ``volumes`` parameter. For more information about task definition parameters and defaults, see [Amazon ECS Task Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) in the *Amazon Elastic Container Service Developer Guide*.\n You can specify a role for your task with the ``taskRoleArn`` parameter. When you specify a role for a task, its containers can then use the latest versions of the CLI or SDKs to make API requests to the AWS services that are specified in the policy that's associated with the role. For more information, see [IAM Roles for Tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*.\n You can specify a Docker networking mode for the containers in your task definition with the ``networkMod\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 taskdefinition = new AwsNative.Ecs.TaskDefinition(\"taskdefinition\", new()\n {\n RequiresCompatibilities = new[]\n {\n \"EC2\",\n },\n ContainerDefinitions = new[]\n {\n new AwsNative.Ecs.Inputs.TaskDefinitionContainerDefinitionArgs\n {\n Name = \"my-app\",\n MountPoints = new[]\n {\n new AwsNative.Ecs.Inputs.TaskDefinitionMountPointArgs\n {\n SourceVolume = \"my-vol\",\n ContainerPath = \"/var/www/my-vol\",\n },\n },\n Image = \"amazon/amazon-ecs-sample\",\n Cpu = 256,\n EntryPoint = new[]\n {\n \"/usr/sbin/apache2\",\n \"-D\",\n \"FOREGROUND\",\n },\n Memory = 512,\n Essential = true,\n },\n new AwsNative.Ecs.Inputs.TaskDefinitionContainerDefinitionArgs\n {\n Name = \"busybox\",\n Image = \"busybox\",\n Cpu = 256,\n EntryPoint = new[]\n {\n \"sh\",\n \"-c\",\n },\n Memory = 512,\n Command = new[]\n {\n \"/bin/sh -c \\\"while true; do /bin/date \u003e /var/www/my-vol/date; sleep 1; done\\\"\",\n },\n Essential = false,\n DependsOn = new[]\n {\n new AwsNative.Ecs.Inputs.TaskDefinitionContainerDependencyArgs\n {\n ContainerName = \"my-app\",\n Condition = \"START\",\n },\n },\n VolumesFrom = new[]\n {\n new AwsNative.Ecs.Inputs.TaskDefinitionVolumeFromArgs\n {\n SourceContainer = \"my-app\",\n },\n },\n },\n },\n Volumes = new[]\n {\n new AwsNative.Ecs.Inputs.TaskDefinitionVolumeArgs\n {\n Host = new AwsNative.Ecs.Inputs.TaskDefinitionHostVolumePropertiesArgs\n {\n SourcePath = \"/var/lib/docker/vfs/dir/\",\n },\n Name = \"my-vol\",\n },\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/ecs\"\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 := ecs.NewTaskDefinition(ctx, \"taskdefinition\", \u0026ecs.TaskDefinitionArgs{\n\t\t\tRequiresCompatibilities: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"EC2\"),\n\t\t\t},\n\t\t\tContainerDefinitions: ecs.TaskDefinitionContainerDefinitionArray{\n\t\t\t\t\u0026ecs.TaskDefinitionContainerDefinitionArgs{\n\t\t\t\t\tName: pulumi.String(\"my-app\"),\n\t\t\t\t\tMountPoints: ecs.TaskDefinitionMountPointArray{\n\t\t\t\t\t\t\u0026ecs.TaskDefinitionMountPointArgs{\n\t\t\t\t\t\t\tSourceVolume: pulumi.String(\"my-vol\"),\n\t\t\t\t\t\t\tContainerPath: pulumi.String(\"/var/www/my-vol\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tImage: pulumi.String(\"amazon/amazon-ecs-sample\"),\n\t\t\t\t\tCpu: pulumi.Int(256),\n\t\t\t\t\tEntryPoint: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"/usr/sbin/apache2\"),\n\t\t\t\t\t\tpulumi.String(\"-D\"),\n\t\t\t\t\t\tpulumi.String(\"FOREGROUND\"),\n\t\t\t\t\t},\n\t\t\t\t\tMemory: pulumi.Int(512),\n\t\t\t\t\tEssential: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\t\u0026ecs.TaskDefinitionContainerDefinitionArgs{\n\t\t\t\t\tName: pulumi.String(\"busybox\"),\n\t\t\t\t\tImage: pulumi.String(\"busybox\"),\n\t\t\t\t\tCpu: pulumi.Int(256),\n\t\t\t\t\tEntryPoint: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"sh\"),\n\t\t\t\t\t\tpulumi.String(\"-c\"),\n\t\t\t\t\t},\n\t\t\t\t\tMemory: pulumi.Int(512),\n\t\t\t\t\tCommand: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"/bin/sh -c \\\"while true; do /bin/date \u003e /var/www/my-vol/date; sleep 1; done\\\"\"),\n\t\t\t\t\t},\n\t\t\t\t\tEssential: pulumi.Bool(false),\n\t\t\t\t\tDependsOn: ecs.TaskDefinitionContainerDependencyArray{\n\t\t\t\t\t\t\u0026ecs.TaskDefinitionContainerDependencyArgs{\n\t\t\t\t\t\t\tContainerName: pulumi.String(\"my-app\"),\n\t\t\t\t\t\t\tCondition: pulumi.String(\"START\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tVolumesFrom: ecs.TaskDefinitionVolumeFromArray{\n\t\t\t\t\t\t\u0026ecs.TaskDefinitionVolumeFromArgs{\n\t\t\t\t\t\t\tSourceContainer: pulumi.String(\"my-app\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tVolumes: ecs.TaskDefinitionVolumeArray{\n\t\t\t\t\u0026ecs.TaskDefinitionVolumeArgs{\n\t\t\t\t\tHost: \u0026ecs.TaskDefinitionHostVolumePropertiesArgs{\n\t\t\t\t\t\tSourcePath: pulumi.String(\"/var/lib/docker/vfs/dir/\"),\n\t\t\t\t\t},\n\t\t\t\t\tName: pulumi.String(\"my-vol\"),\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 taskdefinition = new aws_native.ecs.TaskDefinition(\"taskdefinition\", {\n requiresCompatibilities: [\"EC2\"],\n containerDefinitions: [\n {\n name: \"my-app\",\n mountPoints: [{\n sourceVolume: \"my-vol\",\n containerPath: \"/var/www/my-vol\",\n }],\n image: \"amazon/amazon-ecs-sample\",\n cpu: 256,\n entryPoint: [\n \"/usr/sbin/apache2\",\n \"-D\",\n \"FOREGROUND\",\n ],\n memory: 512,\n essential: true,\n },\n {\n name: \"busybox\",\n image: \"busybox\",\n cpu: 256,\n entryPoint: [\n \"sh\",\n \"-c\",\n ],\n memory: 512,\n command: [\"/bin/sh -c \\\"while true; do /bin/date \u003e /var/www/my-vol/date; sleep 1; done\\\"\"],\n essential: false,\n dependsOn: [{\n containerName: \"my-app\",\n condition: \"START\",\n }],\n volumesFrom: [{\n sourceContainer: \"my-app\",\n }],\n },\n ],\n volumes: [{\n host: {\n sourcePath: \"/var/lib/docker/vfs/dir/\",\n },\n name: \"my-vol\",\n }],\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\ntaskdefinition = aws_native.ecs.TaskDefinition(\"taskdefinition\",\n requires_compatibilities=[\"EC2\"],\n container_definitions=[\n aws_native.ecs.TaskDefinitionContainerDefinitionArgs(\n name=\"my-app\",\n mount_points=[aws_native.ecs.TaskDefinitionMountPointArgs(\n source_volume=\"my-vol\",\n container_path=\"/var/www/my-vol\",\n )],\n image=\"amazon/amazon-ecs-sample\",\n cpu=256,\n entry_point=[\n \"/usr/sbin/apache2\",\n \"-D\",\n \"FOREGROUND\",\n ],\n memory=512,\n essential=True,\n ),\n aws_native.ecs.TaskDefinitionContainerDefinitionArgs(\n name=\"busybox\",\n image=\"busybox\",\n cpu=256,\n entry_point=[\n \"sh\",\n \"-c\",\n ],\n memory=512,\n command=[\"/bin/sh -c \\\"while true; do /bin/date \u003e /var/www/my-vol/date; sleep 1; done\\\"\"],\n essential=False,\n depends_on=[aws_native.ecs.TaskDefinitionContainerDependencyArgs(\n container_name=\"my-app\",\n condition=\"START\",\n )],\n volumes_from=[aws_native.ecs.TaskDefinitionVolumeFromArgs(\n source_container=\"my-app\",\n )],\n ),\n ],\n volumes=[aws_native.ecs.TaskDefinitionVolumeArgs(\n host=aws_native.ecs.TaskDefinitionHostVolumePropertiesArgs(\n source_path=\"/var/lib/docker/vfs/dir/\",\n ),\n name=\"my-vol\",\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 taskdefinition = new AwsNative.Ecs.TaskDefinition(\"taskdefinition\", new()\n {\n RequiresCompatibilities = new[]\n {\n \"EC2\",\n },\n ContainerDefinitions = new[]\n {\n new AwsNative.Ecs.Inputs.TaskDefinitionContainerDefinitionArgs\n {\n Name = \"my-app\",\n MountPoints = new[]\n {\n new AwsNative.Ecs.Inputs.TaskDefinitionMountPointArgs\n {\n SourceVolume = \"my-vol\",\n ContainerPath = \"/var/www/my-vol\",\n },\n },\n Image = \"amazon/amazon-ecs-sample\",\n Cpu = 256,\n EntryPoint = new[]\n {\n \"/usr/sbin/apache2\",\n \"-D\",\n \"FOREGROUND\",\n },\n Memory = 512,\n Essential = true,\n },\n new AwsNative.Ecs.Inputs.TaskDefinitionContainerDefinitionArgs\n {\n Name = \"busybox\",\n Image = \"busybox\",\n Cpu = 256,\n EntryPoint = new[]\n {\n \"sh\",\n \"-c\",\n },\n Memory = 512,\n Command = new[]\n {\n \"/bin/sh -c \\\"while true; do /bin/date \u003e /var/www/my-vol/date; sleep 1; done\\\"\",\n },\n Essential = false,\n DependsOn = new[]\n {\n new AwsNative.Ecs.Inputs.TaskDefinitionContainerDependencyArgs\n {\n ContainerName = \"my-app\",\n Condition = \"START\",\n },\n },\n VolumesFrom = new[]\n {\n new AwsNative.Ecs.Inputs.TaskDefinitionVolumeFromArgs\n {\n SourceContainer = \"my-app\",\n },\n },\n },\n },\n Volumes = new[]\n {\n new AwsNative.Ecs.Inputs.TaskDefinitionVolumeArgs\n {\n Host = new AwsNative.Ecs.Inputs.TaskDefinitionHostVolumePropertiesArgs\n {\n SourcePath = \"/var/lib/docker/vfs/dir/\",\n },\n Name = \"my-vol\",\n },\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/ecs\"\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 := ecs.NewTaskDefinition(ctx, \"taskdefinition\", \u0026ecs.TaskDefinitionArgs{\n\t\t\tRequiresCompatibilities: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"EC2\"),\n\t\t\t},\n\t\t\tContainerDefinitions: ecs.TaskDefinitionContainerDefinitionArray{\n\t\t\t\t\u0026ecs.TaskDefinitionContainerDefinitionArgs{\n\t\t\t\t\tName: pulumi.String(\"my-app\"),\n\t\t\t\t\tMountPoints: ecs.TaskDefinitionMountPointArray{\n\t\t\t\t\t\t\u0026ecs.TaskDefinitionMountPointArgs{\n\t\t\t\t\t\t\tSourceVolume: pulumi.String(\"my-vol\"),\n\t\t\t\t\t\t\tContainerPath: pulumi.String(\"/var/www/my-vol\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tImage: pulumi.String(\"amazon/amazon-ecs-sample\"),\n\t\t\t\t\tCpu: pulumi.Int(256),\n\t\t\t\t\tEntryPoint: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"/usr/sbin/apache2\"),\n\t\t\t\t\t\tpulumi.String(\"-D\"),\n\t\t\t\t\t\tpulumi.String(\"FOREGROUND\"),\n\t\t\t\t\t},\n\t\t\t\t\tMemory: pulumi.Int(512),\n\t\t\t\t\tEssential: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\t\u0026ecs.TaskDefinitionContainerDefinitionArgs{\n\t\t\t\t\tName: pulumi.String(\"busybox\"),\n\t\t\t\t\tImage: pulumi.String(\"busybox\"),\n\t\t\t\t\tCpu: pulumi.Int(256),\n\t\t\t\t\tEntryPoint: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"sh\"),\n\t\t\t\t\t\tpulumi.String(\"-c\"),\n\t\t\t\t\t},\n\t\t\t\t\tMemory: pulumi.Int(512),\n\t\t\t\t\tCommand: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"/bin/sh -c \\\"while true; do /bin/date \u003e /var/www/my-vol/date; sleep 1; done\\\"\"),\n\t\t\t\t\t},\n\t\t\t\t\tEssential: pulumi.Bool(false),\n\t\t\t\t\tDependsOn: ecs.TaskDefinitionContainerDependencyArray{\n\t\t\t\t\t\t\u0026ecs.TaskDefinitionContainerDependencyArgs{\n\t\t\t\t\t\t\tContainerName: pulumi.String(\"my-app\"),\n\t\t\t\t\t\t\tCondition: pulumi.String(\"START\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tVolumesFrom: ecs.TaskDefinitionVolumeFromArray{\n\t\t\t\t\t\t\u0026ecs.TaskDefinitionVolumeFromArgs{\n\t\t\t\t\t\t\tSourceContainer: pulumi.String(\"my-app\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tVolumes: ecs.TaskDefinitionVolumeArray{\n\t\t\t\t\u0026ecs.TaskDefinitionVolumeArgs{\n\t\t\t\t\tHost: \u0026ecs.TaskDefinitionHostVolumePropertiesArgs{\n\t\t\t\t\t\tSourcePath: pulumi.String(\"/var/lib/docker/vfs/dir/\"),\n\t\t\t\t\t},\n\t\t\t\t\tName: pulumi.String(\"my-vol\"),\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 taskdefinition = new aws_native.ecs.TaskDefinition(\"taskdefinition\", {\n requiresCompatibilities: [\"EC2\"],\n containerDefinitions: [\n {\n name: \"my-app\",\n mountPoints: [{\n sourceVolume: \"my-vol\",\n containerPath: \"/var/www/my-vol\",\n }],\n image: \"amazon/amazon-ecs-sample\",\n cpu: 256,\n entryPoint: [\n \"/usr/sbin/apache2\",\n \"-D\",\n \"FOREGROUND\",\n ],\n memory: 512,\n essential: true,\n },\n {\n name: \"busybox\",\n image: \"busybox\",\n cpu: 256,\n entryPoint: [\n \"sh\",\n \"-c\",\n ],\n memory: 512,\n command: [\"/bin/sh -c \\\"while true; do /bin/date \u003e /var/www/my-vol/date; sleep 1; done\\\"\"],\n essential: false,\n dependsOn: [{\n containerName: \"my-app\",\n condition: \"START\",\n }],\n volumesFrom: [{\n sourceContainer: \"my-app\",\n }],\n },\n ],\n volumes: [{\n host: {\n sourcePath: \"/var/lib/docker/vfs/dir/\",\n },\n name: \"my-vol\",\n }],\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\ntaskdefinition = aws_native.ecs.TaskDefinition(\"taskdefinition\",\n requires_compatibilities=[\"EC2\"],\n container_definitions=[\n aws_native.ecs.TaskDefinitionContainerDefinitionArgs(\n name=\"my-app\",\n mount_points=[aws_native.ecs.TaskDefinitionMountPointArgs(\n source_volume=\"my-vol\",\n container_path=\"/var/www/my-vol\",\n )],\n image=\"amazon/amazon-ecs-sample\",\n cpu=256,\n entry_point=[\n \"/usr/sbin/apache2\",\n \"-D\",\n \"FOREGROUND\",\n ],\n memory=512,\n essential=True,\n ),\n aws_native.ecs.TaskDefinitionContainerDefinitionArgs(\n name=\"busybox\",\n image=\"busybox\",\n cpu=256,\n entry_point=[\n \"sh\",\n \"-c\",\n ],\n memory=512,\n command=[\"/bin/sh -c \\\"while true; do /bin/date \u003e /var/www/my-vol/date; sleep 1; done\\\"\"],\n essential=False,\n depends_on=[aws_native.ecs.TaskDefinitionContainerDependencyArgs(\n container_name=\"my-app\",\n condition=\"START\",\n )],\n volumes_from=[aws_native.ecs.TaskDefinitionVolumeFromArgs(\n source_container=\"my-app\",\n )],\n ),\n ],\n volumes=[aws_native.ecs.TaskDefinitionVolumeArgs(\n host=aws_native.ecs.TaskDefinitionHostVolumePropertiesArgs(\n source_path=\"/var/lib/docker/vfs/dir/\",\n ),\n name=\"my-vol\",\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 ecsTaskDefinitionResource = new AwsNative.Ecs.TaskDefinition(\"ecsTaskDefinitionResource\", new()\n {\n ContainerDefinitions = new[]\n {\n new AwsNative.Ecs.Inputs.TaskDefinitionContainerDefinitionArgs\n {\n Name = \"first-run-task\",\n Image = \"httpd:2.4\",\n Essential = true,\n PortMappings = new[]\n {\n new AwsNative.Ecs.Inputs.TaskDefinitionPortMappingArgs\n {\n ContainerPort = 80,\n Protocol = \"tcp\",\n },\n },\n Environment = new[]\n {\n new AwsNative.Ecs.Inputs.TaskDefinitionKeyValuePairArgs\n {\n Name = \"entryPoint\",\n Value = \"sh, -c\",\n },\n new AwsNative.Ecs.Inputs.TaskDefinitionKeyValuePairArgs\n {\n Name = \"command\",\n Value = \"/bin/sh -c \\\\\\\"echo '\u003chtml\u003e \u003chead\u003e \u003ctitle\u003eAmazon ECS Sample App\u003c/title\u003e \u003cstyle\u003ebody {margin-top: 40px; background-color: #333;} \u003c/style\u003e \u003c/head\u003e\u003cbody\u003e \u003cdiv style=color:white;text-align:center\u003e \u003ch1\u003eAmazon ECS Sample App\u003c/h1\u003e \u003ch2\u003eCongratulations!\u003c/h2\u003e \u003cp\u003eYour application is now running on a container in Amazon ECS.\u003c/p\u003e \u003c/div\u003e\u003c/body\u003e\u003c/html\u003e' \u003e /usr/local/apache2/htdocs/index.html \u0026\u0026 httpd-foreground\\\\\\\"\",\n },\n },\n EnvironmentFiles = new() { },\n },\n },\n Family = \"first-run-task\",\n Cpu = \"1 vCPU\",\n Memory = \"3 GB\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"ecsTaskDefinition\"] = ecsTaskDefinitionResource.Id,\n };\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tecsTaskDefinitionResource, err := ecs.NewTaskDefinition(ctx, \"ecsTaskDefinitionResource\", \u0026ecs.TaskDefinitionArgs{\n\t\t\tContainerDefinitions: ecs.TaskDefinitionContainerDefinitionArray{\n\t\t\t\t\u0026ecs.TaskDefinitionContainerDefinitionArgs{\n\t\t\t\t\tName: pulumi.String(\"first-run-task\"),\n\t\t\t\t\tImage: pulumi.String(\"httpd:2.4\"),\n\t\t\t\t\tEssential: pulumi.Bool(true),\n\t\t\t\t\tPortMappings: ecs.TaskDefinitionPortMappingArray{\n\t\t\t\t\t\t\u0026ecs.TaskDefinitionPortMappingArgs{\n\t\t\t\t\t\t\tContainerPort: pulumi.Int(80),\n\t\t\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tEnvironment: ecs.TaskDefinitionKeyValuePairArray{\n\t\t\t\t\t\t\u0026ecs.TaskDefinitionKeyValuePairArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"entryPoint\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\"sh, -c\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026ecs.TaskDefinitionKeyValuePairArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"command\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\"/bin/sh -c \\\\\\\"echo '\u003chtml\u003e \u003chead\u003e \u003ctitle\u003eAmazon ECS Sample App\u003c/title\u003e \u003cstyle\u003ebody {margin-top: 40px; background-color: #333;} \u003c/style\u003e \u003c/head\u003e\u003cbody\u003e \u003cdiv style=color:white;text-align:center\u003e \u003ch1\u003eAmazon ECS Sample App\u003c/h1\u003e \u003ch2\u003eCongratulations!\u003c/h2\u003e \u003cp\u003eYour application is now running on a container in Amazon ECS.\u003c/p\u003e \u003c/div\u003e\u003c/body\u003e\u003c/html\u003e' \u003e /usr/local/apache2/htdocs/index.html \u0026\u0026 httpd-foreground\\\\\\\"\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tEnvironmentFiles: ecs.TaskDefinitionEnvironmentFileArray{},\n\t\t\t\t},\n\t\t\t},\n\t\t\tFamily: pulumi.String(\"first-run-task\"),\n\t\t\tCpu: pulumi.String(\"1 vCPU\"),\n\t\t\tMemory: pulumi.String(\"3 GB\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecsTaskDefinition\", ecsTaskDefinitionResource.ID())\n\t\treturn nil\n\t})\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws_native from \"@pulumi/aws-native\";\n\nconst ecsTaskDefinitionResource = new aws_native.ecs.TaskDefinition(\"ecsTaskDefinitionResource\", {\n containerDefinitions: [{\n name: \"first-run-task\",\n image: \"httpd:2.4\",\n essential: true,\n portMappings: [{\n containerPort: 80,\n protocol: \"tcp\",\n }],\n environment: [\n {\n name: \"entryPoint\",\n value: \"sh, -c\",\n },\n {\n name: \"command\",\n value: \"/bin/sh -c \\\\\\\"echo '\u003chtml\u003e \u003chead\u003e \u003ctitle\u003eAmazon ECS Sample App\u003c/title\u003e \u003cstyle\u003ebody {margin-top: 40px; background-color: #333;} \u003c/style\u003e \u003c/head\u003e\u003cbody\u003e \u003cdiv style=color:white;text-align:center\u003e \u003ch1\u003eAmazon ECS Sample App\u003c/h1\u003e \u003ch2\u003eCongratulations!\u003c/h2\u003e \u003cp\u003eYour application is now running on a container in Amazon ECS.\u003c/p\u003e \u003c/div\u003e\u003c/body\u003e\u003c/html\u003e' \u003e /usr/local/apache2/htdocs/index.html \u0026\u0026 httpd-foreground\\\\\\\"\",\n },\n ],\n environmentFiles: [],\n }],\n family: \"first-run-task\",\n cpu: \"1 vCPU\",\n memory: \"3 GB\",\n});\nexport const ecsTaskDefinition = ecsTaskDefinitionResource.id;\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\necs_task_definition_resource = aws_native.ecs.TaskDefinition(\"ecsTaskDefinitionResource\",\n container_definitions=[aws_native.ecs.TaskDefinitionContainerDefinitionArgs(\n name=\"first-run-task\",\n image=\"httpd:2.4\",\n essential=True,\n port_mappings=[aws_native.ecs.TaskDefinitionPortMappingArgs(\n container_port=80,\n protocol=\"tcp\",\n )],\n environment=[\n aws_native.ecs.TaskDefinitionKeyValuePairArgs(\n name=\"entryPoint\",\n value=\"sh, -c\",\n ),\n aws_native.ecs.TaskDefinitionKeyValuePairArgs(\n name=\"command\",\n value=\"/bin/sh -c \\\\\\\"echo '\u003chtml\u003e \u003chead\u003e \u003ctitle\u003eAmazon ECS Sample App\u003c/title\u003e \u003cstyle\u003ebody {margin-top: 40px; background-color: #333;} \u003c/style\u003e \u003c/head\u003e\u003cbody\u003e \u003cdiv style=color:white;text-align:center\u003e \u003ch1\u003eAmazon ECS Sample App\u003c/h1\u003e \u003ch2\u003eCongratulations!\u003c/h2\u003e \u003cp\u003eYour application is now running on a container in Amazon ECS.\u003c/p\u003e \u003c/div\u003e\u003c/body\u003e\u003c/html\u003e' \u003e /usr/local/apache2/htdocs/index.html \u0026\u0026 httpd-foreground\\\\\\\"\",\n ),\n ],\n environment_files=[],\n )],\n family=\"first-run-task\",\n cpu=\"1 vCPU\",\n memory=\"3 GB\")\npulumi.export(\"ecsTaskDefinition\", ecs_task_definition_resource.id)\n\n```\n\n{{% /example %}}\n{{% example %}}\n### Example\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AwsNative = Pulumi.AwsNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var ecsTaskDefinitionResource = new AwsNative.Ecs.TaskDefinition(\"ecsTaskDefinitionResource\", new()\n {\n ContainerDefinitions = new[]\n {\n new AwsNative.Ecs.Inputs.TaskDefinitionContainerDefinitionArgs\n {\n Name = \"first-run-task\",\n Image = \"httpd:2.4\",\n Essential = true,\n PortMappings = new[]\n {\n new AwsNative.Ecs.Inputs.TaskDefinitionPortMappingArgs\n {\n ContainerPort = 80,\n Protocol = \"tcp\",\n },\n },\n Environment = new[]\n {\n new AwsNative.Ecs.Inputs.TaskDefinitionKeyValuePairArgs\n {\n Name = \"entryPoint\",\n Value = \"sh, -c\",\n },\n new AwsNative.Ecs.Inputs.TaskDefinitionKeyValuePairArgs\n {\n Name = \"command\",\n Value = \"/bin/sh -c \\\\\\\"echo '\u003chtml\u003e \u003chead\u003e \u003ctitle\u003eAmazon ECS Sample App\u003c/title\u003e \u003cstyle\u003ebody {margin-top: 40px; background-color: #333;} \u003c/style\u003e \u003c/head\u003e\u003cbody\u003e \u003cdiv style=color:white;text-align:center\u003e \u003ch1\u003eAmazon ECS Sample App\u003c/h1\u003e \u003ch2\u003eCongratulations!\u003c/h2\u003e \u003cp\u003eYour application is now running on a container in Amazon ECS.\u003c/p\u003e \u003c/div\u003e\u003c/body\u003e\u003c/html\u003e' \u003e /usr/local/apache2/htdocs/index.html \u0026\u0026 httpd-foreground\\\\\\\"\",\n },\n },\n EnvironmentFiles = new() { },\n },\n },\n Family = \"first-run-task\",\n Cpu = \"1 vCPU\",\n Memory = \"3 GB\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"ecsTaskDefinition\"] = ecsTaskDefinitionResource.Id,\n };\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tecsTaskDefinitionResource, err := ecs.NewTaskDefinition(ctx, \"ecsTaskDefinitionResource\", \u0026ecs.TaskDefinitionArgs{\n\t\t\tContainerDefinitions: ecs.TaskDefinitionContainerDefinitionArray{\n\t\t\t\t\u0026ecs.TaskDefinitionContainerDefinitionArgs{\n\t\t\t\t\tName: pulumi.String(\"first-run-task\"),\n\t\t\t\t\tImage: pulumi.String(\"httpd:2.4\"),\n\t\t\t\t\tEssential: pulumi.Bool(true),\n\t\t\t\t\tPortMappings: ecs.TaskDefinitionPortMappingArray{\n\t\t\t\t\t\t\u0026ecs.TaskDefinitionPortMappingArgs{\n\t\t\t\t\t\t\tContainerPort: pulumi.Int(80),\n\t\t\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tEnvironment: ecs.TaskDefinitionKeyValuePairArray{\n\t\t\t\t\t\t\u0026ecs.TaskDefinitionKeyValuePairArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"entryPoint\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\"sh, -c\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026ecs.TaskDefinitionKeyValuePairArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"command\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\"/bin/sh -c \\\\\\\"echo '\u003chtml\u003e \u003chead\u003e \u003ctitle\u003eAmazon ECS Sample App\u003c/title\u003e \u003cstyle\u003ebody {margin-top: 40px; background-color: #333;} \u003c/style\u003e \u003c/head\u003e\u003cbody\u003e \u003cdiv style=color:white;text-align:center\u003e \u003ch1\u003eAmazon ECS Sample App\u003c/h1\u003e \u003ch2\u003eCongratulations!\u003c/h2\u003e \u003cp\u003eYour application is now running on a container in Amazon ECS.\u003c/p\u003e \u003c/div\u003e\u003c/body\u003e\u003c/html\u003e' \u003e /usr/local/apache2/htdocs/index.html \u0026\u0026 httpd-foreground\\\\\\\"\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tEnvironmentFiles: ecs.TaskDefinitionEnvironmentFileArray{},\n\t\t\t\t},\n\t\t\t},\n\t\t\tFamily: pulumi.String(\"first-run-task\"),\n\t\t\tCpu: pulumi.String(\"1 vCPU\"),\n\t\t\tMemory: pulumi.String(\"3 GB\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecsTaskDefinition\", ecsTaskDefinitionResource.ID())\n\t\treturn nil\n\t})\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws_native from \"@pulumi/aws-native\";\n\nconst ecsTaskDefinitionResource = new aws_native.ecs.TaskDefinition(\"ecsTaskDefinitionResource\", {\n containerDefinitions: [{\n name: \"first-run-task\",\n image: \"httpd:2.4\",\n essential: true,\n portMappings: [{\n containerPort: 80,\n protocol: \"tcp\",\n }],\n environment: [\n {\n name: \"entryPoint\",\n value: \"sh, -c\",\n },\n {\n name: \"command\",\n value: \"/bin/sh -c \\\\\\\"echo '\u003chtml\u003e \u003chead\u003e \u003ctitle\u003eAmazon ECS Sample App\u003c/title\u003e \u003cstyle\u003ebody {margin-top: 40px; background-color: #333;} \u003c/style\u003e \u003c/head\u003e\u003cbody\u003e \u003cdiv style=color:white;text-align:center\u003e \u003ch1\u003eAmazon ECS Sample App\u003c/h1\u003e \u003ch2\u003eCongratulations!\u003c/h2\u003e \u003cp\u003eYour application is now running on a container in Amazon ECS.\u003c/p\u003e \u003c/div\u003e\u003c/body\u003e\u003c/html\u003e' \u003e /usr/local/apache2/htdocs/index.html \u0026\u0026 httpd-foreground\\\\\\\"\",\n },\n ],\n environmentFiles: [],\n }],\n family: \"first-run-task\",\n cpu: \"1 vCPU\",\n memory: \"3 GB\",\n});\nexport const ecsTaskDefinition = ecsTaskDefinitionResource.id;\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\necs_task_definition_resource = aws_native.ecs.TaskDefinition(\"ecsTaskDefinitionResource\",\n container_definitions=[aws_native.ecs.TaskDefinitionContainerDefinitionArgs(\n name=\"first-run-task\",\n image=\"httpd:2.4\",\n essential=True,\n port_mappings=[aws_native.ecs.TaskDefinitionPortMappingArgs(\n container_port=80,\n protocol=\"tcp\",\n )],\n environment=[\n aws_native.ecs.TaskDefinitionKeyValuePairArgs(\n name=\"entryPoint\",\n value=\"sh, -c\",\n ),\n aws_native.ecs.TaskDefinitionKeyValuePairArgs(\n name=\"command\",\n value=\"/bin/sh -c \\\\\\\"echo '\u003chtml\u003e \u003chead\u003e \u003ctitle\u003eAmazon ECS Sample App\u003c/title\u003e \u003cstyle\u003ebody {margin-top: 40px; background-color: #333;} \u003c/style\u003e \u003c/head\u003e\u003cbody\u003e \u003cdiv style=color:white;text-align:center\u003e \u003ch1\u003eAmazon ECS Sample App\u003c/h1\u003e \u003ch2\u003eCongratulations!\u003c/h2\u003e \u003cp\u003eYour application is now running on a container in Amazon ECS.\u003c/p\u003e \u003c/div\u003e\u003c/body\u003e\u003c/html\u003e' \u003e /usr/local/apache2/htdocs/index.html \u0026\u0026 httpd-foreground\\\\\\\"\",\n ),\n ],\n environment_files=[],\n )],\n family=\"first-run-task\",\n cpu=\"1 vCPU\",\n memory=\"3 GB\")\npulumi.export(\"ecsTaskDefinition\", ecs_task_definition_resource.id)\n\n```\n\n{{% /example %}}\n{{% /examples %}}\n", + "description": "Registers a new task definition from the supplied ``family`` and ``containerDefinitions``. Optionally, you can add data volumes to your containers with the ``volumes`` parameter. For more information about task definition parameters and defaults, see [Amazon ECS Task Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) in the *Amazon Elastic Container Service Developer Guide*.\n You can specify a role for your task with the ``taskRoleArn`` parameter. When you specify a role for a task, its containers can then use the latest versions of the CLI or SDKs to make API requests to the AWS services that are specified in the policy that's associated with the role. For more information, see [IAM Roles for Tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*.\n You can specify a Docker networking mode for the containers in your task definition with the ``networkMode`` parameter. The available network modes correspond to those described in [Network settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#/network-settings) in the Docker run reference. If you specify the ``awsvpc`` network mode, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*.\n In the following example or examples, the Authorization header contents (``AUTHPARAMS``) must be replaced with an AWS Signature Version 4 signature. For more information, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the *General Reference*.\n You only need to learn how to sign HTTP requests if you intend to create them manually. When you use the [](https://docs.aws.amazon.com/cli/) or one of the [SDKs](https://docs.aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you, with the access key that you specify when you configure the tools. When you use these tools, you don't have to sign requests yourself.\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 taskdefinition = new AwsNative.Ecs.TaskDefinition(\"taskdefinition\", new()\n {\n RequiresCompatibilities = new[]\n {\n \"EC2\",\n },\n ContainerDefinitions = new[]\n {\n new AwsNative.Ecs.Inputs.TaskDefinitionContainerDefinitionArgs\n {\n Name = \"my-app\",\n MountPoints = new[]\n {\n new AwsNative.Ecs.Inputs.TaskDefinitionMountPointArgs\n {\n SourceVolume = \"my-vol\",\n ContainerPath = \"/var/www/my-vol\",\n },\n },\n Image = \"amazon/amazon-ecs-sample\",\n Cpu = 256,\n EntryPoint = new[]\n {\n \"/usr/sbin/apache2\",\n \"-D\",\n \"FOREGROUND\",\n },\n Memory = 512,\n Essential = true,\n },\n new AwsNative.Ecs.Inputs.TaskDefinitionContainerDefinitionArgs\n {\n Name = \"busybox\",\n Image = \"busybox\",\n Cpu = 256,\n EntryPoint = new[]\n {\n \"sh\",\n \"-c\",\n },\n Memory = 512,\n Command = new[]\n {\n \"/bin/sh -c \\\"while true; do /bin/date \u003e /var/www/my-vol/date; sleep 1; done\\\"\",\n },\n Essential = false,\n DependsOn = new[]\n {\n new AwsNative.Ecs.Inputs.TaskDefinitionContainerDependencyArgs\n {\n ContainerName = \"my-app\",\n Condition = \"START\",\n },\n },\n VolumesFrom = new[]\n {\n new AwsNative.Ecs.Inputs.TaskDefinitionVolumeFromArgs\n {\n SourceContainer = \"my-app\",\n },\n },\n },\n },\n Volumes = new[]\n {\n new AwsNative.Ecs.Inputs.TaskDefinitionVolumeArgs\n {\n Host = new AwsNative.Ecs.Inputs.TaskDefinitionHostVolumePropertiesArgs\n {\n SourcePath = \"/var/lib/docker/vfs/dir/\",\n },\n Name = \"my-vol\",\n },\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/ecs\"\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 := ecs.NewTaskDefinition(ctx, \"taskdefinition\", \u0026ecs.TaskDefinitionArgs{\n\t\t\tRequiresCompatibilities: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"EC2\"),\n\t\t\t},\n\t\t\tContainerDefinitions: ecs.TaskDefinitionContainerDefinitionArray{\n\t\t\t\t\u0026ecs.TaskDefinitionContainerDefinitionArgs{\n\t\t\t\t\tName: pulumi.String(\"my-app\"),\n\t\t\t\t\tMountPoints: ecs.TaskDefinitionMountPointArray{\n\t\t\t\t\t\t\u0026ecs.TaskDefinitionMountPointArgs{\n\t\t\t\t\t\t\tSourceVolume: pulumi.String(\"my-vol\"),\n\t\t\t\t\t\t\tContainerPath: pulumi.String(\"/var/www/my-vol\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tImage: pulumi.String(\"amazon/amazon-ecs-sample\"),\n\t\t\t\t\tCpu: pulumi.Int(256),\n\t\t\t\t\tEntryPoint: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"/usr/sbin/apache2\"),\n\t\t\t\t\t\tpulumi.String(\"-D\"),\n\t\t\t\t\t\tpulumi.String(\"FOREGROUND\"),\n\t\t\t\t\t},\n\t\t\t\t\tMemory: pulumi.Int(512),\n\t\t\t\t\tEssential: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\t\u0026ecs.TaskDefinitionContainerDefinitionArgs{\n\t\t\t\t\tName: pulumi.String(\"busybox\"),\n\t\t\t\t\tImage: pulumi.String(\"busybox\"),\n\t\t\t\t\tCpu: pulumi.Int(256),\n\t\t\t\t\tEntryPoint: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"sh\"),\n\t\t\t\t\t\tpulumi.String(\"-c\"),\n\t\t\t\t\t},\n\t\t\t\t\tMemory: pulumi.Int(512),\n\t\t\t\t\tCommand: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"/bin/sh -c \\\"while true; do /bin/date \u003e /var/www/my-vol/date; sleep 1; done\\\"\"),\n\t\t\t\t\t},\n\t\t\t\t\tEssential: pulumi.Bool(false),\n\t\t\t\t\tDependsOn: ecs.TaskDefinitionContainerDependencyArray{\n\t\t\t\t\t\t\u0026ecs.TaskDefinitionContainerDependencyArgs{\n\t\t\t\t\t\t\tContainerName: pulumi.String(\"my-app\"),\n\t\t\t\t\t\t\tCondition: pulumi.String(\"START\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tVolumesFrom: ecs.TaskDefinitionVolumeFromArray{\n\t\t\t\t\t\t\u0026ecs.TaskDefinitionVolumeFromArgs{\n\t\t\t\t\t\t\tSourceContainer: pulumi.String(\"my-app\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tVolumes: ecs.TaskDefinitionVolumeArray{\n\t\t\t\t\u0026ecs.TaskDefinitionVolumeArgs{\n\t\t\t\t\tHost: \u0026ecs.TaskDefinitionHostVolumePropertiesArgs{\n\t\t\t\t\t\tSourcePath: pulumi.String(\"/var/lib/docker/vfs/dir/\"),\n\t\t\t\t\t},\n\t\t\t\t\tName: pulumi.String(\"my-vol\"),\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 taskdefinition = new aws_native.ecs.TaskDefinition(\"taskdefinition\", {\n requiresCompatibilities: [\"EC2\"],\n containerDefinitions: [\n {\n name: \"my-app\",\n mountPoints: [{\n sourceVolume: \"my-vol\",\n containerPath: \"/var/www/my-vol\",\n }],\n image: \"amazon/amazon-ecs-sample\",\n cpu: 256,\n entryPoint: [\n \"/usr/sbin/apache2\",\n \"-D\",\n \"FOREGROUND\",\n ],\n memory: 512,\n essential: true,\n },\n {\n name: \"busybox\",\n image: \"busybox\",\n cpu: 256,\n entryPoint: [\n \"sh\",\n \"-c\",\n ],\n memory: 512,\n command: [\"/bin/sh -c \\\"while true; do /bin/date \u003e /var/www/my-vol/date; sleep 1; done\\\"\"],\n essential: false,\n dependsOn: [{\n containerName: \"my-app\",\n condition: \"START\",\n }],\n volumesFrom: [{\n sourceContainer: \"my-app\",\n }],\n },\n ],\n volumes: [{\n host: {\n sourcePath: \"/var/lib/docker/vfs/dir/\",\n },\n name: \"my-vol\",\n }],\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\ntaskdefinition = aws_native.ecs.TaskDefinition(\"taskdefinition\",\n requires_compatibilities=[\"EC2\"],\n container_definitions=[\n aws_native.ecs.TaskDefinitionContainerDefinitionArgs(\n name=\"my-app\",\n mount_points=[aws_native.ecs.TaskDefinitionMountPointArgs(\n source_volume=\"my-vol\",\n container_path=\"/var/www/my-vol\",\n )],\n image=\"amazon/amazon-ecs-sample\",\n cpu=256,\n entry_point=[\n \"/usr/sbin/apache2\",\n \"-D\",\n \"FOREGROUND\",\n ],\n memory=512,\n essential=True,\n ),\n aws_native.ecs.TaskDefinitionContainerDefinitionArgs(\n name=\"busybox\",\n image=\"busybox\",\n cpu=256,\n entry_point=[\n \"sh\",\n \"-c\",\n ],\n memory=512,\n command=[\"/bin/sh -c \\\"while true; do /bin/date \u003e /var/www/my-vol/date; sleep 1; done\\\"\"],\n essential=False,\n depends_on=[aws_native.ecs.TaskDefinitionContainerDependencyArgs(\n container_name=\"my-app\",\n condition=\"START\",\n )],\n volumes_from=[aws_native.ecs.TaskDefinitionVolumeFromArgs(\n source_container=\"my-app\",\n )],\n ),\n ],\n volumes=[aws_native.ecs.TaskDefinitionVolumeArgs(\n host=aws_native.ecs.TaskDefinitionHostVolumePropertiesArgs(\n source_path=\"/var/lib/docker/vfs/dir/\",\n ),\n name=\"my-vol\",\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 taskdefinition = new AwsNative.Ecs.TaskDefinition(\"taskdefinition\", new()\n {\n RequiresCompatibilities = new[]\n {\n \"EC2\",\n },\n ContainerDefinitions = new[]\n {\n new AwsNative.Ecs.Inputs.TaskDefinitionContainerDefinitionArgs\n {\n Name = \"my-app\",\n MountPoints = new[]\n {\n new AwsNative.Ecs.Inputs.TaskDefinitionMountPointArgs\n {\n SourceVolume = \"my-vol\",\n ContainerPath = \"/var/www/my-vol\",\n },\n },\n Image = \"amazon/amazon-ecs-sample\",\n Cpu = 256,\n EntryPoint = new[]\n {\n \"/usr/sbin/apache2\",\n \"-D\",\n \"FOREGROUND\",\n },\n Memory = 512,\n Essential = true,\n },\n new AwsNative.Ecs.Inputs.TaskDefinitionContainerDefinitionArgs\n {\n Name = \"busybox\",\n Image = \"busybox\",\n Cpu = 256,\n EntryPoint = new[]\n {\n \"sh\",\n \"-c\",\n },\n Memory = 512,\n Command = new[]\n {\n \"/bin/sh -c \\\"while true; do /bin/date \u003e /var/www/my-vol/date; sleep 1; done\\\"\",\n },\n Essential = false,\n DependsOn = new[]\n {\n new AwsNative.Ecs.Inputs.TaskDefinitionContainerDependencyArgs\n {\n ContainerName = \"my-app\",\n Condition = \"START\",\n },\n },\n VolumesFrom = new[]\n {\n new AwsNative.Ecs.Inputs.TaskDefinitionVolumeFromArgs\n {\n SourceContainer = \"my-app\",\n },\n },\n },\n },\n Volumes = new[]\n {\n new AwsNative.Ecs.Inputs.TaskDefinitionVolumeArgs\n {\n Host = new AwsNative.Ecs.Inputs.TaskDefinitionHostVolumePropertiesArgs\n {\n SourcePath = \"/var/lib/docker/vfs/dir/\",\n },\n Name = \"my-vol\",\n },\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/ecs\"\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 := ecs.NewTaskDefinition(ctx, \"taskdefinition\", \u0026ecs.TaskDefinitionArgs{\n\t\t\tRequiresCompatibilities: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"EC2\"),\n\t\t\t},\n\t\t\tContainerDefinitions: ecs.TaskDefinitionContainerDefinitionArray{\n\t\t\t\t\u0026ecs.TaskDefinitionContainerDefinitionArgs{\n\t\t\t\t\tName: pulumi.String(\"my-app\"),\n\t\t\t\t\tMountPoints: ecs.TaskDefinitionMountPointArray{\n\t\t\t\t\t\t\u0026ecs.TaskDefinitionMountPointArgs{\n\t\t\t\t\t\t\tSourceVolume: pulumi.String(\"my-vol\"),\n\t\t\t\t\t\t\tContainerPath: pulumi.String(\"/var/www/my-vol\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tImage: pulumi.String(\"amazon/amazon-ecs-sample\"),\n\t\t\t\t\tCpu: pulumi.Int(256),\n\t\t\t\t\tEntryPoint: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"/usr/sbin/apache2\"),\n\t\t\t\t\t\tpulumi.String(\"-D\"),\n\t\t\t\t\t\tpulumi.String(\"FOREGROUND\"),\n\t\t\t\t\t},\n\t\t\t\t\tMemory: pulumi.Int(512),\n\t\t\t\t\tEssential: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\t\u0026ecs.TaskDefinitionContainerDefinitionArgs{\n\t\t\t\t\tName: pulumi.String(\"busybox\"),\n\t\t\t\t\tImage: pulumi.String(\"busybox\"),\n\t\t\t\t\tCpu: pulumi.Int(256),\n\t\t\t\t\tEntryPoint: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"sh\"),\n\t\t\t\t\t\tpulumi.String(\"-c\"),\n\t\t\t\t\t},\n\t\t\t\t\tMemory: pulumi.Int(512),\n\t\t\t\t\tCommand: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"/bin/sh -c \\\"while true; do /bin/date \u003e /var/www/my-vol/date; sleep 1; done\\\"\"),\n\t\t\t\t\t},\n\t\t\t\t\tEssential: pulumi.Bool(false),\n\t\t\t\t\tDependsOn: ecs.TaskDefinitionContainerDependencyArray{\n\t\t\t\t\t\t\u0026ecs.TaskDefinitionContainerDependencyArgs{\n\t\t\t\t\t\t\tContainerName: pulumi.String(\"my-app\"),\n\t\t\t\t\t\t\tCondition: pulumi.String(\"START\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tVolumesFrom: ecs.TaskDefinitionVolumeFromArray{\n\t\t\t\t\t\t\u0026ecs.TaskDefinitionVolumeFromArgs{\n\t\t\t\t\t\t\tSourceContainer: pulumi.String(\"my-app\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tVolumes: ecs.TaskDefinitionVolumeArray{\n\t\t\t\t\u0026ecs.TaskDefinitionVolumeArgs{\n\t\t\t\t\tHost: \u0026ecs.TaskDefinitionHostVolumePropertiesArgs{\n\t\t\t\t\t\tSourcePath: pulumi.String(\"/var/lib/docker/vfs/dir/\"),\n\t\t\t\t\t},\n\t\t\t\t\tName: pulumi.String(\"my-vol\"),\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 taskdefinition = new aws_native.ecs.TaskDefinition(\"taskdefinition\", {\n requiresCompatibilities: [\"EC2\"],\n containerDefinitions: [\n {\n name: \"my-app\",\n mountPoints: [{\n sourceVolume: \"my-vol\",\n containerPath: \"/var/www/my-vol\",\n }],\n image: \"amazon/amazon-ecs-sample\",\n cpu: 256,\n entryPoint: [\n \"/usr/sbin/apache2\",\n \"-D\",\n \"FOREGROUND\",\n ],\n memory: 512,\n essential: true,\n },\n {\n name: \"busybox\",\n image: \"busybox\",\n cpu: 256,\n entryPoint: [\n \"sh\",\n \"-c\",\n ],\n memory: 512,\n command: [\"/bin/sh -c \\\"while true; do /bin/date \u003e /var/www/my-vol/date; sleep 1; done\\\"\"],\n essential: false,\n dependsOn: [{\n containerName: \"my-app\",\n condition: \"START\",\n }],\n volumesFrom: [{\n sourceContainer: \"my-app\",\n }],\n },\n ],\n volumes: [{\n host: {\n sourcePath: \"/var/lib/docker/vfs/dir/\",\n },\n name: \"my-vol\",\n }],\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\ntaskdefinition = aws_native.ecs.TaskDefinition(\"taskdefinition\",\n requires_compatibilities=[\"EC2\"],\n container_definitions=[\n aws_native.ecs.TaskDefinitionContainerDefinitionArgs(\n name=\"my-app\",\n mount_points=[aws_native.ecs.TaskDefinitionMountPointArgs(\n source_volume=\"my-vol\",\n container_path=\"/var/www/my-vol\",\n )],\n image=\"amazon/amazon-ecs-sample\",\n cpu=256,\n entry_point=[\n \"/usr/sbin/apache2\",\n \"-D\",\n \"FOREGROUND\",\n ],\n memory=512,\n essential=True,\n ),\n aws_native.ecs.TaskDefinitionContainerDefinitionArgs(\n name=\"busybox\",\n image=\"busybox\",\n cpu=256,\n entry_point=[\n \"sh\",\n \"-c\",\n ],\n memory=512,\n command=[\"/bin/sh -c \\\"while true; do /bin/date \u003e /var/www/my-vol/date; sleep 1; done\\\"\"],\n essential=False,\n depends_on=[aws_native.ecs.TaskDefinitionContainerDependencyArgs(\n container_name=\"my-app\",\n condition=\"START\",\n )],\n volumes_from=[aws_native.ecs.TaskDefinitionVolumeFromArgs(\n source_container=\"my-app\",\n )],\n ),\n ],\n volumes=[aws_native.ecs.TaskDefinitionVolumeArgs(\n host=aws_native.ecs.TaskDefinitionHostVolumePropertiesArgs(\n source_path=\"/var/lib/docker/vfs/dir/\",\n ),\n name=\"my-vol\",\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 ecsTaskDefinitionResource = new AwsNative.Ecs.TaskDefinition(\"ecsTaskDefinitionResource\", new()\n {\n ContainerDefinitions = new[]\n {\n new AwsNative.Ecs.Inputs.TaskDefinitionContainerDefinitionArgs\n {\n Name = \"first-run-task\",\n Image = \"httpd:2.4\",\n Essential = true,\n PortMappings = new[]\n {\n new AwsNative.Ecs.Inputs.TaskDefinitionPortMappingArgs\n {\n ContainerPort = 80,\n Protocol = \"tcp\",\n },\n },\n Environment = new[]\n {\n new AwsNative.Ecs.Inputs.TaskDefinitionKeyValuePairArgs\n {\n Name = \"entryPoint\",\n Value = \"sh, -c\",\n },\n new AwsNative.Ecs.Inputs.TaskDefinitionKeyValuePairArgs\n {\n Name = \"command\",\n Value = \"/bin/sh -c \\\\\\\"echo '\u003chtml\u003e \u003chead\u003e \u003ctitle\u003eAmazon ECS Sample App\u003c/title\u003e \u003cstyle\u003ebody {margin-top: 40px; background-color: #333;} \u003c/style\u003e \u003c/head\u003e\u003cbody\u003e \u003cdiv style=color:white;text-align:center\u003e \u003ch1\u003eAmazon ECS Sample App\u003c/h1\u003e \u003ch2\u003eCongratulations!\u003c/h2\u003e \u003cp\u003eYour application is now running on a container in Amazon ECS.\u003c/p\u003e \u003c/div\u003e\u003c/body\u003e\u003c/html\u003e' \u003e /usr/local/apache2/htdocs/index.html \u0026\u0026 httpd-foreground\\\\\\\"\",\n },\n },\n EnvironmentFiles = new() { },\n },\n },\n Family = \"first-run-task\",\n Cpu = \"1 vCPU\",\n Memory = \"3 GB\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"ecsTaskDefinition\"] = ecsTaskDefinitionResource.Id,\n };\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tecsTaskDefinitionResource, err := ecs.NewTaskDefinition(ctx, \"ecsTaskDefinitionResource\", \u0026ecs.TaskDefinitionArgs{\n\t\t\tContainerDefinitions: ecs.TaskDefinitionContainerDefinitionArray{\n\t\t\t\t\u0026ecs.TaskDefinitionContainerDefinitionArgs{\n\t\t\t\t\tName: pulumi.String(\"first-run-task\"),\n\t\t\t\t\tImage: pulumi.String(\"httpd:2.4\"),\n\t\t\t\t\tEssential: pulumi.Bool(true),\n\t\t\t\t\tPortMappings: ecs.TaskDefinitionPortMappingArray{\n\t\t\t\t\t\t\u0026ecs.TaskDefinitionPortMappingArgs{\n\t\t\t\t\t\t\tContainerPort: pulumi.Int(80),\n\t\t\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tEnvironment: ecs.TaskDefinitionKeyValuePairArray{\n\t\t\t\t\t\t\u0026ecs.TaskDefinitionKeyValuePairArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"entryPoint\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\"sh, -c\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026ecs.TaskDefinitionKeyValuePairArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"command\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\"/bin/sh -c \\\\\\\"echo '\u003chtml\u003e \u003chead\u003e \u003ctitle\u003eAmazon ECS Sample App\u003c/title\u003e \u003cstyle\u003ebody {margin-top: 40px; background-color: #333;} \u003c/style\u003e \u003c/head\u003e\u003cbody\u003e \u003cdiv style=color:white;text-align:center\u003e \u003ch1\u003eAmazon ECS Sample App\u003c/h1\u003e \u003ch2\u003eCongratulations!\u003c/h2\u003e \u003cp\u003eYour application is now running on a container in Amazon ECS.\u003c/p\u003e \u003c/div\u003e\u003c/body\u003e\u003c/html\u003e' \u003e /usr/local/apache2/htdocs/index.html \u0026\u0026 httpd-foreground\\\\\\\"\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tEnvironmentFiles: ecs.TaskDefinitionEnvironmentFileArray{},\n\t\t\t\t},\n\t\t\t},\n\t\t\tFamily: pulumi.String(\"first-run-task\"),\n\t\t\tCpu: pulumi.String(\"1 vCPU\"),\n\t\t\tMemory: pulumi.String(\"3 GB\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecsTaskDefinition\", ecsTaskDefinitionResource.ID())\n\t\treturn nil\n\t})\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws_native from \"@pulumi/aws-native\";\n\nconst ecsTaskDefinitionResource = new aws_native.ecs.TaskDefinition(\"ecsTaskDefinitionResource\", {\n containerDefinitions: [{\n name: \"first-run-task\",\n image: \"httpd:2.4\",\n essential: true,\n portMappings: [{\n containerPort: 80,\n protocol: \"tcp\",\n }],\n environment: [\n {\n name: \"entryPoint\",\n value: \"sh, -c\",\n },\n {\n name: \"command\",\n value: \"/bin/sh -c \\\\\\\"echo '\u003chtml\u003e \u003chead\u003e \u003ctitle\u003eAmazon ECS Sample App\u003c/title\u003e \u003cstyle\u003ebody {margin-top: 40px; background-color: #333;} \u003c/style\u003e \u003c/head\u003e\u003cbody\u003e \u003cdiv style=color:white;text-align:center\u003e \u003ch1\u003eAmazon ECS Sample App\u003c/h1\u003e \u003ch2\u003eCongratulations!\u003c/h2\u003e \u003cp\u003eYour application is now running on a container in Amazon ECS.\u003c/p\u003e \u003c/div\u003e\u003c/body\u003e\u003c/html\u003e' \u003e /usr/local/apache2/htdocs/index.html \u0026\u0026 httpd-foreground\\\\\\\"\",\n },\n ],\n environmentFiles: [],\n }],\n family: \"first-run-task\",\n cpu: \"1 vCPU\",\n memory: \"3 GB\",\n});\nexport const ecsTaskDefinition = ecsTaskDefinitionResource.id;\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\necs_task_definition_resource = aws_native.ecs.TaskDefinition(\"ecsTaskDefinitionResource\",\n container_definitions=[aws_native.ecs.TaskDefinitionContainerDefinitionArgs(\n name=\"first-run-task\",\n image=\"httpd:2.4\",\n essential=True,\n port_mappings=[aws_native.ecs.TaskDefinitionPortMappingArgs(\n container_port=80,\n protocol=\"tcp\",\n )],\n environment=[\n aws_native.ecs.TaskDefinitionKeyValuePairArgs(\n name=\"entryPoint\",\n value=\"sh, -c\",\n ),\n aws_native.ecs.TaskDefinitionKeyValuePairArgs(\n name=\"command\",\n value=\"/bin/sh -c \\\\\\\"echo '\u003chtml\u003e \u003chead\u003e \u003ctitle\u003eAmazon ECS Sample App\u003c/title\u003e \u003cstyle\u003ebody {margin-top: 40px; background-color: #333;} \u003c/style\u003e \u003c/head\u003e\u003cbody\u003e \u003cdiv style=color:white;text-align:center\u003e \u003ch1\u003eAmazon ECS Sample App\u003c/h1\u003e \u003ch2\u003eCongratulations!\u003c/h2\u003e \u003cp\u003eYour application is now running on a container in Amazon ECS.\u003c/p\u003e \u003c/div\u003e\u003c/body\u003e\u003c/html\u003e' \u003e /usr/local/apache2/htdocs/index.html \u0026\u0026 httpd-foreground\\\\\\\"\",\n ),\n ],\n environment_files=[],\n )],\n family=\"first-run-task\",\n cpu=\"1 vCPU\",\n memory=\"3 GB\")\npulumi.export(\"ecsTaskDefinition\", ecs_task_definition_resource.id)\n\n```\n\n{{% /example %}}\n{{% example %}}\n### Example\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AwsNative = Pulumi.AwsNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var ecsTaskDefinitionResource = new AwsNative.Ecs.TaskDefinition(\"ecsTaskDefinitionResource\", new()\n {\n ContainerDefinitions = new[]\n {\n new AwsNative.Ecs.Inputs.TaskDefinitionContainerDefinitionArgs\n {\n Name = \"first-run-task\",\n Image = \"httpd:2.4\",\n Essential = true,\n PortMappings = new[]\n {\n new AwsNative.Ecs.Inputs.TaskDefinitionPortMappingArgs\n {\n ContainerPort = 80,\n Protocol = \"tcp\",\n },\n },\n Environment = new[]\n {\n new AwsNative.Ecs.Inputs.TaskDefinitionKeyValuePairArgs\n {\n Name = \"entryPoint\",\n Value = \"sh, -c\",\n },\n new AwsNative.Ecs.Inputs.TaskDefinitionKeyValuePairArgs\n {\n Name = \"command\",\n Value = \"/bin/sh -c \\\\\\\"echo '\u003chtml\u003e \u003chead\u003e \u003ctitle\u003eAmazon ECS Sample App\u003c/title\u003e \u003cstyle\u003ebody {margin-top: 40px; background-color: #333;} \u003c/style\u003e \u003c/head\u003e\u003cbody\u003e \u003cdiv style=color:white;text-align:center\u003e \u003ch1\u003eAmazon ECS Sample App\u003c/h1\u003e \u003ch2\u003eCongratulations!\u003c/h2\u003e \u003cp\u003eYour application is now running on a container in Amazon ECS.\u003c/p\u003e \u003c/div\u003e\u003c/body\u003e\u003c/html\u003e' \u003e /usr/local/apache2/htdocs/index.html \u0026\u0026 httpd-foreground\\\\\\\"\",\n },\n },\n EnvironmentFiles = new() { },\n },\n },\n Family = \"first-run-task\",\n Cpu = \"1 vCPU\",\n Memory = \"3 GB\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"ecsTaskDefinition\"] = ecsTaskDefinitionResource.Id,\n };\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tecsTaskDefinitionResource, err := ecs.NewTaskDefinition(ctx, \"ecsTaskDefinitionResource\", \u0026ecs.TaskDefinitionArgs{\n\t\t\tContainerDefinitions: ecs.TaskDefinitionContainerDefinitionArray{\n\t\t\t\t\u0026ecs.TaskDefinitionContainerDefinitionArgs{\n\t\t\t\t\tName: pulumi.String(\"first-run-task\"),\n\t\t\t\t\tImage: pulumi.String(\"httpd:2.4\"),\n\t\t\t\t\tEssential: pulumi.Bool(true),\n\t\t\t\t\tPortMappings: ecs.TaskDefinitionPortMappingArray{\n\t\t\t\t\t\t\u0026ecs.TaskDefinitionPortMappingArgs{\n\t\t\t\t\t\t\tContainerPort: pulumi.Int(80),\n\t\t\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tEnvironment: ecs.TaskDefinitionKeyValuePairArray{\n\t\t\t\t\t\t\u0026ecs.TaskDefinitionKeyValuePairArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"entryPoint\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\"sh, -c\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026ecs.TaskDefinitionKeyValuePairArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"command\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\"/bin/sh -c \\\\\\\"echo '\u003chtml\u003e \u003chead\u003e \u003ctitle\u003eAmazon ECS Sample App\u003c/title\u003e \u003cstyle\u003ebody {margin-top: 40px; background-color: #333;} \u003c/style\u003e \u003c/head\u003e\u003cbody\u003e \u003cdiv style=color:white;text-align:center\u003e \u003ch1\u003eAmazon ECS Sample App\u003c/h1\u003e \u003ch2\u003eCongratulations!\u003c/h2\u003e \u003cp\u003eYour application is now running on a container in Amazon ECS.\u003c/p\u003e \u003c/div\u003e\u003c/body\u003e\u003c/html\u003e' \u003e /usr/local/apache2/htdocs/index.html \u0026\u0026 httpd-foreground\\\\\\\"\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tEnvironmentFiles: ecs.TaskDefinitionEnvironmentFileArray{},\n\t\t\t\t},\n\t\t\t},\n\t\t\tFamily: pulumi.String(\"first-run-task\"),\n\t\t\tCpu: pulumi.String(\"1 vCPU\"),\n\t\t\tMemory: pulumi.String(\"3 GB\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecsTaskDefinition\", ecsTaskDefinitionResource.ID())\n\t\treturn nil\n\t})\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws_native from \"@pulumi/aws-native\";\n\nconst ecsTaskDefinitionResource = new aws_native.ecs.TaskDefinition(\"ecsTaskDefinitionResource\", {\n containerDefinitions: [{\n name: \"first-run-task\",\n image: \"httpd:2.4\",\n essential: true,\n portMappings: [{\n containerPort: 80,\n protocol: \"tcp\",\n }],\n environment: [\n {\n name: \"entryPoint\",\n value: \"sh, -c\",\n },\n {\n name: \"command\",\n value: \"/bin/sh -c \\\\\\\"echo '\u003chtml\u003e \u003chead\u003e \u003ctitle\u003eAmazon ECS Sample App\u003c/title\u003e \u003cstyle\u003ebody {margin-top: 40px; background-color: #333;} \u003c/style\u003e \u003c/head\u003e\u003cbody\u003e \u003cdiv style=color:white;text-align:center\u003e \u003ch1\u003eAmazon ECS Sample App\u003c/h1\u003e \u003ch2\u003eCongratulations!\u003c/h2\u003e \u003cp\u003eYour application is now running on a container in Amazon ECS.\u003c/p\u003e \u003c/div\u003e\u003c/body\u003e\u003c/html\u003e' \u003e /usr/local/apache2/htdocs/index.html \u0026\u0026 httpd-foreground\\\\\\\"\",\n },\n ],\n environmentFiles: [],\n }],\n family: \"first-run-task\",\n cpu: \"1 vCPU\",\n memory: \"3 GB\",\n});\nexport const ecsTaskDefinition = ecsTaskDefinitionResource.id;\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\necs_task_definition_resource = aws_native.ecs.TaskDefinition(\"ecsTaskDefinitionResource\",\n container_definitions=[aws_native.ecs.TaskDefinitionContainerDefinitionArgs(\n name=\"first-run-task\",\n image=\"httpd:2.4\",\n essential=True,\n port_mappings=[aws_native.ecs.TaskDefinitionPortMappingArgs(\n container_port=80,\n protocol=\"tcp\",\n )],\n environment=[\n aws_native.ecs.TaskDefinitionKeyValuePairArgs(\n name=\"entryPoint\",\n value=\"sh, -c\",\n ),\n aws_native.ecs.TaskDefinitionKeyValuePairArgs(\n name=\"command\",\n value=\"/bin/sh -c \\\\\\\"echo '\u003chtml\u003e \u003chead\u003e \u003ctitle\u003eAmazon ECS Sample App\u003c/title\u003e \u003cstyle\u003ebody {margin-top: 40px; background-color: #333;} \u003c/style\u003e \u003c/head\u003e\u003cbody\u003e \u003cdiv style=color:white;text-align:center\u003e \u003ch1\u003eAmazon ECS Sample App\u003c/h1\u003e \u003ch2\u003eCongratulations!\u003c/h2\u003e \u003cp\u003eYour application is now running on a container in Amazon ECS.\u003c/p\u003e \u003c/div\u003e\u003c/body\u003e\u003c/html\u003e' \u003e /usr/local/apache2/htdocs/index.html \u0026\u0026 httpd-foreground\\\\\\\"\",\n ),\n ],\n environment_files=[],\n )],\n family=\"first-run-task\",\n cpu=\"1 vCPU\",\n memory=\"3 GB\")\npulumi.export(\"ecsTaskDefinition\", ecs_task_definition_resource.id)\n\n```\n\n{{% /example %}}\n{{% /examples %}}\n", "properties": { "containerDefinitions": { "type": "array", @@ -162947,7 +167878,7 @@ }, "cpu": { "type": "string", - "description": "The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter.\n The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.\n + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)\n + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)\n + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)\n + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)\n + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)\n + 8192 (8 vCPU) - Available ``memory`` va", + "description": "The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter.\n The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.\n + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)\n + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)\n + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)\n + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)\n + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)\n + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments\n This option requires Linux platform ``1.4.0`` or later.\n + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments\n This option requires Linux platform ``1.4.0`` or later.", "replaceOnChanges": true }, "ephemeralStorage": { @@ -162975,22 +167906,22 @@ }, "ipcMode": { "type": "string", - "description": "The IPC resource namespace to use for the containers in the task. The valid values are ``host``, ``task``, or ``none``. If ``host`` is specified, then all containers within the tasks that specified the ``host`` IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If ``task`` is specified, all containers within the specified task share the same IPC resources. If ``none`` is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see [IPC settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#ipc-settings---ipc) in the *Docker run reference*.\n If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more inform", + "description": "The IPC resource namespace to use for the containers in the task. The valid values are ``host``, ``task``, or ``none``. If ``host`` is specified, then all containers within the tasks that specified the ``host`` IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If ``task`` is specified, all containers within the specified task share the same IPC resources. If ``none`` is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see [IPC settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#ipc-settings---ipc) in the *Docker run reference*.\n If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/).\n If you are setting namespaced kernel parameters using ``systemControls`` for the containers in the task, the following will apply to your IPC resource namespace. For more information, see [System Controls](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html) in the *Amazon Elastic Container Service Developer Guide*.\n + For tasks that use the ``host`` IPC mode, IPC namespace related ``systemControls`` are not supported.\n + For tasks that use the ``task`` IPC mode, IPC namespace related ``systemControls`` will apply to all containers within a task.\n \n This parameter is not supported for Windows containers or tasks run on FARGATElong.", "replaceOnChanges": true }, "memory": { "type": "string", - "description": "The amount (in MiB) of memory used by the task.\n If your tasks runs on Amazon EC2 instances, you must specify either a task-level memory value or a container-level memory value. This field is optional and any value can be used. If a task-level memory value is specified, the container-level memory value is optional. For more information regarding container-level memory and memory reservation, see [ContainerDefinition](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html).\n If your tasks runs on FARGATElong, this field is required. You must use one of the following values. The value you choose determines your range of valid values for the ``cpu`` parameter.\n + 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available ``cpu`` values: 256 (.25 vCPU)\n + 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available ``cpu`` values: 512 (.5 vCPU)\n + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` va", + "description": "The amount (in MiB) of memory used by the task.\n If your tasks runs on Amazon EC2 instances, you must specify either a task-level memory value or a container-level memory value. This field is optional and any value can be used. If a task-level memory value is specified, the container-level memory value is optional. For more information regarding container-level memory and memory reservation, see [ContainerDefinition](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html).\n If your tasks runs on FARGATElong, this field is required. You must use one of the following values. The value you choose determines your range of valid values for the ``cpu`` parameter.\n + 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available ``cpu`` values: 256 (.25 vCPU)\n + 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available ``cpu`` values: 512 (.5 vCPU)\n + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` values: 1024 (1 vCPU)\n + Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 2048 (2 vCPU)\n + Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 4096 (4 vCPU)\n + Between 16 GB and 60 GB in 4 GB increments - Available ``cpu`` values: 8192 (8 vCPU)\n This option requires Linux platform ``1.4.0`` or later.\n + Between 32GB and 120 GB in 8 GB increments - Available ``cpu`` values: 16384 (16 vCPU)\n This option requires Linux platform ``1.4.0`` or later.", "replaceOnChanges": true }, "networkMode": { "type": "string", - "description": "The Docker networking mode to use for the containers in the task. The valid values are ``none``, ``bridge``, ``awsvpc``, and ``host``. If no network mode is specified, the default is ``bridge``.\n For Amazon ECS tasks on Fargate, the ``awsvpc`` network mode is required. For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, ``\u003cdefault\u003e`` or ``awsvpc`` can be used. If the network mode is set to ``none``, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The ``host`` and ``awsvpc`` network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the ``bridge`` mode.\n With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elasti", + "description": "The Docker networking mode to use for the containers in the task. The valid values are ``none``, ``bridge``, ``awsvpc``, and ``host``. If no network mode is specified, the default is ``bridge``.\n For Amazon ECS tasks on Fargate, the ``awsvpc`` network mode is required. For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, ``\u003cdefault\u003e`` or ``awsvpc`` can be used. If the network mode is set to ``none``, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The ``host`` and ``awsvpc`` network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the ``bridge`` mode.\n With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elastic network interface port (for the ``awsvpc`` network mode), so you cannot take advantage of dynamic host port mappings. \n When using the ``host`` network mode, you should not run containers using the root user (UID 0). It is considered best practice to use a non-root user.\n If the network mode is ``awsvpc``, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration value when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*.\n If the network mode is ``host``, you cannot run multiple instantiations of the same task on a single container instance when port mappings are used.\n For more information, see [Network settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#network-settings) in the *Docker run reference*.", "replaceOnChanges": true }, "pidMode": { "type": "string", - "description": "The process namespace to use for the containers in the task. The valid values are ``host`` or ``task``. On Fargate for Linux containers, the only valid value is ``task``. For example, monitoring sidecars might need ``pidMode`` to access information about other containers running in the same task.\n If ``host`` is specified, all containers within the tasks that specified the ``host`` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance.\n If ``task`` is specified, all containers within the specified task share the same process namespace.\n If no value is specified, the default is a private namespace for each container. For more information, see [PID settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#pid-settings---pid) in the *Docker run reference*.\n If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://doc", + "description": "The process namespace to use for the containers in the task. The valid values are ``host`` or ``task``. On Fargate for Linux containers, the only valid value is ``task``. For example, monitoring sidecars might need ``pidMode`` to access information about other containers running in the same task.\n If ``host`` is specified, all containers within the tasks that specified the ``host`` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance.\n If ``task`` is specified, all containers within the specified task share the same process namespace.\n If no value is specified, the default is a private namespace for each container. For more information, see [PID settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#pid-settings---pid) in the *Docker run reference*.\n If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/).\n This parameter is not supported for Windows containers.\n This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate.", "replaceOnChanges": true }, "placementConstraints": { @@ -163024,7 +167955,7 @@ "items": { "$ref": "#/types/aws-native:index:Tag" }, - "description": "The metadata that you apply to the task definition to help you categorize and organize them. Each tag consists of a key and an optional value. You define both of them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values" + "description": "The metadata that you apply to the task definition to help you categorize and organize them. Each tag consists of a key and an optional value. You define both of them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit." }, "taskDefinitionArn": { "type": "string" @@ -163057,7 +167988,7 @@ }, "cpu": { "type": "string", - "description": "The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter.\n The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.\n + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)\n + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)\n + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)\n + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)\n + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)\n + 8192 (8 vCPU) - Available ``memory`` va" + "description": "The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter.\n The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.\n + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)\n + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)\n + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)\n + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)\n + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)\n + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments\n This option requires Linux platform ``1.4.0`` or later.\n + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments\n This option requires Linux platform ``1.4.0`` or later." }, "ephemeralStorage": { "$ref": "#/types/aws-native:ecs:TaskDefinitionEphemeralStorage", @@ -163080,19 +168011,19 @@ }, "ipcMode": { "type": "string", - "description": "The IPC resource namespace to use for the containers in the task. The valid values are ``host``, ``task``, or ``none``. If ``host`` is specified, then all containers within the tasks that specified the ``host`` IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If ``task`` is specified, all containers within the specified task share the same IPC resources. If ``none`` is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see [IPC settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#ipc-settings---ipc) in the *Docker run reference*.\n If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more inform" + "description": "The IPC resource namespace to use for the containers in the task. The valid values are ``host``, ``task``, or ``none``. If ``host`` is specified, then all containers within the tasks that specified the ``host`` IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If ``task`` is specified, all containers within the specified task share the same IPC resources. If ``none`` is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see [IPC settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#ipc-settings---ipc) in the *Docker run reference*.\n If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/).\n If you are setting namespaced kernel parameters using ``systemControls`` for the containers in the task, the following will apply to your IPC resource namespace. For more information, see [System Controls](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html) in the *Amazon Elastic Container Service Developer Guide*.\n + For tasks that use the ``host`` IPC mode, IPC namespace related ``systemControls`` are not supported.\n + For tasks that use the ``task`` IPC mode, IPC namespace related ``systemControls`` will apply to all containers within a task.\n \n This parameter is not supported for Windows containers or tasks run on FARGATElong." }, "memory": { "type": "string", - "description": "The amount (in MiB) of memory used by the task.\n If your tasks runs on Amazon EC2 instances, you must specify either a task-level memory value or a container-level memory value. This field is optional and any value can be used. If a task-level memory value is specified, the container-level memory value is optional. For more information regarding container-level memory and memory reservation, see [ContainerDefinition](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html).\n If your tasks runs on FARGATElong, this field is required. You must use one of the following values. The value you choose determines your range of valid values for the ``cpu`` parameter.\n + 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available ``cpu`` values: 256 (.25 vCPU)\n + 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available ``cpu`` values: 512 (.5 vCPU)\n + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` va" + "description": "The amount (in MiB) of memory used by the task.\n If your tasks runs on Amazon EC2 instances, you must specify either a task-level memory value or a container-level memory value. This field is optional and any value can be used. If a task-level memory value is specified, the container-level memory value is optional. For more information regarding container-level memory and memory reservation, see [ContainerDefinition](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html).\n If your tasks runs on FARGATElong, this field is required. You must use one of the following values. The value you choose determines your range of valid values for the ``cpu`` parameter.\n + 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available ``cpu`` values: 256 (.25 vCPU)\n + 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available ``cpu`` values: 512 (.5 vCPU)\n + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` values: 1024 (1 vCPU)\n + Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 2048 (2 vCPU)\n + Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 4096 (4 vCPU)\n + Between 16 GB and 60 GB in 4 GB increments - Available ``cpu`` values: 8192 (8 vCPU)\n This option requires Linux platform ``1.4.0`` or later.\n + Between 32GB and 120 GB in 8 GB increments - Available ``cpu`` values: 16384 (16 vCPU)\n This option requires Linux platform ``1.4.0`` or later." }, "networkMode": { "type": "string", - "description": "The Docker networking mode to use for the containers in the task. The valid values are ``none``, ``bridge``, ``awsvpc``, and ``host``. If no network mode is specified, the default is ``bridge``.\n For Amazon ECS tasks on Fargate, the ``awsvpc`` network mode is required. For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, ``\u003cdefault\u003e`` or ``awsvpc`` can be used. If the network mode is set to ``none``, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The ``host`` and ``awsvpc`` network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the ``bridge`` mode.\n With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elasti" + "description": "The Docker networking mode to use for the containers in the task. The valid values are ``none``, ``bridge``, ``awsvpc``, and ``host``. If no network mode is specified, the default is ``bridge``.\n For Amazon ECS tasks on Fargate, the ``awsvpc`` network mode is required. For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, ``\u003cdefault\u003e`` or ``awsvpc`` can be used. If the network mode is set to ``none``, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The ``host`` and ``awsvpc`` network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the ``bridge`` mode.\n With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elastic network interface port (for the ``awsvpc`` network mode), so you cannot take advantage of dynamic host port mappings. \n When using the ``host`` network mode, you should not run containers using the root user (UID 0). It is considered best practice to use a non-root user.\n If the network mode is ``awsvpc``, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration value when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*.\n If the network mode is ``host``, you cannot run multiple instantiations of the same task on a single container instance when port mappings are used.\n For more information, see [Network settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#network-settings) in the *Docker run reference*." }, "pidMode": { "type": "string", - "description": "The process namespace to use for the containers in the task. The valid values are ``host`` or ``task``. On Fargate for Linux containers, the only valid value is ``task``. For example, monitoring sidecars might need ``pidMode`` to access information about other containers running in the same task.\n If ``host`` is specified, all containers within the tasks that specified the ``host`` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance.\n If ``task`` is specified, all containers within the specified task share the same process namespace.\n If no value is specified, the default is a private namespace for each container. For more information, see [PID settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#pid-settings---pid) in the *Docker run reference*.\n If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://doc" + "description": "The process namespace to use for the containers in the task. The valid values are ``host`` or ``task``. On Fargate for Linux containers, the only valid value is ``task``. For example, monitoring sidecars might need ``pidMode`` to access information about other containers running in the same task.\n If ``host`` is specified, all containers within the tasks that specified the ``host`` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance.\n If ``task`` is specified, all containers within the specified task share the same process namespace.\n If no value is specified, the default is a private namespace for each container. For more information, see [PID settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#pid-settings---pid) in the *Docker run reference*.\n If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/).\n This parameter is not supported for Windows containers.\n This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate." }, "placementConstraints": { "type": "array", @@ -163121,7 +168052,7 @@ "items": { "$ref": "#/types/aws-native:index:Tag" }, - "description": "The metadata that you apply to the task definition to help you categorize and organize them. Each tag consists of a key and an optional value. You define both of them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values" + "description": "The metadata that you apply to the task definition to help you categorize and organize them. Each tag consists of a key and an optional value. You define both of them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit." }, "taskRoleArn": { "type": "string", @@ -166377,7 +171308,6 @@ "createdAt", "idMappingTechniques", "inputSourceConfig", - "outputSourceConfig", "roleArn", "updatedAt", "workflowArn", @@ -166420,10 +171350,100 @@ "requiredInputs": [ "idMappingTechniques", "inputSourceConfig", - "outputSourceConfig", "roleArn" ] }, + "aws-native:entityresolution:IdNamespace": { + "description": "IdNamespace defined in AWS Entity Resolution service", + "properties": { + "createdAt": { + "type": "string", + "description": "The date and time when the IdNamespace was created" + }, + "description": { + "type": "string" + }, + "idMappingWorkflowProperties": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:entityresolution:IdNamespaceIdMappingWorkflowProperties" + } + }, + "idNamespaceArn": { + "type": "string", + "description": "The arn associated with the IdNamespace" + }, + "idNamespaceName": { + "type": "string", + "replaceOnChanges": true + }, + "inputSourceConfig": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:entityresolution:IdNamespaceInputSource" + } + }, + "roleArn": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + } + }, + "type": { + "$ref": "#/types/aws-native:entityresolution:IdNamespaceType" + }, + "updatedAt": { + "type": "string", + "description": "The date and time when the IdNamespace was updated" + } + }, + "type": "object", + "required": [ + "createdAt", + "idNamespaceArn", + "idNamespaceName", + "type", + "updatedAt" + ], + "inputProperties": { + "description": { + "type": "string" + }, + "idMappingWorkflowProperties": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:entityresolution:IdNamespaceIdMappingWorkflowProperties" + } + }, + "idNamespaceName": { + "type": "string" + }, + "inputSourceConfig": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:entityresolution:IdNamespaceInputSource" + } + }, + "roleArn": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + } + }, + "type": { + "$ref": "#/types/aws-native:entityresolution:IdNamespaceType" + } + }, + "requiredInputs": [ + "type" + ] + }, "aws-native:entityresolution:MatchingWorkflow": { "description": "MatchingWorkflow defined in AWS Entity Resolution service", "properties": { @@ -166522,6 +171542,72 @@ "roleArn" ] }, + "aws-native:entityresolution:PolicyStatement": { + "description": "Policy Statement defined in AWS Entity Resolution Service", + "properties": { + "action": { + "type": "array", + "items": { + "type": "string" + } + }, + "arn": { + "type": "string", + "replaceOnChanges": true + }, + "condition": { + "type": "string" + }, + "effect": { + "$ref": "#/types/aws-native:entityresolution:PolicyStatementStatementEffect" + }, + "principal": { + "type": "array", + "items": { + "type": "string" + } + }, + "statementId": { + "type": "string", + "replaceOnChanges": true + } + }, + "type": "object", + "required": [ + "arn", + "statementId" + ], + "inputProperties": { + "action": { + "type": "array", + "items": { + "type": "string" + } + }, + "arn": { + "type": "string" + }, + "condition": { + "type": "string" + }, + "effect": { + "$ref": "#/types/aws-native:entityresolution:PolicyStatementStatementEffect" + }, + "principal": { + "type": "array", + "items": { + "type": "string" + } + }, + "statementId": { + "type": "string" + } + }, + "requiredInputs": [ + "arn", + "statementId" + ] + }, "aws-native:entityresolution:SchemaMapping": { "description": "SchemaMapping defined in AWS Entity Resolution service", "properties": { @@ -169341,7 +174427,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 +174458,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 +174477,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 +174498,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 +174525,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 +174544,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 +176692,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 +176713,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 +176774,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": [ @@ -178239,6 +183317,53 @@ } } }, + "aws-native:ivs:EncoderConfiguration": { + "description": "Resource Type definition for AWS::IVS::EncoderConfiguration.", + "properties": { + "arn": { + "type": "string", + "description": "Encoder configuration identifier." + }, + "name": { + "type": "string", + "description": "Encoder configuration name.", + "replaceOnChanges": true + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An array of key-value pairs to apply to this resource." + }, + "video": { + "$ref": "#/types/aws-native:ivs:VideoProperties", + "description": "Video configuration. Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps", + "replaceOnChanges": true + } + }, + "type": "object", + "required": [ + "arn" + ], + "inputProperties": { + "name": { + "type": "string", + "description": "Encoder configuration name." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An array of key-value pairs to apply to this resource." + }, + "video": { + "$ref": "#/types/aws-native:ivs:VideoProperties", + "description": "Video configuration. Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps" + } + } + }, "aws-native:ivs:PlaybackKeyPair": { "description": "Resource Type definition for AWS::IVS::PlaybackKeyPair\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 playbackKeyPair = new AwsNative.Ivs.PlaybackKeyPair(\"playbackKeyPair\", new()\n {\n PublicKeyMaterial = @\"-----BEGIN PUBLIC KEY-----\nMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEwOR43ETwEoWif1i14aL8GtDMNkT/kBQm\nh4sas9P//bjCU988rmQQXVBfftKT9xngg+W6hzOEpeUlCRlAtz6b6U79naYYRaSk\nK/UhYGWkXlbJlc9zn13imYWgVGe/BMFp\n-----END PUBLIC KEY-----\n\",\n Name = \"MyPlaybackKeyPair\",\n Tags = new[]\n {\n new AwsNative.Inputs.TagArgs\n {\n Key = \"MyKey\",\n Value = \"MyValue\",\n },\n },\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"playbackKeyPairArn\"] = playbackKeyPair.Id,\n [\"playbackKeyPairFingerprint\"] = playbackKeyPair.Fingerprint,\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/ivs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tplaybackKeyPair, err := ivs.NewPlaybackKeyPair(ctx, \"playbackKeyPair\", \u0026ivs.PlaybackKeyPairArgs{\n\t\t\tPublicKeyMaterial: pulumi.String(`-----BEGIN PUBLIC KEY-----\nMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEwOR43ETwEoWif1i14aL8GtDMNkT/kBQm\nh4sas9P//bjCU988rmQQXVBfftKT9xngg+W6hzOEpeUlCRlAtz6b6U79naYYRaSk\nK/UhYGWkXlbJlc9zn13imYWgVGe/BMFp\n-----END PUBLIC KEY-----\n`),\n\t\t\tName: pulumi.String(\"MyPlaybackKeyPair\"),\n\t\t\tTags: aws.TagArray{\n\t\t\t\t\u0026aws.TagArgs{\n\t\t\t\t\tKey: pulumi.String(\"MyKey\"),\n\t\t\t\t\tValue: pulumi.String(\"MyValue\"),\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\tctx.Export(\"playbackKeyPairArn\", playbackKeyPair.ID())\n\t\tctx.Export(\"playbackKeyPairFingerprint\", playbackKeyPair.Fingerprint)\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 playbackKeyPair = new aws_native.ivs.PlaybackKeyPair(\"playbackKeyPair\", {\n publicKeyMaterial: `-----BEGIN PUBLIC KEY-----\nMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEwOR43ETwEoWif1i14aL8GtDMNkT/kBQm\nh4sas9P//bjCU988rmQQXVBfftKT9xngg+W6hzOEpeUlCRlAtz6b6U79naYYRaSk\nK/UhYGWkXlbJlc9zn13imYWgVGe/BMFp\n-----END PUBLIC KEY-----\n`,\n name: \"MyPlaybackKeyPair\",\n tags: [{\n key: \"MyKey\",\n value: \"MyValue\",\n }],\n});\nexport const playbackKeyPairArn = playbackKeyPair.id;\nexport const playbackKeyPairFingerprint = playbackKeyPair.fingerprint;\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\nplayback_key_pair = aws_native.ivs.PlaybackKeyPair(\"playbackKeyPair\",\n public_key_material=\"\"\"-----BEGIN PUBLIC KEY-----\nMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEwOR43ETwEoWif1i14aL8GtDMNkT/kBQm\nh4sas9P//bjCU988rmQQXVBfftKT9xngg+W6hzOEpeUlCRlAtz6b6U79naYYRaSk\nK/UhYGWkXlbJlc9zn13imYWgVGe/BMFp\n-----END PUBLIC KEY-----\n\"\"\",\n name=\"MyPlaybackKeyPair\",\n tags=[aws_native.TagArgs(\n key=\"MyKey\",\n value=\"MyValue\",\n )])\npulumi.export(\"playbackKeyPairArn\", playback_key_pair.id)\npulumi.export(\"playbackKeyPairFingerprint\", playback_key_pair.fingerprint)\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 playbackKeyPair = new AwsNative.Ivs.PlaybackKeyPair(\"playbackKeyPair\", new()\n {\n PublicKeyMaterial = @\"-----BEGIN PUBLIC KEY-----\nMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEwOR43ETwEoWif1i14aL8GtDMNkT/kBQm\nh4sas9P//bjCU988rmQQXVBfftKT9xngg+W6hzOEpeUlCRlAtz6b6U79naYYRaSk\nK/UhYGWkXlbJlc9zn13imYWgVGe/BMFp\n-----END PUBLIC KEY-----\n\",\n Name = \"MyPlaybackKeyPair\",\n Tags = new[]\n {\n new AwsNative.Inputs.TagArgs\n {\n Key = \"MyKey\",\n Value = \"MyValue\",\n },\n },\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"playbackKeyPairArn\"] = playbackKeyPair.Id,\n [\"playbackKeyPairFingerprint\"] = playbackKeyPair.Fingerprint,\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/ivs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tplaybackKeyPair, err := ivs.NewPlaybackKeyPair(ctx, \"playbackKeyPair\", \u0026ivs.PlaybackKeyPairArgs{\n\t\t\tPublicKeyMaterial: pulumi.String(`-----BEGIN PUBLIC KEY-----\nMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEwOR43ETwEoWif1i14aL8GtDMNkT/kBQm\nh4sas9P//bjCU988rmQQXVBfftKT9xngg+W6hzOEpeUlCRlAtz6b6U79naYYRaSk\nK/UhYGWkXlbJlc9zn13imYWgVGe/BMFp\n-----END PUBLIC KEY-----\n`),\n\t\t\tName: pulumi.String(\"MyPlaybackKeyPair\"),\n\t\t\tTags: aws.TagArray{\n\t\t\t\t\u0026aws.TagArgs{\n\t\t\t\t\tKey: pulumi.String(\"MyKey\"),\n\t\t\t\t\tValue: pulumi.String(\"MyValue\"),\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\tctx.Export(\"playbackKeyPairArn\", playbackKeyPair.ID())\n\t\tctx.Export(\"playbackKeyPairFingerprint\", playbackKeyPair.Fingerprint)\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 playbackKeyPair = new aws_native.ivs.PlaybackKeyPair(\"playbackKeyPair\", {\n publicKeyMaterial: `-----BEGIN PUBLIC KEY-----\nMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEwOR43ETwEoWif1i14aL8GtDMNkT/kBQm\nh4sas9P//bjCU988rmQQXVBfftKT9xngg+W6hzOEpeUlCRlAtz6b6U79naYYRaSk\nK/UhYGWkXlbJlc9zn13imYWgVGe/BMFp\n-----END PUBLIC KEY-----\n`,\n name: \"MyPlaybackKeyPair\",\n tags: [{\n key: \"MyKey\",\n value: \"MyValue\",\n }],\n});\nexport const playbackKeyPairArn = playbackKeyPair.id;\nexport const playbackKeyPairFingerprint = playbackKeyPair.fingerprint;\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\nplayback_key_pair = aws_native.ivs.PlaybackKeyPair(\"playbackKeyPair\",\n public_key_material=\"\"\"-----BEGIN PUBLIC KEY-----\nMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEwOR43ETwEoWif1i14aL8GtDMNkT/kBQm\nh4sas9P//bjCU988rmQQXVBfftKT9xngg+W6hzOEpeUlCRlAtz6b6U79naYYRaSk\nK/UhYGWkXlbJlc9zn13imYWgVGe/BMFp\n-----END PUBLIC KEY-----\n\"\"\",\n name=\"MyPlaybackKeyPair\",\n tags=[aws_native.TagArgs(\n key=\"MyKey\",\n value=\"MyValue\",\n )])\npulumi.export(\"playbackKeyPairArn\", playback_key_pair.id)\npulumi.export(\"playbackKeyPairFingerprint\", playback_key_pair.fingerprint)\n\n```\n\n{{% /example %}}\n{{% /examples %}}\n", "properties": { @@ -178291,6 +183416,85 @@ } } }, + "aws-native:ivs:PlaybackRestrictionPolicy": { + "description": "Resource Type definition for AWS::IVS::PlaybackRestrictionPolicy.", + "properties": { + "allowedCountries": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of country codes that control geoblocking restriction. Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries (an empty array)." + }, + "allowedOrigins": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of origin sites that control CORS restriction. Allowed values are the same as valid values of the Origin header defined at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin" + }, + "arn": { + "type": "string", + "description": "Playback-restriction-policy identifier." + }, + "enableStrictOriginEnforcement": { + "type": "boolean", + "description": "Whether channel playback is constrained by origin site." + }, + "name": { + "type": "string", + "description": "Playback-restriction-policy name." + }, + "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": [ + "allowedCountries", + "allowedOrigins", + "arn" + ], + "inputProperties": { + "allowedCountries": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of country codes that control geoblocking restriction. Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries (an empty array)." + }, + "allowedOrigins": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of origin sites that control CORS restriction. Allowed values are the same as valid values of the Origin header defined at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin" + }, + "enableStrictOriginEnforcement": { + "type": "boolean", + "description": "Whether channel playback is constrained by origin site." + }, + "name": { + "type": "string", + "description": "Playback-restriction-policy name." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An array of key-value pairs to apply to this resource." + } + }, + "requiredInputs": [ + "allowedCountries", + "allowedOrigins" + ] + }, "aws-native:ivs:RecordingConfiguration": { "description": "Resource Type definition for AWS::IVS::RecordingConfiguration", "properties": { @@ -178410,6 +183614,55 @@ } } }, + "aws-native:ivs:StorageConfiguration": { + "description": "Resource Type definition for AWS::IVS::StorageConfiguration", + "properties": { + "arn": { + "type": "string", + "description": "Storage Configuration ARN is automatically generated on creation and assigned as the unique identifier." + }, + "name": { + "type": "string", + "description": "Storage Configuration Name.", + "replaceOnChanges": true + }, + "s3": { + "$ref": "#/types/aws-native:ivs:StorageConfigurationS3StorageConfiguration", + "replaceOnChanges": true + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "A list of key-value pairs that contain metadata for the asset model." + } + }, + "type": "object", + "required": [ + "arn", + "s3" + ], + "inputProperties": { + "name": { + "type": "string", + "description": "Storage Configuration Name." + }, + "s3": { + "$ref": "#/types/aws-native:ivs:StorageConfigurationS3StorageConfiguration" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "A list of key-value pairs that contain metadata for the asset model." + } + }, + "requiredInputs": [ + "s3" + ] + }, "aws-native:ivs:StreamKey": { "description": "Resource Type definition for AWS::IVS::StreamKey", "properties": { @@ -178747,6 +184000,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 +188868,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 +188909,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 +188969,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 +188990,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 +189002,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 +189109,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 +189117,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 +189151,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": [ @@ -186234,6 +191631,13 @@ "type": "string", "description": "\u003cp\u003eThe ARN of the channel.\u003c/p\u003e" }, + "audiences": { + "type": "array", + "items": { + "type": "string" + }, + "description": "\u003cp\u003eThe list of audiences defined in channel.\u003c/p\u003e" + }, "channelName": { "type": "string", "replaceOnChanges": true @@ -186277,6 +191681,13 @@ "playbackMode" ], "inputProperties": { + "audiences": { + "type": "array", + "items": { + "type": "string" + }, + "description": "\u003cp\u003eThe list of audiences defined in channel.\u003c/p\u003e" + }, "channelName": { "type": "string" }, @@ -194512,6 +199923,11 @@ "description": "The name of your CEV. The name format is 19.customized_string . For example, a valid name is 19.my_cev1. This setting is required for RDS Custom for Oracle, but optional for Amazon RDS. The combination of Engine and EngineVersion is unique per customer per Region.", "replaceOnChanges": true }, + "imageId": { + "type": "string", + "description": "The identifier of Amazon Machine Image (AMI) used for CEV.", + "replaceOnChanges": true + }, "kmsKeyId": { "type": "string", "description": "The AWS KMS key identifier for an encrypted CEV. A symmetric KMS key is required for RDS Custom, but optional for Amazon RDS.", @@ -194522,6 +199938,11 @@ "description": "The CEV manifest, which is a JSON document that describes the installation .zip files stored in Amazon S3. Specify the name/value pairs in a file or a quoted string. RDS Custom applies the patches in the order in which they are listed.", "replaceOnChanges": true }, + "sourceCustomDbEngineVersionIdentifier": { + "type": "string", + "description": "The identifier of the source custom engine version.", + "replaceOnChanges": true + }, "status": { "$ref": "#/types/aws-native:rds:CustomDbEngineVersionStatus", "description": "The availability status to be assigned to the CEV." @@ -194532,11 +199953,15 @@ "$ref": "#/types/aws-native:index:Tag" }, "description": "An array of key-value pairs to apply to this resource." + }, + "useAwsProvidedLatestImage": { + "type": "boolean", + "description": "A value that indicates whether AWS provided latest image is applied automatically to the Custom Engine Version. By default, AWS provided latest image is applied automatically. This value is only applied on create.", + "replaceOnChanges": true } }, "type": "object", "required": [ - "databaseInstallationFilesS3BucketName", "dbEngineVersionArn", "engine", "engineVersion" @@ -194562,6 +199987,10 @@ "type": "string", "description": "The name of your CEV. The name format is 19.customized_string . For example, a valid name is 19.my_cev1. This setting is required for RDS Custom for Oracle, but optional for Amazon RDS. The combination of Engine and EngineVersion is unique per customer per Region." }, + "imageId": { + "type": "string", + "description": "The identifier of Amazon Machine Image (AMI) used for CEV." + }, "kmsKeyId": { "type": "string", "description": "The AWS KMS key identifier for an encrypted CEV. A symmetric KMS key is required for RDS Custom, but optional for Amazon RDS." @@ -194570,6 +199999,10 @@ "type": "string", "description": "The CEV manifest, which is a JSON document that describes the installation .zip files stored in Amazon S3. Specify the name/value pairs in a file or a quoted string. RDS Custom applies the patches in the order in which they are listed." }, + "sourceCustomDbEngineVersionIdentifier": { + "type": "string", + "description": "The identifier of the source custom engine version." + }, "status": { "$ref": "#/types/aws-native:rds:CustomDbEngineVersionStatus", "description": "The availability status to be assigned to the CEV." @@ -194580,10 +200013,13 @@ "$ref": "#/types/aws-native:index:Tag" }, "description": "An array of key-value pairs to apply to this resource." + }, + "useAwsProvidedLatestImage": { + "type": "boolean", + "description": "A value that indicates whether AWS provided latest image is applied automatically to the Custom Engine Version. By default, AWS provided latest image is applied automatically. This value is only applied on create." } }, "requiredInputs": [ - "databaseInstallationFilesS3BucketName", "engine", "engineVersion" ] @@ -196454,14 +201890,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 +201943,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 +204067,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 +204105,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", @@ -199587,7 +205032,7 @@ "items": { "$ref": "#/types/aws-native:route53:HostedZoneVpc" }, - "description": "*Private hosted zones:* A complex type that contains information about the VPCs that are associated with the specified hosted zone.\n For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``." + "description": "*Private hosted zones:* A complex type that contains information about the VPCs that are associated with the specified hosted zone.\n For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``." } }, "type": "object", @@ -199620,7 +205065,7 @@ "items": { "$ref": "#/types/aws-native:route53:HostedZoneVpc" }, - "description": "*Private hosted zones:* A complex type that contains information about the VPCs that are associated with the specified hosted zone.\n For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``." + "description": "*Private hosted zones:* A complex type that contains information about the VPCs that are associated with the specified hosted zone.\n For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``." } } }, @@ -202168,6 +207613,10 @@ "description": "The Name of the AppImageConfig.", "replaceOnChanges": true }, + "codeEditorAppImageConfig": { + "$ref": "#/types/aws-native:sagemaker:AppImageConfigCodeEditorAppImageConfig", + "description": "The CodeEditorAppImageConfig." + }, "jupyterLabAppImageConfig": { "$ref": "#/types/aws-native:sagemaker:AppImageConfigJupyterLabAppImageConfig", "description": "The JupyterLabAppImageConfig." @@ -202195,6 +207644,10 @@ "type": "string", "description": "The Name of the AppImageConfig." }, + "codeEditorAppImageConfig": { + "$ref": "#/types/aws-native:sagemaker:AppImageConfigCodeEditorAppImageConfig", + "description": "The CodeEditorAppImageConfig." + }, "jupyterLabAppImageConfig": { "$ref": "#/types/aws-native:sagemaker:AppImageConfigJupyterLabAppImageConfig", "description": "The JupyterLabAppImageConfig." @@ -204602,6 +210055,39 @@ } } }, + "aws-native:securityhub:DelegatedAdmin": { + "description": "The AWS::SecurityHub::DelegatedAdmin resource represents the AWS Security Hub delegated admin account in your organization. One delegated admin resource is allowed to create for the organization in each region in which you configure the AdminAccountId.", + "properties": { + "adminAccountId": { + "type": "string", + "description": "The Amazon Web Services account identifier of the account to designate as the Security Hub administrator account", + "replaceOnChanges": true + }, + "delegatedAdminIdentifier": { + "type": "string", + "description": "The identifier of the DelegatedAdmin being created and assigned as the unique identifier" + }, + "status": { + "$ref": "#/types/aws-native:securityhub:DelegatedAdminStatus", + "description": "The current status of the Security Hub administrator account. Indicates whether the account is currently enabled as a Security Hub administrator" + } + }, + "type": "object", + "required": [ + "adminAccountId", + "delegatedAdminIdentifier", + "status" + ], + "inputProperties": { + "adminAccountId": { + "type": "string", + "description": "The Amazon Web Services account identifier of the account to designate as the Security Hub administrator account" + } + }, + "requiredInputs": [ + "adminAccountId" + ] + }, "aws-native:securityhub:Hub": { "description": "The AWS::SecurityHub::Hub resource represents the implementation of the AWS Security Hub service in your account. One hub resource is created for each Region in which you enable Security Hub.\n\n\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 exampleHubWithTags = new AwsNative.SecurityHub.Hub(\"exampleHubWithTags\", new()\n {\n Tags = \n {\n { \"key1\", \"value1\" },\n { \"key2\", \"value2\" },\n },\n EnableDefaultStandards = true,\n ControlFindingGenerator = \"SECURITY_CONTROL\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"hubArn\"] = exampleHubWithTags.Id,\n };\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/securityhub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleHubWithTags, err := securityhub.NewHub(ctx, \"exampleHubWithTags\", \u0026securityhub.HubArgs{\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"key1\": pulumi.String(\"value1\"),\n\t\t\t\t\"key2\": pulumi.String(\"value2\"),\n\t\t\t},\n\t\t\tEnableDefaultStandards: pulumi.Bool(true),\n\t\t\tControlFindingGenerator: pulumi.String(\"SECURITY_CONTROL\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"hubArn\", exampleHubWithTags.ID())\n\t\treturn nil\n\t})\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws_native from \"@pulumi/aws-native\";\n\nconst exampleHubWithTags = new aws_native.securityhub.Hub(\"exampleHubWithTags\", {\n tags: {\n key1: \"value1\",\n key2: \"value2\",\n },\n enableDefaultStandards: true,\n controlFindingGenerator: \"SECURITY_CONTROL\",\n});\nexport const hubArn = exampleHubWithTags.id;\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\nexample_hub_with_tags = aws_native.securityhub.Hub(\"exampleHubWithTags\",\n tags={\n \"key1\": \"value1\",\n \"key2\": \"value2\",\n },\n enable_default_standards=True,\n control_finding_generator=\"SECURITY_CONTROL\")\npulumi.export(\"hubArn\", example_hub_with_tags.id)\n\n```\n\n{{% /example %}}\n{{% example %}}\n### Example\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AwsNative = Pulumi.AwsNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var exampleHubWithTags = new AwsNative.SecurityHub.Hub(\"exampleHubWithTags\", new()\n {\n Tags = \n {\n { \"key1\", \"value1\" },\n { \"key2\", \"value2\" },\n },\n EnableDefaultStandards = true,\n ControlFindingGenerator = \"SECURITY_CONTROL\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"hubArn\"] = exampleHubWithTags.Id,\n };\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/securityhub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleHubWithTags, err := securityhub.NewHub(ctx, \"exampleHubWithTags\", \u0026securityhub.HubArgs{\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"key1\": pulumi.String(\"value1\"),\n\t\t\t\t\"key2\": pulumi.String(\"value2\"),\n\t\t\t},\n\t\t\tEnableDefaultStandards: pulumi.Bool(true),\n\t\t\tControlFindingGenerator: pulumi.String(\"SECURITY_CONTROL\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"hubArn\", exampleHubWithTags.ID())\n\t\treturn nil\n\t})\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws_native from \"@pulumi/aws-native\";\n\nconst exampleHubWithTags = new aws_native.securityhub.Hub(\"exampleHubWithTags\", {\n tags: {\n key1: \"value1\",\n key2: \"value2\",\n },\n enableDefaultStandards: true,\n controlFindingGenerator: \"SECURITY_CONTROL\",\n});\nexport const hubArn = exampleHubWithTags.id;\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\nexample_hub_with_tags = aws_native.securityhub.Hub(\"exampleHubWithTags\",\n tags={\n \"key1\": \"value1\",\n \"key2\": \"value2\",\n },\n enable_default_standards=True,\n control_finding_generator=\"SECURITY_CONTROL\")\npulumi.export(\"hubArn\", example_hub_with_tags.id)\n\n```\n\n{{% /example %}}\n{{% example %}}\n### Example\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AwsNative = Pulumi.AwsNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var exampleHubWithTags = new AwsNative.SecurityHub.Hub(\"exampleHubWithTags\", new()\n {\n Tags = \n {\n { \"key1\", \"value1\" },\n { \"key2\", \"value2\" },\n },\n EnableDefaultStandards = false,\n ControlFindingGenerator = \"STANDARD_CONTROL\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"hubArn\"] = exampleHubWithTags.Id,\n };\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/securityhub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleHubWithTags, err := securityhub.NewHub(ctx, \"exampleHubWithTags\", \u0026securityhub.HubArgs{\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"key1\": pulumi.String(\"value1\"),\n\t\t\t\t\"key2\": pulumi.String(\"value2\"),\n\t\t\t},\n\t\t\tEnableDefaultStandards: pulumi.Bool(false),\n\t\t\tControlFindingGenerator: pulumi.String(\"STANDARD_CONTROL\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"hubArn\", exampleHubWithTags.ID())\n\t\treturn nil\n\t})\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws_native from \"@pulumi/aws-native\";\n\nconst exampleHubWithTags = new aws_native.securityhub.Hub(\"exampleHubWithTags\", {\n tags: {\n key1: \"value1\",\n key2: \"value2\",\n },\n enableDefaultStandards: false,\n controlFindingGenerator: \"STANDARD_CONTROL\",\n});\nexport const hubArn = exampleHubWithTags.id;\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\nexample_hub_with_tags = aws_native.securityhub.Hub(\"exampleHubWithTags\",\n tags={\n \"key1\": \"value1\",\n \"key2\": \"value2\",\n },\n enable_default_standards=False,\n control_finding_generator=\"STANDARD_CONTROL\")\npulumi.export(\"hubArn\", example_hub_with_tags.id)\n\n```\n\n{{% /example %}}\n{{% example %}}\n### Example\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AwsNative = Pulumi.AwsNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var exampleHubWithTags = new AwsNative.SecurityHub.Hub(\"exampleHubWithTags\", new()\n {\n Tags = \n {\n { \"key1\", \"value1\" },\n { \"key2\", \"value2\" },\n },\n EnableDefaultStandards = false,\n ControlFindingGenerator = \"STANDARD_CONTROL\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"hubArn\"] = exampleHubWithTags.Id,\n };\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/securityhub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleHubWithTags, err := securityhub.NewHub(ctx, \"exampleHubWithTags\", \u0026securityhub.HubArgs{\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"key1\": pulumi.String(\"value1\"),\n\t\t\t\t\"key2\": pulumi.String(\"value2\"),\n\t\t\t},\n\t\t\tEnableDefaultStandards: pulumi.Bool(false),\n\t\t\tControlFindingGenerator: pulumi.String(\"STANDARD_CONTROL\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"hubArn\", exampleHubWithTags.ID())\n\t\treturn nil\n\t})\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws_native from \"@pulumi/aws-native\";\n\nconst exampleHubWithTags = new aws_native.securityhub.Hub(\"exampleHubWithTags\", {\n tags: {\n key1: \"value1\",\n key2: \"value2\",\n },\n enableDefaultStandards: false,\n controlFindingGenerator: \"STANDARD_CONTROL\",\n});\nexport const hubArn = exampleHubWithTags.id;\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\nexample_hub_with_tags = aws_native.securityhub.Hub(\"exampleHubWithTags\",\n tags={\n \"key1\": \"value1\",\n \"key2\": \"value2\",\n },\n enable_default_standards=False,\n control_finding_generator=\"STANDARD_CONTROL\")\npulumi.export(\"hubArn\", example_hub_with_tags.id)\n\n```\n\n{{% /example %}}\n{{% /examples %}}\n", "properties": { @@ -204658,6 +210144,80 @@ } } }, + "aws-native:securityhub:Insight": { + "description": "The AWS::SecurityHub::Insight resource represents the AWS Security Hub Insight in your account. An AWS Security Hub insight is a collection of related findings.", + "properties": { + "filters": { + "$ref": "#/types/aws-native:securityhub:InsightAwsSecurityFindingFilters", + "description": "One or more attributes used to filter the findings included in the insight" + }, + "groupByAttribute": { + "type": "string", + "description": "The grouping attribute for the insight's findings" + }, + "insightArn": { + "type": "string", + "description": "The ARN of a Security Hub insight" + }, + "name": { + "type": "string", + "description": "The name of a Security Hub insight" + } + }, + "type": "object", + "required": [ + "filters", + "groupByAttribute", + "insightArn", + "name" + ], + "inputProperties": { + "filters": { + "$ref": "#/types/aws-native:securityhub:InsightAwsSecurityFindingFilters", + "description": "One or more attributes used to filter the findings included in the insight" + }, + "groupByAttribute": { + "type": "string", + "description": "The grouping attribute for the insight's findings" + }, + "name": { + "type": "string", + "description": "The name of a Security Hub insight" + } + }, + "requiredInputs": [ + "filters", + "groupByAttribute" + ] + }, + "aws-native:securityhub:ProductSubscription": { + "description": "The AWS::SecurityHub::ProductSubscription resource represents a subscription to a service that is allowed to generate findings for your Security Hub account. One product subscription resource is created for each product enabled.", + "properties": { + "productArn": { + "type": "string", + "description": "The generic ARN of the product being subscribed to", + "replaceOnChanges": true + }, + "productSubscriptionArn": { + "type": "string", + "description": "The ARN of the product subscription for the account" + } + }, + "type": "object", + "required": [ + "productArn", + "productSubscriptionArn" + ], + "inputProperties": { + "productArn": { + "type": "string", + "description": "The generic ARN of the product being subscribed to" + } + }, + "requiredInputs": [ + "productArn" + ] + }, "aws-native:securityhub:Standard": { "description": "The ``AWS::SecurityHub::Standard`` resource specifies the enablement of a security standard. The standard is identified by the ``StandardsArn`` property. To view a list of ASH standards and their Amazon Resource Names (ARNs), use the [DescribeStandards](https://docs.aws.amazon.com/securityhub/1.0/APIReference/API_DescribeStandards.html) API operation.\n You must create a separate ``AWS::SecurityHub::Standard`` resource for each standard that you want to enable.\n For more information about ASH standards, see [standards reference](https://docs.aws.amazon.com/securityhub/latest/userguide/standards-reference.html) in the *User Guide*.", "properties": { @@ -204699,6 +210259,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": { @@ -206547,7 +212352,7 @@ }, "name": { "type": "string", - "description": "The name of the parameter.\n The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName``", + "description": "The name of the parameter.\n The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName``", "replaceOnChanges": true }, "policies": { @@ -206594,7 +212399,7 @@ }, "name": { "type": "string", - "description": "The name of the parameter.\n The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName``" + "description": "The name of the parameter.\n The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName``" }, "policies": { "type": "string", @@ -211776,9 +217581,6 @@ "certificateRecord": { "type": "string" }, - "certificateSettings": { - "$ref": "#/types/aws-native:amplify:DomainCertificateSettings" - }, "domainStatus": { "type": "string" }, @@ -213647,6 +219449,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 +220287,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 +220411,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 +221759,300 @@ } } }, + "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:bedrock:getDataSource": { + "description": "Definition of AWS::Bedrock::DataSource Resource Type", + "inputs": { + "properties": { + "dataSourceId": { + "type": "string", + "description": "Identifier for a resource." + }, + "knowledgeBaseId": { + "type": "string", + "description": "The unique identifier of the knowledge base to which to add the data source." + } + }, + "required": [ + "knowledgeBaseId", + "dataSourceId" + ] + }, + "outputs": { + "properties": { + "createdAt": { + "type": "string", + "description": "The time at which the data source was created." + }, + "dataSourceConfiguration": { + "$ref": "#/types/aws-native:bedrock:DataSourceConfiguration" + }, + "dataSourceId": { + "type": "string", + "description": "Identifier for a resource." + }, + "dataSourceStatus": { + "$ref": "#/types/aws-native:bedrock:DataSourceStatus" + }, + "description": { + "type": "string", + "description": "Description of the Resource." + }, + "name": { + "type": "string", + "description": "The name of the data source." + }, + "serverSideEncryptionConfiguration": { + "$ref": "#/types/aws-native:bedrock:DataSourceServerSideEncryptionConfiguration" + }, + "updatedAt": { + "type": "string", + "description": "The time at which the knowledge base was last updated." + } + } + } + }, + "aws-native:bedrock:getKnowledgeBase": { + "description": "Definition of AWS::Bedrock::KnowledgeBase Resource Type", + "inputs": { + "properties": { + "knowledgeBaseId": { + "type": "string", + "description": "The unique identifier of the knowledge base." + } + }, + "required": [ + "knowledgeBaseId" + ] + }, + "outputs": { + "properties": { + "createdAt": { + "type": "string", + "description": "The time at which the knowledge base was created." + }, + "description": { + "type": "string", + "description": "Description of the Resource." + }, + "failureReasons": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of reasons that the API operation on the knowledge base failed." + }, + "knowledgeBaseArn": { + "type": "string", + "description": "The ARN of the knowledge base." + }, + "knowledgeBaseId": { + "type": "string", + "description": "The unique identifier of the knowledge base." + }, + "name": { + "type": "string", + "description": "The name of the knowledge base." + }, + "roleArn": { + "type": "string", + "description": "The ARN of the IAM role with permissions to invoke API operations on the knowledge base. The ARN must begin with AmazonBedrockExecutionRoleForKnowledgeBase_" + }, + "status": { + "$ref": "#/types/aws-native:bedrock:KnowledgeBaseStatus" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "updatedAt": { + "type": "string", + "description": "The time at which the knowledge base was last updated." + } + } + } + }, "aws-native:budgets:getBudgetsAction": { "description": "An example resource schema demonstrating some basic constructs and validation rules.", "inputs": { @@ -216463,6 +222646,36 @@ } } }, + "aws-native:cleanroomsml:getTrainingDataset": { + "description": "Definition of AWS::CleanRoomsML::TrainingDataset Resource Type", + "inputs": { + "properties": { + "trainingDatasetArn": { + "type": "string" + } + }, + "required": [ + "trainingDatasetArn" + ] + }, + "outputs": { + "properties": { + "status": { + "$ref": "#/types/aws-native:cleanroomsml:TrainingDatasetStatus" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An arbitrary set of tags (key-value pairs) for this cleanrooms-ml training dataset." + }, + "trainingDatasetArn": { + "type": "string" + } + } + } + }, "aws-native:cloudformation:getHookDefaultVersion": { "description": "Set a version as default version for a hook in CloudFormation Registry.", "inputs": { @@ -217571,12 +223784,12 @@ } }, "aws-native:cloudwatch:getAlarm": { - "description": "Resource Type definition for AWS::CloudWatch::Alarm", + "description": "The ``AWS::CloudWatch::Alarm`` type specifies an alarm and associates it with the specified metric or metric math expression.\n When this operation creates an alarm, the alarm state is immediately set to ``INSUFFICIENT_DATA``. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed.\n When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm.", "inputs": { "properties": { "alarmName": { "type": "string", - "description": "The name of the alarm." + "description": "The name of the alarm. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the alarm name. \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." } }, "required": [ @@ -217594,95 +223807,100 @@ "items": { "type": "string" }, - "description": "The list of actions to execute when this alarm transitions into an ALARM state from any other state." + "description": "The list of actions to execute when this alarm transitions into an ALARM state from any other state. Specify each action as an Amazon Resource Name (ARN). For more information about creating alarms and the actions that you can specify, see [PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html) in the *API Reference*." }, "alarmDescription": { "type": "string", "description": "The description of the alarm." }, "arn": { - "type": "string", - "description": "Amazon Resource Name is a unique name for each resource." + "type": "string" }, "comparisonOperator": { "type": "string", - "description": "The arithmetic operation to use when comparing the specified statistic and threshold." + "description": "The arithmetic operation to use when comparing the specified statistic and threshold. The specified statistic value is used as the first operand." }, "datapointsToAlarm": { "type": "integer", - "description": "The number of datapoints that must be breaching to trigger the alarm." + "description": "The number of datapoints that must be breaching to trigger the alarm. This is used only if you are setting an \"M out of N\" alarm. In that case, this value is the M, and the value that you set for ``EvaluationPeriods`` is the N value. For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*.\n If you omit this parameter, CW uses the same value here that you set for ``EvaluationPeriods``, and the alarm goes to alarm state if that many consecutive periods are breaching." }, "dimensions": { "type": "array", "items": { "$ref": "#/types/aws-native:cloudwatch:AlarmDimension" }, - "description": "The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify Dimensions. Instead, you use Metrics." + "description": "The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify ``Dimensions``. Instead, you use ``Metrics``." }, "evaluateLowSampleCountPercentile": { "type": "string", - "description": "Used only for alarms based on percentiles." + "description": "Used only for alarms based on percentiles. If ``ignore``, the alarm state does not change during periods with too few data points to be statistically significant. If ``evaluate`` or this parameter is not used, the alarm is always evaluated and possibly changes state no matter how many data points are available." }, "evaluationPeriods": { "type": "integer", - "description": "The number of periods over which data is compared to the specified threshold." + "description": "The number of periods over which data is compared to the specified threshold. If you are setting an alarm that requires that a number of consecutive data points be breaching to trigger the alarm, this value specifies that number. If you are setting an \"M out of N\" alarm, this value is the N, and ``DatapointsToAlarm`` is the M.\n For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*." }, "extendedStatistic": { "type": "string", - "description": "The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100." + "description": "The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100.\n For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both.\n For an alarm based on a math expression, you can't specify ``ExtendedStatistic``. Instead, you use ``Metrics``." }, "insufficientDataActions": { "type": "array", "items": { "type": "string" }, - "description": "The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state." + "description": "The actions to execute when this alarm transitions to the ``INSUFFICIENT_DATA`` state from any other state. Each action is specified as an Amazon Resource Name (ARN)." }, "metricName": { "type": "string", - "description": "The name of the metric associated with the alarm." + "description": "The name of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you use ``Metrics`` instead and you can't specify ``MetricName``." }, "metrics": { "type": "array", "items": { "$ref": "#/types/aws-native:cloudwatch:AlarmMetricDataQuery" }, - "description": "An array that enables you to create an alarm based on the result of a metric math expression." + "description": "An array that enables you to create an alarm based on the result of a metric math expression. Each item in the array either retrieves a metric or performs a math expression.\n If you specify the ``Metrics`` parameter, you cannot specify ``MetricName``, ``Dimensions``, ``Period``, ``Namespace``, ``Statistic``, ``ExtendedStatistic``, or ``Unit``." }, "namespace": { "type": "string", - "description": "The namespace of the metric associated with the alarm." + "description": "The namespace of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you can't specify ``Namespace`` and you use ``Metrics`` instead.\n For a list of namespaces for metrics from AWS services, see [Services That Publish Metrics.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html)" }, "okActions": { "type": "array", "items": { "type": "string" }, - "description": "The actions to execute when this alarm transitions to the OK state from any other state." + "description": "The actions to execute when this alarm transitions to the ``OK`` state from any other state. Each action is specified as an Amazon Resource Name (ARN)." }, "period": { "type": "integer", - "description": "The period in seconds, over which the statistic is applied." + "description": "The period, in seconds, over which the statistic is applied. This is required for an alarm based on a metric. Valid values are 10, 30, 60, and any multiple of 60.\n For an alarm based on a math expression, you can't specify ``Period``, and instead you use the ``Metrics`` parameter.\n *Minimum:* 10" }, "statistic": { "type": "string", - "description": "The statistic for the metric associated with the alarm, other than percentile." + "description": "The statistic for the metric associated with the alarm, other than percentile. For percentile statistics, use ``ExtendedStatistic``.\n For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both.\n For an alarm based on a math expression, you can't specify ``Statistic``. Instead, you use ``Metrics``." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + } }, "threshold": { "type": "number", - "description": "In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm." + "description": "The value to compare with the specified statistic." }, "thresholdMetricId": { "type": "string", - "description": "In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm." + "description": "In an alarm based on an anomaly detection model, this is the ID of the ``ANOMALY_DETECTION_BAND`` function used as the threshold for the alarm." }, "treatMissingData": { "type": "string", - "description": "Sets how this alarm is to handle missing data points. Valid values are breaching, notBreaching, ignore, and missing." + "description": "Sets how this alarm is to handle missing data points. Valid values are ``breaching``, ``notBreaching``, ``ignore``, and ``missing``. For more information, see [Configuring How Alarms Treat Missing Data](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data) in the *Amazon User Guide*.\n If you omit this parameter, the default behavior of ``missing`` is used." }, "unit": { "type": "string", - "description": "The unit of the metric associated with the alarm." + "description": "The unit of the metric associated with the alarm. Specify this only if you are creating an alarm based on a single metric. Do not specify this if you are specifying a ``Metrics`` array.\n You can specify the following values: 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, or None." } } } @@ -217750,6 +223968,13 @@ "type": "string" }, "description": "The actions to execute when this alarm transitions to the OK state from any other state. Each action is specified as an Amazon Resource Name (ARN)." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "A list of key-value pairs to associate with the composite alarm. You can associate as many as 50 tags with an alarm." } } } @@ -217866,6 +224091,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 +224229,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 +224452,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 +224506,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 +224524,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 +225816,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 +226136,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 +226147,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": { @@ -222056,6 +228405,282 @@ } } }, + "aws-native:deadline:getFarm": { + "description": "Definition of AWS::Deadline::Farm Resource Type", + "inputs": { + "properties": { + "arn": { + "type": "string" + } + }, + "required": [ + "arn" + ] + }, + "outputs": { + "properties": { + "arn": { + "type": "string" + }, + "description": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "farmId": { + "type": "string" + } + } + } + }, + "aws-native:deadline:getFleet": { + "description": "Definition of AWS::Deadline::Fleet Resource Type", + "inputs": { + "properties": { + "arn": { + "type": "string" + } + }, + "required": [ + "arn" + ] + }, + "outputs": { + "properties": { + "arn": { + "type": "string" + }, + "capabilities": { + "$ref": "#/types/aws-native:deadline:FleetCapabilities" + }, + "configuration": { + "oneOf": [ + { + "$ref": "#/types/aws-native:deadline:FleetConfiguration0Properties" + }, + { + "$ref": "#/types/aws-native:deadline:FleetConfiguration1Properties" + } + ] + }, + "description": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "fleetId": { + "type": "string" + }, + "maxWorkerCount": { + "type": "integer" + }, + "minWorkerCount": { + "type": "integer" + }, + "roleArn": { + "type": "string" + }, + "status": { + "$ref": "#/types/aws-native:deadline:FleetStatus" + }, + "workerCount": { + "type": "integer" + } + } + } + }, + "aws-native:deadline:getLicenseEndpoint": { + "description": "Definition of AWS::Deadline::LicenseEndpoint Resource Type", + "inputs": { + "properties": { + "arn": { + "type": "string" + } + }, + "required": [ + "arn" + ] + }, + "outputs": { + "properties": { + "arn": { + "type": "string" + }, + "dnsName": { + "type": "string" + }, + "licenseEndpointId": { + "type": "string" + }, + "status": { + "$ref": "#/types/aws-native:deadline:LicenseEndpointStatus" + }, + "statusMessage": { + "type": "string" + } + } + } + }, + "aws-native:deadline:getMeteredProduct": { + "description": "Definition of AWS::Deadline::MeteredProduct Resource Type", + "inputs": { + "properties": { + "arn": { + "type": "string" + } + }, + "required": [ + "arn" + ] + }, + "outputs": { + "properties": { + "arn": { + "type": "string" + }, + "family": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "vendor": { + "type": "string" + } + } + } + }, + "aws-native:deadline:getQueue": { + "description": "Definition of AWS::Deadline::Queue Resource Type", + "inputs": { + "properties": { + "arn": { + "type": "string" + } + }, + "required": [ + "arn" + ] + }, + "outputs": { + "properties": { + "allowedStorageProfileIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "arn": { + "type": "string" + }, + "defaultBudgetAction": { + "$ref": "#/types/aws-native:deadline:QueueDefaultQueueBudgetAction" + }, + "description": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "jobAttachmentSettings": { + "$ref": "#/types/aws-native:deadline:QueueJobAttachmentSettings" + }, + "jobRunAsUser": { + "$ref": "#/types/aws-native:deadline:QueueJobRunAsUser" + }, + "queueId": { + "type": "string" + }, + "requiredFileSystemLocationNames": { + "type": "array", + "items": { + "type": "string" + } + }, + "roleArn": { + "type": "string" + } + } + } + }, + "aws-native:deadline:getQueueEnvironment": { + "description": "Definition of AWS::Deadline::QueueEnvironment Resource Type", + "inputs": { + "properties": { + "farmId": { + "type": "string" + }, + "queueEnvironmentId": { + "type": "string" + }, + "queueId": { + "type": "string" + } + }, + "required": [ + "farmId", + "queueId", + "queueEnvironmentId" + ] + }, + "outputs": { + "properties": { + "name": { + "type": "string" + }, + "priority": { + "type": "integer" + }, + "queueEnvironmentId": { + "type": "string" + }, + "template": { + "type": "string" + }, + "templateType": { + "$ref": "#/types/aws-native:deadline:QueueEnvironmentEnvironmentTemplateType" + } + } + } + }, + "aws-native:deadline:getStorageProfile": { + "description": "Definition of AWS::Deadline::StorageProfile Resource Type", + "inputs": { + "properties": { + "farmId": { + "type": "string" + }, + "storageProfileId": { + "type": "string" + } + }, + "required": [ + "farmId", + "storageProfileId" + ] + }, + "outputs": { + "properties": { + "displayName": { + "type": "string" + }, + "fileSystemLocations": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:deadline:StorageProfileFileSystemLocation" + } + }, + "osFamily": { + "$ref": "#/types/aws-native:deadline:StorageProfileOperatingSystemFamily" + }, + "storageProfileId": { + "type": "string" + } + } + } + }, "aws-native:detective:getGraph": { "description": "Resource schema for AWS::Detective::Graph", "inputs": { @@ -222762,12 +229387,18 @@ }, "outputs": { "properties": { + "backupRetentionPeriod": { + "type": "integer" + }, "clusterArn": { "type": "string" }, "clusterEndpoint": { "type": "string" }, + "preferredBackupWindow": { + "type": "string" + }, "preferredMaintenanceWindow": { "type": "string" }, @@ -222777,6 +229408,9 @@ "shardCount": { "type": "integer" }, + "shardInstanceCount": { + "type": "integer" + }, "subnetIds": { "type": "array", "items": { @@ -222858,7 +229492,7 @@ } }, "aws-native:dynamodb:getTable": { - "description": "The ``AWS::DynamoDB::Table`` resource creates a DDB table. For more information, see [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) in the *API Reference*.\n You should be aware of the following behaviors when working with DDB tables:\n + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute).\n \n Our guidance is to use the latest schema documented here for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes.", + "description": "The ``AWS::DynamoDB::Table`` resource creates a DDB table. For more information, see [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) in the *API Reference*.\n You should be aware of the following behaviors when working with DDB tables:\n + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute).\n \n Our guidance is to use the latest schema documented here for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes.", "inputs": { "properties": { "tableName": { @@ -222934,6 +229568,10 @@ "$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", + "description": "A resource-based policy document that contains permissions to add to the specified table. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html).\n When you attach a resource-based policy while creating a table, the policy creation is *strongly consistent*. For information about the considerations that you should keep in mind while attaching a resource-based policy, see [Resource-based policy considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html)." + }, "sseSpecification": { "$ref": "#/types/aws-native:dynamodb:TableSseSpecification", "description": "Specifies the settings to enable server-side encryption." @@ -223526,12 +230164,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 +230178,7 @@ "outputs": { "properties": { "internetGatewayId": { - "type": "string", - "description": "ID of internet gateway." + "type": "string" }, "tags": { "type": "array", @@ -224164,7 +230800,7 @@ } }, "aws-native:ec2:getNatGateway": { - "description": "Specifies a network address translation (NAT) gateway in the specified subnet. You can create either a public NAT gateway or a private NAT gateway. The default is a public NAT gateway. If you create a public NAT gateway, you must specify an elastic IP address.\n With a NAT gateway, instances in a private subnet can connect to the internet, other AWS services, or an on-premises network using the IP address of the NAT gateway. For more information, see [NAT gateways](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) in the *Amazon VPC User Guide*.\n If you add a default route (``AWS::EC2::Route`` resource) that points to a NAT gateway, specify the NAT gateway ID for the route's ``NatGatewayId`` property.\n When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*.", + "description": "Specifies a network address translation (NAT) gateway in the specified subnet. You can create either a public NAT gateway or a private NAT gateway. The default is a public NAT gateway. If you create a public NAT gateway, you must specify an elastic IP address.\n With a NAT gateway, instances in a private subnet can connect to the internet, other AWS services, or an on-premises network using the IP address of the NAT gateway. For more information, see [NAT gateways](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) in the *Amazon VPC User Guide*.\n If you add a default route (``AWS::EC2::Route`` resource) that points to a NAT gateway, specify the NAT gateway ID for the route's ``NatGatewayId`` property.\n When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*.", "inputs": { "properties": { "natGatewayId": { @@ -224189,14 +230825,14 @@ }, "secondaryPrivateIpAddressCount": { "type": "integer", - "description": "[Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time." + "description": "[Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time." }, "secondaryPrivateIpAddresses": { "type": "array", "items": { "type": "string" }, - "description": "Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time." + "description": "Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time." }, "tags": { "type": "array", @@ -224801,7 +231437,7 @@ } }, "aws-native:ec2:getSecurityGroupEgress": { - "description": "Adds the specified outbound (egress) rule to a security group.\n An outbound rule permits instances to send traffic to the specified IPv4 or IPv6 address range, the IP addresses that are specified by a prefix list, or the instances that are associated with a destination security group. For more information, see [Security group rules](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html).\n You must specify exactly one of the following destinations: an IPv4 or IPv6 address range, a prefix list, or a security group. Otherwise, the stack launches successfully but the rule is not added to the security group.\n You must specify a protocol for each rule (for example, TCP). If the protocol is TCP or UDP, you must also specify a port or port range. If the protocol is ICMP or ICMPv6, you must also specify the ICMP/ICMPv6 type and code. To specify all types or all codes, use -1.\n Rule changes are propagated to instances associated with the security group as quickly as possible", + "description": "Adds the specified outbound (egress) rule to a security group.\n An outbound rule permits instances to send traffic to the specified IPv4 or IPv6 address range, the IP addresses that are specified by a prefix list, or the instances that are associated with a destination security group. For more information, see [Security group rules](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html).\n You must specify exactly one of the following destinations: an IPv4 address range, an IPv6 address range, a prefix list, or a security group.\n You must specify a protocol for each rule (for example, TCP). If the protocol is TCP or UDP, you must also specify a port or port range. If the protocol is ICMP or ICMPv6, you must also specify the ICMP/ICMPv6 type and code. To specify all types or all codes, use -1.\n Rule changes are propagated to instances associated with the security group as quickly as possible. However, a small delay might occur.", "inputs": { "properties": { "id": { @@ -224934,14 +231570,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 +232058,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": { @@ -226511,7 +233127,7 @@ } }, "aws-native:ecs:getTaskDefinition": { - "description": "Registers a new task definition from the supplied ``family`` and ``containerDefinitions``. Optionally, you can add data volumes to your containers with the ``volumes`` parameter. For more information about task definition parameters and defaults, see [Amazon ECS Task Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) in the *Amazon Elastic Container Service Developer Guide*.\n You can specify a role for your task with the ``taskRoleArn`` parameter. When you specify a role for a task, its containers can then use the latest versions of the CLI or SDKs to make API requests to the AWS services that are specified in the policy that's associated with the role. For more information, see [IAM Roles for Tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*.\n You can specify a Docker networking mode for the containers in your task definition with the ``networkMod", + "description": "Registers a new task definition from the supplied ``family`` and ``containerDefinitions``. Optionally, you can add data volumes to your containers with the ``volumes`` parameter. For more information about task definition parameters and defaults, see [Amazon ECS Task Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) in the *Amazon Elastic Container Service Developer Guide*.\n You can specify a role for your task with the ``taskRoleArn`` parameter. When you specify a role for a task, its containers can then use the latest versions of the CLI or SDKs to make API requests to the AWS services that are specified in the policy that's associated with the role. For more information, see [IAM Roles for Tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*.\n You can specify a Docker networking mode for the containers in your task definition with the ``networkMode`` parameter. The available network modes correspond to those described in [Network settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#/network-settings) in the Docker run reference. If you specify the ``awsvpc`` network mode, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*.\n In the following example or examples, the Authorization header contents (``AUTHPARAMS``) must be replaced with an AWS Signature Version 4 signature. For more information, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the *General Reference*.\n You only need to learn how to sign HTTP requests if you intend to create them manually. When you use the [](https://docs.aws.amazon.com/cli/) or one of the [SDKs](https://docs.aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you, with the access key that you specify when you configure the tools. When you use these tools, you don't have to sign requests yourself.", "inputs": { "properties": { "taskDefinitionArn": { @@ -226529,7 +233145,7 @@ "items": { "$ref": "#/types/aws-native:index:Tag" }, - "description": "The metadata that you apply to the task definition to help you categorize and organize them. Each tag consists of a key and an optional value. You define both of them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values" + "description": "The metadata that you apply to the task definition to help you categorize and organize them. Each tag consists of a key and an optional value. You define both of them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit." }, "taskDefinitionArn": { "type": "string" @@ -228021,6 +234637,62 @@ } } }, + "aws-native:entityresolution:getIdNamespace": { + "description": "IdNamespace defined in AWS Entity Resolution service", + "inputs": { + "properties": { + "idNamespaceName": { + "type": "string" + } + }, + "required": [ + "idNamespaceName" + ] + }, + "outputs": { + "properties": { + "createdAt": { + "type": "string", + "description": "The date and time when the IdNamespace was created" + }, + "description": { + "type": "string" + }, + "idMappingWorkflowProperties": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:entityresolution:IdNamespaceIdMappingWorkflowProperties" + } + }, + "idNamespaceArn": { + "type": "string", + "description": "The arn associated with the IdNamespace" + }, + "inputSourceConfig": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:entityresolution:IdNamespaceInputSource" + } + }, + "roleArn": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + } + }, + "type": { + "$ref": "#/types/aws-native:entityresolution:IdNamespaceType" + }, + "updatedAt": { + "type": "string", + "description": "The date and time when the IdNamespace was updated" + } + } + } + }, "aws-native:entityresolution:getMatchingWorkflow": { "description": "MatchingWorkflow defined in AWS Entity Resolution service", "inputs": { @@ -228076,6 +234748,45 @@ } } }, + "aws-native:entityresolution:getPolicyStatement": { + "description": "Policy Statement defined in AWS Entity Resolution Service", + "inputs": { + "properties": { + "arn": { + "type": "string" + }, + "statementId": { + "type": "string" + } + }, + "required": [ + "arn", + "statementId" + ] + }, + "outputs": { + "properties": { + "action": { + "type": "array", + "items": { + "type": "string" + } + }, + "condition": { + "type": "string" + }, + "effect": { + "$ref": "#/types/aws-native:entityresolution:PolicyStatementStatementEffect" + }, + "principal": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, "aws-native:entityresolution:getSchemaMapping": { "description": "SchemaMapping defined in AWS Entity Resolution service", "inputs": { @@ -230919,12 +237630,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 +237644,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: _+=,.@-" } } } @@ -234733,6 +241435,35 @@ } } }, + "aws-native:ivs:getEncoderConfiguration": { + "description": "Resource Type definition for AWS::IVS::EncoderConfiguration.", + "inputs": { + "properties": { + "arn": { + "type": "string", + "description": "Encoder configuration identifier." + } + }, + "required": [ + "arn" + ] + }, + "outputs": { + "properties": { + "arn": { + "type": "string", + "description": "Encoder configuration identifier." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An array of key-value pairs to apply to this resource." + } + } + } + }, "aws-native:ivs:getPlaybackKeyPair": { "description": "Resource Type definition for AWS::IVS::PlaybackKeyPair", "inputs": { @@ -234766,6 +241497,57 @@ } } }, + "aws-native:ivs:getPlaybackRestrictionPolicy": { + "description": "Resource Type definition for AWS::IVS::PlaybackRestrictionPolicy.", + "inputs": { + "properties": { + "arn": { + "type": "string", + "description": "Playback-restriction-policy identifier." + } + }, + "required": [ + "arn" + ] + }, + "outputs": { + "properties": { + "allowedCountries": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of country codes that control geoblocking restriction. Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries (an empty array)." + }, + "allowedOrigins": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of origin sites that control CORS restriction. Allowed values are the same as valid values of the Origin header defined at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin" + }, + "arn": { + "type": "string", + "description": "Playback-restriction-policy identifier." + }, + "enableStrictOriginEnforcement": { + "type": "boolean", + "description": "Whether channel playback is constrained by origin site." + }, + "name": { + "type": "string", + "description": "Playback-restriction-policy name." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An array of key-value pairs to apply to this resource." + } + } + } + }, "aws-native:ivs:getRecordingConfiguration": { "description": "Resource Type definition for AWS::IVS::RecordingConfiguration", "inputs": { @@ -234836,6 +241618,35 @@ } } }, + "aws-native:ivs:getStorageConfiguration": { + "description": "Resource Type definition for AWS::IVS::StorageConfiguration", + "inputs": { + "properties": { + "arn": { + "type": "string", + "description": "Storage Configuration ARN is automatically generated on creation and assigned as the unique identifier." + } + }, + "required": [ + "arn" + ] + }, + "outputs": { + "properties": { + "arn": { + "type": "string", + "description": "Storage Configuration ARN is automatically generated on creation and assigned as the unique identifier." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "A list of key-value pairs that contain metadata for the asset model." + } + } + } + }, "aws-native:ivs:getStreamKey": { "description": "Resource Type definition for AWS::IVS::StreamKey", "inputs": { @@ -235000,6 +241811,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 +244282,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 +244297,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 +244347,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 +244419,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 +244444,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." } } } @@ -238856,6 +245735,13 @@ "type": "string", "description": "\u003cp\u003eThe ARN of the channel.\u003c/p\u003e" }, + "audiences": { + "type": "array", + "items": { + "type": "string" + }, + "description": "\u003cp\u003eThe list of audiences defined in channel.\u003c/p\u003e" + }, "fillerSlate": { "$ref": "#/types/aws-native:mediatailor:ChannelSlateSource" }, @@ -243849,10 +250735,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 +251739,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", @@ -245432,7 +252327,7 @@ "items": { "$ref": "#/types/aws-native:route53:HostedZoneVpc" }, - "description": "*Private hosted zones:* A complex type that contains information about the VPCs that are associated with the specified hosted zone.\n For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``." + "description": "*Private hosted zones:* A complex type that contains information about the VPCs that are associated with the specified hosted zone.\n For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``." } } } @@ -246945,6 +253840,10 @@ "type": "string", "description": "The Amazon Resource Name (ARN) of the AppImageConfig." }, + "codeEditorAppImageConfig": { + "$ref": "#/types/aws-native:sagemaker:AppImageConfigCodeEditorAppImageConfig", + "description": "The CodeEditorAppImageConfig." + }, "jupyterLabAppImageConfig": { "$ref": "#/types/aws-native:sagemaker:AppImageConfigJupyterLabAppImageConfig", "description": "The JupyterLabAppImageConfig." @@ -247990,6 +254889,32 @@ } } }, + "aws-native:securityhub:getDelegatedAdmin": { + "description": "The AWS::SecurityHub::DelegatedAdmin resource represents the AWS Security Hub delegated admin account in your organization. One delegated admin resource is allowed to create for the organization in each region in which you configure the AdminAccountId.", + "inputs": { + "properties": { + "delegatedAdminIdentifier": { + "type": "string", + "description": "The identifier of the DelegatedAdmin being created and assigned as the unique identifier" + } + }, + "required": [ + "delegatedAdminIdentifier" + ] + }, + "outputs": { + "properties": { + "delegatedAdminIdentifier": { + "type": "string", + "description": "The identifier of the DelegatedAdmin being created and assigned as the unique identifier" + }, + "status": { + "$ref": "#/types/aws-native:securityhub:DelegatedAdminStatus", + "description": "The current status of the Security Hub administrator account. Indicates whether the account is currently enabled as a Security Hub administrator" + } + } + } + }, "aws-native:securityhub:getHub": { "description": "The AWS::SecurityHub::Hub resource represents the implementation of the AWS Security Hub service in your account. One hub resource is created for each Region in which you enable Security Hub.\n\n", "inputs": { @@ -248030,6 +254955,62 @@ } } }, + "aws-native:securityhub:getInsight": { + "description": "The AWS::SecurityHub::Insight resource represents the AWS Security Hub Insight in your account. An AWS Security Hub insight is a collection of related findings.", + "inputs": { + "properties": { + "insightArn": { + "type": "string", + "description": "The ARN of a Security Hub insight" + } + }, + "required": [ + "insightArn" + ] + }, + "outputs": { + "properties": { + "filters": { + "$ref": "#/types/aws-native:securityhub:InsightAwsSecurityFindingFilters", + "description": "One or more attributes used to filter the findings included in the insight" + }, + "groupByAttribute": { + "type": "string", + "description": "The grouping attribute for the insight's findings" + }, + "insightArn": { + "type": "string", + "description": "The ARN of a Security Hub insight" + }, + "name": { + "type": "string", + "description": "The name of a Security Hub insight" + } + } + } + }, + "aws-native:securityhub:getProductSubscription": { + "description": "The AWS::SecurityHub::ProductSubscription resource represents a subscription to a service that is allowed to generate findings for your Security Hub account. One product subscription resource is created for each product enabled.", + "inputs": { + "properties": { + "productSubscriptionArn": { + "type": "string", + "description": "The ARN of the product subscription for the account" + } + }, + "required": [ + "productSubscriptionArn" + ] + }, + "outputs": { + "properties": { + "productSubscriptionArn": { + "type": "string", + "description": "The ARN of the product subscription for the account" + } + } + } + }, "aws-native:securityhub:getStandard": { "description": "The ``AWS::SecurityHub::Standard`` resource specifies the enablement of a security standard. The standard is identified by the ``StandardsArn`` property. To view a list of ASH standards and their Amazon Resource Names (ARNs), use the [DescribeStandards](https://docs.aws.amazon.com/securityhub/1.0/APIReference/API_DescribeStandards.html) API operation.\n You must create a separate ``AWS::SecurityHub::Standard`` resource for each standard that you want to enable.\n For more information about ASH standards, see [standards reference](https://docs.aws.amazon.com/securityhub/latest/userguide/standards-reference.html) in the *User Guide*.", "inputs": { @@ -248057,6 +255038,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": { @@ -249124,7 +256247,7 @@ "properties": { "name": { "type": "string", - "description": "The name of the parameter.\n The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName``" + "description": "The name of the parameter.\n The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName``" } }, "required": [ diff --git a/reports/missedAutonaming.json b/reports/missedAutonaming.json index 0eaf95142f..0235e41ef5 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." } } }, @@ -2491,6 +2561,185 @@ } } }, + "aws-native:deadline:Farm": { + "cfTypeName": "AWS::Deadline::Farm", + "properties": { + "description": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "kmsKeyArn": { + "type": "string" + } + } + }, + "aws-native:deadline:Fleet": { + "cfTypeName": "AWS::Deadline::Fleet", + "properties": { + "configuration": { + "oneOf": [ + { + "$ref": "#/types/aws-native:deadline:FleetConfiguration0Properties" + }, + { + "$ref": "#/types/aws-native:deadline:FleetConfiguration1Properties" + } + ] + }, + "description": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "farmId": { + "type": "string" + }, + "maxWorkerCount": { + "type": "integer" + }, + "minWorkerCount": { + "type": "integer" + }, + "roleArn": { + "type": "string" + } + } + }, + "aws-native:deadline:LicenseEndpoint": { + "cfTypeName": "AWS::Deadline::LicenseEndpoint", + "properties": { + "securityGroupIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "subnetIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "vpcId": { + "type": "string" + } + } + }, + "aws-native:deadline:MeteredProduct": { + "cfTypeName": "AWS::Deadline::MeteredProduct", + "properties": { + "family": { + "type": "string" + }, + "licenseEndpointId": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "productId": { + "type": "string" + }, + "vendor": { + "type": "string" + } + } + }, + "aws-native:deadline:Queue": { + "cfTypeName": "AWS::Deadline::Queue", + "properties": { + "allowedStorageProfileIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "defaultBudgetAction": { + "$ref": "#/types/aws-native:deadline:QueueDefaultQueueBudgetAction" + }, + "description": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "farmId": { + "type": "string" + }, + "jobAttachmentSettings": { + "$ref": "#/types/aws-native:deadline:QueueJobAttachmentSettings" + }, + "jobRunAsUser": { + "$ref": "#/types/aws-native:deadline:QueueJobRunAsUser" + }, + "requiredFileSystemLocationNames": { + "type": "array", + "items": { + "type": "string" + } + }, + "roleArn": { + "type": "string" + } + } + }, + "aws-native:deadline:QueueEnvironment": { + "cfTypeName": "AWS::Deadline::QueueEnvironment", + "properties": { + "farmId": { + "type": "string" + }, + "priority": { + "type": "integer" + }, + "queueId": { + "type": "string" + }, + "template": { + "type": "string" + }, + "templateType": { + "$ref": "#/types/aws-native:deadline:QueueEnvironmentEnvironmentTemplateType" + } + } + }, + "aws-native:deadline:QueueFleetAssociation": { + "cfTypeName": "AWS::Deadline::QueueFleetAssociation", + "properties": { + "farmId": { + "type": "string" + }, + "fleetId": { + "type": "string" + }, + "queueId": { + "type": "string" + } + } + }, + "aws-native:deadline:StorageProfile": { + "cfTypeName": "AWS::Deadline::StorageProfile", + "properties": { + "displayName": { + "type": "string" + }, + "farmId": { + "type": "string" + }, + "fileSystemLocations": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:deadline:StorageProfileFileSystemLocation" + } + }, + "osFamily": { + "$ref": "#/types/aws-native:deadline:StorageProfileOperatingSystemFamily" + } + } + }, "aws-native:detective:Graph": { "cfTypeName": "AWS::Detective::Graph", "properties": { @@ -3593,14 +3842,14 @@ }, "secondaryPrivateIpAddressCount": { "type": "integer", - "description": "[Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time." + "description": "[Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time." }, "secondaryPrivateIpAddresses": { "type": "array", "items": { "type": "string" }, - "description": "Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time." + "description": "Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*.\n ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time." }, "subnetId": { "type": "string", @@ -3974,11 +4223,11 @@ "properties": { "cidrIp": { "type": "string", - "description": "The IPv4 address range, in CIDR format.\n You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``).\n For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*." + "description": "The IPv4 address range, in CIDR format.\n You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``.\n For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*." }, "cidrIpv6": { "type": "string", - "description": "The IPv6 address range, in CIDR format.\n You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``).\n For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*." + "description": "The IPv6 address range, in CIDR format.\n You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``.\n For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*." }, "description": { "type": "string", @@ -3986,11 +4235,11 @@ }, "destinationPrefixListId": { "type": "string", - "description": "The prefix list IDs for an AWS service. This is the AWS service that you want to access through a VPC endpoint from instances associated with the security group.\n You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``)." + "description": "The prefix list IDs for an AWS service. This is the AWS service to access through a VPC endpoint from instances associated with the security group.\n You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``." }, "destinationSecurityGroupId": { "type": "string", - "description": "The ID of the security group.\n You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``)." + "description": "The ID of the security group.\n You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``." }, "fromPort": { "type": "integer", @@ -4103,6 +4352,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 +4389,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 +4397,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 +4672,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." } } }, @@ -5136,7 +5391,7 @@ }, "cpu": { "type": "string", - "description": "The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter.\n The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.\n + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)\n + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)\n + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)\n + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)\n + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)\n + 8192 (8 vCPU) - Available ``memory`` va" + "description": "The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter.\n The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.\n + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)\n + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)\n + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)\n + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)\n + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)\n + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments\n This option requires Linux platform ``1.4.0`` or later.\n + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments\n This option requires Linux platform ``1.4.0`` or later." }, "ephemeralStorage": { "$ref": "#/types/aws-native:ecs:TaskDefinitionEphemeralStorage", @@ -5159,19 +5414,19 @@ }, "ipcMode": { "type": "string", - "description": "The IPC resource namespace to use for the containers in the task. The valid values are ``host``, ``task``, or ``none``. If ``host`` is specified, then all containers within the tasks that specified the ``host`` IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If ``task`` is specified, all containers within the specified task share the same IPC resources. If ``none`` is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see [IPC settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#ipc-settings---ipc) in the *Docker run reference*.\n If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more inform" + "description": "The IPC resource namespace to use for the containers in the task. The valid values are ``host``, ``task``, or ``none``. If ``host`` is specified, then all containers within the tasks that specified the ``host`` IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If ``task`` is specified, all containers within the specified task share the same IPC resources. If ``none`` is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see [IPC settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#ipc-settings---ipc) in the *Docker run reference*.\n If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/).\n If you are setting namespaced kernel parameters using ``systemControls`` for the containers in the task, the following will apply to your IPC resource namespace. For more information, see [System Controls](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html) in the *Amazon Elastic Container Service Developer Guide*.\n + For tasks that use the ``host`` IPC mode, IPC namespace related ``systemControls`` are not supported.\n + For tasks that use the ``task`` IPC mode, IPC namespace related ``systemControls`` will apply to all containers within a task.\n \n This parameter is not supported for Windows containers or tasks run on FARGATElong." }, "memory": { "type": "string", - "description": "The amount (in MiB) of memory used by the task.\n If your tasks runs on Amazon EC2 instances, you must specify either a task-level memory value or a container-level memory value. This field is optional and any value can be used. If a task-level memory value is specified, the container-level memory value is optional. For more information regarding container-level memory and memory reservation, see [ContainerDefinition](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html).\n If your tasks runs on FARGATElong, this field is required. You must use one of the following values. The value you choose determines your range of valid values for the ``cpu`` parameter.\n + 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available ``cpu`` values: 256 (.25 vCPU)\n + 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available ``cpu`` values: 512 (.5 vCPU)\n + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` va" + "description": "The amount (in MiB) of memory used by the task.\n If your tasks runs on Amazon EC2 instances, you must specify either a task-level memory value or a container-level memory value. This field is optional and any value can be used. If a task-level memory value is specified, the container-level memory value is optional. For more information regarding container-level memory and memory reservation, see [ContainerDefinition](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html).\n If your tasks runs on FARGATElong, this field is required. You must use one of the following values. The value you choose determines your range of valid values for the ``cpu`` parameter.\n + 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available ``cpu`` values: 256 (.25 vCPU)\n + 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available ``cpu`` values: 512 (.5 vCPU)\n + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` values: 1024 (1 vCPU)\n + Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 2048 (2 vCPU)\n + Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 4096 (4 vCPU)\n + Between 16 GB and 60 GB in 4 GB increments - Available ``cpu`` values: 8192 (8 vCPU)\n This option requires Linux platform ``1.4.0`` or later.\n + Between 32GB and 120 GB in 8 GB increments - Available ``cpu`` values: 16384 (16 vCPU)\n This option requires Linux platform ``1.4.0`` or later." }, "networkMode": { "type": "string", - "description": "The Docker networking mode to use for the containers in the task. The valid values are ``none``, ``bridge``, ``awsvpc``, and ``host``. If no network mode is specified, the default is ``bridge``.\n For Amazon ECS tasks on Fargate, the ``awsvpc`` network mode is required. For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, ``\u003cdefault\u003e`` or ``awsvpc`` can be used. If the network mode is set to ``none``, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The ``host`` and ``awsvpc`` network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the ``bridge`` mode.\n With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elasti" + "description": "The Docker networking mode to use for the containers in the task. The valid values are ``none``, ``bridge``, ``awsvpc``, and ``host``. If no network mode is specified, the default is ``bridge``.\n For Amazon ECS tasks on Fargate, the ``awsvpc`` network mode is required. For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, ``\u003cdefault\u003e`` or ``awsvpc`` can be used. If the network mode is set to ``none``, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The ``host`` and ``awsvpc`` network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the ``bridge`` mode.\n With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elastic network interface port (for the ``awsvpc`` network mode), so you cannot take advantage of dynamic host port mappings. \n When using the ``host`` network mode, you should not run containers using the root user (UID 0). It is considered best practice to use a non-root user.\n If the network mode is ``awsvpc``, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration value when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*.\n If the network mode is ``host``, you cannot run multiple instantiations of the same task on a single container instance when port mappings are used.\n For more information, see [Network settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#network-settings) in the *Docker run reference*." }, "pidMode": { "type": "string", - "description": "The process namespace to use for the containers in the task. The valid values are ``host`` or ``task``. On Fargate for Linux containers, the only valid value is ``task``. For example, monitoring sidecars might need ``pidMode`` to access information about other containers running in the same task.\n If ``host`` is specified, all containers within the tasks that specified the ``host`` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance.\n If ``task`` is specified, all containers within the specified task share the same process namespace.\n If no value is specified, the default is a private namespace for each container. For more information, see [PID settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#pid-settings---pid) in the *Docker run reference*.\n If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://doc" + "description": "The process namespace to use for the containers in the task. The valid values are ``host`` or ``task``. On Fargate for Linux containers, the only valid value is ``task``. For example, monitoring sidecars might need ``pidMode`` to access information about other containers running in the same task.\n If ``host`` is specified, all containers within the tasks that specified the ``host`` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance.\n If ``task`` is specified, all containers within the specified task share the same process namespace.\n If no value is specified, the default is a private namespace for each container. For more information, see [PID settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#pid-settings---pid) in the *Docker run reference*.\n If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/).\n This parameter is not supported for Windows containers.\n This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate." }, "placementConstraints": { "type": "array", @@ -5200,7 +5455,7 @@ "items": { "$ref": "#/types/aws-native:index:Tag" }, - "description": "The metadata that you apply to the task definition to help you categorize and organize them. Each tag consists of a key and an optional value. You define both of them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values" + "description": "The metadata that you apply to the task definition to help you categorize and organize them. Each tag consists of a key and an optional value. You define both of them.\n The following basic restrictions apply to tags:\n + Maximum number of tags per resource - 50\n + For each resource, each tag key must be unique, and each tag key can have only one value.\n + Maximum key length - 128 Unicode characters in UTF-8\n + Maximum value length - 256 Unicode characters in UTF-8\n + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.\n + Tag keys and values are case-sensitive.\n + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit." }, "taskRoleArn": { "type": "string", @@ -5718,6 +5973,35 @@ } } }, + "aws-native:entityresolution:PolicyStatement": { + "cfTypeName": "AWS::EntityResolution::PolicyStatement", + "properties": { + "action": { + "type": "array", + "items": { + "type": "string" + } + }, + "arn": { + "type": "string" + }, + "condition": { + "type": "string" + }, + "effect": { + "$ref": "#/types/aws-native:entityresolution:PolicyStatementStatementEffect" + }, + "principal": { + "type": "array", + "items": { + "type": "string" + } + }, + "statementId": { + "type": "string" + } + } + }, "aws-native:entityresolution:SchemaMapping": { "cfTypeName": "AWS::EntityResolution::SchemaMapping", "properties": { @@ -8406,6 +8690,10 @@ "type": "string", "description": "The name of your CEV. The name format is 19.customized_string . For example, a valid name is 19.my_cev1. This setting is required for RDS Custom for Oracle, but optional for Amazon RDS. The combination of Engine and EngineVersion is unique per customer per Region." }, + "imageId": { + "type": "string", + "description": "The identifier of Amazon Machine Image (AMI) used for CEV." + }, "kmsKeyId": { "type": "string", "description": "The AWS KMS key identifier for an encrypted CEV. A symmetric KMS key is required for RDS Custom, but optional for Amazon RDS." @@ -8414,6 +8702,10 @@ "type": "string", "description": "The CEV manifest, which is a JSON document that describes the installation .zip files stored in Amazon S3. Specify the name/value pairs in a file or a quoted string. RDS Custom applies the patches in the order in which they are listed." }, + "sourceCustomDbEngineVersionIdentifier": { + "type": "string", + "description": "The identifier of the source custom engine version." + }, "status": { "$ref": "#/types/aws-native:rds:CustomDbEngineVersionStatus", "description": "The availability status to be assigned to the CEV." @@ -8424,6 +8716,10 @@ "$ref": "#/types/aws-native:index:Tag" }, "description": "An array of key-value pairs to apply to this resource." + }, + "useAwsProvidedLatestImage": { + "type": "boolean", + "description": "A value that indicates whether AWS provided latest image is applied automatically to the Custom Engine Version. By default, AWS provided latest image is applied automatically. This value is only applied on create." } } }, @@ -9743,6 +10039,15 @@ } } }, + "aws-native:securityhub:DelegatedAdmin": { + "cfTypeName": "AWS::SecurityHub::DelegatedAdmin", + "properties": { + "adminAccountId": { + "type": "string", + "description": "The Amazon Web Services account identifier of the account to designate as the Security Hub administrator account" + } + } + }, "aws-native:securityhub:Hub": { "cfTypeName": "AWS::SecurityHub::Hub", "properties": { @@ -9766,6 +10071,15 @@ } } }, + "aws-native:securityhub:ProductSubscription": { + "cfTypeName": "AWS::SecurityHub::ProductSubscription", + "properties": { + "productArn": { + "type": "string", + "description": "The generic ARN of the product being subscribed to" + } + } + }, "aws-native:securityhub:Standard": { "cfTypeName": "AWS::SecurityHub::Standard", "properties": { @@ -9782,6 +10096,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/Amplify/Domain.cs b/sdk/dotnet/Amplify/Domain.cs index 3954008b44..114489f550 100644 --- a/sdk/dotnet/Amplify/Domain.cs +++ b/sdk/dotnet/Amplify/Domain.cs @@ -28,7 +28,7 @@ public partial class Domain : global::Pulumi.CustomResource public Output AutoSubDomainIamRole { get; private set; } = null!; [Output("certificate")] - public Output Certificate { get; private set; } = null!; + public Output Certificate { get; private set; } = null!; [Output("certificateRecord")] public Output CertificateRecord { get; private set; } = null!; @@ -52,7 +52,7 @@ public partial class Domain : global::Pulumi.CustomResource public Output> SubDomainSettings { get; private set; } = null!; [Output("updateStatus")] - public Output UpdateStatus { get; private set; } = null!; + public Output UpdateStatus { get; private set; } = null!; /// @@ -118,9 +118,6 @@ public InputList AutoSubDomainCreationPatterns [Input("autoSubDomainIamRole")] public Input? AutoSubDomainIamRole { get; set; } - [Input("certificate")] - public Input? Certificate { get; set; } - [Input("certificateSettings")] public Input? CertificateSettings { get; set; } @@ -138,9 +135,6 @@ public InputList SubDomainSettings set => _subDomainSettings = value; } - [Input("updateStatus")] - public Input? UpdateStatus { get; set; } - public DomainArgs() { } diff --git a/sdk/dotnet/Amplify/GetDomain.cs b/sdk/dotnet/Amplify/GetDomain.cs index c6cf9a9db3..5aec2e1cb3 100644 --- a/sdk/dotnet/Amplify/GetDomain.cs +++ b/sdk/dotnet/Amplify/GetDomain.cs @@ -56,7 +56,6 @@ public sealed class GetDomainResult public readonly string? AutoSubDomainIamRole; public readonly Outputs.DomainCertificate? Certificate; public readonly string? CertificateRecord; - public readonly Outputs.DomainCertificateSettings? CertificateSettings; public readonly string? DomainStatus; public readonly bool? EnableAutoSubDomain; public readonly string? StatusReason; @@ -75,8 +74,6 @@ private GetDomainResult( string? certificateRecord, - Outputs.DomainCertificateSettings? certificateSettings, - string? domainStatus, bool? enableAutoSubDomain, @@ -92,7 +89,6 @@ private GetDomainResult( AutoSubDomainIamRole = autoSubDomainIamRole; Certificate = certificate; CertificateRecord = certificateRecord; - CertificateSettings = certificateSettings; DomainStatus = domainStatus; EnableAutoSubDomain = enableAutoSubDomain; StatusReason = statusReason; diff --git a/sdk/dotnet/Amplify/Inputs/DomainCertificateArgs.cs b/sdk/dotnet/Amplify/Inputs/DomainCertificateArgs.cs deleted file mode 100644 index 249ca249fd..0000000000 --- a/sdk/dotnet/Amplify/Inputs/DomainCertificateArgs.cs +++ /dev/null @@ -1,29 +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.Amplify.Inputs -{ - - public sealed class DomainCertificateArgs : global::Pulumi.ResourceArgs - { - [Input("certificateArn")] - public Input? CertificateArn { get; set; } - - [Input("certificateType")] - public Input? CertificateType { get; set; } - - [Input("certificateVerificationDnsRecord")] - public Input? CertificateVerificationDnsRecord { get; set; } - - public DomainCertificateArgs() - { - } - public static new DomainCertificateArgs Empty => new DomainCertificateArgs(); - } -} 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/ArcZonalShift/Enums.cs b/sdk/dotnet/ArcZonalShift/Enums.cs index 21e3b101d5..1fd119d2f3 100644 --- a/sdk/dotnet/ArcZonalShift/Enums.cs +++ b/sdk/dotnet/ArcZonalShift/Enums.cs @@ -45,7 +45,6 @@ private ZonalAutoshiftConfigurationZonalAutoshiftStatus(string value) } public static ZonalAutoshiftConfigurationZonalAutoshiftStatus Enabled { get; } = new ZonalAutoshiftConfigurationZonalAutoshiftStatus("ENABLED"); - public static ZonalAutoshiftConfigurationZonalAutoshiftStatus Disabled { get; } = new ZonalAutoshiftConfigurationZonalAutoshiftStatus("DISABLED"); public static bool operator ==(ZonalAutoshiftConfigurationZonalAutoshiftStatus left, ZonalAutoshiftConfigurationZonalAutoshiftStatus right) => left.Equals(right); public static bool operator !=(ZonalAutoshiftConfigurationZonalAutoshiftStatus left, ZonalAutoshiftConfigurationZonalAutoshiftStatus right) => !left.Equals(right); 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/DataSource.cs b/sdk/dotnet/Bedrock/DataSource.cs new file mode 100644 index 0000000000..960918fd0d --- /dev/null +++ b/sdk/dotnet/Bedrock/DataSource.cs @@ -0,0 +1,148 @@ +// *** 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::DataSource Resource Type + /// + [AwsNativeResourceType("aws-native:bedrock:DataSource")] + public partial class DataSource : global::Pulumi.CustomResource + { + /// + /// The time at which the data source was created. + /// + [Output("createdAt")] + public Output CreatedAt { get; private set; } = null!; + + [Output("dataSourceConfiguration")] + public Output DataSourceConfiguration { get; private set; } = null!; + + /// + /// Identifier for a resource. + /// + [Output("dataSourceId")] + public Output DataSourceId { get; private set; } = null!; + + [Output("dataSourceStatus")] + public Output DataSourceStatus { get; private set; } = null!; + + /// + /// Description of the Resource. + /// + [Output("description")] + public Output Description { get; private set; } = null!; + + /// + /// The unique identifier of the knowledge base to which to add the data source. + /// + [Output("knowledgeBaseId")] + public Output KnowledgeBaseId { get; private set; } = null!; + + /// + /// The name of the data source. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + [Output("serverSideEncryptionConfiguration")] + public Output ServerSideEncryptionConfiguration { get; private set; } = null!; + + /// + /// The time at which the knowledge base was last updated. + /// + [Output("updatedAt")] + public Output UpdatedAt { get; private set; } = null!; + + [Output("vectorIngestionConfiguration")] + public Output VectorIngestionConfiguration { get; private set; } = null!; + + + /// + /// Create a DataSource 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 DataSource(string name, DataSourceArgs args, CustomResourceOptions? options = null) + : base("aws-native:bedrock:DataSource", name, args ?? new DataSourceArgs(), MakeResourceOptions(options, "")) + { + } + + private DataSource(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:bedrock:DataSource", name, null, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + ReplaceOnChanges = + { + "knowledgeBaseId", + "vectorIngestionConfiguration", + }, + }; + 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 DataSource 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 DataSource Get(string name, Input id, CustomResourceOptions? options = null) + { + return new DataSource(name, id, options); + } + } + + public sealed class DataSourceArgs : global::Pulumi.ResourceArgs + { + [Input("dataSourceConfiguration", required: true)] + public Input DataSourceConfiguration { get; set; } = null!; + + /// + /// Description of the Resource. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// The unique identifier of the knowledge base to which to add the data source. + /// + [Input("knowledgeBaseId", required: true)] + public Input KnowledgeBaseId { get; set; } = null!; + + /// + /// The name of the data source. + /// + [Input("name")] + public Input? Name { get; set; } + + [Input("serverSideEncryptionConfiguration")] + public Input? ServerSideEncryptionConfiguration { get; set; } + + [Input("vectorIngestionConfiguration")] + public Input? VectorIngestionConfiguration { get; set; } + + public DataSourceArgs() + { + } + public static new DataSourceArgs Empty => new DataSourceArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Enums.cs b/sdk/dotnet/Bedrock/Enums.cs new file mode 100644 index 0000000000..394544ec80 --- /dev/null +++ b/sdk/dotnet/Bedrock/Enums.cs @@ -0,0 +1,455 @@ +// *** 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; + } + + /// + /// Knowledge base can split your source data into chunks. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried. You have the following options for chunking your data. If you opt for NONE, then you may want to pre-process your files by splitting them up such that each file corresponds to a chunk. + /// + [EnumType] + public readonly struct DataSourceChunkingStrategy : IEquatable + { + private readonly string _value; + + private DataSourceChunkingStrategy(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static DataSourceChunkingStrategy FixedSize { get; } = new DataSourceChunkingStrategy("FIXED_SIZE"); + public static DataSourceChunkingStrategy None { get; } = new DataSourceChunkingStrategy("NONE"); + + public static bool operator ==(DataSourceChunkingStrategy left, DataSourceChunkingStrategy right) => left.Equals(right); + public static bool operator !=(DataSourceChunkingStrategy left, DataSourceChunkingStrategy right) => !left.Equals(right); + + public static explicit operator string(DataSourceChunkingStrategy value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is DataSourceChunkingStrategy other && Equals(other); + public bool Equals(DataSourceChunkingStrategy 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 a data source. + /// + [EnumType] + public readonly struct DataSourceStatus : IEquatable + { + private readonly string _value; + + private DataSourceStatus(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static DataSourceStatus Available { get; } = new DataSourceStatus("AVAILABLE"); + public static DataSourceStatus Deleting { get; } = new DataSourceStatus("DELETING"); + + public static bool operator ==(DataSourceStatus left, DataSourceStatus right) => left.Equals(right); + public static bool operator !=(DataSourceStatus left, DataSourceStatus right) => !left.Equals(right); + + public static explicit operator string(DataSourceStatus value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is DataSourceStatus other && Equals(other); + public bool Equals(DataSourceStatus other) => string.Equals(_value, other._value, StringComparison.Ordinal); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value?.GetHashCode() ?? 0; + + public override string ToString() => _value; + } + + /// + /// The type of the data source location. + /// + [EnumType] + public readonly struct DataSourceType : IEquatable + { + private readonly string _value; + + private DataSourceType(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static DataSourceType S3 { get; } = new DataSourceType("S3"); + + public static bool operator ==(DataSourceType left, DataSourceType right) => left.Equals(right); + public static bool operator !=(DataSourceType left, DataSourceType right) => !left.Equals(right); + + public static explicit operator string(DataSourceType value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is DataSourceType other && Equals(other); + public bool Equals(DataSourceType 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 a knowledge base. + /// + [EnumType] + public readonly struct KnowledgeBaseStatus : IEquatable + { + private readonly string _value; + + private KnowledgeBaseStatus(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static KnowledgeBaseStatus Creating { get; } = new KnowledgeBaseStatus("CREATING"); + public static KnowledgeBaseStatus Active { get; } = new KnowledgeBaseStatus("ACTIVE"); + public static KnowledgeBaseStatus Deleting { get; } = new KnowledgeBaseStatus("DELETING"); + public static KnowledgeBaseStatus Updating { get; } = new KnowledgeBaseStatus("UPDATING"); + public static KnowledgeBaseStatus Failed { get; } = new KnowledgeBaseStatus("FAILED"); + + public static bool operator ==(KnowledgeBaseStatus left, KnowledgeBaseStatus right) => left.Equals(right); + public static bool operator !=(KnowledgeBaseStatus left, KnowledgeBaseStatus right) => !left.Equals(right); + + public static explicit operator string(KnowledgeBaseStatus value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is KnowledgeBaseStatus other && Equals(other); + public bool Equals(KnowledgeBaseStatus other) => string.Equals(_value, other._value, StringComparison.Ordinal); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value?.GetHashCode() ?? 0; + + public override string ToString() => _value; + } + + /// + /// The storage type of a knowledge base. + /// + [EnumType] + public readonly struct KnowledgeBaseStorageType : IEquatable + { + private readonly string _value; + + private KnowledgeBaseStorageType(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static KnowledgeBaseStorageType OpensearchServerless { get; } = new KnowledgeBaseStorageType("OPENSEARCH_SERVERLESS"); + public static KnowledgeBaseStorageType Pinecone { get; } = new KnowledgeBaseStorageType("PINECONE"); + public static KnowledgeBaseStorageType Rds { get; } = new KnowledgeBaseStorageType("RDS"); + + public static bool operator ==(KnowledgeBaseStorageType left, KnowledgeBaseStorageType right) => left.Equals(right); + public static bool operator !=(KnowledgeBaseStorageType left, KnowledgeBaseStorageType right) => !left.Equals(right); + + public static explicit operator string(KnowledgeBaseStorageType value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is KnowledgeBaseStorageType other && Equals(other); + public bool Equals(KnowledgeBaseStorageType other) => string.Equals(_value, other._value, StringComparison.Ordinal); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value?.GetHashCode() ?? 0; + + public override string ToString() => _value; + } + + /// + /// The type of a knowledge base. + /// + [EnumType] + public readonly struct KnowledgeBaseType : IEquatable + { + private readonly string _value; + + private KnowledgeBaseType(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static KnowledgeBaseType Vector { get; } = new KnowledgeBaseType("VECTOR"); + + public static bool operator ==(KnowledgeBaseType left, KnowledgeBaseType right) => left.Equals(right); + public static bool operator !=(KnowledgeBaseType left, KnowledgeBaseType right) => !left.Equals(right); + + public static explicit operator string(KnowledgeBaseType value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is KnowledgeBaseType other && Equals(other); + public bool Equals(KnowledgeBaseType 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/GetDataSource.cs b/sdk/dotnet/Bedrock/GetDataSource.cs new file mode 100644 index 0000000000..91094c4ab6 --- /dev/null +++ b/sdk/dotnet/Bedrock/GetDataSource.cs @@ -0,0 +1,124 @@ +// *** 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 GetDataSource + { + /// + /// Definition of AWS::Bedrock::DataSource Resource Type + /// + public static Task InvokeAsync(GetDataSourceArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:bedrock:getDataSource", args ?? new GetDataSourceArgs(), options.WithDefaults()); + + /// + /// Definition of AWS::Bedrock::DataSource Resource Type + /// + public static Output Invoke(GetDataSourceInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:bedrock:getDataSource", args ?? new GetDataSourceInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetDataSourceArgs : global::Pulumi.InvokeArgs + { + /// + /// Identifier for a resource. + /// + [Input("dataSourceId", required: true)] + public string DataSourceId { get; set; } = null!; + + /// + /// The unique identifier of the knowledge base to which to add the data source. + /// + [Input("knowledgeBaseId", required: true)] + public string KnowledgeBaseId { get; set; } = null!; + + public GetDataSourceArgs() + { + } + public static new GetDataSourceArgs Empty => new GetDataSourceArgs(); + } + + public sealed class GetDataSourceInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// Identifier for a resource. + /// + [Input("dataSourceId", required: true)] + public Input DataSourceId { get; set; } = null!; + + /// + /// The unique identifier of the knowledge base to which to add the data source. + /// + [Input("knowledgeBaseId", required: true)] + public Input KnowledgeBaseId { get; set; } = null!; + + public GetDataSourceInvokeArgs() + { + } + public static new GetDataSourceInvokeArgs Empty => new GetDataSourceInvokeArgs(); + } + + + [OutputType] + public sealed class GetDataSourceResult + { + /// + /// The time at which the data source was created. + /// + public readonly string? CreatedAt; + public readonly Outputs.DataSourceConfiguration? DataSourceConfiguration; + /// + /// Identifier for a resource. + /// + public readonly string? DataSourceId; + public readonly Pulumi.AwsNative.Bedrock.DataSourceStatus? DataSourceStatus; + /// + /// Description of the Resource. + /// + public readonly string? Description; + /// + /// The name of the data source. + /// + public readonly string? Name; + public readonly Outputs.DataSourceServerSideEncryptionConfiguration? ServerSideEncryptionConfiguration; + /// + /// The time at which the knowledge base was last updated. + /// + public readonly string? UpdatedAt; + + [OutputConstructor] + private GetDataSourceResult( + string? createdAt, + + Outputs.DataSourceConfiguration? dataSourceConfiguration, + + string? dataSourceId, + + Pulumi.AwsNative.Bedrock.DataSourceStatus? dataSourceStatus, + + string? description, + + string? name, + + Outputs.DataSourceServerSideEncryptionConfiguration? serverSideEncryptionConfiguration, + + string? updatedAt) + { + CreatedAt = createdAt; + DataSourceConfiguration = dataSourceConfiguration; + DataSourceId = dataSourceId; + DataSourceStatus = dataSourceStatus; + Description = description; + Name = name; + ServerSideEncryptionConfiguration = serverSideEncryptionConfiguration; + UpdatedAt = updatedAt; + } + } +} diff --git a/sdk/dotnet/Bedrock/GetKnowledgeBase.cs b/sdk/dotnet/Bedrock/GetKnowledgeBase.cs new file mode 100644 index 0000000000..af95cb5159 --- /dev/null +++ b/sdk/dotnet/Bedrock/GetKnowledgeBase.cs @@ -0,0 +1,129 @@ +// *** 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 GetKnowledgeBase + { + /// + /// Definition of AWS::Bedrock::KnowledgeBase Resource Type + /// + public static Task InvokeAsync(GetKnowledgeBaseArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:bedrock:getKnowledgeBase", args ?? new GetKnowledgeBaseArgs(), options.WithDefaults()); + + /// + /// Definition of AWS::Bedrock::KnowledgeBase Resource Type + /// + public static Output Invoke(GetKnowledgeBaseInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:bedrock:getKnowledgeBase", args ?? new GetKnowledgeBaseInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetKnowledgeBaseArgs : global::Pulumi.InvokeArgs + { + /// + /// The unique identifier of the knowledge base. + /// + [Input("knowledgeBaseId", required: true)] + public string KnowledgeBaseId { get; set; } = null!; + + public GetKnowledgeBaseArgs() + { + } + public static new GetKnowledgeBaseArgs Empty => new GetKnowledgeBaseArgs(); + } + + public sealed class GetKnowledgeBaseInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The unique identifier of the knowledge base. + /// + [Input("knowledgeBaseId", required: true)] + public Input KnowledgeBaseId { get; set; } = null!; + + public GetKnowledgeBaseInvokeArgs() + { + } + public static new GetKnowledgeBaseInvokeArgs Empty => new GetKnowledgeBaseInvokeArgs(); + } + + + [OutputType] + public sealed class GetKnowledgeBaseResult + { + /// + /// The time at which the knowledge base was created. + /// + public readonly string? CreatedAt; + /// + /// Description of the Resource. + /// + public readonly string? Description; + /// + /// A list of reasons that the API operation on the knowledge base failed. + /// + public readonly ImmutableArray FailureReasons; + /// + /// The ARN of the knowledge base. + /// + public readonly string? KnowledgeBaseArn; + /// + /// The unique identifier of the knowledge base. + /// + public readonly string? KnowledgeBaseId; + /// + /// The name of the knowledge base. + /// + public readonly string? Name; + /// + /// The ARN of the IAM role with permissions to invoke API operations on the knowledge base. The ARN must begin with AmazonBedrockExecutionRoleForKnowledgeBase_ + /// + public readonly string? RoleArn; + public readonly Pulumi.AwsNative.Bedrock.KnowledgeBaseStatus? Status; + public readonly ImmutableDictionary? Tags; + /// + /// The time at which the knowledge base was last updated. + /// + public readonly string? UpdatedAt; + + [OutputConstructor] + private GetKnowledgeBaseResult( + string? createdAt, + + string? description, + + ImmutableArray failureReasons, + + string? knowledgeBaseArn, + + string? knowledgeBaseId, + + string? name, + + string? roleArn, + + Pulumi.AwsNative.Bedrock.KnowledgeBaseStatus? status, + + ImmutableDictionary? tags, + + string? updatedAt) + { + CreatedAt = createdAt; + Description = description; + FailureReasons = failureReasons; + KnowledgeBaseArn = knowledgeBaseArn; + KnowledgeBaseId = knowledgeBaseId; + Name = name; + RoleArn = roleArn; + Status = status; + 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/Inputs/DataSourceChunkingConfigurationArgs.cs b/sdk/dotnet/Bedrock/Inputs/DataSourceChunkingConfigurationArgs.cs new file mode 100644 index 0000000000..f2a73a4851 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/DataSourceChunkingConfigurationArgs.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 how to chunk the documents in the data source. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried. + /// + public sealed class DataSourceChunkingConfigurationArgs : global::Pulumi.ResourceArgs + { + [Input("chunkingStrategy", required: true)] + public Input ChunkingStrategy { get; set; } = null!; + + [Input("fixedSizeChunkingConfiguration")] + public Input? FixedSizeChunkingConfiguration { get; set; } + + public DataSourceChunkingConfigurationArgs() + { + } + public static new DataSourceChunkingConfigurationArgs Empty => new DataSourceChunkingConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/DataSourceConfigurationArgs.cs b/sdk/dotnet/Bedrock/Inputs/DataSourceConfigurationArgs.cs new file mode 100644 index 0000000000..33b6c27969 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/DataSourceConfigurationArgs.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 +{ + + /// + /// Specifies a raw data source location to ingest. + /// + public sealed class DataSourceConfigurationArgs : global::Pulumi.ResourceArgs + { + [Input("s3Configuration", required: true)] + public Input S3Configuration { get; set; } = null!; + + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public DataSourceConfigurationArgs() + { + } + public static new DataSourceConfigurationArgs Empty => new DataSourceConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/DataSourceFixedSizeChunkingConfigurationArgs.cs b/sdk/dotnet/Bedrock/Inputs/DataSourceFixedSizeChunkingConfigurationArgs.cs new file mode 100644 index 0000000000..4e737d9478 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/DataSourceFixedSizeChunkingConfigurationArgs.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 +{ + + /// + /// Configurations for when you choose fixed-size chunking. If you set the chunkingStrategy as NONE, exclude this field. + /// + public sealed class DataSourceFixedSizeChunkingConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// The maximum number of tokens to include in a chunk. + /// + [Input("maxTokens", required: true)] + public Input MaxTokens { get; set; } = null!; + + /// + /// The percentage of overlap between adjacent chunks of a data source. + /// + [Input("overlapPercentage", required: true)] + public Input OverlapPercentage { get; set; } = null!; + + public DataSourceFixedSizeChunkingConfigurationArgs() + { + } + public static new DataSourceFixedSizeChunkingConfigurationArgs Empty => new DataSourceFixedSizeChunkingConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/DataSourceS3DataSourceConfigurationArgs.cs b/sdk/dotnet/Bedrock/Inputs/DataSourceS3DataSourceConfigurationArgs.cs new file mode 100644 index 0000000000..0f257490b4 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/DataSourceS3DataSourceConfigurationArgs.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 +{ + + /// + /// Contains information about the S3 configuration of the data source. + /// + public sealed class DataSourceS3DataSourceConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// The ARN of the bucket that contains the data source. + /// + [Input("bucketArn", required: true)] + public Input BucketArn { get; set; } = null!; + + [Input("inclusionPrefixes")] + private InputList? _inclusionPrefixes; + + /// + /// A list of S3 prefixes that define the object containing the data sources. + /// + public InputList InclusionPrefixes + { + get => _inclusionPrefixes ?? (_inclusionPrefixes = new InputList()); + set => _inclusionPrefixes = value; + } + + public DataSourceS3DataSourceConfigurationArgs() + { + } + public static new DataSourceS3DataSourceConfigurationArgs Empty => new DataSourceS3DataSourceConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/DataSourceServerSideEncryptionConfigurationArgs.cs b/sdk/dotnet/Bedrock/Inputs/DataSourceServerSideEncryptionConfigurationArgs.cs new file mode 100644 index 0000000000..fc67d20216 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/DataSourceServerSideEncryptionConfigurationArgs.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 details about the server-side encryption for the data source. + /// + public sealed class DataSourceServerSideEncryptionConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// The ARN of the AWS KMS key used to encrypt the resource. + /// + [Input("kmsKeyArn")] + public Input? KmsKeyArn { get; set; } + + public DataSourceServerSideEncryptionConfigurationArgs() + { + } + public static new DataSourceServerSideEncryptionConfigurationArgs Empty => new DataSourceServerSideEncryptionConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/DataSourceVectorIngestionConfigurationArgs.cs b/sdk/dotnet/Bedrock/Inputs/DataSourceVectorIngestionConfigurationArgs.cs new file mode 100644 index 0000000000..1dbb9c2dd5 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/DataSourceVectorIngestionConfigurationArgs.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 +{ + + /// + /// Details about how to chunk the documents in the data source. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried. + /// + public sealed class DataSourceVectorIngestionConfigurationArgs : global::Pulumi.ResourceArgs + { + [Input("chunkingConfiguration")] + public Input? ChunkingConfiguration { get; set; } + + public DataSourceVectorIngestionConfigurationArgs() + { + } + public static new DataSourceVectorIngestionConfigurationArgs Empty => new DataSourceVectorIngestionConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/KnowledgeBaseConfigurationArgs.cs b/sdk/dotnet/Bedrock/Inputs/KnowledgeBaseConfigurationArgs.cs new file mode 100644 index 0000000000..210523704d --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/KnowledgeBaseConfigurationArgs.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 details about the embeddings model used for the knowledge base. + /// + public sealed class KnowledgeBaseConfigurationArgs : global::Pulumi.ResourceArgs + { + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + [Input("vectorKnowledgeBaseConfiguration", required: true)] + public Input VectorKnowledgeBaseConfiguration { get; set; } = null!; + + public KnowledgeBaseConfigurationArgs() + { + } + public static new KnowledgeBaseConfigurationArgs Empty => new KnowledgeBaseConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/KnowledgeBaseOpenSearchServerlessConfigurationArgs.cs b/sdk/dotnet/Bedrock/Inputs/KnowledgeBaseOpenSearchServerlessConfigurationArgs.cs new file mode 100644 index 0000000000..1b3134678a --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/KnowledgeBaseOpenSearchServerlessConfigurationArgs.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 +{ + + /// + /// Contains the storage configuration of the knowledge base in Amazon OpenSearch Service. + /// + public sealed class KnowledgeBaseOpenSearchServerlessConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// The ARN of the OpenSearch Service vector store. + /// + [Input("collectionArn", required: true)] + public Input CollectionArn { get; set; } = null!; + + [Input("fieldMapping", required: true)] + public Input FieldMapping { get; set; } = null!; + + /// + /// The name of the vector store. + /// + [Input("vectorIndexName", required: true)] + public Input VectorIndexName { get; set; } = null!; + + public KnowledgeBaseOpenSearchServerlessConfigurationArgs() + { + } + public static new KnowledgeBaseOpenSearchServerlessConfigurationArgs Empty => new KnowledgeBaseOpenSearchServerlessConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/KnowledgeBaseOpenSearchServerlessFieldMappingArgs.cs b/sdk/dotnet/Bedrock/Inputs/KnowledgeBaseOpenSearchServerlessFieldMappingArgs.cs new file mode 100644 index 0000000000..772538d9ea --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/KnowledgeBaseOpenSearchServerlessFieldMappingArgs.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 +{ + + /// + /// A mapping of Bedrock Knowledge Base fields to OpenSearch Serverless field names + /// + public sealed class KnowledgeBaseOpenSearchServerlessFieldMappingArgs : global::Pulumi.ResourceArgs + { + /// + /// The name of the field in which Amazon Bedrock stores metadata about the vector store. + /// + [Input("metadataField", required: true)] + public Input MetadataField { get; set; } = null!; + + /// + /// The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. + /// + [Input("textField", required: true)] + public Input TextField { get; set; } = null!; + + /// + /// The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources. + /// + [Input("vectorField", required: true)] + public Input VectorField { get; set; } = null!; + + public KnowledgeBaseOpenSearchServerlessFieldMappingArgs() + { + } + public static new KnowledgeBaseOpenSearchServerlessFieldMappingArgs Empty => new KnowledgeBaseOpenSearchServerlessFieldMappingArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/KnowledgeBasePineconeConfigurationArgs.cs b/sdk/dotnet/Bedrock/Inputs/KnowledgeBasePineconeConfigurationArgs.cs new file mode 100644 index 0000000000..f7abc8c70a --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/KnowledgeBasePineconeConfigurationArgs.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 +{ + + /// + /// Contains the storage configuration of the knowledge base in Pinecone. + /// + public sealed class KnowledgeBasePineconeConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// The endpoint URL for your index management page. + /// + [Input("connectionString", required: true)] + public Input ConnectionString { get; set; } = null!; + + /// + /// The ARN of the secret that you created in AWS Secrets Manager that is linked to your Pinecone API key. + /// + [Input("credentialsSecretArn", required: true)] + public Input CredentialsSecretArn { get; set; } = null!; + + [Input("fieldMapping", required: true)] + public Input FieldMapping { get; set; } = null!; + + /// + /// The namespace to be used to write new data to your database. + /// + [Input("namespace")] + public Input? Namespace { get; set; } + + public KnowledgeBasePineconeConfigurationArgs() + { + } + public static new KnowledgeBasePineconeConfigurationArgs Empty => new KnowledgeBasePineconeConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/KnowledgeBasePineconeFieldMappingArgs.cs b/sdk/dotnet/Bedrock/Inputs/KnowledgeBasePineconeFieldMappingArgs.cs new file mode 100644 index 0000000000..940724f875 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/KnowledgeBasePineconeFieldMappingArgs.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 +{ + + /// + /// Contains the names of the fields to which to map information about the vector store. + /// + public sealed class KnowledgeBasePineconeFieldMappingArgs : global::Pulumi.ResourceArgs + { + /// + /// The name of the field in which Amazon Bedrock stores metadata about the vector store. + /// + [Input("metadataField", required: true)] + public Input MetadataField { get; set; } = null!; + + /// + /// The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. + /// + [Input("textField", required: true)] + public Input TextField { get; set; } = null!; + + public KnowledgeBasePineconeFieldMappingArgs() + { + } + public static new KnowledgeBasePineconeFieldMappingArgs Empty => new KnowledgeBasePineconeFieldMappingArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/KnowledgeBaseRdsConfigurationArgs.cs b/sdk/dotnet/Bedrock/Inputs/KnowledgeBaseRdsConfigurationArgs.cs new file mode 100644 index 0000000000..2c0c76f2f0 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/KnowledgeBaseRdsConfigurationArgs.cs @@ -0,0 +1,50 @@ +// *** 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 details about the storage configuration of the knowledge base in Amazon RDS. For more information, see Create a vector index in Amazon RDS. + /// + public sealed class KnowledgeBaseRdsConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// The ARN of the secret that you created in AWS Secrets Manager that is linked to your Amazon RDS database. + /// + [Input("credentialsSecretArn", required: true)] + public Input CredentialsSecretArn { get; set; } = null!; + + /// + /// The name of your Amazon RDS database. + /// + [Input("databaseName", required: true)] + public Input DatabaseName { get; set; } = null!; + + [Input("fieldMapping", required: true)] + public Input FieldMapping { get; set; } = null!; + + /// + /// The ARN of the vector store. + /// + [Input("resourceArn", required: true)] + public Input ResourceArn { get; set; } = null!; + + /// + /// The name of the table in the database. + /// + [Input("tableName", required: true)] + public Input TableName { get; set; } = null!; + + public KnowledgeBaseRdsConfigurationArgs() + { + } + public static new KnowledgeBaseRdsConfigurationArgs Empty => new KnowledgeBaseRdsConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/KnowledgeBaseRdsFieldMappingArgs.cs b/sdk/dotnet/Bedrock/Inputs/KnowledgeBaseRdsFieldMappingArgs.cs new file mode 100644 index 0000000000..5d633348df --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/KnowledgeBaseRdsFieldMappingArgs.cs @@ -0,0 +1,47 @@ +// *** 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 names of the fields to which to map information about the vector store. + /// + public sealed class KnowledgeBaseRdsFieldMappingArgs : global::Pulumi.ResourceArgs + { + /// + /// The name of the field in which Amazon Bedrock stores metadata about the vector store. + /// + [Input("metadataField", required: true)] + public Input MetadataField { get; set; } = null!; + + /// + /// The name of the field in which Amazon Bedrock stores the ID for each entry. + /// + [Input("primaryKeyField", required: true)] + public Input PrimaryKeyField { get; set; } = null!; + + /// + /// The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. + /// + [Input("textField", required: true)] + public Input TextField { get; set; } = null!; + + /// + /// The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources. + /// + [Input("vectorField", required: true)] + public Input VectorField { get; set; } = null!; + + public KnowledgeBaseRdsFieldMappingArgs() + { + } + public static new KnowledgeBaseRdsFieldMappingArgs Empty => new KnowledgeBaseRdsFieldMappingArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/KnowledgeBaseStorageConfigurationArgs.cs b/sdk/dotnet/Bedrock/Inputs/KnowledgeBaseStorageConfigurationArgs.cs new file mode 100644 index 0000000000..440da2520d --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/KnowledgeBaseStorageConfigurationArgs.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 vector store service in which the knowledge base is stored. + /// + public sealed class KnowledgeBaseStorageConfigurationArgs : global::Pulumi.ResourceArgs + { + [Input("opensearchServerlessConfiguration")] + public Input? OpensearchServerlessConfiguration { get; set; } + + [Input("pineconeConfiguration")] + public Input? PineconeConfiguration { get; set; } + + [Input("rdsConfiguration")] + public Input? RdsConfiguration { get; set; } + + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public KnowledgeBaseStorageConfigurationArgs() + { + } + public static new KnowledgeBaseStorageConfigurationArgs Empty => new KnowledgeBaseStorageConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/KnowledgeBaseVectorKnowledgeBaseConfigurationArgs.cs b/sdk/dotnet/Bedrock/Inputs/KnowledgeBaseVectorKnowledgeBaseConfigurationArgs.cs new file mode 100644 index 0000000000..078018f5a8 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/KnowledgeBaseVectorKnowledgeBaseConfigurationArgs.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 details about the model used to create vector embeddings for the knowledge base. + /// + public sealed class KnowledgeBaseVectorKnowledgeBaseConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// The ARN of the model used to create vector embeddings for the knowledge base. + /// + [Input("embeddingModelArn", required: true)] + public Input EmbeddingModelArn { get; set; } = null!; + + public KnowledgeBaseVectorKnowledgeBaseConfigurationArgs() + { + } + public static new KnowledgeBaseVectorKnowledgeBaseConfigurationArgs Empty => new KnowledgeBaseVectorKnowledgeBaseConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/KnowledgeBase.cs b/sdk/dotnet/Bedrock/KnowledgeBase.cs new file mode 100644 index 0000000000..7aced22e31 --- /dev/null +++ b/sdk/dotnet/Bedrock/KnowledgeBase.cs @@ -0,0 +1,165 @@ +// *** 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::KnowledgeBase Resource Type + /// + [AwsNativeResourceType("aws-native:bedrock:KnowledgeBase")] + public partial class KnowledgeBase : global::Pulumi.CustomResource + { + /// + /// The time at which the knowledge base was created. + /// + [Output("createdAt")] + public Output CreatedAt { get; private set; } = null!; + + /// + /// Description of the Resource. + /// + [Output("description")] + public Output Description { get; private set; } = null!; + + /// + /// A list of reasons that the API operation on the knowledge base failed. + /// + [Output("failureReasons")] + public Output> FailureReasons { get; private set; } = null!; + + /// + /// The ARN of the knowledge base. + /// + [Output("knowledgeBaseArn")] + public Output KnowledgeBaseArn { get; private set; } = null!; + + [Output("knowledgeBaseConfiguration")] + public Output KnowledgeBaseConfiguration { get; private set; } = null!; + + /// + /// The unique identifier of the knowledge base. + /// + [Output("knowledgeBaseId")] + public Output KnowledgeBaseId { get; private set; } = null!; + + /// + /// The name of the knowledge base. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// The ARN of the IAM role with permissions to invoke API operations on the knowledge base. The ARN must begin with AmazonBedrockExecutionRoleForKnowledgeBase_ + /// + [Output("roleArn")] + public Output RoleArn { get; private set; } = null!; + + [Output("status")] + public Output Status { get; private set; } = null!; + + [Output("storageConfiguration")] + public Output StorageConfiguration { get; private set; } = null!; + + [Output("tags")] + public Output?> Tags { get; private set; } = null!; + + /// + /// The time at which the knowledge base was last updated. + /// + [Output("updatedAt")] + public Output UpdatedAt { get; private set; } = null!; + + + /// + /// Create a KnowledgeBase 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 KnowledgeBase(string name, KnowledgeBaseArgs args, CustomResourceOptions? options = null) + : base("aws-native:bedrock:KnowledgeBase", name, args ?? new KnowledgeBaseArgs(), MakeResourceOptions(options, "")) + { + } + + private KnowledgeBase(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:bedrock:KnowledgeBase", name, null, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + ReplaceOnChanges = + { + "knowledgeBaseConfiguration", + "storageConfiguration", + }, + }; + 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 KnowledgeBase 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 KnowledgeBase Get(string name, Input id, CustomResourceOptions? options = null) + { + return new KnowledgeBase(name, id, options); + } + } + + public sealed class KnowledgeBaseArgs : global::Pulumi.ResourceArgs + { + /// + /// Description of the Resource. + /// + [Input("description")] + public Input? Description { get; set; } + + [Input("knowledgeBaseConfiguration", required: true)] + public Input KnowledgeBaseConfiguration { get; set; } = null!; + + /// + /// The name of the knowledge base. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The ARN of the IAM role with permissions to invoke API operations on the knowledge base. The ARN must begin with AmazonBedrockExecutionRoleForKnowledgeBase_ + /// + [Input("roleArn", required: true)] + public Input RoleArn { get; set; } = null!; + + [Input("storageConfiguration", required: true)] + public Input StorageConfiguration { get; set; } = null!; + + [Input("tags")] + private InputMap? _tags; + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + public KnowledgeBaseArgs() + { + } + public static new KnowledgeBaseArgs Empty => new KnowledgeBaseArgs(); + } +} 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/Outputs/DataSourceChunkingConfiguration.cs b/sdk/dotnet/Bedrock/Outputs/DataSourceChunkingConfiguration.cs new file mode 100644 index 0000000000..24694a4d29 --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/DataSourceChunkingConfiguration.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.Bedrock.Outputs +{ + + /// + /// Details about how to chunk the documents in the data source. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried. + /// + [OutputType] + public sealed class DataSourceChunkingConfiguration + { + public readonly Pulumi.AwsNative.Bedrock.DataSourceChunkingStrategy ChunkingStrategy; + public readonly Outputs.DataSourceFixedSizeChunkingConfiguration? FixedSizeChunkingConfiguration; + + [OutputConstructor] + private DataSourceChunkingConfiguration( + Pulumi.AwsNative.Bedrock.DataSourceChunkingStrategy chunkingStrategy, + + Outputs.DataSourceFixedSizeChunkingConfiguration? fixedSizeChunkingConfiguration) + { + ChunkingStrategy = chunkingStrategy; + FixedSizeChunkingConfiguration = fixedSizeChunkingConfiguration; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/DataSourceConfiguration.cs b/sdk/dotnet/Bedrock/Outputs/DataSourceConfiguration.cs new file mode 100644 index 0000000000..cc39f3969c --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/DataSourceConfiguration.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.Bedrock.Outputs +{ + + /// + /// Specifies a raw data source location to ingest. + /// + [OutputType] + public sealed class DataSourceConfiguration + { + public readonly Outputs.DataSourceS3DataSourceConfiguration S3Configuration; + public readonly Pulumi.AwsNative.Bedrock.DataSourceType Type; + + [OutputConstructor] + private DataSourceConfiguration( + Outputs.DataSourceS3DataSourceConfiguration s3Configuration, + + Pulumi.AwsNative.Bedrock.DataSourceType type) + { + S3Configuration = s3Configuration; + Type = type; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/DataSourceFixedSizeChunkingConfiguration.cs b/sdk/dotnet/Bedrock/Outputs/DataSourceFixedSizeChunkingConfiguration.cs new file mode 100644 index 0000000000..5f4cab3662 --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/DataSourceFixedSizeChunkingConfiguration.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 +{ + + /// + /// Configurations for when you choose fixed-size chunking. If you set the chunkingStrategy as NONE, exclude this field. + /// + [OutputType] + public sealed class DataSourceFixedSizeChunkingConfiguration + { + /// + /// The maximum number of tokens to include in a chunk. + /// + public readonly int MaxTokens; + /// + /// The percentage of overlap between adjacent chunks of a data source. + /// + public readonly int OverlapPercentage; + + [OutputConstructor] + private DataSourceFixedSizeChunkingConfiguration( + int maxTokens, + + int overlapPercentage) + { + MaxTokens = maxTokens; + OverlapPercentage = overlapPercentage; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/DataSourceS3DataSourceConfiguration.cs b/sdk/dotnet/Bedrock/Outputs/DataSourceS3DataSourceConfiguration.cs new file mode 100644 index 0000000000..6853345d26 --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/DataSourceS3DataSourceConfiguration.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 +{ + + /// + /// Contains information about the S3 configuration of the data source. + /// + [OutputType] + public sealed class DataSourceS3DataSourceConfiguration + { + /// + /// The ARN of the bucket that contains the data source. + /// + public readonly string BucketArn; + /// + /// A list of S3 prefixes that define the object containing the data sources. + /// + public readonly ImmutableArray InclusionPrefixes; + + [OutputConstructor] + private DataSourceS3DataSourceConfiguration( + string bucketArn, + + ImmutableArray inclusionPrefixes) + { + BucketArn = bucketArn; + InclusionPrefixes = inclusionPrefixes; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/DataSourceServerSideEncryptionConfiguration.cs b/sdk/dotnet/Bedrock/Outputs/DataSourceServerSideEncryptionConfiguration.cs new file mode 100644 index 0000000000..8fd30a5622 --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/DataSourceServerSideEncryptionConfiguration.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 details about the server-side encryption for the data source. + /// + [OutputType] + public sealed class DataSourceServerSideEncryptionConfiguration + { + /// + /// The ARN of the AWS KMS key used to encrypt the resource. + /// + public readonly string? KmsKeyArn; + + [OutputConstructor] + private DataSourceServerSideEncryptionConfiguration(string? kmsKeyArn) + { + KmsKeyArn = kmsKeyArn; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/DataSourceVectorIngestionConfiguration.cs b/sdk/dotnet/Bedrock/Outputs/DataSourceVectorIngestionConfiguration.cs new file mode 100644 index 0000000000..b1ed070749 --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/DataSourceVectorIngestionConfiguration.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 +{ + + /// + /// Details about how to chunk the documents in the data source. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried. + /// + [OutputType] + public sealed class DataSourceVectorIngestionConfiguration + { + public readonly Outputs.DataSourceChunkingConfiguration? ChunkingConfiguration; + + [OutputConstructor] + private DataSourceVectorIngestionConfiguration(Outputs.DataSourceChunkingConfiguration? chunkingConfiguration) + { + ChunkingConfiguration = chunkingConfiguration; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/KnowledgeBaseConfiguration.cs b/sdk/dotnet/Bedrock/Outputs/KnowledgeBaseConfiguration.cs new file mode 100644 index 0000000000..f4d073560e --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/KnowledgeBaseConfiguration.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.Bedrock.Outputs +{ + + /// + /// Contains details about the embeddings model used for the knowledge base. + /// + [OutputType] + public sealed class KnowledgeBaseConfiguration + { + public readonly Pulumi.AwsNative.Bedrock.KnowledgeBaseType Type; + public readonly Outputs.KnowledgeBaseVectorKnowledgeBaseConfiguration VectorKnowledgeBaseConfiguration; + + [OutputConstructor] + private KnowledgeBaseConfiguration( + Pulumi.AwsNative.Bedrock.KnowledgeBaseType type, + + Outputs.KnowledgeBaseVectorKnowledgeBaseConfiguration vectorKnowledgeBaseConfiguration) + { + Type = type; + VectorKnowledgeBaseConfiguration = vectorKnowledgeBaseConfiguration; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/KnowledgeBaseOpenSearchServerlessConfiguration.cs b/sdk/dotnet/Bedrock/Outputs/KnowledgeBaseOpenSearchServerlessConfiguration.cs new file mode 100644 index 0000000000..a0d3402cbf --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/KnowledgeBaseOpenSearchServerlessConfiguration.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 +{ + + /// + /// Contains the storage configuration of the knowledge base in Amazon OpenSearch Service. + /// + [OutputType] + public sealed class KnowledgeBaseOpenSearchServerlessConfiguration + { + /// + /// The ARN of the OpenSearch Service vector store. + /// + public readonly string CollectionArn; + public readonly Outputs.KnowledgeBaseOpenSearchServerlessFieldMapping FieldMapping; + /// + /// The name of the vector store. + /// + public readonly string VectorIndexName; + + [OutputConstructor] + private KnowledgeBaseOpenSearchServerlessConfiguration( + string collectionArn, + + Outputs.KnowledgeBaseOpenSearchServerlessFieldMapping fieldMapping, + + string vectorIndexName) + { + CollectionArn = collectionArn; + FieldMapping = fieldMapping; + VectorIndexName = vectorIndexName; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/KnowledgeBaseOpenSearchServerlessFieldMapping.cs b/sdk/dotnet/Bedrock/Outputs/KnowledgeBaseOpenSearchServerlessFieldMapping.cs new file mode 100644 index 0000000000..06b6253c90 --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/KnowledgeBaseOpenSearchServerlessFieldMapping.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 +{ + + /// + /// A mapping of Bedrock Knowledge Base fields to OpenSearch Serverless field names + /// + [OutputType] + public sealed class KnowledgeBaseOpenSearchServerlessFieldMapping + { + /// + /// The name of the field in which Amazon Bedrock stores metadata about the vector store. + /// + public readonly string MetadataField; + /// + /// The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. + /// + public readonly string TextField; + /// + /// The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources. + /// + public readonly string VectorField; + + [OutputConstructor] + private KnowledgeBaseOpenSearchServerlessFieldMapping( + string metadataField, + + string textField, + + string vectorField) + { + MetadataField = metadataField; + TextField = textField; + VectorField = vectorField; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/KnowledgeBasePineconeConfiguration.cs b/sdk/dotnet/Bedrock/Outputs/KnowledgeBasePineconeConfiguration.cs new file mode 100644 index 0000000000..9f7e0e66c2 --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/KnowledgeBasePineconeConfiguration.cs @@ -0,0 +1,49 @@ +// *** 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 storage configuration of the knowledge base in Pinecone. + /// + [OutputType] + public sealed class KnowledgeBasePineconeConfiguration + { + /// + /// The endpoint URL for your index management page. + /// + public readonly string ConnectionString; + /// + /// The ARN of the secret that you created in AWS Secrets Manager that is linked to your Pinecone API key. + /// + public readonly string CredentialsSecretArn; + public readonly Outputs.KnowledgeBasePineconeFieldMapping FieldMapping; + /// + /// The namespace to be used to write new data to your database. + /// + public readonly string? Namespace; + + [OutputConstructor] + private KnowledgeBasePineconeConfiguration( + string connectionString, + + string credentialsSecretArn, + + Outputs.KnowledgeBasePineconeFieldMapping fieldMapping, + + string? @namespace) + { + ConnectionString = connectionString; + CredentialsSecretArn = credentialsSecretArn; + FieldMapping = fieldMapping; + Namespace = @namespace; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/KnowledgeBasePineconeFieldMapping.cs b/sdk/dotnet/Bedrock/Outputs/KnowledgeBasePineconeFieldMapping.cs new file mode 100644 index 0000000000..8c8359b6b6 --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/KnowledgeBasePineconeFieldMapping.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 +{ + + /// + /// Contains the names of the fields to which to map information about the vector store. + /// + [OutputType] + public sealed class KnowledgeBasePineconeFieldMapping + { + /// + /// The name of the field in which Amazon Bedrock stores metadata about the vector store. + /// + public readonly string MetadataField; + /// + /// The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. + /// + public readonly string TextField; + + [OutputConstructor] + private KnowledgeBasePineconeFieldMapping( + string metadataField, + + string textField) + { + MetadataField = metadataField; + TextField = textField; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/KnowledgeBaseRdsConfiguration.cs b/sdk/dotnet/Bedrock/Outputs/KnowledgeBaseRdsConfiguration.cs new file mode 100644 index 0000000000..fcbdc1e192 --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/KnowledgeBaseRdsConfiguration.cs @@ -0,0 +1,56 @@ +// *** 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 details about the storage configuration of the knowledge base in Amazon RDS. For more information, see Create a vector index in Amazon RDS. + /// + [OutputType] + public sealed class KnowledgeBaseRdsConfiguration + { + /// + /// The ARN of the secret that you created in AWS Secrets Manager that is linked to your Amazon RDS database. + /// + public readonly string CredentialsSecretArn; + /// + /// The name of your Amazon RDS database. + /// + public readonly string DatabaseName; + public readonly Outputs.KnowledgeBaseRdsFieldMapping FieldMapping; + /// + /// The ARN of the vector store. + /// + public readonly string ResourceArn; + /// + /// The name of the table in the database. + /// + public readonly string TableName; + + [OutputConstructor] + private KnowledgeBaseRdsConfiguration( + string credentialsSecretArn, + + string databaseName, + + Outputs.KnowledgeBaseRdsFieldMapping fieldMapping, + + string resourceArn, + + string tableName) + { + CredentialsSecretArn = credentialsSecretArn; + DatabaseName = databaseName; + FieldMapping = fieldMapping; + ResourceArn = resourceArn; + TableName = tableName; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/KnowledgeBaseRdsFieldMapping.cs b/sdk/dotnet/Bedrock/Outputs/KnowledgeBaseRdsFieldMapping.cs new file mode 100644 index 0000000000..f9831019bc --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/KnowledgeBaseRdsFieldMapping.cs @@ -0,0 +1,52 @@ +// *** 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 names of the fields to which to map information about the vector store. + /// + [OutputType] + public sealed class KnowledgeBaseRdsFieldMapping + { + /// + /// The name of the field in which Amazon Bedrock stores metadata about the vector store. + /// + public readonly string MetadataField; + /// + /// The name of the field in which Amazon Bedrock stores the ID for each entry. + /// + public readonly string PrimaryKeyField; + /// + /// The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. + /// + public readonly string TextField; + /// + /// The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources. + /// + public readonly string VectorField; + + [OutputConstructor] + private KnowledgeBaseRdsFieldMapping( + string metadataField, + + string primaryKeyField, + + string textField, + + string vectorField) + { + MetadataField = metadataField; + PrimaryKeyField = primaryKeyField; + TextField = textField; + VectorField = vectorField; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/KnowledgeBaseStorageConfiguration.cs b/sdk/dotnet/Bedrock/Outputs/KnowledgeBaseStorageConfiguration.cs new file mode 100644 index 0000000000..a3e945cfc0 --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/KnowledgeBaseStorageConfiguration.cs @@ -0,0 +1,40 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.Bedrock.Outputs +{ + + /// + /// The vector store service in which the knowledge base is stored. + /// + [OutputType] + public sealed class KnowledgeBaseStorageConfiguration + { + public readonly Outputs.KnowledgeBaseOpenSearchServerlessConfiguration? OpensearchServerlessConfiguration; + public readonly Outputs.KnowledgeBasePineconeConfiguration? PineconeConfiguration; + public readonly Outputs.KnowledgeBaseRdsConfiguration? RdsConfiguration; + public readonly Pulumi.AwsNative.Bedrock.KnowledgeBaseStorageType Type; + + [OutputConstructor] + private KnowledgeBaseStorageConfiguration( + Outputs.KnowledgeBaseOpenSearchServerlessConfiguration? opensearchServerlessConfiguration, + + Outputs.KnowledgeBasePineconeConfiguration? pineconeConfiguration, + + Outputs.KnowledgeBaseRdsConfiguration? rdsConfiguration, + + Pulumi.AwsNative.Bedrock.KnowledgeBaseStorageType type) + { + OpensearchServerlessConfiguration = opensearchServerlessConfiguration; + PineconeConfiguration = pineconeConfiguration; + RdsConfiguration = rdsConfiguration; + Type = type; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/KnowledgeBaseVectorKnowledgeBaseConfiguration.cs b/sdk/dotnet/Bedrock/Outputs/KnowledgeBaseVectorKnowledgeBaseConfiguration.cs new file mode 100644 index 0000000000..e77446ed1d --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/KnowledgeBaseVectorKnowledgeBaseConfiguration.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 details about the model used to create vector embeddings for the knowledge base. + /// + [OutputType] + public sealed class KnowledgeBaseVectorKnowledgeBaseConfiguration + { + /// + /// The ARN of the model used to create vector embeddings for the knowledge base. + /// + public readonly string EmbeddingModelArn; + + [OutputConstructor] + private KnowledgeBaseVectorKnowledgeBaseConfiguration(string embeddingModelArn) + { + EmbeddingModelArn = embeddingModelArn; + } + } +} 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/CleanRoomsMl/Enums.cs b/sdk/dotnet/CleanRoomsMl/Enums.cs new file mode 100644 index 0000000000..5255f7b975 --- /dev/null +++ b/sdk/dotnet/CleanRoomsMl/Enums.cs @@ -0,0 +1,94 @@ +// *** 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.CleanRoomsMl +{ + [EnumType] + public readonly struct TrainingDatasetColumnType : IEquatable + { + private readonly string _value; + + private TrainingDatasetColumnType(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static TrainingDatasetColumnType UserId { get; } = new TrainingDatasetColumnType("USER_ID"); + public static TrainingDatasetColumnType ItemId { get; } = new TrainingDatasetColumnType("ITEM_ID"); + public static TrainingDatasetColumnType Timestamp { get; } = new TrainingDatasetColumnType("TIMESTAMP"); + public static TrainingDatasetColumnType CategoricalFeature { get; } = new TrainingDatasetColumnType("CATEGORICAL_FEATURE"); + public static TrainingDatasetColumnType NumericalFeature { get; } = new TrainingDatasetColumnType("NUMERICAL_FEATURE"); + + public static bool operator ==(TrainingDatasetColumnType left, TrainingDatasetColumnType right) => left.Equals(right); + public static bool operator !=(TrainingDatasetColumnType left, TrainingDatasetColumnType right) => !left.Equals(right); + + public static explicit operator string(TrainingDatasetColumnType value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is TrainingDatasetColumnType other && Equals(other); + public bool Equals(TrainingDatasetColumnType 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 TrainingDatasetDatasetType : IEquatable + { + private readonly string _value; + + private TrainingDatasetDatasetType(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static TrainingDatasetDatasetType Interactions { get; } = new TrainingDatasetDatasetType("INTERACTIONS"); + + public static bool operator ==(TrainingDatasetDatasetType left, TrainingDatasetDatasetType right) => left.Equals(right); + public static bool operator !=(TrainingDatasetDatasetType left, TrainingDatasetDatasetType right) => !left.Equals(right); + + public static explicit operator string(TrainingDatasetDatasetType value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is TrainingDatasetDatasetType other && Equals(other); + public bool Equals(TrainingDatasetDatasetType 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 TrainingDatasetStatus : IEquatable + { + private readonly string _value; + + private TrainingDatasetStatus(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static TrainingDatasetStatus Active { get; } = new TrainingDatasetStatus("ACTIVE"); + + public static bool operator ==(TrainingDatasetStatus left, TrainingDatasetStatus right) => left.Equals(right); + public static bool operator !=(TrainingDatasetStatus left, TrainingDatasetStatus right) => !left.Equals(right); + + public static explicit operator string(TrainingDatasetStatus value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is TrainingDatasetStatus other && Equals(other); + public bool Equals(TrainingDatasetStatus 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/CleanRoomsMl/GetTrainingDataset.cs b/sdk/dotnet/CleanRoomsMl/GetTrainingDataset.cs new file mode 100644 index 0000000000..c6a4a1f430 --- /dev/null +++ b/sdk/dotnet/CleanRoomsMl/GetTrainingDataset.cs @@ -0,0 +1,74 @@ +// *** 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.CleanRoomsMl +{ + public static class GetTrainingDataset + { + /// + /// Definition of AWS::CleanRoomsML::TrainingDataset Resource Type + /// + public static Task InvokeAsync(GetTrainingDatasetArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:cleanroomsml:getTrainingDataset", args ?? new GetTrainingDatasetArgs(), options.WithDefaults()); + + /// + /// Definition of AWS::CleanRoomsML::TrainingDataset Resource Type + /// + public static Output Invoke(GetTrainingDatasetInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:cleanroomsml:getTrainingDataset", args ?? new GetTrainingDatasetInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetTrainingDatasetArgs : global::Pulumi.InvokeArgs + { + [Input("trainingDatasetArn", required: true)] + public string TrainingDatasetArn { get; set; } = null!; + + public GetTrainingDatasetArgs() + { + } + public static new GetTrainingDatasetArgs Empty => new GetTrainingDatasetArgs(); + } + + public sealed class GetTrainingDatasetInvokeArgs : global::Pulumi.InvokeArgs + { + [Input("trainingDatasetArn", required: true)] + public Input TrainingDatasetArn { get; set; } = null!; + + public GetTrainingDatasetInvokeArgs() + { + } + public static new GetTrainingDatasetInvokeArgs Empty => new GetTrainingDatasetInvokeArgs(); + } + + + [OutputType] + public sealed class GetTrainingDatasetResult + { + public readonly Pulumi.AwsNative.CleanRoomsMl.TrainingDatasetStatus? Status; + /// + /// An arbitrary set of tags (key-value pairs) for this cleanrooms-ml training dataset. + /// + public readonly ImmutableArray Tags; + public readonly string? TrainingDatasetArn; + + [OutputConstructor] + private GetTrainingDatasetResult( + Pulumi.AwsNative.CleanRoomsMl.TrainingDatasetStatus? status, + + ImmutableArray tags, + + string? trainingDatasetArn) + { + Status = status; + Tags = tags; + TrainingDatasetArn = trainingDatasetArn; + } + } +} diff --git a/sdk/dotnet/CleanRoomsMl/Inputs/TrainingDatasetColumnSchemaArgs.cs b/sdk/dotnet/CleanRoomsMl/Inputs/TrainingDatasetColumnSchemaArgs.cs new file mode 100644 index 0000000000..c0eeca0c6b --- /dev/null +++ b/sdk/dotnet/CleanRoomsMl/Inputs/TrainingDatasetColumnSchemaArgs.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.CleanRoomsMl.Inputs +{ + + public sealed class TrainingDatasetColumnSchemaArgs : global::Pulumi.ResourceArgs + { + [Input("columnName", required: true)] + public Input ColumnName { get; set; } = null!; + + [Input("columnTypes", required: true)] + private InputList? _columnTypes; + public InputList ColumnTypes + { + get => _columnTypes ?? (_columnTypes = new InputList()); + set => _columnTypes = value; + } + + public TrainingDatasetColumnSchemaArgs() + { + } + public static new TrainingDatasetColumnSchemaArgs Empty => new TrainingDatasetColumnSchemaArgs(); + } +} diff --git a/sdk/dotnet/CleanRoomsMl/Inputs/TrainingDatasetDataSourceArgs.cs b/sdk/dotnet/CleanRoomsMl/Inputs/TrainingDatasetDataSourceArgs.cs new file mode 100644 index 0000000000..7153e39f69 --- /dev/null +++ b/sdk/dotnet/CleanRoomsMl/Inputs/TrainingDatasetDataSourceArgs.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.CleanRoomsMl.Inputs +{ + + public sealed class TrainingDatasetDataSourceArgs : global::Pulumi.ResourceArgs + { + [Input("glueDataSource", required: true)] + public Input GlueDataSource { get; set; } = null!; + + public TrainingDatasetDataSourceArgs() + { + } + public static new TrainingDatasetDataSourceArgs Empty => new TrainingDatasetDataSourceArgs(); + } +} diff --git a/sdk/dotnet/CleanRoomsMl/Inputs/TrainingDatasetDatasetArgs.cs b/sdk/dotnet/CleanRoomsMl/Inputs/TrainingDatasetDatasetArgs.cs new file mode 100644 index 0000000000..55285c69ac --- /dev/null +++ b/sdk/dotnet/CleanRoomsMl/Inputs/TrainingDatasetDatasetArgs.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.CleanRoomsMl.Inputs +{ + + public sealed class TrainingDatasetDatasetArgs : global::Pulumi.ResourceArgs + { + [Input("inputConfig", required: true)] + public Input InputConfig { get; set; } = null!; + + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public TrainingDatasetDatasetArgs() + { + } + public static new TrainingDatasetDatasetArgs Empty => new TrainingDatasetDatasetArgs(); + } +} diff --git a/sdk/dotnet/CleanRoomsMl/Inputs/TrainingDatasetDatasetInputConfigArgs.cs b/sdk/dotnet/CleanRoomsMl/Inputs/TrainingDatasetDatasetInputConfigArgs.cs new file mode 100644 index 0000000000..8c791fbfb3 --- /dev/null +++ b/sdk/dotnet/CleanRoomsMl/Inputs/TrainingDatasetDatasetInputConfigArgs.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.CleanRoomsMl.Inputs +{ + + public sealed class TrainingDatasetDatasetInputConfigArgs : global::Pulumi.ResourceArgs + { + [Input("dataSource", required: true)] + public Input DataSource { get; set; } = null!; + + [Input("schema", required: true)] + private InputList? _schema; + public InputList Schema + { + get => _schema ?? (_schema = new InputList()); + set => _schema = value; + } + + public TrainingDatasetDatasetInputConfigArgs() + { + } + public static new TrainingDatasetDatasetInputConfigArgs Empty => new TrainingDatasetDatasetInputConfigArgs(); + } +} diff --git a/sdk/dotnet/CleanRoomsMl/Inputs/TrainingDatasetGlueDataSourceArgs.cs b/sdk/dotnet/CleanRoomsMl/Inputs/TrainingDatasetGlueDataSourceArgs.cs new file mode 100644 index 0000000000..ed2c887ddc --- /dev/null +++ b/sdk/dotnet/CleanRoomsMl/Inputs/TrainingDatasetGlueDataSourceArgs.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.CleanRoomsMl.Inputs +{ + + public sealed class TrainingDatasetGlueDataSourceArgs : global::Pulumi.ResourceArgs + { + [Input("catalogId")] + public Input? CatalogId { get; set; } + + [Input("databaseName", required: true)] + public Input DatabaseName { get; set; } = null!; + + [Input("tableName", required: true)] + public Input TableName { get; set; } = null!; + + public TrainingDatasetGlueDataSourceArgs() + { + } + public static new TrainingDatasetGlueDataSourceArgs Empty => new TrainingDatasetGlueDataSourceArgs(); + } +} diff --git a/sdk/dotnet/CleanRoomsMl/Outputs/TrainingDatasetColumnSchema.cs b/sdk/dotnet/CleanRoomsMl/Outputs/TrainingDatasetColumnSchema.cs new file mode 100644 index 0000000000..b9af645506 --- /dev/null +++ b/sdk/dotnet/CleanRoomsMl/Outputs/TrainingDatasetColumnSchema.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.CleanRoomsMl.Outputs +{ + + [OutputType] + public sealed class TrainingDatasetColumnSchema + { + public readonly string ColumnName; + public readonly ImmutableArray ColumnTypes; + + [OutputConstructor] + private TrainingDatasetColumnSchema( + string columnName, + + ImmutableArray columnTypes) + { + ColumnName = columnName; + ColumnTypes = columnTypes; + } + } +} diff --git a/sdk/dotnet/CleanRoomsMl/Outputs/TrainingDatasetDataSource.cs b/sdk/dotnet/CleanRoomsMl/Outputs/TrainingDatasetDataSource.cs new file mode 100644 index 0000000000..31126e6a41 --- /dev/null +++ b/sdk/dotnet/CleanRoomsMl/Outputs/TrainingDatasetDataSource.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.CleanRoomsMl.Outputs +{ + + [OutputType] + public sealed class TrainingDatasetDataSource + { + public readonly Outputs.TrainingDatasetGlueDataSource GlueDataSource; + + [OutputConstructor] + private TrainingDatasetDataSource(Outputs.TrainingDatasetGlueDataSource glueDataSource) + { + GlueDataSource = glueDataSource; + } + } +} diff --git a/sdk/dotnet/CleanRoomsMl/Outputs/TrainingDatasetDataset.cs b/sdk/dotnet/CleanRoomsMl/Outputs/TrainingDatasetDataset.cs new file mode 100644 index 0000000000..902f3cb10a --- /dev/null +++ b/sdk/dotnet/CleanRoomsMl/Outputs/TrainingDatasetDataset.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.CleanRoomsMl.Outputs +{ + + [OutputType] + public sealed class TrainingDatasetDataset + { + public readonly Outputs.TrainingDatasetDatasetInputConfig InputConfig; + public readonly Pulumi.AwsNative.CleanRoomsMl.TrainingDatasetDatasetType Type; + + [OutputConstructor] + private TrainingDatasetDataset( + Outputs.TrainingDatasetDatasetInputConfig inputConfig, + + Pulumi.AwsNative.CleanRoomsMl.TrainingDatasetDatasetType type) + { + InputConfig = inputConfig; + Type = type; + } + } +} diff --git a/sdk/dotnet/CleanRoomsMl/Outputs/TrainingDatasetDatasetInputConfig.cs b/sdk/dotnet/CleanRoomsMl/Outputs/TrainingDatasetDatasetInputConfig.cs new file mode 100644 index 0000000000..e45077d442 --- /dev/null +++ b/sdk/dotnet/CleanRoomsMl/Outputs/TrainingDatasetDatasetInputConfig.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.CleanRoomsMl.Outputs +{ + + [OutputType] + public sealed class TrainingDatasetDatasetInputConfig + { + public readonly Outputs.TrainingDatasetDataSource DataSource; + public readonly ImmutableArray Schema; + + [OutputConstructor] + private TrainingDatasetDatasetInputConfig( + Outputs.TrainingDatasetDataSource dataSource, + + ImmutableArray schema) + { + DataSource = dataSource; + Schema = schema; + } + } +} diff --git a/sdk/dotnet/CleanRoomsMl/Outputs/TrainingDatasetGlueDataSource.cs b/sdk/dotnet/CleanRoomsMl/Outputs/TrainingDatasetGlueDataSource.cs new file mode 100644 index 0000000000..499a776d93 --- /dev/null +++ b/sdk/dotnet/CleanRoomsMl/Outputs/TrainingDatasetGlueDataSource.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.CleanRoomsMl.Outputs +{ + + [OutputType] + public sealed class TrainingDatasetGlueDataSource + { + public readonly string? CatalogId; + public readonly string DatabaseName; + public readonly string TableName; + + [OutputConstructor] + private TrainingDatasetGlueDataSource( + string? catalogId, + + string databaseName, + + string tableName) + { + CatalogId = catalogId; + DatabaseName = databaseName; + TableName = tableName; + } + } +} diff --git a/sdk/dotnet/CleanRoomsMl/README.md b/sdk/dotnet/CleanRoomsMl/README.md new file mode 100644 index 0000000000..77b2f47ec2 --- /dev/null +++ b/sdk/dotnet/CleanRoomsMl/README.md @@ -0,0 +1 @@ +A native Pulumi package for creating and managing Amazon Web Services (AWS) resources. diff --git a/sdk/dotnet/CleanRoomsMl/TrainingDataset.cs b/sdk/dotnet/CleanRoomsMl/TrainingDataset.cs new file mode 100644 index 0000000000..077f4813af --- /dev/null +++ b/sdk/dotnet/CleanRoomsMl/TrainingDataset.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.CleanRoomsMl +{ + /// + /// Definition of AWS::CleanRoomsML::TrainingDataset Resource Type + /// + [AwsNativeResourceType("aws-native:cleanroomsml:TrainingDataset")] + public partial class TrainingDataset : global::Pulumi.CustomResource + { + [Output("description")] + public Output Description { get; private set; } = null!; + + [Output("name")] + public Output Name { get; private set; } = null!; + + [Output("roleArn")] + public Output RoleArn { get; private set; } = null!; + + [Output("status")] + public Output Status { get; private set; } = null!; + + /// + /// An arbitrary set of tags (key-value pairs) for this cleanrooms-ml training dataset. + /// + [Output("tags")] + public Output> Tags { get; private set; } = null!; + + [Output("trainingData")] + public Output> TrainingData { get; private set; } = null!; + + [Output("trainingDatasetArn")] + public Output TrainingDatasetArn { get; private set; } = null!; + + + /// + /// Create a TrainingDataset 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 TrainingDataset(string name, TrainingDatasetArgs args, CustomResourceOptions? options = null) + : base("aws-native:cleanroomsml:TrainingDataset", name, args ?? new TrainingDatasetArgs(), MakeResourceOptions(options, "")) + { + } + + private TrainingDataset(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:cleanroomsml:TrainingDataset", name, null, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + ReplaceOnChanges = + { + "description", + "name", + "roleArn", + "trainingData[*]", + }, + }; + 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 TrainingDataset 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 TrainingDataset Get(string name, Input id, CustomResourceOptions? options = null) + { + return new TrainingDataset(name, id, options); + } + } + + public sealed class TrainingDatasetArgs : global::Pulumi.ResourceArgs + { + [Input("description")] + public Input? Description { get; set; } + + [Input("name")] + public Input? Name { get; set; } + + [Input("roleArn", required: true)] + public Input RoleArn { get; set; } = null!; + + [Input("tags")] + private InputList? _tags; + + /// + /// An arbitrary set of tags (key-value pairs) for this cleanrooms-ml training dataset. + /// + public InputList Tags + { + get => _tags ?? (_tags = new InputList()); + set => _tags = value; + } + + [Input("trainingData", required: true)] + private InputList? _trainingData; + public InputList TrainingData + { + get => _trainingData ?? (_trainingData = new InputList()); + set => _trainingData = value; + } + + public TrainingDatasetArgs() + { + } + public static new TrainingDatasetArgs Empty => new TrainingDatasetArgs(); + } +} 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/CloudWatch/Alarm.cs b/sdk/dotnet/CloudWatch/Alarm.cs index 3baf46b95f..5754a81b02 100644 --- a/sdk/dotnet/CloudWatch/Alarm.cs +++ b/sdk/dotnet/CloudWatch/Alarm.cs @@ -10,7 +10,9 @@ namespace Pulumi.AwsNative.CloudWatch { /// - /// Resource Type definition for AWS::CloudWatch::Alarm + /// The ``AWS::CloudWatch::Alarm`` type specifies an alarm and associates it with the specified metric or metric math expression. + /// When this operation creates an alarm, the alarm state is immediately set to ``INSUFFICIENT_DATA``. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed. + /// When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm. /// [AwsNativeResourceType("aws-native:cloudwatch:Alarm")] public partial class Alarm : global::Pulumi.CustomResource @@ -22,7 +24,7 @@ public partial class Alarm : global::Pulumi.CustomResource public Output ActionsEnabled { get; private set; } = null!; /// - /// The list of actions to execute when this alarm transitions into an ALARM state from any other state. + /// The list of actions to execute when this alarm transitions into an ALARM state from any other state. Specify each action as an Amazon Resource Name (ARN). For more information about creating alarms and the actions that you can specify, see [PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html) in the *API Reference*. /// [Output("alarmActions")] public Output> AlarmActions { get; private set; } = null!; @@ -34,115 +36,128 @@ public partial class Alarm : global::Pulumi.CustomResource public Output AlarmDescription { get; private set; } = null!; /// - /// The name of the alarm. + /// The name of the alarm. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the alarm name. + /// 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. /// [Output("alarmName")] public Output AlarmName { get; private set; } = null!; - /// - /// Amazon Resource Name is a unique name for each resource. - /// [Output("arn")] public Output Arn { get; private set; } = null!; /// - /// The arithmetic operation to use when comparing the specified statistic and threshold. + /// The arithmetic operation to use when comparing the specified statistic and threshold. The specified statistic value is used as the first operand. /// [Output("comparisonOperator")] public Output ComparisonOperator { get; private set; } = null!; /// - /// The number of datapoints that must be breaching to trigger the alarm. + /// The number of datapoints that must be breaching to trigger the alarm. This is used only if you are setting an "M out of N" alarm. In that case, this value is the M, and the value that you set for ``EvaluationPeriods`` is the N value. For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*. + /// If you omit this parameter, CW uses the same value here that you set for ``EvaluationPeriods``, and the alarm goes to alarm state if that many consecutive periods are breaching. /// [Output("datapointsToAlarm")] public Output DatapointsToAlarm { get; private set; } = null!; /// - /// The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify Dimensions. Instead, you use Metrics. + /// The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify ``Dimensions``. Instead, you use ``Metrics``. /// [Output("dimensions")] public Output> Dimensions { get; private set; } = null!; /// - /// Used only for alarms based on percentiles. + /// Used only for alarms based on percentiles. If ``ignore``, the alarm state does not change during periods with too few data points to be statistically significant. If ``evaluate`` or this parameter is not used, the alarm is always evaluated and possibly changes state no matter how many data points are available. /// [Output("evaluateLowSampleCountPercentile")] public Output EvaluateLowSampleCountPercentile { get; private set; } = null!; /// - /// The number of periods over which data is compared to the specified threshold. + /// The number of periods over which data is compared to the specified threshold. If you are setting an alarm that requires that a number of consecutive data points be breaching to trigger the alarm, this value specifies that number. If you are setting an "M out of N" alarm, this value is the N, and ``DatapointsToAlarm`` is the M. + /// For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*. /// [Output("evaluationPeriods")] public Output EvaluationPeriods { get; private set; } = null!; /// /// The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100. + /// For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both. + /// For an alarm based on a math expression, you can't specify ``ExtendedStatistic``. Instead, you use ``Metrics``. /// [Output("extendedStatistic")] public Output ExtendedStatistic { get; private set; } = null!; /// - /// The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state. + /// The actions to execute when this alarm transitions to the ``INSUFFICIENT_DATA`` state from any other state. Each action is specified as an Amazon Resource Name (ARN). /// [Output("insufficientDataActions")] public Output> InsufficientDataActions { get; private set; } = null!; /// - /// The name of the metric associated with the alarm. + /// The name of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you use ``Metrics`` instead and you can't specify ``MetricName``. /// [Output("metricName")] public Output MetricName { get; private set; } = null!; /// - /// An array that enables you to create an alarm based on the result of a metric math expression. + /// An array that enables you to create an alarm based on the result of a metric math expression. Each item in the array either retrieves a metric or performs a math expression. + /// If you specify the ``Metrics`` parameter, you cannot specify ``MetricName``, ``Dimensions``, ``Period``, ``Namespace``, ``Statistic``, ``ExtendedStatistic``, or ``Unit``. /// [Output("metrics")] public Output> Metrics { get; private set; } = null!; /// - /// The namespace of the metric associated with the alarm. + /// The namespace of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you can't specify ``Namespace`` and you use ``Metrics`` instead. + /// For a list of namespaces for metrics from AWS services, see [Services That Publish Metrics.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) /// [Output("namespace")] public Output Namespace { get; private set; } = null!; /// - /// The actions to execute when this alarm transitions to the OK state from any other state. + /// The actions to execute when this alarm transitions to the ``OK`` state from any other state. Each action is specified as an Amazon Resource Name (ARN). /// [Output("okActions")] public Output> OkActions { get; private set; } = null!; /// - /// The period in seconds, over which the statistic is applied. + /// The period, in seconds, over which the statistic is applied. This is required for an alarm based on a metric. Valid values are 10, 30, 60, and any multiple of 60. + /// For an alarm based on a math expression, you can't specify ``Period``, and instead you use the ``Metrics`` parameter. + /// *Minimum:* 10 /// [Output("period")] public Output Period { get; private set; } = null!; /// - /// The statistic for the metric associated with the alarm, other than percentile. + /// The statistic for the metric associated with the alarm, other than percentile. For percentile statistics, use ``ExtendedStatistic``. + /// For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both. + /// For an alarm based on a math expression, you can't specify ``Statistic``. Instead, you use ``Metrics``. /// [Output("statistic")] public Output Statistic { get; private set; } = null!; + [Output("tags")] + public Output> Tags { get; private set; } = null!; + /// - /// In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm. + /// The value to compare with the specified statistic. /// [Output("threshold")] public Output Threshold { get; private set; } = null!; /// - /// In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm. + /// In an alarm based on an anomaly detection model, this is the ID of the ``ANOMALY_DETECTION_BAND`` function used as the threshold for the alarm. /// [Output("thresholdMetricId")] public Output ThresholdMetricId { get; private set; } = null!; /// - /// Sets how this alarm is to handle missing data points. Valid values are breaching, notBreaching, ignore, and missing. + /// Sets how this alarm is to handle missing data points. Valid values are ``breaching``, ``notBreaching``, ``ignore``, and ``missing``. For more information, see [Configuring How Alarms Treat Missing Data](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data) in the *Amazon User Guide*. + /// If you omit this parameter, the default behavior of ``missing`` is used. /// [Output("treatMissingData")] public Output TreatMissingData { get; private set; } = null!; /// - /// The unit of the metric associated with the alarm. + /// The unit of the metric associated with the alarm. Specify this only if you are creating an alarm based on a single metric. Do not specify this if you are specifying a ``Metrics`` array. + /// You can specify the following values: 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, or None. /// [Output("unit")] public Output Unit { get; private set; } = null!; @@ -206,7 +221,7 @@ public sealed class AlarmArgs : global::Pulumi.ResourceArgs private InputList? _alarmActions; /// - /// The list of actions to execute when this alarm transitions into an ALARM state from any other state. + /// The list of actions to execute when this alarm transitions into an ALARM state from any other state. Specify each action as an Amazon Resource Name (ARN). For more information about creating alarms and the actions that you can specify, see [PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html) in the *API Reference*. /// public InputList AlarmActions { @@ -221,19 +236,21 @@ public InputList AlarmActions public Input? AlarmDescription { get; set; } /// - /// The name of the alarm. + /// The name of the alarm. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the alarm name. + /// 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. /// [Input("alarmName")] public Input? AlarmName { get; set; } /// - /// The arithmetic operation to use when comparing the specified statistic and threshold. + /// The arithmetic operation to use when comparing the specified statistic and threshold. The specified statistic value is used as the first operand. /// [Input("comparisonOperator", required: true)] public Input ComparisonOperator { get; set; } = null!; /// - /// The number of datapoints that must be breaching to trigger the alarm. + /// The number of datapoints that must be breaching to trigger the alarm. This is used only if you are setting an "M out of N" alarm. In that case, this value is the M, and the value that you set for ``EvaluationPeriods`` is the N value. For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*. + /// If you omit this parameter, CW uses the same value here that you set for ``EvaluationPeriods``, and the alarm goes to alarm state if that many consecutive periods are breaching. /// [Input("datapointsToAlarm")] public Input? DatapointsToAlarm { get; set; } @@ -242,7 +259,7 @@ public InputList AlarmActions private InputList? _dimensions; /// - /// The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify Dimensions. Instead, you use Metrics. + /// The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify ``Dimensions``. Instead, you use ``Metrics``. /// public InputList Dimensions { @@ -251,19 +268,22 @@ public InputList Dimensions } /// - /// Used only for alarms based on percentiles. + /// Used only for alarms based on percentiles. If ``ignore``, the alarm state does not change during periods with too few data points to be statistically significant. If ``evaluate`` or this parameter is not used, the alarm is always evaluated and possibly changes state no matter how many data points are available. /// [Input("evaluateLowSampleCountPercentile")] public Input? EvaluateLowSampleCountPercentile { get; set; } /// - /// The number of periods over which data is compared to the specified threshold. + /// The number of periods over which data is compared to the specified threshold. If you are setting an alarm that requires that a number of consecutive data points be breaching to trigger the alarm, this value specifies that number. If you are setting an "M out of N" alarm, this value is the N, and ``DatapointsToAlarm`` is the M. + /// For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*. /// [Input("evaluationPeriods", required: true)] public Input EvaluationPeriods { get; set; } = null!; /// /// The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100. + /// For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both. + /// For an alarm based on a math expression, you can't specify ``ExtendedStatistic``. Instead, you use ``Metrics``. /// [Input("extendedStatistic")] public Input? ExtendedStatistic { get; set; } @@ -272,7 +292,7 @@ public InputList Dimensions private InputList? _insufficientDataActions; /// - /// The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state. + /// The actions to execute when this alarm transitions to the ``INSUFFICIENT_DATA`` state from any other state. Each action is specified as an Amazon Resource Name (ARN). /// public InputList InsufficientDataActions { @@ -281,7 +301,7 @@ public InputList InsufficientDataActions } /// - /// The name of the metric associated with the alarm. + /// The name of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you use ``Metrics`` instead and you can't specify ``MetricName``. /// [Input("metricName")] public Input? MetricName { get; set; } @@ -290,7 +310,8 @@ public InputList InsufficientDataActions private InputList? _metrics; /// - /// An array that enables you to create an alarm based on the result of a metric math expression. + /// An array that enables you to create an alarm based on the result of a metric math expression. Each item in the array either retrieves a metric or performs a math expression. + /// If you specify the ``Metrics`` parameter, you cannot specify ``MetricName``, ``Dimensions``, ``Period``, ``Namespace``, ``Statistic``, ``ExtendedStatistic``, or ``Unit``. /// public InputList Metrics { @@ -299,7 +320,8 @@ public InputList Metrics } /// - /// The namespace of the metric associated with the alarm. + /// The namespace of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you can't specify ``Namespace`` and you use ``Metrics`` instead. + /// For a list of namespaces for metrics from AWS services, see [Services That Publish Metrics.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) /// [Input("namespace")] public Input? Namespace { get; set; } @@ -308,7 +330,7 @@ public InputList Metrics private InputList? _okActions; /// - /// The actions to execute when this alarm transitions to the OK state from any other state. + /// The actions to execute when this alarm transitions to the ``OK`` state from any other state. Each action is specified as an Amazon Resource Name (ARN). /// public InputList OkActions { @@ -317,37 +339,51 @@ public InputList OkActions } /// - /// The period in seconds, over which the statistic is applied. + /// The period, in seconds, over which the statistic is applied. This is required for an alarm based on a metric. Valid values are 10, 30, 60, and any multiple of 60. + /// For an alarm based on a math expression, you can't specify ``Period``, and instead you use the ``Metrics`` parameter. + /// *Minimum:* 10 /// [Input("period")] public Input? Period { get; set; } /// - /// The statistic for the metric associated with the alarm, other than percentile. + /// The statistic for the metric associated with the alarm, other than percentile. For percentile statistics, use ``ExtendedStatistic``. + /// For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both. + /// For an alarm based on a math expression, you can't specify ``Statistic``. Instead, you use ``Metrics``. /// [Input("statistic")] public Input? Statistic { get; set; } + [Input("tags")] + private InputList? _tags; + public InputList Tags + { + get => _tags ?? (_tags = new InputList()); + set => _tags = value; + } + /// - /// In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm. + /// The value to compare with the specified statistic. /// [Input("threshold")] public Input? Threshold { get; set; } /// - /// In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm. + /// In an alarm based on an anomaly detection model, this is the ID of the ``ANOMALY_DETECTION_BAND`` function used as the threshold for the alarm. /// [Input("thresholdMetricId")] public Input? ThresholdMetricId { get; set; } /// - /// Sets how this alarm is to handle missing data points. Valid values are breaching, notBreaching, ignore, and missing. + /// Sets how this alarm is to handle missing data points. Valid values are ``breaching``, ``notBreaching``, ``ignore``, and ``missing``. For more information, see [Configuring How Alarms Treat Missing Data](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data) in the *Amazon User Guide*. + /// If you omit this parameter, the default behavior of ``missing`` is used. /// [Input("treatMissingData")] public Input? TreatMissingData { get; set; } /// - /// The unit of the metric associated with the alarm. + /// The unit of the metric associated with the alarm. Specify this only if you are creating an alarm based on a single metric. Do not specify this if you are specifying a ``Metrics`` array. + /// You can specify the following values: 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, or None. /// [Input("unit")] public Input? Unit { get; set; } diff --git a/sdk/dotnet/CloudWatch/CompositeAlarm.cs b/sdk/dotnet/CloudWatch/CompositeAlarm.cs index e1b5cc1695..8da01ed6c1 100644 --- a/sdk/dotnet/CloudWatch/CompositeAlarm.cs +++ b/sdk/dotnet/CloudWatch/CompositeAlarm.cs @@ -81,6 +81,12 @@ public partial class CompositeAlarm : global::Pulumi.CustomResource [Output("okActions")] public Output> OkActions { get; private set; } = null!; + /// + /// A list of key-value pairs to associate with the composite alarm. You can associate as many as 50 tags with an alarm. + /// + [Output("tags")] + public Output> Tags { get; private set; } = null!; + /// /// Create a CompositeAlarm resource with the given unique name, arguments, and options. @@ -208,6 +214,18 @@ public InputList OkActions set => _okActions = value; } + [Input("tags")] + private InputList? _tags; + + /// + /// A list of key-value pairs to associate with the composite alarm. You can associate as many as 50 tags with an alarm. + /// + public InputList Tags + { + get => _tags ?? (_tags = new InputList()); + set => _tags = value; + } + public CompositeAlarmArgs() { } diff --git a/sdk/dotnet/CloudWatch/GetAlarm.cs b/sdk/dotnet/CloudWatch/GetAlarm.cs index 4c160692f9..84cc328342 100644 --- a/sdk/dotnet/CloudWatch/GetAlarm.cs +++ b/sdk/dotnet/CloudWatch/GetAlarm.cs @@ -12,13 +12,17 @@ namespace Pulumi.AwsNative.CloudWatch public static class GetAlarm { /// - /// Resource Type definition for AWS::CloudWatch::Alarm + /// The ``AWS::CloudWatch::Alarm`` type specifies an alarm and associates it with the specified metric or metric math expression. + /// When this operation creates an alarm, the alarm state is immediately set to ``INSUFFICIENT_DATA``. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed. + /// When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm. /// public static Task InvokeAsync(GetAlarmArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:cloudwatch:getAlarm", args ?? new GetAlarmArgs(), options.WithDefaults()); /// - /// Resource Type definition for AWS::CloudWatch::Alarm + /// The ``AWS::CloudWatch::Alarm`` type specifies an alarm and associates it with the specified metric or metric math expression. + /// When this operation creates an alarm, the alarm state is immediately set to ``INSUFFICIENT_DATA``. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed. + /// When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm. /// public static Output Invoke(GetAlarmInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("aws-native:cloudwatch:getAlarm", args ?? new GetAlarmInvokeArgs(), options.WithDefaults()); @@ -28,7 +32,8 @@ public static Output Invoke(GetAlarmInvokeArgs args, InvokeOptio public sealed class GetAlarmArgs : global::Pulumi.InvokeArgs { /// - /// The name of the alarm. + /// The name of the alarm. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the alarm name. + /// 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. /// [Input("alarmName", required: true)] public string AlarmName { get; set; } = null!; @@ -42,7 +47,8 @@ public GetAlarmArgs() public sealed class GetAlarmInvokeArgs : global::Pulumi.InvokeArgs { /// - /// The name of the alarm. + /// The name of the alarm. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the alarm name. + /// 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. /// [Input("alarmName", required: true)] public Input AlarmName { get; set; } = null!; @@ -62,83 +68,93 @@ public sealed class GetAlarmResult /// public readonly bool? ActionsEnabled; /// - /// The list of actions to execute when this alarm transitions into an ALARM state from any other state. + /// The list of actions to execute when this alarm transitions into an ALARM state from any other state. Specify each action as an Amazon Resource Name (ARN). For more information about creating alarms and the actions that you can specify, see [PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html) in the *API Reference*. /// public readonly ImmutableArray AlarmActions; /// /// The description of the alarm. /// public readonly string? AlarmDescription; - /// - /// Amazon Resource Name is a unique name for each resource. - /// public readonly string? Arn; /// - /// The arithmetic operation to use when comparing the specified statistic and threshold. + /// The arithmetic operation to use when comparing the specified statistic and threshold. The specified statistic value is used as the first operand. /// public readonly string? ComparisonOperator; /// - /// The number of datapoints that must be breaching to trigger the alarm. + /// The number of datapoints that must be breaching to trigger the alarm. This is used only if you are setting an "M out of N" alarm. In that case, this value is the M, and the value that you set for ``EvaluationPeriods`` is the N value. For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*. + /// If you omit this parameter, CW uses the same value here that you set for ``EvaluationPeriods``, and the alarm goes to alarm state if that many consecutive periods are breaching. /// public readonly int? DatapointsToAlarm; /// - /// The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify Dimensions. Instead, you use Metrics. + /// The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify ``Dimensions``. Instead, you use ``Metrics``. /// public readonly ImmutableArray Dimensions; /// - /// Used only for alarms based on percentiles. + /// Used only for alarms based on percentiles. If ``ignore``, the alarm state does not change during periods with too few data points to be statistically significant. If ``evaluate`` or this parameter is not used, the alarm is always evaluated and possibly changes state no matter how many data points are available. /// public readonly string? EvaluateLowSampleCountPercentile; /// - /// The number of periods over which data is compared to the specified threshold. + /// The number of periods over which data is compared to the specified threshold. If you are setting an alarm that requires that a number of consecutive data points be breaching to trigger the alarm, this value specifies that number. If you are setting an "M out of N" alarm, this value is the N, and ``DatapointsToAlarm`` is the M. + /// For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*. /// public readonly int? EvaluationPeriods; /// /// The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100. + /// For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both. + /// For an alarm based on a math expression, you can't specify ``ExtendedStatistic``. Instead, you use ``Metrics``. /// public readonly string? ExtendedStatistic; /// - /// The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state. + /// The actions to execute when this alarm transitions to the ``INSUFFICIENT_DATA`` state from any other state. Each action is specified as an Amazon Resource Name (ARN). /// public readonly ImmutableArray InsufficientDataActions; /// - /// The name of the metric associated with the alarm. + /// The name of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you use ``Metrics`` instead and you can't specify ``MetricName``. /// public readonly string? MetricName; /// - /// An array that enables you to create an alarm based on the result of a metric math expression. + /// An array that enables you to create an alarm based on the result of a metric math expression. Each item in the array either retrieves a metric or performs a math expression. + /// If you specify the ``Metrics`` parameter, you cannot specify ``MetricName``, ``Dimensions``, ``Period``, ``Namespace``, ``Statistic``, ``ExtendedStatistic``, or ``Unit``. /// public readonly ImmutableArray Metrics; /// - /// The namespace of the metric associated with the alarm. + /// The namespace of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you can't specify ``Namespace`` and you use ``Metrics`` instead. + /// For a list of namespaces for metrics from AWS services, see [Services That Publish Metrics.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) /// public readonly string? Namespace; /// - /// The actions to execute when this alarm transitions to the OK state from any other state. + /// The actions to execute when this alarm transitions to the ``OK`` state from any other state. Each action is specified as an Amazon Resource Name (ARN). /// public readonly ImmutableArray OkActions; /// - /// The period in seconds, over which the statistic is applied. + /// The period, in seconds, over which the statistic is applied. This is required for an alarm based on a metric. Valid values are 10, 30, 60, and any multiple of 60. + /// For an alarm based on a math expression, you can't specify ``Period``, and instead you use the ``Metrics`` parameter. + /// *Minimum:* 10 /// public readonly int? Period; /// - /// The statistic for the metric associated with the alarm, other than percentile. + /// The statistic for the metric associated with the alarm, other than percentile. For percentile statistics, use ``ExtendedStatistic``. + /// For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both. + /// For an alarm based on a math expression, you can't specify ``Statistic``. Instead, you use ``Metrics``. /// public readonly string? Statistic; + public readonly ImmutableArray Tags; /// - /// In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm. + /// The value to compare with the specified statistic. /// public readonly double? Threshold; /// - /// In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm. + /// In an alarm based on an anomaly detection model, this is the ID of the ``ANOMALY_DETECTION_BAND`` function used as the threshold for the alarm. /// public readonly string? ThresholdMetricId; /// - /// Sets how this alarm is to handle missing data points. Valid values are breaching, notBreaching, ignore, and missing. + /// Sets how this alarm is to handle missing data points. Valid values are ``breaching``, ``notBreaching``, ``ignore``, and ``missing``. For more information, see [Configuring How Alarms Treat Missing Data](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data) in the *Amazon User Guide*. + /// If you omit this parameter, the default behavior of ``missing`` is used. /// public readonly string? TreatMissingData; /// - /// The unit of the metric associated with the alarm. + /// The unit of the metric associated with the alarm. Specify this only if you are creating an alarm based on a single metric. Do not specify this if you are specifying a ``Metrics`` array. + /// You can specify the following values: 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, or None. /// public readonly string? Unit; @@ -178,6 +194,8 @@ private GetAlarmResult( string? statistic, + ImmutableArray tags, + double? threshold, string? thresholdMetricId, @@ -203,6 +221,7 @@ private GetAlarmResult( OkActions = okActions; Period = period; Statistic = statistic; + Tags = tags; Threshold = threshold; ThresholdMetricId = thresholdMetricId; TreatMissingData = treatMissingData; diff --git a/sdk/dotnet/CloudWatch/GetCompositeAlarm.cs b/sdk/dotnet/CloudWatch/GetCompositeAlarm.cs index c1ab939db4..083edcb1b8 100644 --- a/sdk/dotnet/CloudWatch/GetCompositeAlarm.cs +++ b/sdk/dotnet/CloudWatch/GetCompositeAlarm.cs @@ -97,6 +97,10 @@ public sealed class GetCompositeAlarmResult /// The actions to execute when this alarm transitions to the OK state from any other state. Each action is specified as an Amazon Resource Name (ARN). /// public readonly ImmutableArray OkActions; + /// + /// A list of key-value pairs to associate with the composite alarm. You can associate as many as 50 tags with an alarm. + /// + public readonly ImmutableArray Tags; [OutputConstructor] private GetCompositeAlarmResult( @@ -118,7 +122,9 @@ private GetCompositeAlarmResult( ImmutableArray insufficientDataActions, - ImmutableArray okActions) + ImmutableArray okActions, + + ImmutableArray tags) { ActionsEnabled = actionsEnabled; ActionsSuppressor = actionsSuppressor; @@ -130,6 +136,7 @@ private GetCompositeAlarmResult( Arn = arn; InsufficientDataActions = insufficientDataActions; OkActions = okActions; + Tags = tags; } } } diff --git a/sdk/dotnet/CloudWatch/Inputs/AlarmDimensionArgs.cs b/sdk/dotnet/CloudWatch/Inputs/AlarmDimensionArgs.cs index 2ada5dbfc9..8facd05f68 100644 --- a/sdk/dotnet/CloudWatch/Inputs/AlarmDimensionArgs.cs +++ b/sdk/dotnet/CloudWatch/Inputs/AlarmDimensionArgs.cs @@ -11,18 +11,18 @@ namespace Pulumi.AwsNative.CloudWatch.Inputs { /// - /// Dimensions are arbitrary name/value pairs that can be associated with a CloudWatch metric. + /// Dimension is an embedded property of the ``AWS::CloudWatch::Alarm`` type. Dimensions are name/value pairs that can be associated with a CW metric. You can specify a maximum of 10 dimensions for a given metric. /// public sealed class AlarmDimensionArgs : global::Pulumi.ResourceArgs { /// - /// The name of the dimension. + /// The name of the dimension, from 1–255 characters in length. This dimension name must have been included when the metric was published. /// [Input("name", required: true)] public Input Name { get; set; } = null!; /// - /// The value for the dimension. + /// The value for the dimension, from 1–255 characters in length. /// [Input("value", required: true)] public Input Value { get; set; } = null!; diff --git a/sdk/dotnet/CloudWatch/Inputs/AlarmMetricArgs.cs b/sdk/dotnet/CloudWatch/Inputs/AlarmMetricArgs.cs index a0e78d22ae..43cff4fdf8 100644 --- a/sdk/dotnet/CloudWatch/Inputs/AlarmMetricArgs.cs +++ b/sdk/dotnet/CloudWatch/Inputs/AlarmMetricArgs.cs @@ -11,7 +11,7 @@ namespace Pulumi.AwsNative.CloudWatch.Inputs { /// - /// The Metric property type represents a specific metric. + /// The ``Metric`` property type represents a specific metric. ``Metric`` is a property of the [MetricStat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricstat.html) property type. /// public sealed class AlarmMetricArgs : global::Pulumi.ResourceArgs { @@ -19,7 +19,7 @@ public sealed class AlarmMetricArgs : global::Pulumi.ResourceArgs private InputList? _dimensions; /// - /// The dimensions for the metric. + /// The metric dimensions that you want to be used for the metric that the alarm will watch. /// public InputList Dimensions { @@ -28,13 +28,13 @@ public InputList Dimensions } /// - /// The name of the metric. + /// The name of the metric that you want the alarm to watch. This is a required field. /// [Input("metricName")] public Input? MetricName { get; set; } /// - /// The namespace of the metric. + /// The namespace of the metric that the alarm will watch. /// [Input("namespace")] public Input? Namespace { get; set; } diff --git a/sdk/dotnet/CloudWatch/Inputs/AlarmMetricDataQueryArgs.cs b/sdk/dotnet/CloudWatch/Inputs/AlarmMetricDataQueryArgs.cs index c4e2304663..c4c9f20764 100644 --- a/sdk/dotnet/CloudWatch/Inputs/AlarmMetricDataQueryArgs.cs +++ b/sdk/dotnet/CloudWatch/Inputs/AlarmMetricDataQueryArgs.cs @@ -11,7 +11,8 @@ namespace Pulumi.AwsNative.CloudWatch.Inputs { /// - /// This property type specifies the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a math expression on metric data. + /// The ``MetricDataQuery`` property type specifies the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a math expression on metric data. + /// Any expression used must return a single time series. For more information, see [Metric Math Syntax and Functions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) in the *User Guide*. /// public sealed class AlarmMetricDataQueryArgs : global::Pulumi.ResourceArgs { @@ -22,37 +23,41 @@ public sealed class AlarmMetricDataQueryArgs : global::Pulumi.ResourceArgs public Input? AccountId { get; set; } /// - /// The math expression to be performed on the returned data. + /// The math expression to be performed on the returned data, if this object is performing a math expression. This expression can use the ``Id`` of the other metrics to refer to those metrics, and can also use the ``Id`` of other expressions to use the result of those expressions. For more information about metric math expressions, see [Metric Math Syntax and Functions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) in the *User Guide*. + /// Within each MetricDataQuery object, you must specify either ``Expression`` or ``MetricStat`` but not both. /// [Input("expression")] public Input? Expression { get; set; } /// - /// A short name used to tie this object to the results in the response. + /// A short name used to tie this object to the results in the response. This name must be unique within a single call to ``GetMetricData``. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscore. The first character must be a lowercase letter. /// [Input("id", required: true)] public Input Id { get; set; } = null!; /// - /// A human-readable label for this metric or expression. + /// A human-readable label for this metric or expression. This is especially useful if this is an expression, so that you know what the value represents. If the metric or expression is shown in a CW dashboard widget, the label is shown. If ``Label`` is omitted, CW generates a default. /// [Input("label")] public Input? Label { get; set; } /// - /// The metric to be returned, along with statistics, period, and units. + /// The metric to be returned, along with statistics, period, and units. Use this parameter only if this object is retrieving a metric and not performing a math expression on returned data. + /// Within one MetricDataQuery object, you must specify either ``Expression`` or ``MetricStat`` but not both. /// [Input("metricStat")] public Input? MetricStat { get; set; } /// - /// The period in seconds, over which the statistic is applied. + /// The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a ``PutMetricData`` operation that includes a ``StorageResolution of 1 second``. /// [Input("period")] public Input? Period { get; set; } /// /// This option indicates whether to return the timestamps and raw data values of this metric. + /// When you create an alarm based on a metric math expression, specify ``True`` for this value for only the one math expression that the alarm is based on. You must specify ``False`` for ``ReturnData`` for all the other metrics and expressions used in the alarm. + /// This field is required. /// [Input("returnData")] public Input? ReturnData { get; set; } diff --git a/sdk/dotnet/CloudWatch/Inputs/AlarmMetricStatArgs.cs b/sdk/dotnet/CloudWatch/Inputs/AlarmMetricStatArgs.cs index 6c4b783a03..d94642683d 100644 --- a/sdk/dotnet/CloudWatch/Inputs/AlarmMetricStatArgs.cs +++ b/sdk/dotnet/CloudWatch/Inputs/AlarmMetricStatArgs.cs @@ -12,6 +12,7 @@ namespace Pulumi.AwsNative.CloudWatch.Inputs /// /// This structure defines the metric to be returned, along with the statistics, period, and units. + /// ``MetricStat`` is a property of the [MetricDataQuery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html) property type. /// public sealed class AlarmMetricStatArgs : global::Pulumi.ResourceArgs { @@ -22,19 +23,24 @@ public sealed class AlarmMetricStatArgs : global::Pulumi.ResourceArgs public Input Metric { get; set; } = null!; /// - /// The granularity, in seconds, of the returned data points. + /// The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a ``PutMetricData`` call that includes a ``StorageResolution`` of 1 second. + /// If the ``StartTime`` parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned: + /// + Start time between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute). + /// + Start time between 15 and 63 days ago - Use a multiple of 300 seconds (5 minutes). + /// + Start time greater than 63 days ago - Use a multiple of 3600 seconds (1 hour). /// [Input("period", required: true)] public Input Period { get; set; } = null!; /// - /// The statistic to return. + /// The statistic to return. It can include any CW statistic or extended statistic. For a list of valid values, see the table in [Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the *User Guide*. /// [Input("stat", required: true)] public Input Stat { get; set; } = null!; /// - /// The unit to use for the returned data points. + /// The unit to use for the returned data points. + /// Valid values are: 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, or None. /// [Input("unit")] public Input? Unit { get; set; } diff --git a/sdk/dotnet/CloudWatch/Outputs/AlarmDimension.cs b/sdk/dotnet/CloudWatch/Outputs/AlarmDimension.cs index c9d3e3d4cd..462b0490e7 100644 --- a/sdk/dotnet/CloudWatch/Outputs/AlarmDimension.cs +++ b/sdk/dotnet/CloudWatch/Outputs/AlarmDimension.cs @@ -11,17 +11,17 @@ namespace Pulumi.AwsNative.CloudWatch.Outputs { /// - /// Dimensions are arbitrary name/value pairs that can be associated with a CloudWatch metric. + /// Dimension is an embedded property of the ``AWS::CloudWatch::Alarm`` type. Dimensions are name/value pairs that can be associated with a CW metric. You can specify a maximum of 10 dimensions for a given metric. /// [OutputType] public sealed class AlarmDimension { /// - /// The name of the dimension. + /// The name of the dimension, from 1–255 characters in length. This dimension name must have been included when the metric was published. /// public readonly string Name; /// - /// The value for the dimension. + /// The value for the dimension, from 1–255 characters in length. /// public readonly string Value; diff --git a/sdk/dotnet/CloudWatch/Outputs/AlarmMetric.cs b/sdk/dotnet/CloudWatch/Outputs/AlarmMetric.cs index b4567de98c..6b2546f2e3 100644 --- a/sdk/dotnet/CloudWatch/Outputs/AlarmMetric.cs +++ b/sdk/dotnet/CloudWatch/Outputs/AlarmMetric.cs @@ -11,21 +11,21 @@ namespace Pulumi.AwsNative.CloudWatch.Outputs { /// - /// The Metric property type represents a specific metric. + /// The ``Metric`` property type represents a specific metric. ``Metric`` is a property of the [MetricStat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricstat.html) property type. /// [OutputType] public sealed class AlarmMetric { /// - /// The dimensions for the metric. + /// The metric dimensions that you want to be used for the metric that the alarm will watch. /// public readonly ImmutableArray Dimensions; /// - /// The name of the metric. + /// The name of the metric that you want the alarm to watch. This is a required field. /// public readonly string? MetricName; /// - /// The namespace of the metric. + /// The namespace of the metric that the alarm will watch. /// public readonly string? Namespace; diff --git a/sdk/dotnet/CloudWatch/Outputs/AlarmMetricDataQuery.cs b/sdk/dotnet/CloudWatch/Outputs/AlarmMetricDataQuery.cs index f21909b95d..d43a2d04cb 100644 --- a/sdk/dotnet/CloudWatch/Outputs/AlarmMetricDataQuery.cs +++ b/sdk/dotnet/CloudWatch/Outputs/AlarmMetricDataQuery.cs @@ -11,7 +11,8 @@ namespace Pulumi.AwsNative.CloudWatch.Outputs { /// - /// This property type specifies the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a math expression on metric data. + /// The ``MetricDataQuery`` property type specifies the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a math expression on metric data. + /// Any expression used must return a single time series. For more information, see [Metric Math Syntax and Functions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) in the *User Guide*. /// [OutputType] public sealed class AlarmMetricDataQuery @@ -21,27 +22,31 @@ public sealed class AlarmMetricDataQuery /// public readonly string? AccountId; /// - /// The math expression to be performed on the returned data. + /// The math expression to be performed on the returned data, if this object is performing a math expression. This expression can use the ``Id`` of the other metrics to refer to those metrics, and can also use the ``Id`` of other expressions to use the result of those expressions. For more information about metric math expressions, see [Metric Math Syntax and Functions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) in the *User Guide*. + /// Within each MetricDataQuery object, you must specify either ``Expression`` or ``MetricStat`` but not both. /// public readonly string? Expression; /// - /// A short name used to tie this object to the results in the response. + /// A short name used to tie this object to the results in the response. This name must be unique within a single call to ``GetMetricData``. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscore. The first character must be a lowercase letter. /// public readonly string Id; /// - /// A human-readable label for this metric or expression. + /// A human-readable label for this metric or expression. This is especially useful if this is an expression, so that you know what the value represents. If the metric or expression is shown in a CW dashboard widget, the label is shown. If ``Label`` is omitted, CW generates a default. /// public readonly string? Label; /// - /// The metric to be returned, along with statistics, period, and units. + /// The metric to be returned, along with statistics, period, and units. Use this parameter only if this object is retrieving a metric and not performing a math expression on returned data. + /// Within one MetricDataQuery object, you must specify either ``Expression`` or ``MetricStat`` but not both. /// public readonly Outputs.AlarmMetricStat? MetricStat; /// - /// The period in seconds, over which the statistic is applied. + /// The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a ``PutMetricData`` operation that includes a ``StorageResolution of 1 second``. /// public readonly int? Period; /// /// This option indicates whether to return the timestamps and raw data values of this metric. + /// When you create an alarm based on a metric math expression, specify ``True`` for this value for only the one math expression that the alarm is based on. You must specify ``False`` for ``ReturnData`` for all the other metrics and expressions used in the alarm. + /// This field is required. /// public readonly bool? ReturnData; diff --git a/sdk/dotnet/CloudWatch/Outputs/AlarmMetricStat.cs b/sdk/dotnet/CloudWatch/Outputs/AlarmMetricStat.cs index 30c27ccc6e..58e133da76 100644 --- a/sdk/dotnet/CloudWatch/Outputs/AlarmMetricStat.cs +++ b/sdk/dotnet/CloudWatch/Outputs/AlarmMetricStat.cs @@ -12,6 +12,7 @@ namespace Pulumi.AwsNative.CloudWatch.Outputs /// /// This structure defines the metric to be returned, along with the statistics, period, and units. + /// ``MetricStat`` is a property of the [MetricDataQuery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html) property type. /// [OutputType] public sealed class AlarmMetricStat @@ -21,15 +22,20 @@ public sealed class AlarmMetricStat /// public readonly Outputs.AlarmMetric Metric; /// - /// The granularity, in seconds, of the returned data points. + /// The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a ``PutMetricData`` call that includes a ``StorageResolution`` of 1 second. + /// If the ``StartTime`` parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned: + /// + Start time between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute). + /// + Start time between 15 and 63 days ago - Use a multiple of 300 seconds (5 minutes). + /// + Start time greater than 63 days ago - Use a multiple of 3600 seconds (1 hour). /// public readonly int Period; /// - /// The statistic to return. + /// The statistic to return. It can include any CW statistic or extended statistic. For a list of valid values, see the table in [Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the *User Guide*. /// public readonly string Stat; /// - /// The unit to use for the returned data points. + /// The unit to use for the returned data points. + /// Valid values are: 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, or None. /// public readonly string? Unit; 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/Deadline/Enums.cs b/sdk/dotnet/Deadline/Enums.cs new file mode 100644 index 0000000000..e9c8a0d6c4 --- /dev/null +++ b/sdk/dotnet/Deadline/Enums.cs @@ -0,0 +1,380 @@ +// *** 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.Deadline +{ + [EnumType] + public readonly struct FleetAcceleratorType : IEquatable + { + private readonly string _value; + + private FleetAcceleratorType(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static FleetAcceleratorType Gpu { get; } = new FleetAcceleratorType("gpu"); + + public static bool operator ==(FleetAcceleratorType left, FleetAcceleratorType right) => left.Equals(right); + public static bool operator !=(FleetAcceleratorType left, FleetAcceleratorType right) => !left.Equals(right); + + public static explicit operator string(FleetAcceleratorType value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is FleetAcceleratorType other && Equals(other); + public bool Equals(FleetAcceleratorType 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 FleetAutoScalingMode : IEquatable + { + private readonly string _value; + + private FleetAutoScalingMode(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static FleetAutoScalingMode NoScaling { get; } = new FleetAutoScalingMode("NO_SCALING"); + public static FleetAutoScalingMode EventBasedAutoScaling { get; } = new FleetAutoScalingMode("EVENT_BASED_AUTO_SCALING"); + + public static bool operator ==(FleetAutoScalingMode left, FleetAutoScalingMode right) => left.Equals(right); + public static bool operator !=(FleetAutoScalingMode left, FleetAutoScalingMode right) => !left.Equals(right); + + public static explicit operator string(FleetAutoScalingMode value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is FleetAutoScalingMode other && Equals(other); + public bool Equals(FleetAutoScalingMode 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 FleetCpuArchitectureType : IEquatable + { + private readonly string _value; + + private FleetCpuArchitectureType(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static FleetCpuArchitectureType X8664 { get; } = new FleetCpuArchitectureType("x86_64"); + public static FleetCpuArchitectureType Arm64 { get; } = new FleetCpuArchitectureType("arm64"); + + public static bool operator ==(FleetCpuArchitectureType left, FleetCpuArchitectureType right) => left.Equals(right); + public static bool operator !=(FleetCpuArchitectureType left, FleetCpuArchitectureType right) => !left.Equals(right); + + public static explicit operator string(FleetCpuArchitectureType value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is FleetCpuArchitectureType other && Equals(other); + public bool Equals(FleetCpuArchitectureType 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 FleetCustomerManagedFleetOperatingSystemFamily : IEquatable + { + private readonly string _value; + + private FleetCustomerManagedFleetOperatingSystemFamily(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static FleetCustomerManagedFleetOperatingSystemFamily Windows { get; } = new FleetCustomerManagedFleetOperatingSystemFamily("WINDOWS"); + public static FleetCustomerManagedFleetOperatingSystemFamily Linux { get; } = new FleetCustomerManagedFleetOperatingSystemFamily("LINUX"); + public static FleetCustomerManagedFleetOperatingSystemFamily Macos { get; } = new FleetCustomerManagedFleetOperatingSystemFamily("MACOS"); + + public static bool operator ==(FleetCustomerManagedFleetOperatingSystemFamily left, FleetCustomerManagedFleetOperatingSystemFamily right) => left.Equals(right); + public static bool operator !=(FleetCustomerManagedFleetOperatingSystemFamily left, FleetCustomerManagedFleetOperatingSystemFamily right) => !left.Equals(right); + + public static explicit operator string(FleetCustomerManagedFleetOperatingSystemFamily value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is FleetCustomerManagedFleetOperatingSystemFamily other && Equals(other); + public bool Equals(FleetCustomerManagedFleetOperatingSystemFamily 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 FleetEc2MarketType : IEquatable + { + private readonly string _value; + + private FleetEc2MarketType(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static FleetEc2MarketType OnDemand { get; } = new FleetEc2MarketType("on-demand"); + public static FleetEc2MarketType Spot { get; } = new FleetEc2MarketType("spot"); + + public static bool operator ==(FleetEc2MarketType left, FleetEc2MarketType right) => left.Equals(right); + public static bool operator !=(FleetEc2MarketType left, FleetEc2MarketType right) => !left.Equals(right); + + public static explicit operator string(FleetEc2MarketType value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is FleetEc2MarketType other && Equals(other); + public bool Equals(FleetEc2MarketType 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 FleetServiceManagedFleetOperatingSystemFamily : IEquatable + { + private readonly string _value; + + private FleetServiceManagedFleetOperatingSystemFamily(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static FleetServiceManagedFleetOperatingSystemFamily Windows { get; } = new FleetServiceManagedFleetOperatingSystemFamily("WINDOWS"); + public static FleetServiceManagedFleetOperatingSystemFamily Linux { get; } = new FleetServiceManagedFleetOperatingSystemFamily("LINUX"); + + public static bool operator ==(FleetServiceManagedFleetOperatingSystemFamily left, FleetServiceManagedFleetOperatingSystemFamily right) => left.Equals(right); + public static bool operator !=(FleetServiceManagedFleetOperatingSystemFamily left, FleetServiceManagedFleetOperatingSystemFamily right) => !left.Equals(right); + + public static explicit operator string(FleetServiceManagedFleetOperatingSystemFamily value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is FleetServiceManagedFleetOperatingSystemFamily other && Equals(other); + public bool Equals(FleetServiceManagedFleetOperatingSystemFamily 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 FleetStatus : IEquatable + { + private readonly string _value; + + private FleetStatus(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static FleetStatus Active { get; } = new FleetStatus("ACTIVE"); + public static FleetStatus CreateInProgress { get; } = new FleetStatus("CREATE_IN_PROGRESS"); + public static FleetStatus UpdateInProgress { get; } = new FleetStatus("UPDATE_IN_PROGRESS"); + public static FleetStatus CreateFailed { get; } = new FleetStatus("CREATE_FAILED"); + public static FleetStatus UpdateFailed { get; } = new FleetStatus("UPDATE_FAILED"); + + public static bool operator ==(FleetStatus left, FleetStatus right) => left.Equals(right); + public static bool operator !=(FleetStatus left, FleetStatus right) => !left.Equals(right); + + public static explicit operator string(FleetStatus value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is FleetStatus other && Equals(other); + public bool Equals(FleetStatus 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 LicenseEndpointStatus : IEquatable + { + private readonly string _value; + + private LicenseEndpointStatus(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static LicenseEndpointStatus CreateInProgress { get; } = new LicenseEndpointStatus("CREATE_IN_PROGRESS"); + public static LicenseEndpointStatus DeleteInProgress { get; } = new LicenseEndpointStatus("DELETE_IN_PROGRESS"); + public static LicenseEndpointStatus Ready { get; } = new LicenseEndpointStatus("READY"); + public static LicenseEndpointStatus NotReady { get; } = new LicenseEndpointStatus("NOT_READY"); + + public static bool operator ==(LicenseEndpointStatus left, LicenseEndpointStatus right) => left.Equals(right); + public static bool operator !=(LicenseEndpointStatus left, LicenseEndpointStatus right) => !left.Equals(right); + + public static explicit operator string(LicenseEndpointStatus value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is LicenseEndpointStatus other && Equals(other); + public bool Equals(LicenseEndpointStatus 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 QueueDefaultQueueBudgetAction : IEquatable + { + private readonly string _value; + + private QueueDefaultQueueBudgetAction(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static QueueDefaultQueueBudgetAction None { get; } = new QueueDefaultQueueBudgetAction("NONE"); + public static QueueDefaultQueueBudgetAction StopSchedulingAndCompleteTasks { get; } = new QueueDefaultQueueBudgetAction("STOP_SCHEDULING_AND_COMPLETE_TASKS"); + public static QueueDefaultQueueBudgetAction StopSchedulingAndCancelTasks { get; } = new QueueDefaultQueueBudgetAction("STOP_SCHEDULING_AND_CANCEL_TASKS"); + + public static bool operator ==(QueueDefaultQueueBudgetAction left, QueueDefaultQueueBudgetAction right) => left.Equals(right); + public static bool operator !=(QueueDefaultQueueBudgetAction left, QueueDefaultQueueBudgetAction right) => !left.Equals(right); + + public static explicit operator string(QueueDefaultQueueBudgetAction value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is QueueDefaultQueueBudgetAction other && Equals(other); + public bool Equals(QueueDefaultQueueBudgetAction 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 QueueEnvironmentEnvironmentTemplateType : IEquatable + { + private readonly string _value; + + private QueueEnvironmentEnvironmentTemplateType(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static QueueEnvironmentEnvironmentTemplateType Json { get; } = new QueueEnvironmentEnvironmentTemplateType("JSON"); + public static QueueEnvironmentEnvironmentTemplateType Yaml { get; } = new QueueEnvironmentEnvironmentTemplateType("YAML"); + + public static bool operator ==(QueueEnvironmentEnvironmentTemplateType left, QueueEnvironmentEnvironmentTemplateType right) => left.Equals(right); + public static bool operator !=(QueueEnvironmentEnvironmentTemplateType left, QueueEnvironmentEnvironmentTemplateType right) => !left.Equals(right); + + public static explicit operator string(QueueEnvironmentEnvironmentTemplateType value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is QueueEnvironmentEnvironmentTemplateType other && Equals(other); + public bool Equals(QueueEnvironmentEnvironmentTemplateType 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 QueueRunAs : IEquatable + { + private readonly string _value; + + private QueueRunAs(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static QueueRunAs QueueConfiguredUser { get; } = new QueueRunAs("QUEUE_CONFIGURED_USER"); + public static QueueRunAs WorkerAgentUser { get; } = new QueueRunAs("WORKER_AGENT_USER"); + + public static bool operator ==(QueueRunAs left, QueueRunAs right) => left.Equals(right); + public static bool operator !=(QueueRunAs left, QueueRunAs right) => !left.Equals(right); + + public static explicit operator string(QueueRunAs value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is QueueRunAs other && Equals(other); + public bool Equals(QueueRunAs 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 StorageProfileFileSystemLocationType : IEquatable + { + private readonly string _value; + + private StorageProfileFileSystemLocationType(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static StorageProfileFileSystemLocationType Shared { get; } = new StorageProfileFileSystemLocationType("SHARED"); + public static StorageProfileFileSystemLocationType Local { get; } = new StorageProfileFileSystemLocationType("LOCAL"); + + public static bool operator ==(StorageProfileFileSystemLocationType left, StorageProfileFileSystemLocationType right) => left.Equals(right); + public static bool operator !=(StorageProfileFileSystemLocationType left, StorageProfileFileSystemLocationType right) => !left.Equals(right); + + public static explicit operator string(StorageProfileFileSystemLocationType value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is StorageProfileFileSystemLocationType other && Equals(other); + public bool Equals(StorageProfileFileSystemLocationType 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 StorageProfileOperatingSystemFamily : IEquatable + { + private readonly string _value; + + private StorageProfileOperatingSystemFamily(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static StorageProfileOperatingSystemFamily Windows { get; } = new StorageProfileOperatingSystemFamily("WINDOWS"); + public static StorageProfileOperatingSystemFamily Linux { get; } = new StorageProfileOperatingSystemFamily("LINUX"); + public static StorageProfileOperatingSystemFamily Macos { get; } = new StorageProfileOperatingSystemFamily("MACOS"); + + public static bool operator ==(StorageProfileOperatingSystemFamily left, StorageProfileOperatingSystemFamily right) => left.Equals(right); + public static bool operator !=(StorageProfileOperatingSystemFamily left, StorageProfileOperatingSystemFamily right) => !left.Equals(right); + + public static explicit operator string(StorageProfileOperatingSystemFamily value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is StorageProfileOperatingSystemFamily other && Equals(other); + public bool Equals(StorageProfileOperatingSystemFamily 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/Deadline/Farm.cs b/sdk/dotnet/Deadline/Farm.cs new file mode 100644 index 0000000000..905369680c --- /dev/null +++ b/sdk/dotnet/Deadline/Farm.cs @@ -0,0 +1,96 @@ +// *** 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.Deadline +{ + /// + /// Definition of AWS::Deadline::Farm Resource Type + /// + [AwsNativeResourceType("aws-native:deadline:Farm")] + public partial class Farm : global::Pulumi.CustomResource + { + [Output("arn")] + public Output Arn { get; private set; } = null!; + + [Output("description")] + public Output Description { get; private set; } = null!; + + [Output("displayName")] + public Output DisplayName { get; private set; } = null!; + + [Output("farmId")] + public Output FarmId { get; private set; } = null!; + + [Output("kmsKeyArn")] + public Output KmsKeyArn { get; private set; } = null!; + + + /// + /// Create a Farm 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 Farm(string name, FarmArgs args, CustomResourceOptions? options = null) + : base("aws-native:deadline:Farm", name, args ?? new FarmArgs(), MakeResourceOptions(options, "")) + { + } + + private Farm(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:deadline:Farm", name, null, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + ReplaceOnChanges = + { + "kmsKeyArn", + }, + }; + 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 Farm 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 Farm Get(string name, Input id, CustomResourceOptions? options = null) + { + return new Farm(name, id, options); + } + } + + public sealed class FarmArgs : global::Pulumi.ResourceArgs + { + [Input("description")] + public Input? Description { get; set; } + + [Input("displayName", required: true)] + public Input DisplayName { get; set; } = null!; + + [Input("kmsKeyArn")] + public Input? KmsKeyArn { get; set; } + + public FarmArgs() + { + } + public static new FarmArgs Empty => new FarmArgs(); + } +} diff --git a/sdk/dotnet/Deadline/Fleet.cs b/sdk/dotnet/Deadline/Fleet.cs new file mode 100644 index 0000000000..a402d9da1b --- /dev/null +++ b/sdk/dotnet/Deadline/Fleet.cs @@ -0,0 +1,129 @@ +// *** 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.Deadline +{ + /// + /// Definition of AWS::Deadline::Fleet Resource Type + /// + [AwsNativeResourceType("aws-native:deadline:Fleet")] + public partial class Fleet : global::Pulumi.CustomResource + { + [Output("arn")] + public Output Arn { get; private set; } = null!; + + [Output("capabilities")] + public Output Capabilities { get; private set; } = null!; + + [Output("configuration")] + public Output> Configuration { get; private set; } = null!; + + [Output("description")] + public Output Description { get; private set; } = null!; + + [Output("displayName")] + public Output DisplayName { get; private set; } = null!; + + [Output("farmId")] + public Output FarmId { get; private set; } = null!; + + [Output("fleetId")] + public Output FleetId { get; private set; } = null!; + + [Output("maxWorkerCount")] + public Output MaxWorkerCount { get; private set; } = null!; + + [Output("minWorkerCount")] + public Output MinWorkerCount { get; private set; } = null!; + + [Output("roleArn")] + public Output RoleArn { get; private set; } = null!; + + [Output("status")] + public Output Status { get; private set; } = null!; + + [Output("workerCount")] + public Output WorkerCount { get; private set; } = null!; + + + /// + /// Create a Fleet 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 Fleet(string name, FleetArgs args, CustomResourceOptions? options = null) + : base("aws-native:deadline:Fleet", name, args ?? new FleetArgs(), MakeResourceOptions(options, "")) + { + } + + private Fleet(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:deadline:Fleet", name, null, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + ReplaceOnChanges = + { + "farmId", + }, + }; + 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 Fleet 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 Fleet Get(string name, Input id, CustomResourceOptions? options = null) + { + return new Fleet(name, id, options); + } + } + + public sealed class FleetArgs : global::Pulumi.ResourceArgs + { + [Input("configuration", required: true)] + public InputUnion Configuration { get; set; } = null!; + + [Input("description")] + public Input? Description { get; set; } + + [Input("displayName", required: true)] + public Input DisplayName { get; set; } = null!; + + [Input("farmId")] + public Input? FarmId { get; set; } + + [Input("maxWorkerCount", required: true)] + public Input MaxWorkerCount { get; set; } = null!; + + [Input("minWorkerCount")] + public Input? MinWorkerCount { get; set; } + + [Input("roleArn", required: true)] + public Input RoleArn { get; set; } = null!; + + public FleetArgs() + { + } + public static new FleetArgs Empty => new FleetArgs(); + } +} diff --git a/sdk/dotnet/Deadline/GetFarm.cs b/sdk/dotnet/Deadline/GetFarm.cs new file mode 100644 index 0000000000..93700711ee --- /dev/null +++ b/sdk/dotnet/Deadline/GetFarm.cs @@ -0,0 +1,75 @@ +// *** 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.Deadline +{ + public static class GetFarm + { + /// + /// Definition of AWS::Deadline::Farm Resource Type + /// + public static Task InvokeAsync(GetFarmArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:deadline:getFarm", args ?? new GetFarmArgs(), options.WithDefaults()); + + /// + /// Definition of AWS::Deadline::Farm Resource Type + /// + public static Output Invoke(GetFarmInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:deadline:getFarm", args ?? new GetFarmInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetFarmArgs : global::Pulumi.InvokeArgs + { + [Input("arn", required: true)] + public string Arn { get; set; } = null!; + + public GetFarmArgs() + { + } + public static new GetFarmArgs Empty => new GetFarmArgs(); + } + + public sealed class GetFarmInvokeArgs : global::Pulumi.InvokeArgs + { + [Input("arn", required: true)] + public Input Arn { get; set; } = null!; + + public GetFarmInvokeArgs() + { + } + public static new GetFarmInvokeArgs Empty => new GetFarmInvokeArgs(); + } + + + [OutputType] + public sealed class GetFarmResult + { + public readonly string? Arn; + public readonly string? Description; + public readonly string? DisplayName; + public readonly string? FarmId; + + [OutputConstructor] + private GetFarmResult( + string? arn, + + string? description, + + string? displayName, + + string? farmId) + { + Arn = arn; + Description = description; + DisplayName = displayName; + FarmId = farmId; + } + } +} diff --git a/sdk/dotnet/Deadline/GetFleet.cs b/sdk/dotnet/Deadline/GetFleet.cs new file mode 100644 index 0000000000..7724be5065 --- /dev/null +++ b/sdk/dotnet/Deadline/GetFleet.cs @@ -0,0 +1,103 @@ +// *** 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.Deadline +{ + public static class GetFleet + { + /// + /// Definition of AWS::Deadline::Fleet Resource Type + /// + public static Task InvokeAsync(GetFleetArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:deadline:getFleet", args ?? new GetFleetArgs(), options.WithDefaults()); + + /// + /// Definition of AWS::Deadline::Fleet Resource Type + /// + public static Output Invoke(GetFleetInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:deadline:getFleet", args ?? new GetFleetInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetFleetArgs : global::Pulumi.InvokeArgs + { + [Input("arn", required: true)] + public string Arn { get; set; } = null!; + + public GetFleetArgs() + { + } + public static new GetFleetArgs Empty => new GetFleetArgs(); + } + + public sealed class GetFleetInvokeArgs : global::Pulumi.InvokeArgs + { + [Input("arn", required: true)] + public Input Arn { get; set; } = null!; + + public GetFleetInvokeArgs() + { + } + public static new GetFleetInvokeArgs Empty => new GetFleetInvokeArgs(); + } + + + [OutputType] + public sealed class GetFleetResult + { + public readonly string? Arn; + public readonly Outputs.FleetCapabilities? Capabilities; + public readonly Union? Configuration; + public readonly string? Description; + public readonly string? DisplayName; + public readonly string? FleetId; + public readonly int? MaxWorkerCount; + public readonly int? MinWorkerCount; + public readonly string? RoleArn; + public readonly Pulumi.AwsNative.Deadline.FleetStatus? Status; + public readonly int? WorkerCount; + + [OutputConstructor] + private GetFleetResult( + string? arn, + + Outputs.FleetCapabilities? capabilities, + + Union? configuration, + + string? description, + + string? displayName, + + string? fleetId, + + int? maxWorkerCount, + + int? minWorkerCount, + + string? roleArn, + + Pulumi.AwsNative.Deadline.FleetStatus? status, + + int? workerCount) + { + Arn = arn; + Capabilities = capabilities; + Configuration = configuration; + Description = description; + DisplayName = displayName; + FleetId = fleetId; + MaxWorkerCount = maxWorkerCount; + MinWorkerCount = minWorkerCount; + RoleArn = roleArn; + Status = status; + WorkerCount = workerCount; + } + } +} diff --git a/sdk/dotnet/Deadline/GetLicenseEndpoint.cs b/sdk/dotnet/Deadline/GetLicenseEndpoint.cs new file mode 100644 index 0000000000..95d5842c72 --- /dev/null +++ b/sdk/dotnet/Deadline/GetLicenseEndpoint.cs @@ -0,0 +1,79 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.Deadline +{ + public static class GetLicenseEndpoint + { + /// + /// Definition of AWS::Deadline::LicenseEndpoint Resource Type + /// + public static Task InvokeAsync(GetLicenseEndpointArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:deadline:getLicenseEndpoint", args ?? new GetLicenseEndpointArgs(), options.WithDefaults()); + + /// + /// Definition of AWS::Deadline::LicenseEndpoint Resource Type + /// + public static Output Invoke(GetLicenseEndpointInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:deadline:getLicenseEndpoint", args ?? new GetLicenseEndpointInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetLicenseEndpointArgs : global::Pulumi.InvokeArgs + { + [Input("arn", required: true)] + public string Arn { get; set; } = null!; + + public GetLicenseEndpointArgs() + { + } + public static new GetLicenseEndpointArgs Empty => new GetLicenseEndpointArgs(); + } + + public sealed class GetLicenseEndpointInvokeArgs : global::Pulumi.InvokeArgs + { + [Input("arn", required: true)] + public Input Arn { get; set; } = null!; + + public GetLicenseEndpointInvokeArgs() + { + } + public static new GetLicenseEndpointInvokeArgs Empty => new GetLicenseEndpointInvokeArgs(); + } + + + [OutputType] + public sealed class GetLicenseEndpointResult + { + public readonly string? Arn; + public readonly string? DnsName; + public readonly string? LicenseEndpointId; + public readonly Pulumi.AwsNative.Deadline.LicenseEndpointStatus? Status; + public readonly string? StatusMessage; + + [OutputConstructor] + private GetLicenseEndpointResult( + string? arn, + + string? dnsName, + + string? licenseEndpointId, + + Pulumi.AwsNative.Deadline.LicenseEndpointStatus? status, + + string? statusMessage) + { + Arn = arn; + DnsName = dnsName; + LicenseEndpointId = licenseEndpointId; + Status = status; + StatusMessage = statusMessage; + } + } +} diff --git a/sdk/dotnet/Deadline/GetMeteredProduct.cs b/sdk/dotnet/Deadline/GetMeteredProduct.cs new file mode 100644 index 0000000000..7cbde4176b --- /dev/null +++ b/sdk/dotnet/Deadline/GetMeteredProduct.cs @@ -0,0 +1,75 @@ +// *** 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.Deadline +{ + public static class GetMeteredProduct + { + /// + /// Definition of AWS::Deadline::MeteredProduct Resource Type + /// + public static Task InvokeAsync(GetMeteredProductArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:deadline:getMeteredProduct", args ?? new GetMeteredProductArgs(), options.WithDefaults()); + + /// + /// Definition of AWS::Deadline::MeteredProduct Resource Type + /// + public static Output Invoke(GetMeteredProductInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:deadline:getMeteredProduct", args ?? new GetMeteredProductInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetMeteredProductArgs : global::Pulumi.InvokeArgs + { + [Input("arn", required: true)] + public string Arn { get; set; } = null!; + + public GetMeteredProductArgs() + { + } + public static new GetMeteredProductArgs Empty => new GetMeteredProductArgs(); + } + + public sealed class GetMeteredProductInvokeArgs : global::Pulumi.InvokeArgs + { + [Input("arn", required: true)] + public Input Arn { get; set; } = null!; + + public GetMeteredProductInvokeArgs() + { + } + public static new GetMeteredProductInvokeArgs Empty => new GetMeteredProductInvokeArgs(); + } + + + [OutputType] + public sealed class GetMeteredProductResult + { + public readonly string? Arn; + public readonly string? Family; + public readonly int? Port; + public readonly string? Vendor; + + [OutputConstructor] + private GetMeteredProductResult( + string? arn, + + string? family, + + int? port, + + string? vendor) + { + Arn = arn; + Family = family; + Port = port; + Vendor = vendor; + } + } +} diff --git a/sdk/dotnet/Deadline/GetQueue.cs b/sdk/dotnet/Deadline/GetQueue.cs new file mode 100644 index 0000000000..d355c82d72 --- /dev/null +++ b/sdk/dotnet/Deadline/GetQueue.cs @@ -0,0 +1,99 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.Deadline +{ + public static class GetQueue + { + /// + /// Definition of AWS::Deadline::Queue Resource Type + /// + public static Task InvokeAsync(GetQueueArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:deadline:getQueue", args ?? new GetQueueArgs(), options.WithDefaults()); + + /// + /// Definition of AWS::Deadline::Queue Resource Type + /// + public static Output Invoke(GetQueueInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:deadline:getQueue", args ?? new GetQueueInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetQueueArgs : global::Pulumi.InvokeArgs + { + [Input("arn", required: true)] + public string Arn { get; set; } = null!; + + public GetQueueArgs() + { + } + public static new GetQueueArgs Empty => new GetQueueArgs(); + } + + public sealed class GetQueueInvokeArgs : global::Pulumi.InvokeArgs + { + [Input("arn", required: true)] + public Input Arn { get; set; } = null!; + + public GetQueueInvokeArgs() + { + } + public static new GetQueueInvokeArgs Empty => new GetQueueInvokeArgs(); + } + + + [OutputType] + public sealed class GetQueueResult + { + public readonly ImmutableArray AllowedStorageProfileIds; + public readonly string? Arn; + public readonly Pulumi.AwsNative.Deadline.QueueDefaultQueueBudgetAction? DefaultBudgetAction; + public readonly string? Description; + public readonly string? DisplayName; + public readonly Outputs.QueueJobAttachmentSettings? JobAttachmentSettings; + public readonly Outputs.QueueJobRunAsUser? JobRunAsUser; + public readonly string? QueueId; + public readonly ImmutableArray RequiredFileSystemLocationNames; + public readonly string? RoleArn; + + [OutputConstructor] + private GetQueueResult( + ImmutableArray allowedStorageProfileIds, + + string? arn, + + Pulumi.AwsNative.Deadline.QueueDefaultQueueBudgetAction? defaultBudgetAction, + + string? description, + + string? displayName, + + Outputs.QueueJobAttachmentSettings? jobAttachmentSettings, + + Outputs.QueueJobRunAsUser? jobRunAsUser, + + string? queueId, + + ImmutableArray requiredFileSystemLocationNames, + + string? roleArn) + { + AllowedStorageProfileIds = allowedStorageProfileIds; + Arn = arn; + DefaultBudgetAction = defaultBudgetAction; + Description = description; + DisplayName = displayName; + JobAttachmentSettings = jobAttachmentSettings; + JobRunAsUser = jobRunAsUser; + QueueId = queueId; + RequiredFileSystemLocationNames = requiredFileSystemLocationNames; + RoleArn = roleArn; + } + } +} diff --git a/sdk/dotnet/Deadline/GetQueueEnvironment.cs b/sdk/dotnet/Deadline/GetQueueEnvironment.cs new file mode 100644 index 0000000000..05d502787f --- /dev/null +++ b/sdk/dotnet/Deadline/GetQueueEnvironment.cs @@ -0,0 +1,91 @@ +// *** 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.Deadline +{ + public static class GetQueueEnvironment + { + /// + /// Definition of AWS::Deadline::QueueEnvironment Resource Type + /// + public static Task InvokeAsync(GetQueueEnvironmentArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:deadline:getQueueEnvironment", args ?? new GetQueueEnvironmentArgs(), options.WithDefaults()); + + /// + /// Definition of AWS::Deadline::QueueEnvironment Resource Type + /// + public static Output Invoke(GetQueueEnvironmentInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:deadline:getQueueEnvironment", args ?? new GetQueueEnvironmentInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetQueueEnvironmentArgs : global::Pulumi.InvokeArgs + { + [Input("farmId", required: true)] + public string FarmId { get; set; } = null!; + + [Input("queueEnvironmentId", required: true)] + public string QueueEnvironmentId { get; set; } = null!; + + [Input("queueId", required: true)] + public string QueueId { get; set; } = null!; + + public GetQueueEnvironmentArgs() + { + } + public static new GetQueueEnvironmentArgs Empty => new GetQueueEnvironmentArgs(); + } + + public sealed class GetQueueEnvironmentInvokeArgs : global::Pulumi.InvokeArgs + { + [Input("farmId", required: true)] + public Input FarmId { get; set; } = null!; + + [Input("queueEnvironmentId", required: true)] + public Input QueueEnvironmentId { get; set; } = null!; + + [Input("queueId", required: true)] + public Input QueueId { get; set; } = null!; + + public GetQueueEnvironmentInvokeArgs() + { + } + public static new GetQueueEnvironmentInvokeArgs Empty => new GetQueueEnvironmentInvokeArgs(); + } + + + [OutputType] + public sealed class GetQueueEnvironmentResult + { + public readonly string? Name; + public readonly int? Priority; + public readonly string? QueueEnvironmentId; + public readonly string? Template; + public readonly Pulumi.AwsNative.Deadline.QueueEnvironmentEnvironmentTemplateType? TemplateType; + + [OutputConstructor] + private GetQueueEnvironmentResult( + string? name, + + int? priority, + + string? queueEnvironmentId, + + string? template, + + Pulumi.AwsNative.Deadline.QueueEnvironmentEnvironmentTemplateType? templateType) + { + Name = name; + Priority = priority; + QueueEnvironmentId = queueEnvironmentId; + Template = template; + TemplateType = templateType; + } + } +} diff --git a/sdk/dotnet/Deadline/GetStorageProfile.cs b/sdk/dotnet/Deadline/GetStorageProfile.cs new file mode 100644 index 0000000000..143406cba0 --- /dev/null +++ b/sdk/dotnet/Deadline/GetStorageProfile.cs @@ -0,0 +1,81 @@ +// *** 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.Deadline +{ + public static class GetStorageProfile + { + /// + /// Definition of AWS::Deadline::StorageProfile Resource Type + /// + public static Task InvokeAsync(GetStorageProfileArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:deadline:getStorageProfile", args ?? new GetStorageProfileArgs(), options.WithDefaults()); + + /// + /// Definition of AWS::Deadline::StorageProfile Resource Type + /// + public static Output Invoke(GetStorageProfileInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:deadline:getStorageProfile", args ?? new GetStorageProfileInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetStorageProfileArgs : global::Pulumi.InvokeArgs + { + [Input("farmId", required: true)] + public string FarmId { get; set; } = null!; + + [Input("storageProfileId", required: true)] + public string StorageProfileId { get; set; } = null!; + + public GetStorageProfileArgs() + { + } + public static new GetStorageProfileArgs Empty => new GetStorageProfileArgs(); + } + + public sealed class GetStorageProfileInvokeArgs : global::Pulumi.InvokeArgs + { + [Input("farmId", required: true)] + public Input FarmId { get; set; } = null!; + + [Input("storageProfileId", required: true)] + public Input StorageProfileId { get; set; } = null!; + + public GetStorageProfileInvokeArgs() + { + } + public static new GetStorageProfileInvokeArgs Empty => new GetStorageProfileInvokeArgs(); + } + + + [OutputType] + public sealed class GetStorageProfileResult + { + public readonly string? DisplayName; + public readonly ImmutableArray FileSystemLocations; + public readonly Pulumi.AwsNative.Deadline.StorageProfileOperatingSystemFamily? OsFamily; + public readonly string? StorageProfileId; + + [OutputConstructor] + private GetStorageProfileResult( + string? displayName, + + ImmutableArray fileSystemLocations, + + Pulumi.AwsNative.Deadline.StorageProfileOperatingSystemFamily? osFamily, + + string? storageProfileId) + { + DisplayName = displayName; + FileSystemLocations = fileSystemLocations; + OsFamily = osFamily; + StorageProfileId = storageProfileId; + } + } +} diff --git a/sdk/dotnet/Deadline/Inputs/FleetAcceleratorCountRangeArgs.cs b/sdk/dotnet/Deadline/Inputs/FleetAcceleratorCountRangeArgs.cs new file mode 100644 index 0000000000..9bd60ae613 --- /dev/null +++ b/sdk/dotnet/Deadline/Inputs/FleetAcceleratorCountRangeArgs.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.Deadline.Inputs +{ + + public sealed class FleetAcceleratorCountRangeArgs : global::Pulumi.ResourceArgs + { + [Input("max")] + public Input? Max { get; set; } + + [Input("min", required: true)] + public Input Min { get; set; } = null!; + + public FleetAcceleratorCountRangeArgs() + { + } + public static new FleetAcceleratorCountRangeArgs Empty => new FleetAcceleratorCountRangeArgs(); + } +} diff --git a/sdk/dotnet/Deadline/Inputs/FleetAcceleratorTotalMemoryMiBRangeArgs.cs b/sdk/dotnet/Deadline/Inputs/FleetAcceleratorTotalMemoryMiBRangeArgs.cs new file mode 100644 index 0000000000..f2d787087c --- /dev/null +++ b/sdk/dotnet/Deadline/Inputs/FleetAcceleratorTotalMemoryMiBRangeArgs.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.Deadline.Inputs +{ + + public sealed class FleetAcceleratorTotalMemoryMiBRangeArgs : global::Pulumi.ResourceArgs + { + [Input("max")] + public Input? Max { get; set; } + + [Input("min", required: true)] + public Input Min { get; set; } = null!; + + public FleetAcceleratorTotalMemoryMiBRangeArgs() + { + } + public static new FleetAcceleratorTotalMemoryMiBRangeArgs Empty => new FleetAcceleratorTotalMemoryMiBRangeArgs(); + } +} diff --git a/sdk/dotnet/Deadline/Inputs/FleetAmountCapabilityArgs.cs b/sdk/dotnet/Deadline/Inputs/FleetAmountCapabilityArgs.cs new file mode 100644 index 0000000000..cc8755a63e --- /dev/null +++ b/sdk/dotnet/Deadline/Inputs/FleetAmountCapabilityArgs.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.Deadline.Inputs +{ + + public sealed class FleetAmountCapabilityArgs : global::Pulumi.ResourceArgs + { + [Input("max")] + public Input? Max { get; set; } + + [Input("min", required: true)] + public Input Min { get; set; } = null!; + + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + public FleetAmountCapabilityArgs() + { + } + public static new FleetAmountCapabilityArgs Empty => new FleetAmountCapabilityArgs(); + } +} diff --git a/sdk/dotnet/Deadline/Inputs/FleetAttributeCapabilityArgs.cs b/sdk/dotnet/Deadline/Inputs/FleetAttributeCapabilityArgs.cs new file mode 100644 index 0000000000..0e316a02b1 --- /dev/null +++ b/sdk/dotnet/Deadline/Inputs/FleetAttributeCapabilityArgs.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.Deadline.Inputs +{ + + public sealed class FleetAttributeCapabilityArgs : global::Pulumi.ResourceArgs + { + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + [Input("values", required: true)] + private InputList? _values; + public InputList Values + { + get => _values ?? (_values = new InputList()); + set => _values = value; + } + + public FleetAttributeCapabilityArgs() + { + } + public static new FleetAttributeCapabilityArgs Empty => new FleetAttributeCapabilityArgs(); + } +} diff --git a/sdk/dotnet/Deadline/Inputs/FleetConfiguration0PropertiesArgs.cs b/sdk/dotnet/Deadline/Inputs/FleetConfiguration0PropertiesArgs.cs new file mode 100644 index 0000000000..bcf0a94591 --- /dev/null +++ b/sdk/dotnet/Deadline/Inputs/FleetConfiguration0PropertiesArgs.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.Deadline.Inputs +{ + + public sealed class FleetConfiguration0PropertiesArgs : global::Pulumi.ResourceArgs + { + [Input("customerManaged", required: true)] + public Input CustomerManaged { get; set; } = null!; + + public FleetConfiguration0PropertiesArgs() + { + } + public static new FleetConfiguration0PropertiesArgs Empty => new FleetConfiguration0PropertiesArgs(); + } +} diff --git a/sdk/dotnet/Deadline/Inputs/FleetConfiguration1PropertiesArgs.cs b/sdk/dotnet/Deadline/Inputs/FleetConfiguration1PropertiesArgs.cs new file mode 100644 index 0000000000..b11549626b --- /dev/null +++ b/sdk/dotnet/Deadline/Inputs/FleetConfiguration1PropertiesArgs.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.Deadline.Inputs +{ + + public sealed class FleetConfiguration1PropertiesArgs : global::Pulumi.ResourceArgs + { + [Input("serviceManagedEc2", required: true)] + public Input ServiceManagedEc2 { get; set; } = null!; + + public FleetConfiguration1PropertiesArgs() + { + } + public static new FleetConfiguration1PropertiesArgs Empty => new FleetConfiguration1PropertiesArgs(); + } +} diff --git a/sdk/dotnet/Deadline/Inputs/FleetCustomerManagedFleetConfigurationArgs.cs b/sdk/dotnet/Deadline/Inputs/FleetCustomerManagedFleetConfigurationArgs.cs new file mode 100644 index 0000000000..d53d3821c6 --- /dev/null +++ b/sdk/dotnet/Deadline/Inputs/FleetCustomerManagedFleetConfigurationArgs.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.Deadline.Inputs +{ + + public sealed class FleetCustomerManagedFleetConfigurationArgs : global::Pulumi.ResourceArgs + { + [Input("mode", required: true)] + public Input Mode { get; set; } = null!; + + [Input("storageProfileId")] + public Input? StorageProfileId { get; set; } + + [Input("workerCapabilities", required: true)] + public Input WorkerCapabilities { get; set; } = null!; + + public FleetCustomerManagedFleetConfigurationArgs() + { + } + public static new FleetCustomerManagedFleetConfigurationArgs Empty => new FleetCustomerManagedFleetConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Deadline/Inputs/FleetCustomerManagedWorkerCapabilitiesArgs.cs b/sdk/dotnet/Deadline/Inputs/FleetCustomerManagedWorkerCapabilitiesArgs.cs new file mode 100644 index 0000000000..6ac48d74b9 --- /dev/null +++ b/sdk/dotnet/Deadline/Inputs/FleetCustomerManagedWorkerCapabilitiesArgs.cs @@ -0,0 +1,62 @@ +// *** 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.Deadline.Inputs +{ + + public sealed class FleetCustomerManagedWorkerCapabilitiesArgs : global::Pulumi.ResourceArgs + { + [Input("acceleratorCount")] + public Input? AcceleratorCount { get; set; } + + [Input("acceleratorTotalMemoryMiB")] + public Input? AcceleratorTotalMemoryMiB { get; set; } + + [Input("acceleratorTypes")] + private InputList? _acceleratorTypes; + public InputList AcceleratorTypes + { + get => _acceleratorTypes ?? (_acceleratorTypes = new InputList()); + set => _acceleratorTypes = value; + } + + [Input("cpuArchitectureType", required: true)] + public Input CpuArchitectureType { get; set; } = null!; + + [Input("customAmounts")] + private InputList? _customAmounts; + public InputList CustomAmounts + { + get => _customAmounts ?? (_customAmounts = new InputList()); + set => _customAmounts = value; + } + + [Input("customAttributes")] + private InputList? _customAttributes; + public InputList CustomAttributes + { + get => _customAttributes ?? (_customAttributes = new InputList()); + set => _customAttributes = value; + } + + [Input("memoryMiB", required: true)] + public Input MemoryMiB { get; set; } = null!; + + [Input("osFamily", required: true)] + public Input OsFamily { get; set; } = null!; + + [Input("vCpuCount", required: true)] + public Input VCpuCount { get; set; } = null!; + + public FleetCustomerManagedWorkerCapabilitiesArgs() + { + } + public static new FleetCustomerManagedWorkerCapabilitiesArgs Empty => new FleetCustomerManagedWorkerCapabilitiesArgs(); + } +} diff --git a/sdk/dotnet/Deadline/Inputs/FleetEc2EbsVolumeArgs.cs b/sdk/dotnet/Deadline/Inputs/FleetEc2EbsVolumeArgs.cs new file mode 100644 index 0000000000..fa92e14847 --- /dev/null +++ b/sdk/dotnet/Deadline/Inputs/FleetEc2EbsVolumeArgs.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.Deadline.Inputs +{ + + public sealed class FleetEc2EbsVolumeArgs : global::Pulumi.ResourceArgs + { + [Input("iops")] + public Input? Iops { get; set; } + + [Input("sizeGiB")] + public Input? SizeGiB { get; set; } + + [Input("throughputMiB")] + public Input? ThroughputMiB { get; set; } + + public FleetEc2EbsVolumeArgs() + { + } + public static new FleetEc2EbsVolumeArgs Empty => new FleetEc2EbsVolumeArgs(); + } +} diff --git a/sdk/dotnet/Deadline/Inputs/FleetMemoryMiBRangeArgs.cs b/sdk/dotnet/Deadline/Inputs/FleetMemoryMiBRangeArgs.cs new file mode 100644 index 0000000000..3b334ea3ab --- /dev/null +++ b/sdk/dotnet/Deadline/Inputs/FleetMemoryMiBRangeArgs.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.Deadline.Inputs +{ + + public sealed class FleetMemoryMiBRangeArgs : global::Pulumi.ResourceArgs + { + [Input("max")] + public Input? Max { get; set; } + + [Input("min", required: true)] + public Input Min { get; set; } = null!; + + public FleetMemoryMiBRangeArgs() + { + } + public static new FleetMemoryMiBRangeArgs Empty => new FleetMemoryMiBRangeArgs(); + } +} diff --git a/sdk/dotnet/Deadline/Inputs/FleetServiceManagedEc2FleetConfigurationArgs.cs b/sdk/dotnet/Deadline/Inputs/FleetServiceManagedEc2FleetConfigurationArgs.cs new file mode 100644 index 0000000000..656dd36c13 --- /dev/null +++ b/sdk/dotnet/Deadline/Inputs/FleetServiceManagedEc2FleetConfigurationArgs.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.Deadline.Inputs +{ + + public sealed class FleetServiceManagedEc2FleetConfigurationArgs : global::Pulumi.ResourceArgs + { + [Input("instanceCapabilities", required: true)] + public Input InstanceCapabilities { get; set; } = null!; + + [Input("instanceMarketOptions", required: true)] + public Input InstanceMarketOptions { get; set; } = null!; + + public FleetServiceManagedEc2FleetConfigurationArgs() + { + } + public static new FleetServiceManagedEc2FleetConfigurationArgs Empty => new FleetServiceManagedEc2FleetConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Deadline/Inputs/FleetServiceManagedEc2InstanceCapabilitiesArgs.cs b/sdk/dotnet/Deadline/Inputs/FleetServiceManagedEc2InstanceCapabilitiesArgs.cs new file mode 100644 index 0000000000..7eee642fcf --- /dev/null +++ b/sdk/dotnet/Deadline/Inputs/FleetServiceManagedEc2InstanceCapabilitiesArgs.cs @@ -0,0 +1,67 @@ +// *** 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.Deadline.Inputs +{ + + public sealed class FleetServiceManagedEc2InstanceCapabilitiesArgs : global::Pulumi.ResourceArgs + { + [Input("allowedInstanceTypes")] + private InputList? _allowedInstanceTypes; + public InputList AllowedInstanceTypes + { + get => _allowedInstanceTypes ?? (_allowedInstanceTypes = new InputList()); + set => _allowedInstanceTypes = value; + } + + [Input("cpuArchitectureType", required: true)] + public Input CpuArchitectureType { get; set; } = null!; + + [Input("customAmounts")] + private InputList? _customAmounts; + public InputList CustomAmounts + { + get => _customAmounts ?? (_customAmounts = new InputList()); + set => _customAmounts = value; + } + + [Input("customAttributes")] + private InputList? _customAttributes; + public InputList CustomAttributes + { + get => _customAttributes ?? (_customAttributes = new InputList()); + set => _customAttributes = value; + } + + [Input("excludedInstanceTypes")] + private InputList? _excludedInstanceTypes; + public InputList ExcludedInstanceTypes + { + get => _excludedInstanceTypes ?? (_excludedInstanceTypes = new InputList()); + set => _excludedInstanceTypes = value; + } + + [Input("memoryMiB", required: true)] + public Input MemoryMiB { get; set; } = null!; + + [Input("osFamily", required: true)] + public Input OsFamily { get; set; } = null!; + + [Input("rootEbsVolume")] + public Input? RootEbsVolume { get; set; } + + [Input("vCpuCount", required: true)] + public Input VCpuCount { get; set; } = null!; + + public FleetServiceManagedEc2InstanceCapabilitiesArgs() + { + } + public static new FleetServiceManagedEc2InstanceCapabilitiesArgs Empty => new FleetServiceManagedEc2InstanceCapabilitiesArgs(); + } +} diff --git a/sdk/dotnet/Deadline/Inputs/FleetServiceManagedEc2InstanceMarketOptionsArgs.cs b/sdk/dotnet/Deadline/Inputs/FleetServiceManagedEc2InstanceMarketOptionsArgs.cs new file mode 100644 index 0000000000..4a1e5bf0d9 --- /dev/null +++ b/sdk/dotnet/Deadline/Inputs/FleetServiceManagedEc2InstanceMarketOptionsArgs.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.Deadline.Inputs +{ + + public sealed class FleetServiceManagedEc2InstanceMarketOptionsArgs : global::Pulumi.ResourceArgs + { + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public FleetServiceManagedEc2InstanceMarketOptionsArgs() + { + } + public static new FleetServiceManagedEc2InstanceMarketOptionsArgs Empty => new FleetServiceManagedEc2InstanceMarketOptionsArgs(); + } +} diff --git a/sdk/dotnet/Deadline/Inputs/FleetVCpuCountRangeArgs.cs b/sdk/dotnet/Deadline/Inputs/FleetVCpuCountRangeArgs.cs new file mode 100644 index 0000000000..6b0f8fd491 --- /dev/null +++ b/sdk/dotnet/Deadline/Inputs/FleetVCpuCountRangeArgs.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.Deadline.Inputs +{ + + public sealed class FleetVCpuCountRangeArgs : global::Pulumi.ResourceArgs + { + [Input("max")] + public Input? Max { get; set; } + + [Input("min", required: true)] + public Input Min { get; set; } = null!; + + public FleetVCpuCountRangeArgs() + { + } + public static new FleetVCpuCountRangeArgs Empty => new FleetVCpuCountRangeArgs(); + } +} diff --git a/sdk/dotnet/Deadline/Inputs/QueueJobAttachmentSettingsArgs.cs b/sdk/dotnet/Deadline/Inputs/QueueJobAttachmentSettingsArgs.cs new file mode 100644 index 0000000000..9bfb6aaa1e --- /dev/null +++ b/sdk/dotnet/Deadline/Inputs/QueueJobAttachmentSettingsArgs.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.Deadline.Inputs +{ + + public sealed class QueueJobAttachmentSettingsArgs : global::Pulumi.ResourceArgs + { + [Input("rootPrefix", required: true)] + public Input RootPrefix { get; set; } = null!; + + [Input("s3BucketName", required: true)] + public Input S3BucketName { get; set; } = null!; + + public QueueJobAttachmentSettingsArgs() + { + } + public static new QueueJobAttachmentSettingsArgs Empty => new QueueJobAttachmentSettingsArgs(); + } +} diff --git a/sdk/dotnet/Deadline/Inputs/QueueJobRunAsUserArgs.cs b/sdk/dotnet/Deadline/Inputs/QueueJobRunAsUserArgs.cs new file mode 100644 index 0000000000..8c8ea0e37d --- /dev/null +++ b/sdk/dotnet/Deadline/Inputs/QueueJobRunAsUserArgs.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.Deadline.Inputs +{ + + public sealed class QueueJobRunAsUserArgs : global::Pulumi.ResourceArgs + { + [Input("posix")] + public Input? Posix { get; set; } + + [Input("runAs", required: true)] + public Input RunAs { get; set; } = null!; + + [Input("windows")] + public Input? Windows { get; set; } + + public QueueJobRunAsUserArgs() + { + } + public static new QueueJobRunAsUserArgs Empty => new QueueJobRunAsUserArgs(); + } +} diff --git a/sdk/dotnet/Deadline/Inputs/QueuePosixUserArgs.cs b/sdk/dotnet/Deadline/Inputs/QueuePosixUserArgs.cs new file mode 100644 index 0000000000..67076b49a2 --- /dev/null +++ b/sdk/dotnet/Deadline/Inputs/QueuePosixUserArgs.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.Deadline.Inputs +{ + + public sealed class QueuePosixUserArgs : global::Pulumi.ResourceArgs + { + [Input("group", required: true)] + public Input Group { get; set; } = null!; + + [Input("user", required: true)] + public Input User { get; set; } = null!; + + public QueuePosixUserArgs() + { + } + public static new QueuePosixUserArgs Empty => new QueuePosixUserArgs(); + } +} diff --git a/sdk/dotnet/Deadline/Inputs/QueueWindowsUserArgs.cs b/sdk/dotnet/Deadline/Inputs/QueueWindowsUserArgs.cs new file mode 100644 index 0000000000..1935e5abf9 --- /dev/null +++ b/sdk/dotnet/Deadline/Inputs/QueueWindowsUserArgs.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.Deadline.Inputs +{ + + public sealed class QueueWindowsUserArgs : global::Pulumi.ResourceArgs + { + [Input("passwordArn", required: true)] + public Input PasswordArn { get; set; } = null!; + + [Input("user", required: true)] + public Input User { get; set; } = null!; + + public QueueWindowsUserArgs() + { + } + public static new QueueWindowsUserArgs Empty => new QueueWindowsUserArgs(); + } +} diff --git a/sdk/dotnet/Deadline/Inputs/StorageProfileFileSystemLocationArgs.cs b/sdk/dotnet/Deadline/Inputs/StorageProfileFileSystemLocationArgs.cs new file mode 100644 index 0000000000..24ff3fa11f --- /dev/null +++ b/sdk/dotnet/Deadline/Inputs/StorageProfileFileSystemLocationArgs.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.Deadline.Inputs +{ + + public sealed class StorageProfileFileSystemLocationArgs : global::Pulumi.ResourceArgs + { + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + [Input("path", required: true)] + public Input Path { get; set; } = null!; + + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public StorageProfileFileSystemLocationArgs() + { + } + public static new StorageProfileFileSystemLocationArgs Empty => new StorageProfileFileSystemLocationArgs(); + } +} diff --git a/sdk/dotnet/Deadline/LicenseEndpoint.cs b/sdk/dotnet/Deadline/LicenseEndpoint.cs new file mode 100644 index 0000000000..433c99873e --- /dev/null +++ b/sdk/dotnet/Deadline/LicenseEndpoint.cs @@ -0,0 +1,117 @@ +// *** 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.Deadline +{ + /// + /// Definition of AWS::Deadline::LicenseEndpoint Resource Type + /// + [AwsNativeResourceType("aws-native:deadline:LicenseEndpoint")] + public partial class LicenseEndpoint : global::Pulumi.CustomResource + { + [Output("arn")] + public Output Arn { get; private set; } = null!; + + [Output("dnsName")] + public Output DnsName { get; private set; } = null!; + + [Output("licenseEndpointId")] + public Output LicenseEndpointId { get; private set; } = null!; + + [Output("securityGroupIds")] + public Output> SecurityGroupIds { get; private set; } = null!; + + [Output("status")] + public Output Status { get; private set; } = null!; + + [Output("statusMessage")] + public Output StatusMessage { get; private set; } = null!; + + [Output("subnetIds")] + public Output> SubnetIds { get; private set; } = null!; + + [Output("vpcId")] + public Output VpcId { get; private set; } = null!; + + + /// + /// Create a LicenseEndpoint 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 LicenseEndpoint(string name, LicenseEndpointArgs args, CustomResourceOptions? options = null) + : base("aws-native:deadline:LicenseEndpoint", name, args ?? new LicenseEndpointArgs(), MakeResourceOptions(options, "")) + { + } + + private LicenseEndpoint(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:deadline:LicenseEndpoint", name, null, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + ReplaceOnChanges = + { + "securityGroupIds[*]", + "subnetIds[*]", + "vpcId", + }, + }; + 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 LicenseEndpoint 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 LicenseEndpoint Get(string name, Input id, CustomResourceOptions? options = null) + { + return new LicenseEndpoint(name, id, options); + } + } + + public sealed class LicenseEndpointArgs : global::Pulumi.ResourceArgs + { + [Input("securityGroupIds", required: true)] + private InputList? _securityGroupIds; + public InputList SecurityGroupIds + { + get => _securityGroupIds ?? (_securityGroupIds = new InputList()); + set => _securityGroupIds = value; + } + + [Input("subnetIds", required: true)] + private InputList? _subnetIds; + public InputList SubnetIds + { + get => _subnetIds ?? (_subnetIds = new InputList()); + set => _subnetIds = value; + } + + [Input("vpcId", required: true)] + public Input VpcId { get; set; } = null!; + + public LicenseEndpointArgs() + { + } + public static new LicenseEndpointArgs Empty => new LicenseEndpointArgs(); + } +} diff --git a/sdk/dotnet/Deadline/MeteredProduct.cs b/sdk/dotnet/Deadline/MeteredProduct.cs new file mode 100644 index 0000000000..3b8099a5c4 --- /dev/null +++ b/sdk/dotnet/Deadline/MeteredProduct.cs @@ -0,0 +1,106 @@ +// *** 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.Deadline +{ + /// + /// Definition of AWS::Deadline::MeteredProduct Resource Type + /// + [AwsNativeResourceType("aws-native:deadline:MeteredProduct")] + public partial class MeteredProduct : global::Pulumi.CustomResource + { + [Output("arn")] + public Output Arn { get; private set; } = null!; + + [Output("family")] + public Output Family { get; private set; } = null!; + + [Output("licenseEndpointId")] + public Output LicenseEndpointId { get; private set; } = null!; + + [Output("port")] + public Output Port { get; private set; } = null!; + + [Output("productId")] + public Output ProductId { get; private set; } = null!; + + [Output("vendor")] + public Output Vendor { get; private set; } = null!; + + + /// + /// Create a MeteredProduct 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 MeteredProduct(string name, MeteredProductArgs? args = null, CustomResourceOptions? options = null) + : base("aws-native:deadline:MeteredProduct", name, args ?? new MeteredProductArgs(), MakeResourceOptions(options, "")) + { + } + + private MeteredProduct(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:deadline:MeteredProduct", name, null, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + ReplaceOnChanges = + { + "licenseEndpointId", + "productId", + }, + }; + 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 MeteredProduct 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 MeteredProduct Get(string name, Input id, CustomResourceOptions? options = null) + { + return new MeteredProduct(name, id, options); + } + } + + public sealed class MeteredProductArgs : global::Pulumi.ResourceArgs + { + [Input("family")] + public Input? Family { get; set; } + + [Input("licenseEndpointId")] + public Input? LicenseEndpointId { get; set; } + + [Input("port")] + public Input? Port { get; set; } + + [Input("productId")] + public Input? ProductId { get; set; } + + [Input("vendor")] + public Input? Vendor { get; set; } + + public MeteredProductArgs() + { + } + public static new MeteredProductArgs Empty => new MeteredProductArgs(); + } +} diff --git a/sdk/dotnet/Deadline/Outputs/FleetAcceleratorCountRange.cs b/sdk/dotnet/Deadline/Outputs/FleetAcceleratorCountRange.cs new file mode 100644 index 0000000000..daf4bfb1c2 --- /dev/null +++ b/sdk/dotnet/Deadline/Outputs/FleetAcceleratorCountRange.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.Deadline.Outputs +{ + + [OutputType] + public sealed class FleetAcceleratorCountRange + { + public readonly int? Max; + public readonly int Min; + + [OutputConstructor] + private FleetAcceleratorCountRange( + int? max, + + int min) + { + Max = max; + Min = min; + } + } +} diff --git a/sdk/dotnet/Deadline/Outputs/FleetAcceleratorTotalMemoryMiBRange.cs b/sdk/dotnet/Deadline/Outputs/FleetAcceleratorTotalMemoryMiBRange.cs new file mode 100644 index 0000000000..75e5fd34c7 --- /dev/null +++ b/sdk/dotnet/Deadline/Outputs/FleetAcceleratorTotalMemoryMiBRange.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.Deadline.Outputs +{ + + [OutputType] + public sealed class FleetAcceleratorTotalMemoryMiBRange + { + public readonly int? Max; + public readonly int Min; + + [OutputConstructor] + private FleetAcceleratorTotalMemoryMiBRange( + int? max, + + int min) + { + Max = max; + Min = min; + } + } +} diff --git a/sdk/dotnet/Deadline/Outputs/FleetAmountCapability.cs b/sdk/dotnet/Deadline/Outputs/FleetAmountCapability.cs new file mode 100644 index 0000000000..aabb402dd4 --- /dev/null +++ b/sdk/dotnet/Deadline/Outputs/FleetAmountCapability.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.Deadline.Outputs +{ + + [OutputType] + public sealed class FleetAmountCapability + { + public readonly double? Max; + public readonly double Min; + public readonly string Name; + + [OutputConstructor] + private FleetAmountCapability( + double? max, + + double min, + + string name) + { + Max = max; + Min = min; + Name = name; + } + } +} diff --git a/sdk/dotnet/Deadline/Outputs/FleetAttributeCapability.cs b/sdk/dotnet/Deadline/Outputs/FleetAttributeCapability.cs new file mode 100644 index 0000000000..78afafde2b --- /dev/null +++ b/sdk/dotnet/Deadline/Outputs/FleetAttributeCapability.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.Deadline.Outputs +{ + + [OutputType] + public sealed class FleetAttributeCapability + { + public readonly string Name; + public readonly ImmutableArray Values; + + [OutputConstructor] + private FleetAttributeCapability( + string name, + + ImmutableArray values) + { + Name = name; + Values = values; + } + } +} diff --git a/sdk/dotnet/Deadline/Outputs/FleetCapabilities.cs b/sdk/dotnet/Deadline/Outputs/FleetCapabilities.cs new file mode 100644 index 0000000000..82fd34786a --- /dev/null +++ b/sdk/dotnet/Deadline/Outputs/FleetCapabilities.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.Deadline.Outputs +{ + + [OutputType] + public sealed class FleetCapabilities + { + public readonly ImmutableArray Amounts; + public readonly ImmutableArray Attributes; + + [OutputConstructor] + private FleetCapabilities( + ImmutableArray amounts, + + ImmutableArray attributes) + { + Amounts = amounts; + Attributes = attributes; + } + } +} diff --git a/sdk/dotnet/Deadline/Outputs/FleetConfiguration0Properties.cs b/sdk/dotnet/Deadline/Outputs/FleetConfiguration0Properties.cs new file mode 100644 index 0000000000..63865d10c3 --- /dev/null +++ b/sdk/dotnet/Deadline/Outputs/FleetConfiguration0Properties.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.Deadline.Outputs +{ + + [OutputType] + public sealed class FleetConfiguration0Properties + { + public readonly Outputs.FleetCustomerManagedFleetConfiguration CustomerManaged; + + [OutputConstructor] + private FleetConfiguration0Properties(Outputs.FleetCustomerManagedFleetConfiguration customerManaged) + { + CustomerManaged = customerManaged; + } + } +} diff --git a/sdk/dotnet/Deadline/Outputs/FleetConfiguration1Properties.cs b/sdk/dotnet/Deadline/Outputs/FleetConfiguration1Properties.cs new file mode 100644 index 0000000000..96802ff36a --- /dev/null +++ b/sdk/dotnet/Deadline/Outputs/FleetConfiguration1Properties.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.Deadline.Outputs +{ + + [OutputType] + public sealed class FleetConfiguration1Properties + { + public readonly Outputs.FleetServiceManagedEc2FleetConfiguration ServiceManagedEc2; + + [OutputConstructor] + private FleetConfiguration1Properties(Outputs.FleetServiceManagedEc2FleetConfiguration serviceManagedEc2) + { + ServiceManagedEc2 = serviceManagedEc2; + } + } +} diff --git a/sdk/dotnet/Deadline/Outputs/FleetCustomerManagedFleetConfiguration.cs b/sdk/dotnet/Deadline/Outputs/FleetCustomerManagedFleetConfiguration.cs new file mode 100644 index 0000000000..1120cb95ba --- /dev/null +++ b/sdk/dotnet/Deadline/Outputs/FleetCustomerManagedFleetConfiguration.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.Deadline.Outputs +{ + + [OutputType] + public sealed class FleetCustomerManagedFleetConfiguration + { + public readonly Pulumi.AwsNative.Deadline.FleetAutoScalingMode Mode; + public readonly string? StorageProfileId; + public readonly Outputs.FleetCustomerManagedWorkerCapabilities WorkerCapabilities; + + [OutputConstructor] + private FleetCustomerManagedFleetConfiguration( + Pulumi.AwsNative.Deadline.FleetAutoScalingMode mode, + + string? storageProfileId, + + Outputs.FleetCustomerManagedWorkerCapabilities workerCapabilities) + { + Mode = mode; + StorageProfileId = storageProfileId; + WorkerCapabilities = workerCapabilities; + } + } +} diff --git a/sdk/dotnet/Deadline/Outputs/FleetCustomerManagedWorkerCapabilities.cs b/sdk/dotnet/Deadline/Outputs/FleetCustomerManagedWorkerCapabilities.cs new file mode 100644 index 0000000000..035decead0 --- /dev/null +++ b/sdk/dotnet/Deadline/Outputs/FleetCustomerManagedWorkerCapabilities.cs @@ -0,0 +1,57 @@ +// *** 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.Deadline.Outputs +{ + + [OutputType] + public sealed class FleetCustomerManagedWorkerCapabilities + { + public readonly Outputs.FleetAcceleratorCountRange? AcceleratorCount; + public readonly Outputs.FleetAcceleratorTotalMemoryMiBRange? AcceleratorTotalMemoryMiB; + public readonly ImmutableArray AcceleratorTypes; + public readonly Pulumi.AwsNative.Deadline.FleetCpuArchitectureType CpuArchitectureType; + public readonly ImmutableArray CustomAmounts; + public readonly ImmutableArray CustomAttributes; + public readonly Outputs.FleetMemoryMiBRange MemoryMiB; + public readonly Pulumi.AwsNative.Deadline.FleetCustomerManagedFleetOperatingSystemFamily OsFamily; + public readonly Outputs.FleetVCpuCountRange VCpuCount; + + [OutputConstructor] + private FleetCustomerManagedWorkerCapabilities( + Outputs.FleetAcceleratorCountRange? acceleratorCount, + + Outputs.FleetAcceleratorTotalMemoryMiBRange? acceleratorTotalMemoryMiB, + + ImmutableArray acceleratorTypes, + + Pulumi.AwsNative.Deadline.FleetCpuArchitectureType cpuArchitectureType, + + ImmutableArray customAmounts, + + ImmutableArray customAttributes, + + Outputs.FleetMemoryMiBRange memoryMiB, + + Pulumi.AwsNative.Deadline.FleetCustomerManagedFleetOperatingSystemFamily osFamily, + + Outputs.FleetVCpuCountRange vCpuCount) + { + AcceleratorCount = acceleratorCount; + AcceleratorTotalMemoryMiB = acceleratorTotalMemoryMiB; + AcceleratorTypes = acceleratorTypes; + CpuArchitectureType = cpuArchitectureType; + CustomAmounts = customAmounts; + CustomAttributes = customAttributes; + MemoryMiB = memoryMiB; + OsFamily = osFamily; + VCpuCount = vCpuCount; + } + } +} diff --git a/sdk/dotnet/Deadline/Outputs/FleetEc2EbsVolume.cs b/sdk/dotnet/Deadline/Outputs/FleetEc2EbsVolume.cs new file mode 100644 index 0000000000..97541a7264 --- /dev/null +++ b/sdk/dotnet/Deadline/Outputs/FleetEc2EbsVolume.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.Deadline.Outputs +{ + + [OutputType] + public sealed class FleetEc2EbsVolume + { + public readonly int? Iops; + public readonly int? SizeGiB; + public readonly int? ThroughputMiB; + + [OutputConstructor] + private FleetEc2EbsVolume( + int? iops, + + int? sizeGiB, + + int? throughputMiB) + { + Iops = iops; + SizeGiB = sizeGiB; + ThroughputMiB = throughputMiB; + } + } +} diff --git a/sdk/dotnet/Deadline/Outputs/FleetMemoryMiBRange.cs b/sdk/dotnet/Deadline/Outputs/FleetMemoryMiBRange.cs new file mode 100644 index 0000000000..e30a421d5c --- /dev/null +++ b/sdk/dotnet/Deadline/Outputs/FleetMemoryMiBRange.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.Deadline.Outputs +{ + + [OutputType] + public sealed class FleetMemoryMiBRange + { + public readonly int? Max; + public readonly int Min; + + [OutputConstructor] + private FleetMemoryMiBRange( + int? max, + + int min) + { + Max = max; + Min = min; + } + } +} diff --git a/sdk/dotnet/Deadline/Outputs/FleetServiceManagedEc2FleetConfiguration.cs b/sdk/dotnet/Deadline/Outputs/FleetServiceManagedEc2FleetConfiguration.cs new file mode 100644 index 0000000000..21500d6b51 --- /dev/null +++ b/sdk/dotnet/Deadline/Outputs/FleetServiceManagedEc2FleetConfiguration.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.Deadline.Outputs +{ + + [OutputType] + public sealed class FleetServiceManagedEc2FleetConfiguration + { + public readonly Outputs.FleetServiceManagedEc2InstanceCapabilities InstanceCapabilities; + public readonly Outputs.FleetServiceManagedEc2InstanceMarketOptions InstanceMarketOptions; + + [OutputConstructor] + private FleetServiceManagedEc2FleetConfiguration( + Outputs.FleetServiceManagedEc2InstanceCapabilities instanceCapabilities, + + Outputs.FleetServiceManagedEc2InstanceMarketOptions instanceMarketOptions) + { + InstanceCapabilities = instanceCapabilities; + InstanceMarketOptions = instanceMarketOptions; + } + } +} diff --git a/sdk/dotnet/Deadline/Outputs/FleetServiceManagedEc2InstanceCapabilities.cs b/sdk/dotnet/Deadline/Outputs/FleetServiceManagedEc2InstanceCapabilities.cs new file mode 100644 index 0000000000..4d5b037c24 --- /dev/null +++ b/sdk/dotnet/Deadline/Outputs/FleetServiceManagedEc2InstanceCapabilities.cs @@ -0,0 +1,57 @@ +// *** 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.Deadline.Outputs +{ + + [OutputType] + public sealed class FleetServiceManagedEc2InstanceCapabilities + { + public readonly ImmutableArray AllowedInstanceTypes; + public readonly Pulumi.AwsNative.Deadline.FleetCpuArchitectureType CpuArchitectureType; + public readonly ImmutableArray CustomAmounts; + public readonly ImmutableArray CustomAttributes; + public readonly ImmutableArray ExcludedInstanceTypes; + public readonly Outputs.FleetMemoryMiBRange MemoryMiB; + public readonly Pulumi.AwsNative.Deadline.FleetServiceManagedFleetOperatingSystemFamily OsFamily; + public readonly Outputs.FleetEc2EbsVolume? RootEbsVolume; + public readonly Outputs.FleetVCpuCountRange VCpuCount; + + [OutputConstructor] + private FleetServiceManagedEc2InstanceCapabilities( + ImmutableArray allowedInstanceTypes, + + Pulumi.AwsNative.Deadline.FleetCpuArchitectureType cpuArchitectureType, + + ImmutableArray customAmounts, + + ImmutableArray customAttributes, + + ImmutableArray excludedInstanceTypes, + + Outputs.FleetMemoryMiBRange memoryMiB, + + Pulumi.AwsNative.Deadline.FleetServiceManagedFleetOperatingSystemFamily osFamily, + + Outputs.FleetEc2EbsVolume? rootEbsVolume, + + Outputs.FleetVCpuCountRange vCpuCount) + { + AllowedInstanceTypes = allowedInstanceTypes; + CpuArchitectureType = cpuArchitectureType; + CustomAmounts = customAmounts; + CustomAttributes = customAttributes; + ExcludedInstanceTypes = excludedInstanceTypes; + MemoryMiB = memoryMiB; + OsFamily = osFamily; + RootEbsVolume = rootEbsVolume; + VCpuCount = vCpuCount; + } + } +} diff --git a/sdk/dotnet/Deadline/Outputs/FleetServiceManagedEc2InstanceMarketOptions.cs b/sdk/dotnet/Deadline/Outputs/FleetServiceManagedEc2InstanceMarketOptions.cs new file mode 100644 index 0000000000..76214362f3 --- /dev/null +++ b/sdk/dotnet/Deadline/Outputs/FleetServiceManagedEc2InstanceMarketOptions.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.Deadline.Outputs +{ + + [OutputType] + public sealed class FleetServiceManagedEc2InstanceMarketOptions + { + public readonly Pulumi.AwsNative.Deadline.FleetEc2MarketType Type; + + [OutputConstructor] + private FleetServiceManagedEc2InstanceMarketOptions(Pulumi.AwsNative.Deadline.FleetEc2MarketType type) + { + Type = type; + } + } +} diff --git a/sdk/dotnet/Deadline/Outputs/FleetVCpuCountRange.cs b/sdk/dotnet/Deadline/Outputs/FleetVCpuCountRange.cs new file mode 100644 index 0000000000..6432e5af9a --- /dev/null +++ b/sdk/dotnet/Deadline/Outputs/FleetVCpuCountRange.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.Deadline.Outputs +{ + + [OutputType] + public sealed class FleetVCpuCountRange + { + public readonly int? Max; + public readonly int Min; + + [OutputConstructor] + private FleetVCpuCountRange( + int? max, + + int min) + { + Max = max; + Min = min; + } + } +} diff --git a/sdk/dotnet/Deadline/Outputs/QueueJobAttachmentSettings.cs b/sdk/dotnet/Deadline/Outputs/QueueJobAttachmentSettings.cs new file mode 100644 index 0000000000..7012d211da --- /dev/null +++ b/sdk/dotnet/Deadline/Outputs/QueueJobAttachmentSettings.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.Deadline.Outputs +{ + + [OutputType] + public sealed class QueueJobAttachmentSettings + { + public readonly string RootPrefix; + public readonly string S3BucketName; + + [OutputConstructor] + private QueueJobAttachmentSettings( + string rootPrefix, + + string s3BucketName) + { + RootPrefix = rootPrefix; + S3BucketName = s3BucketName; + } + } +} diff --git a/sdk/dotnet/Deadline/Outputs/QueueJobRunAsUser.cs b/sdk/dotnet/Deadline/Outputs/QueueJobRunAsUser.cs new file mode 100644 index 0000000000..52a6b09a68 --- /dev/null +++ b/sdk/dotnet/Deadline/Outputs/QueueJobRunAsUser.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.Deadline.Outputs +{ + + [OutputType] + public sealed class QueueJobRunAsUser + { + public readonly Outputs.QueuePosixUser? Posix; + public readonly Pulumi.AwsNative.Deadline.QueueRunAs RunAs; + public readonly Outputs.QueueWindowsUser? Windows; + + [OutputConstructor] + private QueueJobRunAsUser( + Outputs.QueuePosixUser? posix, + + Pulumi.AwsNative.Deadline.QueueRunAs runAs, + + Outputs.QueueWindowsUser? windows) + { + Posix = posix; + RunAs = runAs; + Windows = windows; + } + } +} diff --git a/sdk/dotnet/Deadline/Outputs/QueuePosixUser.cs b/sdk/dotnet/Deadline/Outputs/QueuePosixUser.cs new file mode 100644 index 0000000000..1d3d01a06a --- /dev/null +++ b/sdk/dotnet/Deadline/Outputs/QueuePosixUser.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.Deadline.Outputs +{ + + [OutputType] + public sealed class QueuePosixUser + { + public readonly string Group; + public readonly string User; + + [OutputConstructor] + private QueuePosixUser( + string group, + + string user) + { + Group = group; + User = user; + } + } +} diff --git a/sdk/dotnet/Deadline/Outputs/QueueWindowsUser.cs b/sdk/dotnet/Deadline/Outputs/QueueWindowsUser.cs new file mode 100644 index 0000000000..ef66314c65 --- /dev/null +++ b/sdk/dotnet/Deadline/Outputs/QueueWindowsUser.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.Deadline.Outputs +{ + + [OutputType] + public sealed class QueueWindowsUser + { + public readonly string PasswordArn; + public readonly string User; + + [OutputConstructor] + private QueueWindowsUser( + string passwordArn, + + string user) + { + PasswordArn = passwordArn; + User = user; + } + } +} diff --git a/sdk/dotnet/Deadline/Outputs/StorageProfileFileSystemLocation.cs b/sdk/dotnet/Deadline/Outputs/StorageProfileFileSystemLocation.cs new file mode 100644 index 0000000000..26b4627f17 --- /dev/null +++ b/sdk/dotnet/Deadline/Outputs/StorageProfileFileSystemLocation.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.Deadline.Outputs +{ + + [OutputType] + public sealed class StorageProfileFileSystemLocation + { + public readonly string Name; + public readonly string Path; + public readonly Pulumi.AwsNative.Deadline.StorageProfileFileSystemLocationType Type; + + [OutputConstructor] + private StorageProfileFileSystemLocation( + string name, + + string path, + + Pulumi.AwsNative.Deadline.StorageProfileFileSystemLocationType type) + { + Name = name; + Path = path; + Type = type; + } + } +} diff --git a/sdk/dotnet/Deadline/Queue.cs b/sdk/dotnet/Deadline/Queue.cs new file mode 100644 index 0000000000..a6c75fcac7 --- /dev/null +++ b/sdk/dotnet/Deadline/Queue.cs @@ -0,0 +1,142 @@ +// *** 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.Deadline +{ + /// + /// Definition of AWS::Deadline::Queue Resource Type + /// + [AwsNativeResourceType("aws-native:deadline:Queue")] + public partial class Queue : global::Pulumi.CustomResource + { + [Output("allowedStorageProfileIds")] + public Output> AllowedStorageProfileIds { get; private set; } = null!; + + [Output("arn")] + public Output Arn { get; private set; } = null!; + + [Output("defaultBudgetAction")] + public Output DefaultBudgetAction { get; private set; } = null!; + + [Output("description")] + public Output Description { get; private set; } = null!; + + [Output("displayName")] + public Output DisplayName { get; private set; } = null!; + + [Output("farmId")] + public Output FarmId { get; private set; } = null!; + + [Output("jobAttachmentSettings")] + public Output JobAttachmentSettings { get; private set; } = null!; + + [Output("jobRunAsUser")] + public Output JobRunAsUser { get; private set; } = null!; + + [Output("queueId")] + public Output QueueId { get; private set; } = null!; + + [Output("requiredFileSystemLocationNames")] + public Output> RequiredFileSystemLocationNames { get; private set; } = null!; + + [Output("roleArn")] + public Output RoleArn { get; private set; } = null!; + + + /// + /// Create a Queue 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 Queue(string name, QueueArgs args, CustomResourceOptions? options = null) + : base("aws-native:deadline:Queue", name, args ?? new QueueArgs(), MakeResourceOptions(options, "")) + { + } + + private Queue(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:deadline:Queue", name, null, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + ReplaceOnChanges = + { + "farmId", + }, + }; + 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 Queue 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 Queue Get(string name, Input id, CustomResourceOptions? options = null) + { + return new Queue(name, id, options); + } + } + + public sealed class QueueArgs : global::Pulumi.ResourceArgs + { + [Input("allowedStorageProfileIds")] + private InputList? _allowedStorageProfileIds; + public InputList AllowedStorageProfileIds + { + get => _allowedStorageProfileIds ?? (_allowedStorageProfileIds = new InputList()); + set => _allowedStorageProfileIds = value; + } + + [Input("defaultBudgetAction")] + public Input? DefaultBudgetAction { get; set; } + + [Input("description")] + public Input? Description { get; set; } + + [Input("displayName", required: true)] + public Input DisplayName { get; set; } = null!; + + [Input("farmId")] + public Input? FarmId { get; set; } + + [Input("jobAttachmentSettings")] + public Input? JobAttachmentSettings { get; set; } + + [Input("jobRunAsUser")] + public Input? JobRunAsUser { get; set; } + + [Input("requiredFileSystemLocationNames")] + private InputList? _requiredFileSystemLocationNames; + public InputList RequiredFileSystemLocationNames + { + get => _requiredFileSystemLocationNames ?? (_requiredFileSystemLocationNames = new InputList()); + set => _requiredFileSystemLocationNames = value; + } + + [Input("roleArn")] + public Input? RoleArn { get; set; } + + public QueueArgs() + { + } + public static new QueueArgs Empty => new QueueArgs(); + } +} diff --git a/sdk/dotnet/Deadline/QueueEnvironment.cs b/sdk/dotnet/Deadline/QueueEnvironment.cs new file mode 100644 index 0000000000..a45f8b0702 --- /dev/null +++ b/sdk/dotnet/Deadline/QueueEnvironment.cs @@ -0,0 +1,109 @@ +// *** 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.Deadline +{ + /// + /// Definition of AWS::Deadline::QueueEnvironment Resource Type + /// + [AwsNativeResourceType("aws-native:deadline:QueueEnvironment")] + public partial class QueueEnvironment : global::Pulumi.CustomResource + { + [Output("farmId")] + public Output FarmId { get; private set; } = null!; + + [Output("name")] + public Output Name { get; private set; } = null!; + + [Output("priority")] + public Output Priority { get; private set; } = null!; + + [Output("queueEnvironmentId")] + public Output QueueEnvironmentId { get; private set; } = null!; + + [Output("queueId")] + public Output QueueId { get; private set; } = null!; + + [Output("template")] + public Output Template { get; private set; } = null!; + + [Output("templateType")] + public Output TemplateType { get; private set; } = null!; + + + /// + /// Create a QueueEnvironment 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 QueueEnvironment(string name, QueueEnvironmentArgs args, CustomResourceOptions? options = null) + : base("aws-native:deadline:QueueEnvironment", name, args ?? new QueueEnvironmentArgs(), MakeResourceOptions(options, "")) + { + } + + private QueueEnvironment(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:deadline:QueueEnvironment", name, null, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + ReplaceOnChanges = + { + "farmId", + "queueId", + }, + }; + 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 QueueEnvironment 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 QueueEnvironment Get(string name, Input id, CustomResourceOptions? options = null) + { + return new QueueEnvironment(name, id, options); + } + } + + public sealed class QueueEnvironmentArgs : global::Pulumi.ResourceArgs + { + [Input("farmId", required: true)] + public Input FarmId { get; set; } = null!; + + [Input("priority", required: true)] + public Input Priority { get; set; } = null!; + + [Input("queueId", required: true)] + public Input QueueId { get; set; } = null!; + + [Input("template", required: true)] + public Input Template { get; set; } = null!; + + [Input("templateType", required: true)] + public Input TemplateType { get; set; } = null!; + + public QueueEnvironmentArgs() + { + } + public static new QueueEnvironmentArgs Empty => new QueueEnvironmentArgs(); + } +} diff --git a/sdk/dotnet/Deadline/QueueFleetAssociation.cs b/sdk/dotnet/Deadline/QueueFleetAssociation.cs new file mode 100644 index 0000000000..35549e0446 --- /dev/null +++ b/sdk/dotnet/Deadline/QueueFleetAssociation.cs @@ -0,0 +1,92 @@ +// *** 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.Deadline +{ + /// + /// Definition of AWS::Deadline::QueueFleetAssociation Resource Type + /// + [AwsNativeResourceType("aws-native:deadline:QueueFleetAssociation")] + public partial class QueueFleetAssociation : global::Pulumi.CustomResource + { + [Output("farmId")] + public Output FarmId { get; private set; } = null!; + + [Output("fleetId")] + public Output FleetId { get; private set; } = null!; + + [Output("queueId")] + public Output QueueId { get; private set; } = null!; + + + /// + /// Create a QueueFleetAssociation 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 QueueFleetAssociation(string name, QueueFleetAssociationArgs args, CustomResourceOptions? options = null) + : base("aws-native:deadline:QueueFleetAssociation", name, args ?? new QueueFleetAssociationArgs(), MakeResourceOptions(options, "")) + { + } + + private QueueFleetAssociation(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:deadline:QueueFleetAssociation", name, null, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + ReplaceOnChanges = + { + "farmId", + "fleetId", + "queueId", + }, + }; + 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 QueueFleetAssociation 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 QueueFleetAssociation Get(string name, Input id, CustomResourceOptions? options = null) + { + return new QueueFleetAssociation(name, id, options); + } + } + + public sealed class QueueFleetAssociationArgs : global::Pulumi.ResourceArgs + { + [Input("farmId", required: true)] + public Input FarmId { get; set; } = null!; + + [Input("fleetId", required: true)] + public Input FleetId { get; set; } = null!; + + [Input("queueId", required: true)] + public Input QueueId { get; set; } = null!; + + public QueueFleetAssociationArgs() + { + } + public static new QueueFleetAssociationArgs Empty => new QueueFleetAssociationArgs(); + } +} diff --git a/sdk/dotnet/Deadline/README.md b/sdk/dotnet/Deadline/README.md new file mode 100644 index 0000000000..77b2f47ec2 --- /dev/null +++ b/sdk/dotnet/Deadline/README.md @@ -0,0 +1 @@ +A native Pulumi package for creating and managing Amazon Web Services (AWS) resources. diff --git a/sdk/dotnet/Deadline/StorageProfile.cs b/sdk/dotnet/Deadline/StorageProfile.cs new file mode 100644 index 0000000000..17f05880d1 --- /dev/null +++ b/sdk/dotnet/Deadline/StorageProfile.cs @@ -0,0 +1,104 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.Deadline +{ + /// + /// Definition of AWS::Deadline::StorageProfile Resource Type + /// + [AwsNativeResourceType("aws-native:deadline:StorageProfile")] + public partial class StorageProfile : global::Pulumi.CustomResource + { + [Output("displayName")] + public Output DisplayName { get; private set; } = null!; + + [Output("farmId")] + public Output FarmId { get; private set; } = null!; + + [Output("fileSystemLocations")] + public Output> FileSystemLocations { get; private set; } = null!; + + [Output("osFamily")] + public Output OsFamily { get; private set; } = null!; + + [Output("storageProfileId")] + public Output StorageProfileId { get; private set; } = null!; + + + /// + /// Create a StorageProfile 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 StorageProfile(string name, StorageProfileArgs args, CustomResourceOptions? options = null) + : base("aws-native:deadline:StorageProfile", name, args ?? new StorageProfileArgs(), MakeResourceOptions(options, "")) + { + } + + private StorageProfile(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:deadline:StorageProfile", name, null, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + ReplaceOnChanges = + { + "farmId", + }, + }; + 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 StorageProfile 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 StorageProfile Get(string name, Input id, CustomResourceOptions? options = null) + { + return new StorageProfile(name, id, options); + } + } + + public sealed class StorageProfileArgs : global::Pulumi.ResourceArgs + { + [Input("displayName", required: true)] + public Input DisplayName { get; set; } = null!; + + [Input("farmId")] + public Input? FarmId { get; set; } + + [Input("fileSystemLocations")] + private InputList? _fileSystemLocations; + public InputList FileSystemLocations + { + get => _fileSystemLocations ?? (_fileSystemLocations = new InputList()); + set => _fileSystemLocations = value; + } + + [Input("osFamily", required: true)] + public Input OsFamily { get; set; } = null!; + + public StorageProfileArgs() + { + } + public static new StorageProfileArgs Empty => new StorageProfileArgs(); + } +} 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..0056419368 100644 --- a/sdk/dotnet/DynamoDb/GetTable.cs +++ b/sdk/dotnet/DynamoDb/GetTable.cs @@ -14,7 +14,7 @@ public static class GetTable /// /// The ``AWS::DynamoDB::Table`` resource creates a DDB table. For more information, see [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) in the *API Reference*. /// You should be aware of the following behaviors when working with DDB tables: - /// + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). + /// + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). /// /// Our guidance is to use the latest schema documented here for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. /// @@ -24,7 +24,7 @@ public static Task InvokeAsync(GetTableArgs args, InvokeOptions? /// /// The ``AWS::DynamoDB::Table`` resource creates a DDB table. For more information, see [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) in the *API Reference*. /// You should be aware of the following behaviors when working with DDB tables: - /// + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). + /// + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). /// /// Our guidance is to use the latest schema documented here for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. /// @@ -122,6 +122,11 @@ public sealed class GetTableResult /// public readonly Outputs.TableProvisionedThroughput? ProvisionedThroughput; /// + /// A resource-based policy document that contains permissions to add to the specified table. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + /// When you attach a resource-based policy while creating a table, the policy creation is *strongly consistent*. For information about the considerations that you should keep in mind while attaching a resource-based policy, see [Resource-based policy considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html). + /// + public readonly Outputs.TableResourcePolicy? ResourcePolicy; + /// /// Specifies the settings to enable server-side encryption. /// public readonly Outputs.TableSseSpecification? SseSpecification; @@ -169,6 +174,8 @@ private GetTableResult( Outputs.TableProvisionedThroughput? provisionedThroughput, + Outputs.TableResourcePolicy? resourcePolicy, + Outputs.TableSseSpecification? sseSpecification, string? streamArn, @@ -192,6 +199,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..39eea41131 --- /dev/null +++ b/sdk/dotnet/DynamoDb/Inputs/TableResourcePolicyArgs.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.DynamoDb.Inputs +{ + + /// + /// Creates or updates a resource-based policy document that contains the permissions for DDB resources, such as a table, its indexes, and stream. Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource. + /// In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + /// While defining resource-based policies in your CFNshort templates, the following considerations apply: + /// + The maximum size supported for a resource-based policy document in JSON format is 20 KB. DDB counts whitespaces when calculating the size of a policy against this limit. + /// + Resource-based policies don't support [drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html#). If you update a policy outside of the CFNshort stack template, you'll need to update the CFNshort stack with the changes. + /// + Resource-based policies don't support out-of-band changes. If you add, update, or delete a policy outside of the CFNshort template, the change won't be overwritten if there are no changes to the policy within the template. + /// For example, say that your template contains a resource-based policy, which you later update outside of the template. If you don't make any changes to the policy in the template, the updated policy in DDB won’t be synced with the policy in the template. + /// Conversely, say that your template doesn’t contain a resource-based policy, but you add a policy outside of the template. This policy won’t be removed from DDB as long as you don’t add it to the template. When you add a policy to the template and update the stack, the existing policy in DDB will be updated to match the one defined in the template. + /// + /// For a full list of all considerations, see [Resource-based policy considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html). + /// + public sealed class TableResourcePolicyArgs : global::Pulumi.ResourceArgs + { + /// + /// A resource-based policy document that contains permissions to add to the specified DDB table, index, or both. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + /// + [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..cc77fa6813 100644 --- a/sdk/dotnet/DynamoDb/Inputs/TableStreamSpecificationArgs.cs +++ b/sdk/dotnet/DynamoDb/Inputs/TableStreamSpecificationArgs.cs @@ -15,6 +15,13 @@ namespace Pulumi.AwsNative.DynamoDb.Inputs /// public sealed class TableStreamSpecificationArgs : global::Pulumi.ResourceArgs { + /// + /// Creates or updates a resource-based policy document that contains the permissions for DDB resources, such as a table's streams. Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource. + /// In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + /// + [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/Inputs/TableTimeToLiveSpecificationArgs.cs b/sdk/dotnet/DynamoDb/Inputs/TableTimeToLiveSpecificationArgs.cs index 570c9c5167..56f438c3ea 100644 --- a/sdk/dotnet/DynamoDb/Inputs/TableTimeToLiveSpecificationArgs.cs +++ b/sdk/dotnet/DynamoDb/Inputs/TableTimeToLiveSpecificationArgs.cs @@ -17,7 +17,7 @@ public sealed class TableTimeToLiveSpecificationArgs : global::Pulumi.ResourceAr { /// /// The name of the TTL attribute used to store the expiration time for items in the table. - /// + The ``AttributeName`` property is required when enabling the TTL, or when TTL is already enabled. + /// + The ``AttributeName`` property is required when enabling the TTL, or when TTL is already enabled. /// + To update this property, you must first disable TTL and then enable TTL with the new attribute name. /// [Input("attributeName")] 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..ec2293f42d --- /dev/null +++ b/sdk/dotnet/DynamoDb/Outputs/TableResourcePolicy.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.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.DynamoDb.Outputs +{ + + /// + /// Creates or updates a resource-based policy document that contains the permissions for DDB resources, such as a table, its indexes, and stream. Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource. + /// In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + /// While defining resource-based policies in your CFNshort templates, the following considerations apply: + /// + The maximum size supported for a resource-based policy document in JSON format is 20 KB. DDB counts whitespaces when calculating the size of a policy against this limit. + /// + Resource-based policies don't support [drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html#). If you update a policy outside of the CFNshort stack template, you'll need to update the CFNshort stack with the changes. + /// + Resource-based policies don't support out-of-band changes. If you add, update, or delete a policy outside of the CFNshort template, the change won't be overwritten if there are no changes to the policy within the template. + /// For example, say that your template contains a resource-based policy, which you later update outside of the template. If you don't make any changes to the policy in the template, the updated policy in DDB won’t be synced with the policy in the template. + /// Conversely, say that your template doesn’t contain a resource-based policy, but you add a policy outside of the template. This policy won’t be removed from DDB as long as you don’t add it to the template. When you add a policy to the template and update the stack, the existing policy in DDB will be updated to match the one defined in the template. + /// + /// For a full list of all considerations, see [Resource-based policy considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html). + /// + [OutputType] + public sealed class TableResourcePolicy + { + /// + /// A resource-based policy document that contains permissions to add to the specified DDB table, index, or both. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + /// + 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..e54537e437 100644 --- a/sdk/dotnet/DynamoDb/Outputs/TableStreamSpecification.cs +++ b/sdk/dotnet/DynamoDb/Outputs/TableStreamSpecification.cs @@ -16,6 +16,11 @@ namespace Pulumi.AwsNative.DynamoDb.Outputs [OutputType] public sealed class TableStreamSpecification { + /// + /// Creates or updates a resource-based policy document that contains the permissions for DDB resources, such as a table's streams. Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource. + /// In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + /// + 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 +31,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/Outputs/TableTimeToLiveSpecification.cs b/sdk/dotnet/DynamoDb/Outputs/TableTimeToLiveSpecification.cs index fdf0cf073a..827b8b5dde 100644 --- a/sdk/dotnet/DynamoDb/Outputs/TableTimeToLiveSpecification.cs +++ b/sdk/dotnet/DynamoDb/Outputs/TableTimeToLiveSpecification.cs @@ -18,7 +18,7 @@ public sealed class TableTimeToLiveSpecification { /// /// The name of the TTL attribute used to store the expiration time for items in the table. - /// + The ``AttributeName`` property is required when enabling the TTL, or when TTL is already enabled. + /// + The ``AttributeName`` property is required when enabling the TTL, or when TTL is already enabled. /// + To update this property, you must first disable TTL and then enable TTL with the new attribute name. /// public readonly string? AttributeName; diff --git a/sdk/dotnet/DynamoDb/Table.cs b/sdk/dotnet/DynamoDb/Table.cs index f198a5de66..a8c9a4d67c 100644 --- a/sdk/dotnet/DynamoDb/Table.cs +++ b/sdk/dotnet/DynamoDb/Table.cs @@ -12,7 +12,7 @@ namespace Pulumi.AwsNative.DynamoDb /// /// The ``AWS::DynamoDB::Table`` resource creates a DDB table. For more information, see [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) in the *API Reference*. /// You should be aware of the following behaviors when working with DDB tables: - /// + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). + /// + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). /// /// Our guidance is to use the latest schema documented here for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. /// @@ -410,6 +410,13 @@ public partial class Table : global::Pulumi.CustomResource [Output("provisionedThroughput")] public Output ProvisionedThroughput { get; private set; } = null!; + /// + /// A resource-based policy document that contains permissions to add to the specified table. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + /// When you attach a resource-based policy while creating a table, the policy creation is *strongly consistent*. For information about the considerations that you should keep in mind while attaching a resource-based policy, see [Resource-based policy considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html). + /// + [Output("resourcePolicy")] + public Output ResourcePolicy { get; private set; } = null!; + /// /// Specifies the settings to enable server-side encryption. /// @@ -600,6 +607,13 @@ public InputList LocalSecondaryIndexes [Input("provisionedThroughput")] public Input? ProvisionedThroughput { get; set; } + /// + /// A resource-based policy document that contains permissions to add to the specified table. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + /// When you attach a resource-based policy while creating a table, the policy creation is *strongly consistent*. For information about the considerations that you should keep in mind while attaching a resource-based policy, see [Resource-based policy considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html). + /// + [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/GetNatGateway.cs b/sdk/dotnet/Ec2/GetNatGateway.cs index 2e2a907100..ea8c182b95 100644 --- a/sdk/dotnet/Ec2/GetNatGateway.cs +++ b/sdk/dotnet/Ec2/GetNatGateway.cs @@ -15,7 +15,7 @@ public static class GetNatGateway /// Specifies a network address translation (NAT) gateway in the specified subnet. You can create either a public NAT gateway or a private NAT gateway. The default is a public NAT gateway. If you create a public NAT gateway, you must specify an elastic IP address. /// With a NAT gateway, instances in a private subnet can connect to the internet, other AWS services, or an on-premises network using the IP address of the NAT gateway. For more information, see [NAT gateways](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) in the *Amazon VPC User Guide*. /// If you add a default route (``AWS::EC2::Route`` resource) that points to a NAT gateway, specify the NAT gateway ID for the route's ``NatGatewayId`` property. - /// When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*. + /// When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*. /// public static Task InvokeAsync(GetNatGatewayArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:ec2:getNatGateway", args ?? new GetNatGatewayArgs(), options.WithDefaults()); @@ -24,7 +24,7 @@ public static Task InvokeAsync(GetNatGatewayArgs args, Invo /// Specifies a network address translation (NAT) gateway in the specified subnet. You can create either a public NAT gateway or a private NAT gateway. The default is a public NAT gateway. If you create a public NAT gateway, you must specify an elastic IP address. /// With a NAT gateway, instances in a private subnet can connect to the internet, other AWS services, or an on-premises network using the IP address of the NAT gateway. For more information, see [NAT gateways](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) in the *Amazon VPC User Guide*. /// If you add a default route (``AWS::EC2::Route`` resource) that points to a NAT gateway, specify the NAT gateway ID for the route's ``NatGatewayId`` property. - /// When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*. + /// When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*. /// public static Output Invoke(GetNatGatewayInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("aws-native:ec2:getNatGateway", args ?? new GetNatGatewayInvokeArgs(), options.WithDefaults()); @@ -64,12 +64,12 @@ public sealed class GetNatGatewayResult public readonly ImmutableArray SecondaryAllocationIds; /// /// [Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*. - /// ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. + /// ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. /// public readonly int? SecondaryPrivateIpAddressCount; /// /// Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*. - /// ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. + /// ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. /// public readonly ImmutableArray SecondaryPrivateIpAddresses; /// diff --git a/sdk/dotnet/Ec2/GetSecurityGroupEgress.cs b/sdk/dotnet/Ec2/GetSecurityGroupEgress.cs index 5f2168c031..24647f4a8d 100644 --- a/sdk/dotnet/Ec2/GetSecurityGroupEgress.cs +++ b/sdk/dotnet/Ec2/GetSecurityGroupEgress.cs @@ -14,9 +14,9 @@ public static class GetSecurityGroupEgress /// /// Adds the specified outbound (egress) rule to a security group. /// An outbound rule permits instances to send traffic to the specified IPv4 or IPv6 address range, the IP addresses that are specified by a prefix list, or the instances that are associated with a destination security group. For more information, see [Security group rules](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html). - /// You must specify exactly one of the following destinations: an IPv4 or IPv6 address range, a prefix list, or a security group. Otherwise, the stack launches successfully but the rule is not added to the security group. + /// You must specify exactly one of the following destinations: an IPv4 address range, an IPv6 address range, a prefix list, or a security group. /// You must specify a protocol for each rule (for example, TCP). If the protocol is TCP or UDP, you must also specify a port or port range. If the protocol is ICMP or ICMPv6, you must also specify the ICMP/ICMPv6 type and code. To specify all types or all codes, use -1. - /// Rule changes are propagated to instances associated with the security group as quickly as possible + /// Rule changes are propagated to instances associated with the security group as quickly as possible. However, a small delay might occur. /// public static Task InvokeAsync(GetSecurityGroupEgressArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:ec2:getSecurityGroupEgress", args ?? new GetSecurityGroupEgressArgs(), options.WithDefaults()); @@ -24,9 +24,9 @@ public static Task InvokeAsync(GetSecurityGroupEgr /// /// Adds the specified outbound (egress) rule to a security group. /// An outbound rule permits instances to send traffic to the specified IPv4 or IPv6 address range, the IP addresses that are specified by a prefix list, or the instances that are associated with a destination security group. For more information, see [Security group rules](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html). - /// You must specify exactly one of the following destinations: an IPv4 or IPv6 address range, a prefix list, or a security group. Otherwise, the stack launches successfully but the rule is not added to the security group. + /// You must specify exactly one of the following destinations: an IPv4 address range, an IPv6 address range, a prefix list, or a security group. /// You must specify a protocol for each rule (for example, TCP). If the protocol is TCP or UDP, you must also specify a port or port range. If the protocol is ICMP or ICMPv6, you must also specify the ICMP/ICMPv6 type and code. To specify all types or all codes, use -1. - /// Rule changes are propagated to instances associated with the security group as quickly as possible + /// Rule changes are propagated to instances associated with the security group as quickly as possible. However, a small delay might occur. /// public static Output Invoke(GetSecurityGroupEgressInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("aws-native:ec2:getSecurityGroupEgress", args ?? new GetSecurityGroupEgressInvokeArgs(), options.WithDefaults()); 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/Inputs/SecurityGroupEgressArgs.cs b/sdk/dotnet/Ec2/Inputs/SecurityGroupEgressArgs.cs index 849d814f14..5aa8fd229f 100644 --- a/sdk/dotnet/Ec2/Inputs/SecurityGroupEgressArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/SecurityGroupEgressArgs.cs @@ -33,9 +33,6 @@ public sealed class SecurityGroupEgressArgs : global::Pulumi.ResourceArgs [Input("ipProtocol", required: true)] public Input IpProtocol { get; set; } = null!; - [Input("sourceSecurityGroupId")] - public Input? SourceSecurityGroupId { get; set; } - [Input("toPort")] public Input? ToPort { get; set; } 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/NatGateway.cs b/sdk/dotnet/Ec2/NatGateway.cs index c35d2e3092..7035dfdd8a 100644 --- a/sdk/dotnet/Ec2/NatGateway.cs +++ b/sdk/dotnet/Ec2/NatGateway.cs @@ -13,7 +13,7 @@ namespace Pulumi.AwsNative.Ec2 /// Specifies a network address translation (NAT) gateway in the specified subnet. You can create either a public NAT gateway or a private NAT gateway. The default is a public NAT gateway. If you create a public NAT gateway, you must specify an elastic IP address. /// With a NAT gateway, instances in a private subnet can connect to the internet, other AWS services, or an on-premises network using the IP address of the NAT gateway. For more information, see [NAT gateways](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) in the *Amazon VPC User Guide*. /// If you add a default route (``AWS::EC2::Route`` resource) that points to a NAT gateway, specify the NAT gateway ID for the route's ``NatGatewayId`` property. - /// When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*. + /// When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*. /// [AwsNativeResourceType("aws-native:ec2:NatGateway")] public partial class NatGateway : global::Pulumi.CustomResource @@ -53,14 +53,14 @@ public partial class NatGateway : global::Pulumi.CustomResource /// /// [Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*. - /// ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. + /// ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. /// [Output("secondaryPrivateIpAddressCount")] public Output SecondaryPrivateIpAddressCount { get; private set; } = null!; /// /// Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*. - /// ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. + /// ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. /// [Output("secondaryPrivateIpAddresses")] public Output> SecondaryPrivateIpAddresses { get; private set; } = null!; @@ -167,7 +167,7 @@ public InputList SecondaryAllocationIds /// /// [Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*. - /// ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. + /// ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. /// [Input("secondaryPrivateIpAddressCount")] public Input? SecondaryPrivateIpAddressCount { get; set; } @@ -177,7 +177,7 @@ public InputList SecondaryAllocationIds /// /// Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*. - /// ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. + /// ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. /// public InputList SecondaryPrivateIpAddresses { 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/Outputs/SecurityGroupEgress.cs b/sdk/dotnet/Ec2/Outputs/SecurityGroupEgress.cs index 4a8cbe6ce4..74ddd8509a 100644 --- a/sdk/dotnet/Ec2/Outputs/SecurityGroupEgress.cs +++ b/sdk/dotnet/Ec2/Outputs/SecurityGroupEgress.cs @@ -20,7 +20,6 @@ public sealed class SecurityGroupEgress public readonly string? DestinationSecurityGroupId; public readonly int? FromPort; public readonly string IpProtocol; - public readonly string? SourceSecurityGroupId; public readonly int? ToPort; [OutputConstructor] @@ -39,8 +38,6 @@ private SecurityGroupEgress( string ipProtocol, - string? sourceSecurityGroupId, - int? toPort) { CidrIp = cidrIp; @@ -50,7 +47,6 @@ private SecurityGroupEgress( DestinationSecurityGroupId = destinationSecurityGroupId; FromPort = fromPort; IpProtocol = ipProtocol; - SourceSecurityGroupId = sourceSecurityGroupId; ToPort = toPort; } } diff --git a/sdk/dotnet/Ec2/SecurityGroupEgress.cs b/sdk/dotnet/Ec2/SecurityGroupEgress.cs index f3ab525b86..ac9f80b0f0 100644 --- a/sdk/dotnet/Ec2/SecurityGroupEgress.cs +++ b/sdk/dotnet/Ec2/SecurityGroupEgress.cs @@ -12,9 +12,9 @@ namespace Pulumi.AwsNative.Ec2 /// /// Adds the specified outbound (egress) rule to a security group. /// An outbound rule permits instances to send traffic to the specified IPv4 or IPv6 address range, the IP addresses that are specified by a prefix list, or the instances that are associated with a destination security group. For more information, see [Security group rules](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html). - /// You must specify exactly one of the following destinations: an IPv4 or IPv6 address range, a prefix list, or a security group. Otherwise, the stack launches successfully but the rule is not added to the security group. + /// You must specify exactly one of the following destinations: an IPv4 address range, an IPv6 address range, a prefix list, or a security group. /// You must specify a protocol for each rule (for example, TCP). If the protocol is TCP or UDP, you must also specify a port or port range. If the protocol is ICMP or ICMPv6, you must also specify the ICMP/ICMPv6 type and code. To specify all types or all codes, use -1. - /// Rule changes are propagated to instances associated with the security group as quickly as possible + /// Rule changes are propagated to instances associated with the security group as quickly as possible. However, a small delay might occur. /// [AwsNativeResourceType("aws-native:ec2:SecurityGroupEgress")] public partial class SecurityGroupEgress : global::Pulumi.CustomResource @@ -24,7 +24,7 @@ public partial class SecurityGroupEgress : global::Pulumi.CustomResource /// /// The IPv4 address range, in CIDR format. - /// You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + /// You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. /// For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*. /// [Output("cidrIp")] @@ -32,7 +32,7 @@ public partial class SecurityGroupEgress : global::Pulumi.CustomResource /// /// The IPv6 address range, in CIDR format. - /// You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + /// You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. /// For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*. /// [Output("cidrIpv6")] @@ -46,15 +46,15 @@ public partial class SecurityGroupEgress : global::Pulumi.CustomResource public Output Description { get; private set; } = null!; /// - /// The prefix list IDs for an AWS service. This is the AWS service that you want to access through a VPC endpoint from instances associated with the security group. - /// You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + /// The prefix list IDs for an AWS service. This is the AWS service to access through a VPC endpoint from instances associated with the security group. + /// You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. /// [Output("destinationPrefixListId")] public Output DestinationPrefixListId { get; private set; } = null!; /// /// The ID of the security group. - /// You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + /// You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. /// [Output("destinationSecurityGroupId")] public Output DestinationSecurityGroupId { get; private set; } = null!; @@ -142,7 +142,7 @@ public sealed class SecurityGroupEgressArgs : global::Pulumi.ResourceArgs { /// /// The IPv4 address range, in CIDR format. - /// You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + /// You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. /// For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*. /// [Input("cidrIp")] @@ -150,7 +150,7 @@ public sealed class SecurityGroupEgressArgs : global::Pulumi.ResourceArgs /// /// The IPv6 address range, in CIDR format. - /// You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + /// You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. /// For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*. /// [Input("cidrIpv6")] @@ -164,15 +164,15 @@ public sealed class SecurityGroupEgressArgs : global::Pulumi.ResourceArgs public Input? Description { get; set; } /// - /// The prefix list IDs for an AWS service. This is the AWS service that you want to access through a VPC endpoint from instances associated with the security group. - /// You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + /// The prefix list IDs for an AWS service. This is the AWS service to access through a VPC endpoint from instances associated with the security group. + /// You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. /// [Input("destinationPrefixListId")] public Input? DestinationPrefixListId { get; set; } /// /// The ID of the security group. - /// You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + /// You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. /// [Input("destinationSecurityGroupId")] public Input? DestinationSecurityGroupId { get; set; } 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/Ecs/Enums.cs b/sdk/dotnet/Ecs/Enums.cs index 08001e1249..2d88e38773 100644 --- a/sdk/dotnet/Ecs/Enums.cs +++ b/sdk/dotnet/Ecs/Enums.cs @@ -479,7 +479,7 @@ private TaskDefinitionEfsVolumeConfigurationTransitEncryption(string value) /// The application protocol that's used for the port mapping. This parameter only applies to Service Connect. We recommend that you set this parameter to be consistent with the protocol that your application uses. If you set this parameter, Amazon ECS adds protocol-specific connection handling to the Service Connect proxy. If you set this parameter, Amazon ECS adds protocol-specific telemetry in the Amazon ECS console and CloudWatch. /// If you don't set a value for this parameter, then TCP is used. However, Amazon ECS doesn't add protocol-specific telemetry for TCP. /// ``appProtocol`` is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment. - /// Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS se + /// Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. /// [EnumType] public readonly struct TaskDefinitionPortMappingAppProtocol : IEquatable diff --git a/sdk/dotnet/Ecs/GetTaskDefinition.cs b/sdk/dotnet/Ecs/GetTaskDefinition.cs index c707121391..0cb00251fd 100644 --- a/sdk/dotnet/Ecs/GetTaskDefinition.cs +++ b/sdk/dotnet/Ecs/GetTaskDefinition.cs @@ -14,7 +14,9 @@ public static class GetTaskDefinition /// /// Registers a new task definition from the supplied ``family`` and ``containerDefinitions``. Optionally, you can add data volumes to your containers with the ``volumes`` parameter. For more information about task definition parameters and defaults, see [Amazon ECS Task Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) in the *Amazon Elastic Container Service Developer Guide*. /// You can specify a role for your task with the ``taskRoleArn`` parameter. When you specify a role for a task, its containers can then use the latest versions of the CLI or SDKs to make API requests to the AWS services that are specified in the policy that's associated with the role. For more information, see [IAM Roles for Tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*. - /// You can specify a Docker networking mode for the containers in your task definition with the ``networkMod + /// You can specify a Docker networking mode for the containers in your task definition with the ``networkMode`` parameter. The available network modes correspond to those described in [Network settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#/network-settings) in the Docker run reference. If you specify the ``awsvpc`` network mode, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*. + /// In the following example or examples, the Authorization header contents (``AUTHPARAMS``) must be replaced with an AWS Signature Version 4 signature. For more information, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the *General Reference*. + /// You only need to learn how to sign HTTP requests if you intend to create them manually. When you use the [](https://docs.aws.amazon.com/cli/) or one of the [SDKs](https://docs.aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you, with the access key that you specify when you configure the tools. When you use these tools, you don't have to sign requests yourself. /// public static Task InvokeAsync(GetTaskDefinitionArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:ecs:getTaskDefinition", args ?? new GetTaskDefinitionArgs(), options.WithDefaults()); @@ -22,7 +24,9 @@ public static Task InvokeAsync(GetTaskDefinitionArgs ar /// /// Registers a new task definition from the supplied ``family`` and ``containerDefinitions``. Optionally, you can add data volumes to your containers with the ``volumes`` parameter. For more information about task definition parameters and defaults, see [Amazon ECS Task Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) in the *Amazon Elastic Container Service Developer Guide*. /// You can specify a role for your task with the ``taskRoleArn`` parameter. When you specify a role for a task, its containers can then use the latest versions of the CLI or SDKs to make API requests to the AWS services that are specified in the policy that's associated with the role. For more information, see [IAM Roles for Tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*. - /// You can specify a Docker networking mode for the containers in your task definition with the ``networkMod + /// You can specify a Docker networking mode for the containers in your task definition with the ``networkMode`` parameter. The available network modes correspond to those described in [Network settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#/network-settings) in the Docker run reference. If you specify the ``awsvpc`` network mode, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*. + /// In the following example or examples, the Authorization header contents (``AUTHPARAMS``) must be replaced with an AWS Signature Version 4 signature. For more information, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the *General Reference*. + /// You only need to learn how to sign HTTP requests if you intend to create them manually. When you use the [](https://docs.aws.amazon.com/cli/) or one of the [SDKs](https://docs.aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you, with the access key that you specify when you configure the tools. When you use these tools, you don't have to sign requests yourself. /// public static Output Invoke(GetTaskDefinitionInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("aws-native:ecs:getTaskDefinition", args ?? new GetTaskDefinitionInvokeArgs(), options.WithDefaults()); @@ -64,7 +68,7 @@ public sealed class GetTaskDefinitionResult /// + Maximum value length - 256 Unicode characters in UTF-8 /// + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. /// + Tag keys and values are case-sensitive. - /// + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values + /// + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. /// public readonly ImmutableArray Tags; public readonly string? TaskDefinitionArn; diff --git a/sdk/dotnet/Ecs/Inputs/TaskDefinitionContainerDefinitionArgs.cs b/sdk/dotnet/Ecs/Inputs/TaskDefinitionContainerDefinitionArgs.cs index 821ab0e1ed..4279b6bcc2 100644 --- a/sdk/dotnet/Ecs/Inputs/TaskDefinitionContainerDefinitionArgs.cs +++ b/sdk/dotnet/Ecs/Inputs/TaskDefinitionContainerDefinitionArgs.cs @@ -31,7 +31,12 @@ public InputList Command /// The number of ``cpu`` units reserved for the container. This parameter maps to ``CpuShares`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cpu-shares`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). /// This field is optional for tasks using the Fargate launch type, and the only requirement is that the total amount of CPU reserved for all containers within a task be lower than the task-level ``cpu`` value. /// You can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the [Amazon EC2 Instances](https://docs.aws.amazon.com/ec2/instance-types/) detail page by 1,024. - /// Linux containers share unallocated CPU units with other containers on the cont + /// Linux containers share unallocated CPU units with other containers on the container instance with the same ratio as their allocated amount. For example, if you run a single-container task on a single-core instance type with 512 CPU units specified for that container, and that's the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time. However, if you launched another copy of the same task on that container instance, each task is guaranteed a minimum of 512 CPU units when needed. Moreover, each container could float to higher CPU usage if the other container was not using it. If both tasks were 100% active all of the time, they would be limited to 512 CPU units. + /// On Linux container instances, the Docker daemon on the container instance uses the CPU value to calculate the relative CPU share ratios for running containers. For more information, see [CPU share constraint](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#cpu-share-constraint) in the Docker documentation. The minimum valid CPU share value that the Linux kernel allows is 2. However, the CPU parameter isn't required, and you can use CPU values below 2 in your container definitions. For CPU values below 2 (including null), the behavior varies based on your Amazon ECS container agent version: + /// + *Agent versions less than or equal to 1.1.0:* Null and zero CPU values are passed to Docker as 0, which Docker then converts to 1,024 CPU shares. CPU values of 1 are passed to Docker as 1, which the Linux kernel converts to two CPU shares. + /// + *Agent versions greater than or equal to 1.2.0:* Null, zero, and CPU values of 1 are passed to Docker as 2. + /// + /// On Windows container instances, the CPU limit is enforced as an absolute limit, or a quota. Windows containers only have access to the specified amount of CPU that's described in the task definition. A null or zero CPU value is passed to Docker as ``0``, which Windows interprets as 1% of one CPU. /// [Input("cpu")] public Input? Cpu { get; set; } @@ -44,7 +49,7 @@ public InputList Command /// There are two formats for each ARN. /// + credentialspecdomainless:MyARN You use credentialspecdomainless:MyARN to provide a CredSpec with an additional section for a secret in . You provide the login credentials to the domain in the secret. Each task that runs on any container instance can join different domains. You can use this format without joining the container instance to a domain. + credentialspec:MyARN You use credentialspec:MyARN to provide a CredSpec for a single domain. You must join the container instance to the domain before you start any tasks that use this task definition. /// In both formats, replace ``MyARN`` with the ARN in SSM or Amazon S3. - /// If you provide a ``credentialspecdomainless:MyARN``, the ``credspec`` must + /// If you provide a ``credentialspecdomainless:MyARN``, the ``credspec`` must provide a ARN in ASMlong for a secret containing the username, password, and the domain to connect to. For better security, the instance isn't joined to the domain for domainless authentication. Other applications on the instance can't use the domainless credentials. You can use this parameter to run tasks on the same instance, even it the tasks need to join different domains. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) and [Using gMSAs for Linux Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html). /// public InputList CredentialSpecs { @@ -57,7 +62,12 @@ public InputList CredentialSpecs /// /// The dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed. - /// For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [ + /// For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + /// For tasks using the Fargate launch type, the task or service requires the following platforms: + /// + Linux platform version ``1.3.0`` or later. + /// + Windows platform version ``1.0.0`` or later. + /// + /// If the task definition is used in a blue/green deployment that uses [AWS::CodeDeploy::DeploymentGroup BlueGreenDeploymentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-bluegreendeploymentconfiguration.html), the ``dependsOn`` parameter is not supported. For more information see [Issue #680](https://docs.aws.amazon.com/https://github.com/aws-cloudformation/cloudformation-coverage-roadmap/issues/680) on the on the GitHub website. /// public InputList DependsOn { @@ -117,7 +127,10 @@ public InputMap DockerLabels /// A list of strings to provide custom configuration for multiple security systems. For more information about valid values, see [Docker Run Security Configuration](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). This field isn't valid for containers in tasks using the Fargate launch type. /// For Linux tasks on EC2, this parameter can be used to reference custom labels for SELinux and AppArmor multi-level security systems. /// For any tasks on EC2, this parameter can be used to reference a credential spec file that configures a container for Active Directory authentication. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) and [Using gMSAs for Linux Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html) in the *Amazon Elastic Container Service Developer Guide*. - /// This parameter maps to ``SecurityOpt`` in the [Create a co + /// This parameter maps to ``SecurityOpt`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--security-opt`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + /// The Amazon ECS container agent running on a container instance must register with the ``ECS_SELINUX_CAPABLE=true`` or ``ECS_APPARMOR_CAPABLE=true`` environment variables before containers placed on that instance can use these security options. For more information, see [Amazon ECS Container Agent Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*. + /// For more information about valid values, see [Docker Run Security Configuration](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + /// Valid values: "no-new-privileges" | "apparmor:PROFILE" | "label:value" | "credentialspec:CredentialSpecFilePath" /// public InputList DockerSecurityOptions { @@ -157,7 +170,7 @@ public InputList Environment /// /// A list of files containing the environment variables to pass to a container. This parameter maps to the ``--env-file`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). /// You can specify up to ten environment files. The file must have a ``.env`` file extension. Each line in an environment file contains an environment variable in ``VARIABLE=VALUE`` format. Lines beginning with ``#`` are treated as comments and are ignored. For more information about the environment variable file syntax, see [Declare default environment variables in file](https://docs.aws.amazon.com/https://docs.docker.com/compose/env-file/). - /// If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend t + /// If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Specifying Environment Variables](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) in the *Amazon Elastic Container Service Developer Guide*. /// public InputList EnvironmentFiles { @@ -206,7 +219,11 @@ public InputList ExtraHosts /// /// The image used to start a container. This string is passed directly to the Docker daemon. By default, images in the Docker Hub registry are available. Other repositories are specified with either ``repository-url/image:tag`` or ``repository-url/image@digest``. Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to ``Image`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``IMAGE`` parameter of [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - /// + When a new task starts, the Amazon ECS container agent pulls the latest version of the specified image and tag for the container to use. However, subsequent updates to a repository image + /// + When a new task starts, the Amazon ECS container agent pulls the latest version of the specified image and tag for the container to use. However, subsequent updates to a repository image aren't propagated to already running tasks. + /// + Images in Amazon ECR repositories can be specified by either using the full ``registry/repository:tag`` or ``registry/repository@digest``. For example, ``012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>:latest`` or ``012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE``. + /// + Images in official repositories on Docker Hub use a single name (for example, ``ubuntu`` or ``mongo``). + /// + Images in other repositories on Docker Hub are qualified with an organization name (for example, ``amazon/amazon-ecs-agent``). + /// + Images in other online repositories are qualified further by a domain name (for example, ``quay.io/assemblyline/ubuntu``). /// [Input("image", required: true)] public Input Image { get; set; } = null!; @@ -222,7 +239,8 @@ public InputList ExtraHosts /// /// The ``links`` parameter allows containers to communicate with each other without the need for port mappings. This parameter is only supported if the network mode of a task definition is ``bridge``. The ``name:internalName`` construct is analogous to ``name:alias`` in Docker links. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. For more information about linking Docker containers, go to [Legacy container links](https://docs.aws.amazon.com/https://docs.docker.com/network/links/) in the Docker documentation. This parameter maps to ``Links`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--link`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - /// This parameter is not supported for W + /// This parameter is not supported for Windows containers. + /// Containers that are collocated on a single container instance may be able to communicate with each other without requiring links or host port mappings. Network isolation is achieved on the container instance using security groups and VPC settings. /// public InputList Links { @@ -239,7 +257,10 @@ public InputList Links /// /// The log configuration specification for the container. - /// This parameter maps to ``LogConfig`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--log-driver`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). By default, containers use the same logging driver that the Docker daemon uses. However, the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.aws.amazon.com/htt + /// This parameter maps to ``LogConfig`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--log-driver`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). By default, containers use the same logging driver that the Docker daemon uses. However, the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.aws.amazon.com/https://docs.docker.com/engine/admin/logging/overview/) in the Docker documentation. + /// Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon (shown in the [LogConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_LogConfiguration.html) data type). Additional log drivers may be available in future releases of the Amazon ECS container agent. + /// This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'`` + /// The Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the ``ECS_AVAILABLE_LOGGING_DRIVERS`` environment variable before containers placed on that instance can use these log configuration options. For more information, see [Amazon ECS Container Agent Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*. /// [Input("logConfiguration")] public Input? LogConfiguration { get; set; } @@ -247,14 +268,19 @@ public InputList Links /// /// The amount (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. The total amount of memory reserved for all containers within a task must be lower than the task ``memory`` value, if one is specified. This parameter maps to ``Memory`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). /// If using the Fargate launch type, this parameter is optional. - /// If using the EC2 launch type, you must specify either a task-level memory value or a container-level memory value. If you specify both a container-level ``memory`` and ``memoryReservation`` value, ``memory`` must be greater than ``memoryReserva + /// If using the EC2 launch type, you must specify either a task-level memory value or a container-level memory value. If you specify both a container-level ``memory`` and ``memoryReservation`` value, ``memory`` must be greater than ``memoryReservation``. If you specify ``memoryReservation``, then that value is subtracted from the available memory resources for the container instance where the container is placed. Otherwise, the value of ``memory`` is used. + /// The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container, so you should not specify fewer than 6 MiB of memory for your containers. + /// The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container, so you should not specify fewer than 4 MiB of memory for your containers. /// [Input("memory")] public Input? Memory { get; set; } /// /// The soft limit (in MiB) of memory to reserve for the container. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit. However, your container can consume more memory when it needs to, up to either the hard limit specified with the ``memory`` parameter (if applicable), or all of the available memory on the container instance, whichever comes first. This parameter maps to ``MemoryReservation`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory-reservation`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - /// If a task-level memory value is not specified, you must specify a non-zero integer for one or both of ``memory`` or ``memoryReservation`` in a container definiti + /// If a task-level memory value is not specified, you must specify a non-zero integer for one or both of ``memory`` or ``memoryReservation`` in a container definition. If you specify both, ``memory`` must be greater than ``memoryReservation``. If you specify ``memoryReservation``, then that value is subtracted from the available memory resources for the container instance where the container is placed. Otherwise, the value of ``memory`` is used. + /// For example, if your container normally uses 128 MiB of memory, but occasionally bursts to 256 MiB of memory for short periods of time, you can set a ``memoryReservation`` of 128 MiB, and a ``memory`` hard limit of 300 MiB. This configuration would allow the container to only reserve 128 MiB of memory from the remaining resources on the container instance, but also allow the container to consume more memory resources when needed. + /// The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container. So, don't specify less than 6 MiB of memory for your containers. + /// The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container. So, don't specify less than 4 MiB of memory for your containers. /// [Input("memoryReservation")] public Input? MemoryReservation { get; set; } @@ -286,7 +312,8 @@ public InputList MountPoints /// The list of port mappings for the container. Port mappings allow containers to access ports on the host container instance to send or receive traffic. /// For task definitions that use the ``awsvpc`` network mode, you should only specify the ``containerPort``. The ``hostPort`` can be left blank or it must be the same value as the ``containerPort``. /// Port mappings on Windows use the ``NetNAT`` gateway address rather than ``localhost``. There is no loopback for port mappings on Windows, so you cannot access a container's mapped port from the host itself. - /// This parameter maps to ``PortBindings`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--publish`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). If the network mode of a task definition is set to + /// This parameter maps to ``PortBindings`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--publish`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). If the network mode of a task definition is set to ``none``, then you can't specify port mappings. If the network mode of a task definition is set to ``host``, then host ports must either be undefined or they must match the container port in the port mapping. + /// After a task reaches the ``RUNNING`` status, manual and automatic host and container port assignments are visible in the *Network Bindings* section of a container description for a selected task in the Amazon ECS console. The assignments are also visible in the ``networkBindings`` section [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) responses. /// public InputList PortMappings { @@ -351,7 +378,8 @@ public InputList Secrets /// + Linux platform version ``1.3.0`` or later. /// + Windows platform version ``1.0.0`` or later. /// - /// For tasks using the EC2 launch type, your container instances require at least version ``1.26.0`` of the container agent to use a container start timeout value. However + /// For tasks using the EC2 launch type, your container instances require at least version ``1.26.0`` of the container agent to use a container start timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version ``1.26.0-1`` of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + /// The valid values are 2-120 seconds. /// [Input("startTimeout")] public Input? StartTimeout { get; set; } @@ -363,7 +391,8 @@ public InputList Secrets /// + Windows platform version ``1.0.0`` or later. /// /// The max stop timeout value is 120 seconds and if the parameter is not specified, the default value of 30 seconds is used. - /// For tasks that use the EC2 launch type, if the ``stopTimeout`` parameter isn't specified, the value set for the Amazon ECS container agent configuration variable ``ECS_CONTAINER_STOP_TIMEOUT`` is used. If neither the ``stopTimeout`` parameter or the ``ECS_CONTAINER_STOP_TIMEOUT`` agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to use a container stop timeout value. However, we recomm + /// For tasks that use the EC2 launch type, if the ``stopTimeout`` parameter isn't specified, the value set for the Amazon ECS container agent configuration variable ``ECS_CONTAINER_STOP_TIMEOUT`` is used. If neither the ``stopTimeout`` parameter or the ``ECS_CONTAINER_STOP_TIMEOUT`` agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to use a container stop timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + /// The valid values are 2-120 seconds. /// [Input("stopTimeout")] public Input? StopTimeout { get; set; } diff --git a/sdk/dotnet/Ecs/Inputs/TaskDefinitionContainerDependencyArgs.cs b/sdk/dotnet/Ecs/Inputs/TaskDefinitionContainerDependencyArgs.cs index cf5bc86e39..53cd99e4d8 100644 --- a/sdk/dotnet/Ecs/Inputs/TaskDefinitionContainerDependencyArgs.cs +++ b/sdk/dotnet/Ecs/Inputs/TaskDefinitionContainerDependencyArgs.cs @@ -12,7 +12,8 @@ namespace Pulumi.AwsNative.Ecs.Inputs /// /// The ``ContainerDependency`` property specifies the dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed. - /// Your Amazon ECS container instances require at least version 1.26.0 of the container agent to enable container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you are using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For m + /// Your Amazon ECS container instances require at least version 1.26.0 of the container agent to enable container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you are using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + /// For tasks using the Fargate launch type, this parameter requires that the task or service uses platform version 1.3.0 or later. /// public sealed class TaskDefinitionContainerDependencyArgs : global::Pulumi.ResourceArgs { @@ -21,7 +22,7 @@ public sealed class TaskDefinitionContainerDependencyArgs : global::Pulumi.Resou /// + ``START`` - This condition emulates the behavior of links and volumes today. It validates that a dependent container is started before permitting other containers to start. /// + ``COMPLETE`` - This condition validates that a dependent container runs to completion (exits) before permitting other containers to start. This can be useful for nonessential containers that run a script and then exit. This condition can't be set on an essential container. /// + ``SUCCESS`` - This condition is the same as ``COMPLETE``, but it also requires that the container exits with a ``zero`` status. This condition can't be set on an essential container. - /// + ``HEALTHY`` - This condition validates that the dependent container passes its Docker health check before permitting other containers to start. This requires that the dependent container has health checks configured. This condition is confi + /// + ``HEALTHY`` - This condition validates that the dependent container passes its Docker health check before permitting other containers to start. This requires that the dependent container has health checks configured. This condition is confirmed only at task startup. /// [Input("condition")] public Input? Condition { get; set; } diff --git a/sdk/dotnet/Ecs/Inputs/TaskDefinitionEnvironmentFileArgs.cs b/sdk/dotnet/Ecs/Inputs/TaskDefinitionEnvironmentFileArgs.cs index 8b16850850..c5d13971dd 100644 --- a/sdk/dotnet/Ecs/Inputs/TaskDefinitionEnvironmentFileArgs.cs +++ b/sdk/dotnet/Ecs/Inputs/TaskDefinitionEnvironmentFileArgs.cs @@ -12,14 +12,21 @@ namespace Pulumi.AwsNative.Ecs.Inputs /// /// A list of files containing the environment variables to pass to a container. You can specify up to ten environment files. The file must have a ``.env`` file extension. Each line in an environment file should contain an environment variable in ``VARIABLE=VALUE`` format. Lines beginning with ``#`` are treated as comments and are ignored. - /// If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Specifying environment variables](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) in the *Amazon Elastic Container Service Developer Guide*. + /// If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Use a file to pass environment variables to a container](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/use-environment-file.html) in the *Amazon Elastic Container Service Developer Guide*. + /// Environment variable files are objects in Amazon S3 and all Amazon S3 security considerations apply. /// You must use the following platforms for the Fargate launch type: - /// + Linux platform version ``1.4.0`` or la + /// + Linux platform version ``1.4.0`` or later. + /// + Windows platform version ``1.0.0`` or later. + /// + /// Consider the following when using the Fargate launch type: + /// + The file is handled like a native Docker env-file. + /// + There is no support for shell escape handling. + /// + The container entry point interperts the ``VARIABLE`` values. /// public sealed class TaskDefinitionEnvironmentFileArgs : global::Pulumi.ResourceArgs { /// - /// The file type to use. The only supported value is ``s3``. + /// The file type to use. Environment files are objects in Amazon S3. The only supported value is ``s3``. /// [Input("type")] public Input? Type { get; set; } diff --git a/sdk/dotnet/Ecs/Inputs/TaskDefinitionEphemeralStorageArgs.cs b/sdk/dotnet/Ecs/Inputs/TaskDefinitionEphemeralStorageArgs.cs index 066a6984db..dc855f3cd3 100644 --- a/sdk/dotnet/Ecs/Inputs/TaskDefinitionEphemeralStorageArgs.cs +++ b/sdk/dotnet/Ecs/Inputs/TaskDefinitionEphemeralStorageArgs.cs @@ -19,7 +19,7 @@ namespace Pulumi.AwsNative.Ecs.Inputs public sealed class TaskDefinitionEphemeralStorageArgs : global::Pulumi.ResourceArgs { /// - /// The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``21`` GiB and the maximum supported value is ``200`` GiB. + /// The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``20`` GiB and the maximum supported value is ``200`` GiB. /// [Input("sizeInGiB")] public Input? SizeInGiB { get; set; } diff --git a/sdk/dotnet/Ecs/Inputs/TaskDefinitionFSxAuthorizationConfigArgs.cs b/sdk/dotnet/Ecs/Inputs/TaskDefinitionFSxAuthorizationConfigArgs.cs new file mode 100644 index 0000000000..2afccb6564 --- /dev/null +++ b/sdk/dotnet/Ecs/Inputs/TaskDefinitionFSxAuthorizationConfigArgs.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.Ecs.Inputs +{ + + public sealed class TaskDefinitionFSxAuthorizationConfigArgs : global::Pulumi.ResourceArgs + { + [Input("credentialsParameter", required: true)] + public Input CredentialsParameter { get; set; } = null!; + + [Input("domain", required: true)] + public Input Domain { get; set; } = null!; + + public TaskDefinitionFSxAuthorizationConfigArgs() + { + } + public static new TaskDefinitionFSxAuthorizationConfigArgs Empty => new TaskDefinitionFSxAuthorizationConfigArgs(); + } +} diff --git a/sdk/dotnet/Ecs/Inputs/TaskDefinitionFSxWindowsFileServerVolumeConfigurationArgs.cs b/sdk/dotnet/Ecs/Inputs/TaskDefinitionFSxWindowsFileServerVolumeConfigurationArgs.cs new file mode 100644 index 0000000000..630b5a6698 --- /dev/null +++ b/sdk/dotnet/Ecs/Inputs/TaskDefinitionFSxWindowsFileServerVolumeConfigurationArgs.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.Ecs.Inputs +{ + + public sealed class TaskDefinitionFSxWindowsFileServerVolumeConfigurationArgs : global::Pulumi.ResourceArgs + { + [Input("authorizationConfig")] + public Input? AuthorizationConfig { get; set; } + + [Input("fileSystemId", required: true)] + public Input FileSystemId { get; set; } = null!; + + [Input("rootDirectory", required: true)] + public Input RootDirectory { get; set; } = null!; + + public TaskDefinitionFSxWindowsFileServerVolumeConfigurationArgs() + { + } + public static new TaskDefinitionFSxWindowsFileServerVolumeConfigurationArgs Empty => new TaskDefinitionFSxWindowsFileServerVolumeConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Ecs/Inputs/TaskDefinitionFirelensConfigurationArgs.cs b/sdk/dotnet/Ecs/Inputs/TaskDefinitionFirelensConfigurationArgs.cs index fdd838a775..f1552a8a3f 100644 --- a/sdk/dotnet/Ecs/Inputs/TaskDefinitionFirelensConfigurationArgs.cs +++ b/sdk/dotnet/Ecs/Inputs/TaskDefinitionFirelensConfigurationArgs.cs @@ -21,9 +21,9 @@ public sealed class TaskDefinitionFirelensConfigurationArgs : global::Pulumi.Res /// /// The options to use when configuring the log router. This field is optional and can be used to add additional metadata, such as the task, task definition, cluster, and container instance details to the log event. /// If specified, valid option keys are: - /// + ``enable-ecs-log-metadata``, which can be ``true`` or ``false`` - /// + ``config-file-type``, which can be ``s3`` or ``file`` - /// + ``config-file-value``, which is either an S3 ARN or a file path + /// + ``enable-ecs-log-metadata``, which can be ``true`` or ``false`` + /// + ``config-file-type``, which can be ``s3`` or ``file`` + /// + ``config-file-value``, which is either an S3 ARN or a file path /// public InputMap Options { diff --git a/sdk/dotnet/Ecs/Inputs/TaskDefinitionHealthCheckArgs.cs b/sdk/dotnet/Ecs/Inputs/TaskDefinitionHealthCheckArgs.cs index e0c5a4a361..10fc06494e 100644 --- a/sdk/dotnet/Ecs/Inputs/TaskDefinitionHealthCheckArgs.cs +++ b/sdk/dotnet/Ecs/Inputs/TaskDefinitionHealthCheckArgs.cs @@ -13,7 +13,11 @@ namespace Pulumi.AwsNative.Ecs.Inputs /// /// The ``HealthCheck`` property specifies an object representing a container health check. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image (such as those specified in a parent image or from the image's Dockerfile). This configuration maps to the ``HEALTHCHECK`` parameter of [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). /// The Amazon ECS container agent only monitors and reports on the health checks specified in the task definition. Amazon ECS does not monitor Docker health checks that are embedded in a container image and not specified in the container definition. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image. - /// If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a servi + /// If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a service, if the task reports as unhealthy then the task will be stopped and the service scheduler will replace it. + /// The following are notes about container health check support: + /// + Container health checks require version 1.17.0 or greater of the Amazon ECS container agent. For more information, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html). + /// + Container health checks are supported for Fargate tasks if you are using platform version 1.1.0 or greater. For more information, see [Platform Versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). + /// + Container health checks are not supported for tasks that are part of a service that is configured to use a Classic Load Balancer. /// public sealed class TaskDefinitionHealthCheckArgs : global::Pulumi.ResourceArgs { diff --git a/sdk/dotnet/Ecs/Inputs/TaskDefinitionKernelCapabilitiesArgs.cs b/sdk/dotnet/Ecs/Inputs/TaskDefinitionKernelCapabilitiesArgs.cs index c384174b4a..8fdc205f5b 100644 --- a/sdk/dotnet/Ecs/Inputs/TaskDefinitionKernelCapabilitiesArgs.cs +++ b/sdk/dotnet/Ecs/Inputs/TaskDefinitionKernelCapabilitiesArgs.cs @@ -11,7 +11,7 @@ namespace Pulumi.AwsNative.Ecs.Inputs { /// - /// The ``KernelCapabilities`` property specifies the Linux capabilities for the container that are added to or dropped from the default configuration that is provided by Docker. For more information on the default capabilities and the non-default available capabilities, see [Runtime privilege and Linux capabilities](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) in the *Docker run reference*. For more detailed information on these Linux capabilities, see the [capabilities(7)](https://docs.aws.amazon.com/http://man7.org/linux/man-pages/man7/capabilities.7.html) Linux manual page. + /// The Linux capabilities to add or remove from the default Docker configuration for a container defined in the task definition. For more information about the default capabilities and the non-default available capabilities, see [Runtime privilege and Linux capabilities](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) in the *Docker run reference*. For more detailed information about these Linux capabilities, see the [capabilities(7)](https://docs.aws.amazon.com/http://man7.org/linux/man-pages/man7/capabilities.7.html) Linux manual page. /// public sealed class TaskDefinitionKernelCapabilitiesArgs : global::Pulumi.ResourceArgs { @@ -21,7 +21,7 @@ public sealed class TaskDefinitionKernelCapabilitiesArgs : global::Pulumi.Resour /// /// The Linux capabilities for the container that have been added to the default configuration provided by Docker. This parameter maps to ``CapAdd`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-add`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). /// Tasks launched on FARGATElong only support adding the ``SYS_PTRACE`` kernel capability. - /// Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" + /// Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"`` /// public InputList Add { @@ -34,7 +34,7 @@ public InputList Add /// /// The Linux capabilities for the container that have been removed from the default configuration provided by Docker. This parameter maps to ``CapDrop`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-drop`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - /// Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" + /// Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"`` /// public InputList Drop { diff --git a/sdk/dotnet/Ecs/Inputs/TaskDefinitionLogConfigurationArgs.cs b/sdk/dotnet/Ecs/Inputs/TaskDefinitionLogConfigurationArgs.cs index f4d043dcb4..637b647c4d 100644 --- a/sdk/dotnet/Ecs/Inputs/TaskDefinitionLogConfigurationArgs.cs +++ b/sdk/dotnet/Ecs/Inputs/TaskDefinitionLogConfigurationArgs.cs @@ -21,7 +21,7 @@ public sealed class TaskDefinitionLogConfigurationArgs : global::Pulumi.Resource /// For tasks hosted on Amazon EC2 instances, the supported log drivers are ``awslogs``, ``fluentd``, ``gelf``, ``json-file``, ``journald``, ``logentries``,``syslog``, ``splunk``, and ``awsfirelens``. /// For more information about using the ``awslogs`` log driver, see [Using the awslogs log driver](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html) in the *Amazon Elastic Container Service Developer Guide*. /// For more information about using the ``awsfirelens`` log driver, see [Custom log routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*. - /// If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs + /// If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs-agent) and customize it to work with that driver. We encourage you to submit pull requests for changes that you would like to have included. However, we don't currently provide support for running modified copies of this software. /// [Input("logDriver", required: true)] public Input LogDriver { get; set; } = null!; diff --git a/sdk/dotnet/Ecs/Inputs/TaskDefinitionPortMappingArgs.cs b/sdk/dotnet/Ecs/Inputs/TaskDefinitionPortMappingArgs.cs index 275dde0993..8742fffeab 100644 --- a/sdk/dotnet/Ecs/Inputs/TaskDefinitionPortMappingArgs.cs +++ b/sdk/dotnet/Ecs/Inputs/TaskDefinitionPortMappingArgs.cs @@ -21,7 +21,7 @@ public sealed class TaskDefinitionPortMappingArgs : global::Pulumi.ResourceArgs /// The application protocol that's used for the port mapping. This parameter only applies to Service Connect. We recommend that you set this parameter to be consistent with the protocol that your application uses. If you set this parameter, Amazon ECS adds protocol-specific connection handling to the Service Connect proxy. If you set this parameter, Amazon ECS adds protocol-specific telemetry in the Amazon ECS console and CloudWatch. /// If you don't set a value for this parameter, then TCP is used. However, Amazon ECS doesn't add protocol-specific telemetry for TCP. /// ``appProtocol`` is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment. - /// Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS se + /// Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. /// [Input("appProtocol")] public Input? AppProtocol { get; set; } @@ -44,7 +44,17 @@ public sealed class TaskDefinitionPortMappingArgs : global::Pulumi.ResourceArgs /// + You can specify a maximum of 100 port ranges per container. /// + You do not specify a ``hostPortRange``. The value of the ``hostPortRange`` is set as follows: /// + For containers in a task with the ``awsvpc`` network mode, the ``hostPortRange`` is set to the same value as the ``containerPortRange``. This is a static mapping strategy. - /// + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open host + /// + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open host ports from the default ephemeral range and passes it to docker to bind them to the container ports. + /// + /// + The ``containerPortRange`` valid values are between 1 and 65535. + /// + A port can only be included in one port mapping per container. + /// + You cannot specify overlapping port ranges. + /// + The first port in the range must be less than last port in the range. + /// + Docker recommends that you turn off the docker-proxy in the Docker daemon config file when you have a large number of ports. + /// For more information, see [Issue #11185](https://docs.aws.amazon.com/https://github.com/moby/moby/issues/11185) on the Github website. + /// For information about how to turn off the docker-proxy in the Docker daemon config file, see [Docker daemon](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/bootstrap_container_instance.html#bootstrap_docker_daemon) in the *Amazon ECS Developer Guide*. + /// + /// You can call [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) to view the ``hostPortRange`` which are the host ports that are bound to the container ports. /// [Input("containerPortRange")] public Input? ContainerPortRange { get; set; } @@ -56,7 +66,9 @@ public sealed class TaskDefinitionPortMappingArgs : global::Pulumi.ResourceArgs /// + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open ports on the host and automatically binds them to the container ports. This is a dynamic mapping strategy. /// /// If you use containers in a task with the ``awsvpc`` or ``host`` network mode, the ``hostPort`` can either be left blank or set to the same value as the ``containerPort``. - /// If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0``) while specifying a ``containerPort`` and your container automatically + /// If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0``) while specifying a ``containerPort`` and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version. + /// The default ephemeral port range for Docker version 1.6.0 and later is listed on the instance under ``/proc/sys/net/ipv4/ip_local_port_range``. If this kernel parameter is unavailable, the default ephemeral port range from 49153 through 65535 (Linux) or 49152 through 65535 (Windows) is used. Do not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range. + /// The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678-51680. Any host port that was previously specified in a running task is also reserved while the task is running. That is, after a task stops, the host port is released. The current reserved ports are displayed in the ``remainingResources`` of [DescribeContainerInstances](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html) output. A container instance can have up to 100 reserved ports at a time. This number includes the default reserved ports. Automatically assigned ports aren't included in the 100 reserved ports quota. /// [Input("hostPort")] public Input? HostPort { get; set; } diff --git a/sdk/dotnet/Ecs/Inputs/TaskDefinitionProxyConfigurationArgs.cs b/sdk/dotnet/Ecs/Inputs/TaskDefinitionProxyConfigurationArgs.cs index cbdc9a2515..ae97c0ad48 100644 --- a/sdk/dotnet/Ecs/Inputs/TaskDefinitionProxyConfigurationArgs.cs +++ b/sdk/dotnet/Ecs/Inputs/TaskDefinitionProxyConfigurationArgs.cs @@ -31,7 +31,9 @@ public sealed class TaskDefinitionProxyConfigurationArgs : global::Pulumi.Resour /// + ``IgnoredGID`` - (Required) The group ID (GID) of the proxy container as defined by the ``user`` parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If ``IgnoredUID`` is specified, this field can be empty. /// + ``AppPorts`` - (Required) The list of ports that the application uses. Network traffic to these ports is forwarded to the ``ProxyIngressPort`` and ``ProxyEgressPort``. /// + ``ProxyIngressPort`` - (Required) Specifies the port that incoming traffic to the ``AppPorts`` is directed to. - /// + ``ProxyEgressPort`` - (Required) Specifies the port that outgoi + /// + ``ProxyEgressPort`` - (Required) Specifies the port that outgoing traffic from the ``AppPorts`` is directed to. + /// + ``EgressIgnoredPorts`` - (Required) The egress traffic going to the specified ports is ignored and not redirected to the ``ProxyEgressPort``. It can be an empty list. + /// + ``EgressIgnoredIPs`` - (Required) The egress traffic going to the specified IP addresses is ignored and not redirected to the ``ProxyEgressPort``. It can be an empty list. /// public InputList ProxyConfigurationProperties { diff --git a/sdk/dotnet/Ecs/Inputs/TaskDefinitionSystemControlArgs.cs b/sdk/dotnet/Ecs/Inputs/TaskDefinitionSystemControlArgs.cs index cb66da42af..2f0b28a8ee 100644 --- a/sdk/dotnet/Ecs/Inputs/TaskDefinitionSystemControlArgs.cs +++ b/sdk/dotnet/Ecs/Inputs/TaskDefinitionSystemControlArgs.cs @@ -13,7 +13,15 @@ namespace Pulumi.AwsNative.Ecs.Inputs /// /// A list of namespaced kernel parameters to set in the container. This parameter maps to ``Sysctls`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--sysctl`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). For example, you can configure ``net.ipv4.tcp_keepalive_time`` setting to maintain longer lived connections. /// We don't recommend that you specify network-related ``systemControls`` parameters for multiple containers in a single task that also uses either the ``awsvpc`` or ``host`` network mode. Doing this has the following disadvantages: - /// + For tasks that use the ``awsvpc`` network mode including Fargate, if you set ``systemControls`` for any container, it applies to all containers in the task. If you set different ``sy + /// + For tasks that use the ``awsvpc`` network mode including Fargate, if you set ``systemControls`` for any container, it applies to all containers in the task. If you set different ``systemControls`` for multiple containers in a single task, the container that's started last determines which ``systemControls`` take effect. + /// + For tasks that use the ``host`` network mode, the network namespace ``systemControls`` aren't supported. + /// + /// If you're setting an IPC resource namespace to use for the containers in the task, the following conditions apply to your system controls. For more information, see [IPC mode](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#task_definition_ipcmode). + /// + For tasks that use the ``host`` IPC mode, IPC namespace ``systemControls`` aren't supported. + /// + For tasks that use the ``task`` IPC mode, IPC namespace ``systemControls`` values apply to all containers within a task. + /// + /// This parameter is not supported for Windows containers. + /// This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate. /// public sealed class TaskDefinitionSystemControlArgs : global::Pulumi.ResourceArgs { diff --git a/sdk/dotnet/Ecs/Inputs/TaskDefinitionVolumeArgs.cs b/sdk/dotnet/Ecs/Inputs/TaskDefinitionVolumeArgs.cs index f82c12896e..8e196039f5 100644 --- a/sdk/dotnet/Ecs/Inputs/TaskDefinitionVolumeArgs.cs +++ b/sdk/dotnet/Ecs/Inputs/TaskDefinitionVolumeArgs.cs @@ -36,6 +36,9 @@ public sealed class TaskDefinitionVolumeArgs : global::Pulumi.ResourceArgs [Input("efsVolumeConfiguration")] public Input? EfsVolumeConfiguration { get; set; } + [Input("fSxWindowsFileServerVolumeConfiguration")] + public Input? FSxWindowsFileServerVolumeConfiguration { get; set; } + /// /// This parameter is specified when you use bind mount host volumes. The contents of the ``host`` parameter determine whether your bind mount host volume persists on the host container instance and where it's stored. If the ``host`` parameter is empty, then the Docker daemon assigns a host path for your data volume. However, the data isn't guaranteed to persist after the containers that are associated with it stop running. /// Windows containers can mount whole directories on the same drive as ``$env:ProgramData``. Windows containers can't mount directories on a different drive, and mount point can't be across drives. For example, you can mount ``C:\my\path:C:\my\path`` and ``D:\:D:\``, but not ``D:\my\path:C:\my\path`` or ``D:\:C:\my\path``. diff --git a/sdk/dotnet/Ecs/Outputs/TaskDefinitionContainerDefinition.cs b/sdk/dotnet/Ecs/Outputs/TaskDefinitionContainerDefinition.cs index 7c1d432f7e..078fff73f0 100644 --- a/sdk/dotnet/Ecs/Outputs/TaskDefinitionContainerDefinition.cs +++ b/sdk/dotnet/Ecs/Outputs/TaskDefinitionContainerDefinition.cs @@ -24,7 +24,12 @@ public sealed class TaskDefinitionContainerDefinition /// The number of ``cpu`` units reserved for the container. This parameter maps to ``CpuShares`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cpu-shares`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). /// This field is optional for tasks using the Fargate launch type, and the only requirement is that the total amount of CPU reserved for all containers within a task be lower than the task-level ``cpu`` value. /// You can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the [Amazon EC2 Instances](https://docs.aws.amazon.com/ec2/instance-types/) detail page by 1,024. - /// Linux containers share unallocated CPU units with other containers on the cont + /// Linux containers share unallocated CPU units with other containers on the container instance with the same ratio as their allocated amount. For example, if you run a single-container task on a single-core instance type with 512 CPU units specified for that container, and that's the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time. However, if you launched another copy of the same task on that container instance, each task is guaranteed a minimum of 512 CPU units when needed. Moreover, each container could float to higher CPU usage if the other container was not using it. If both tasks were 100% active all of the time, they would be limited to 512 CPU units. + /// On Linux container instances, the Docker daemon on the container instance uses the CPU value to calculate the relative CPU share ratios for running containers. For more information, see [CPU share constraint](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#cpu-share-constraint) in the Docker documentation. The minimum valid CPU share value that the Linux kernel allows is 2. However, the CPU parameter isn't required, and you can use CPU values below 2 in your container definitions. For CPU values below 2 (including null), the behavior varies based on your Amazon ECS container agent version: + /// + *Agent versions less than or equal to 1.1.0:* Null and zero CPU values are passed to Docker as 0, which Docker then converts to 1,024 CPU shares. CPU values of 1 are passed to Docker as 1, which the Linux kernel converts to two CPU shares. + /// + *Agent versions greater than or equal to 1.2.0:* Null, zero, and CPU values of 1 are passed to Docker as 2. + /// + /// On Windows container instances, the CPU limit is enforced as an absolute limit, or a quota. Windows containers only have access to the specified amount of CPU that's described in the task definition. A null or zero CPU value is passed to Docker as ``0``, which Windows interprets as 1% of one CPU. /// public readonly int? Cpu; /// @@ -32,12 +37,17 @@ public sealed class TaskDefinitionContainerDefinition /// There are two formats for each ARN. /// + credentialspecdomainless:MyARN You use credentialspecdomainless:MyARN to provide a CredSpec with an additional section for a secret in . You provide the login credentials to the domain in the secret. Each task that runs on any container instance can join different domains. You can use this format without joining the container instance to a domain. + credentialspec:MyARN You use credentialspec:MyARN to provide a CredSpec for a single domain. You must join the container instance to the domain before you start any tasks that use this task definition. /// In both formats, replace ``MyARN`` with the ARN in SSM or Amazon S3. - /// If you provide a ``credentialspecdomainless:MyARN``, the ``credspec`` must + /// If you provide a ``credentialspecdomainless:MyARN``, the ``credspec`` must provide a ARN in ASMlong for a secret containing the username, password, and the domain to connect to. For better security, the instance isn't joined to the domain for domainless authentication. Other applications on the instance can't use the domainless credentials. You can use this parameter to run tasks on the same instance, even it the tasks need to join different domains. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) and [Using gMSAs for Linux Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html). /// public readonly ImmutableArray CredentialSpecs; /// /// The dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed. - /// For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [ + /// For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + /// For tasks using the Fargate launch type, the task or service requires the following platforms: + /// + Linux platform version ``1.3.0`` or later. + /// + Windows platform version ``1.0.0`` or later. + /// + /// If the task definition is used in a blue/green deployment that uses [AWS::CodeDeploy::DeploymentGroup BlueGreenDeploymentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-bluegreendeploymentconfiguration.html), the ``dependsOn`` parameter is not supported. For more information see [Issue #680](https://docs.aws.amazon.com/https://github.com/aws-cloudformation/cloudformation-coverage-roadmap/issues/680) on the on the GitHub website. /// public readonly ImmutableArray DependsOn; /// @@ -63,7 +73,10 @@ public sealed class TaskDefinitionContainerDefinition /// A list of strings to provide custom configuration for multiple security systems. For more information about valid values, see [Docker Run Security Configuration](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). This field isn't valid for containers in tasks using the Fargate launch type. /// For Linux tasks on EC2, this parameter can be used to reference custom labels for SELinux and AppArmor multi-level security systems. /// For any tasks on EC2, this parameter can be used to reference a credential spec file that configures a container for Active Directory authentication. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) and [Using gMSAs for Linux Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html) in the *Amazon Elastic Container Service Developer Guide*. - /// This parameter maps to ``SecurityOpt`` in the [Create a co + /// This parameter maps to ``SecurityOpt`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--security-opt`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + /// The Amazon ECS container agent running on a container instance must register with the ``ECS_SELINUX_CAPABLE=true`` or ``ECS_APPARMOR_CAPABLE=true`` environment variables before containers placed on that instance can use these security options. For more information, see [Amazon ECS Container Agent Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*. + /// For more information about valid values, see [Docker Run Security Configuration](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + /// Valid values: "no-new-privileges" | "apparmor:PROFILE" | "label:value" | "credentialspec:CredentialSpecFilePath" /// public readonly ImmutableArray DockerSecurityOptions; /// @@ -79,7 +92,7 @@ public sealed class TaskDefinitionContainerDefinition /// /// A list of files containing the environment variables to pass to a container. This parameter maps to the ``--env-file`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). /// You can specify up to ten environment files. The file must have a ``.env`` file extension. Each line in an environment file contains an environment variable in ``VARIABLE=VALUE`` format. Lines beginning with ``#`` are treated as comments and are ignored. For more information about the environment variable file syntax, see [Declare default environment variables in file](https://docs.aws.amazon.com/https://docs.docker.com/compose/env-file/). - /// If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend t + /// If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Specifying Environment Variables](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) in the *Amazon Elastic Container Service Developer Guide*. /// public readonly ImmutableArray EnvironmentFiles; /// @@ -107,7 +120,11 @@ public sealed class TaskDefinitionContainerDefinition public readonly string? Hostname; /// /// The image used to start a container. This string is passed directly to the Docker daemon. By default, images in the Docker Hub registry are available. Other repositories are specified with either ``repository-url/image:tag`` or ``repository-url/image@digest``. Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to ``Image`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``IMAGE`` parameter of [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - /// + When a new task starts, the Amazon ECS container agent pulls the latest version of the specified image and tag for the container to use. However, subsequent updates to a repository image + /// + When a new task starts, the Amazon ECS container agent pulls the latest version of the specified image and tag for the container to use. However, subsequent updates to a repository image aren't propagated to already running tasks. + /// + Images in Amazon ECR repositories can be specified by either using the full ``registry/repository:tag`` or ``registry/repository@digest``. For example, ``012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>:latest`` or ``012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE``. + /// + Images in official repositories on Docker Hub use a single name (for example, ``ubuntu`` or ``mongo``). + /// + Images in other repositories on Docker Hub are qualified with an organization name (for example, ``amazon/amazon-ecs-agent``). + /// + Images in other online repositories are qualified further by a domain name (for example, ``quay.io/assemblyline/ubuntu``). /// public readonly string Image; /// @@ -116,7 +133,8 @@ public sealed class TaskDefinitionContainerDefinition public readonly bool? Interactive; /// /// The ``links`` parameter allows containers to communicate with each other without the need for port mappings. This parameter is only supported if the network mode of a task definition is ``bridge``. The ``name:internalName`` construct is analogous to ``name:alias`` in Docker links. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. For more information about linking Docker containers, go to [Legacy container links](https://docs.aws.amazon.com/https://docs.docker.com/network/links/) in the Docker documentation. This parameter maps to ``Links`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--link`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - /// This parameter is not supported for W + /// This parameter is not supported for Windows containers. + /// Containers that are collocated on a single container instance may be able to communicate with each other without requiring links or host port mappings. Network isolation is achieved on the container instance using security groups and VPC settings. /// public readonly ImmutableArray Links; /// @@ -126,18 +144,26 @@ public sealed class TaskDefinitionContainerDefinition public readonly Outputs.TaskDefinitionLinuxParameters? LinuxParameters; /// /// The log configuration specification for the container. - /// This parameter maps to ``LogConfig`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--log-driver`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). By default, containers use the same logging driver that the Docker daemon uses. However, the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.aws.amazon.com/htt + /// This parameter maps to ``LogConfig`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--log-driver`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). By default, containers use the same logging driver that the Docker daemon uses. However, the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.aws.amazon.com/https://docs.docker.com/engine/admin/logging/overview/) in the Docker documentation. + /// Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon (shown in the [LogConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_LogConfiguration.html) data type). Additional log drivers may be available in future releases of the Amazon ECS container agent. + /// This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'`` + /// The Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the ``ECS_AVAILABLE_LOGGING_DRIVERS`` environment variable before containers placed on that instance can use these log configuration options. For more information, see [Amazon ECS Container Agent Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*. /// public readonly Outputs.TaskDefinitionLogConfiguration? LogConfiguration; /// /// The amount (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. The total amount of memory reserved for all containers within a task must be lower than the task ``memory`` value, if one is specified. This parameter maps to ``Memory`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). /// If using the Fargate launch type, this parameter is optional. - /// If using the EC2 launch type, you must specify either a task-level memory value or a container-level memory value. If you specify both a container-level ``memory`` and ``memoryReservation`` value, ``memory`` must be greater than ``memoryReserva + /// If using the EC2 launch type, you must specify either a task-level memory value or a container-level memory value. If you specify both a container-level ``memory`` and ``memoryReservation`` value, ``memory`` must be greater than ``memoryReservation``. If you specify ``memoryReservation``, then that value is subtracted from the available memory resources for the container instance where the container is placed. Otherwise, the value of ``memory`` is used. + /// The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container, so you should not specify fewer than 6 MiB of memory for your containers. + /// The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container, so you should not specify fewer than 4 MiB of memory for your containers. /// public readonly int? Memory; /// /// The soft limit (in MiB) of memory to reserve for the container. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit. However, your container can consume more memory when it needs to, up to either the hard limit specified with the ``memory`` parameter (if applicable), or all of the available memory on the container instance, whichever comes first. This parameter maps to ``MemoryReservation`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory-reservation`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - /// If a task-level memory value is not specified, you must specify a non-zero integer for one or both of ``memory`` or ``memoryReservation`` in a container definiti + /// If a task-level memory value is not specified, you must specify a non-zero integer for one or both of ``memory`` or ``memoryReservation`` in a container definition. If you specify both, ``memory`` must be greater than ``memoryReservation``. If you specify ``memoryReservation``, then that value is subtracted from the available memory resources for the container instance where the container is placed. Otherwise, the value of ``memory`` is used. + /// For example, if your container normally uses 128 MiB of memory, but occasionally bursts to 256 MiB of memory for short periods of time, you can set a ``memoryReservation`` of 128 MiB, and a ``memory`` hard limit of 300 MiB. This configuration would allow the container to only reserve 128 MiB of memory from the remaining resources on the container instance, but also allow the container to consume more memory resources when needed. + /// The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container. So, don't specify less than 6 MiB of memory for your containers. + /// The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container. So, don't specify less than 4 MiB of memory for your containers. /// public readonly int? MemoryReservation; /// @@ -154,7 +180,8 @@ public sealed class TaskDefinitionContainerDefinition /// The list of port mappings for the container. Port mappings allow containers to access ports on the host container instance to send or receive traffic. /// For task definitions that use the ``awsvpc`` network mode, you should only specify the ``containerPort``. The ``hostPort`` can be left blank or it must be the same value as the ``containerPort``. /// Port mappings on Windows use the ``NetNAT`` gateway address rather than ``localhost``. There is no loopback for port mappings on Windows, so you cannot access a container's mapped port from the host itself. - /// This parameter maps to ``PortBindings`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--publish`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). If the network mode of a task definition is set to + /// This parameter maps to ``PortBindings`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--publish`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). If the network mode of a task definition is set to ``none``, then you can't specify port mappings. If the network mode of a task definition is set to ``host``, then host ports must either be undefined or they must match the container port in the port mapping. + /// After a task reaches the ``RUNNING`` status, manual and automatic host and container port assignments are visible in the *Network Bindings* section of a container description for a selected task in the Amazon ECS console. The assignments are also visible in the ``networkBindings`` section [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) responses. /// public readonly ImmutableArray PortMappings; /// @@ -190,7 +217,8 @@ public sealed class TaskDefinitionContainerDefinition /// + Linux platform version ``1.3.0`` or later. /// + Windows platform version ``1.0.0`` or later. /// - /// For tasks using the EC2 launch type, your container instances require at least version ``1.26.0`` of the container agent to use a container start timeout value. However + /// For tasks using the EC2 launch type, your container instances require at least version ``1.26.0`` of the container agent to use a container start timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version ``1.26.0-1`` of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + /// The valid values are 2-120 seconds. /// public readonly int? StartTimeout; /// @@ -200,7 +228,8 @@ public sealed class TaskDefinitionContainerDefinition /// + Windows platform version ``1.0.0`` or later. /// /// The max stop timeout value is 120 seconds and if the parameter is not specified, the default value of 30 seconds is used. - /// For tasks that use the EC2 launch type, if the ``stopTimeout`` parameter isn't specified, the value set for the Amazon ECS container agent configuration variable ``ECS_CONTAINER_STOP_TIMEOUT`` is used. If neither the ``stopTimeout`` parameter or the ``ECS_CONTAINER_STOP_TIMEOUT`` agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to use a container stop timeout value. However, we recomm + /// For tasks that use the EC2 launch type, if the ``stopTimeout`` parameter isn't specified, the value set for the Amazon ECS container agent configuration variable ``ECS_CONTAINER_STOP_TIMEOUT`` is used. If neither the ``stopTimeout`` parameter or the ``ECS_CONTAINER_STOP_TIMEOUT`` agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to use a container stop timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + /// The valid values are 2-120 seconds. /// public readonly int? StopTimeout; /// diff --git a/sdk/dotnet/Ecs/Outputs/TaskDefinitionContainerDependency.cs b/sdk/dotnet/Ecs/Outputs/TaskDefinitionContainerDependency.cs index 62cf692efb..deaf295671 100644 --- a/sdk/dotnet/Ecs/Outputs/TaskDefinitionContainerDependency.cs +++ b/sdk/dotnet/Ecs/Outputs/TaskDefinitionContainerDependency.cs @@ -12,7 +12,8 @@ namespace Pulumi.AwsNative.Ecs.Outputs /// /// The ``ContainerDependency`` property specifies the dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed. - /// Your Amazon ECS container instances require at least version 1.26.0 of the container agent to enable container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you are using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For m + /// Your Amazon ECS container instances require at least version 1.26.0 of the container agent to enable container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you are using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + /// For tasks using the Fargate launch type, this parameter requires that the task or service uses platform version 1.3.0 or later. /// [OutputType] public sealed class TaskDefinitionContainerDependency @@ -22,7 +23,7 @@ public sealed class TaskDefinitionContainerDependency /// + ``START`` - This condition emulates the behavior of links and volumes today. It validates that a dependent container is started before permitting other containers to start. /// + ``COMPLETE`` - This condition validates that a dependent container runs to completion (exits) before permitting other containers to start. This can be useful for nonessential containers that run a script and then exit. This condition can't be set on an essential container. /// + ``SUCCESS`` - This condition is the same as ``COMPLETE``, but it also requires that the container exits with a ``zero`` status. This condition can't be set on an essential container. - /// + ``HEALTHY`` - This condition validates that the dependent container passes its Docker health check before permitting other containers to start. This requires that the dependent container has health checks configured. This condition is confi + /// + ``HEALTHY`` - This condition validates that the dependent container passes its Docker health check before permitting other containers to start. This requires that the dependent container has health checks configured. This condition is confirmed only at task startup. /// public readonly string? Condition; /// diff --git a/sdk/dotnet/Ecs/Outputs/TaskDefinitionEnvironmentFile.cs b/sdk/dotnet/Ecs/Outputs/TaskDefinitionEnvironmentFile.cs index e7430611f9..d48c8c8950 100644 --- a/sdk/dotnet/Ecs/Outputs/TaskDefinitionEnvironmentFile.cs +++ b/sdk/dotnet/Ecs/Outputs/TaskDefinitionEnvironmentFile.cs @@ -12,15 +12,22 @@ namespace Pulumi.AwsNative.Ecs.Outputs /// /// A list of files containing the environment variables to pass to a container. You can specify up to ten environment files. The file must have a ``.env`` file extension. Each line in an environment file should contain an environment variable in ``VARIABLE=VALUE`` format. Lines beginning with ``#`` are treated as comments and are ignored. - /// If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Specifying environment variables](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) in the *Amazon Elastic Container Service Developer Guide*. + /// If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Use a file to pass environment variables to a container](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/use-environment-file.html) in the *Amazon Elastic Container Service Developer Guide*. + /// Environment variable files are objects in Amazon S3 and all Amazon S3 security considerations apply. /// You must use the following platforms for the Fargate launch type: - /// + Linux platform version ``1.4.0`` or la + /// + Linux platform version ``1.4.0`` or later. + /// + Windows platform version ``1.0.0`` or later. + /// + /// Consider the following when using the Fargate launch type: + /// + The file is handled like a native Docker env-file. + /// + There is no support for shell escape handling. + /// + The container entry point interperts the ``VARIABLE`` values. /// [OutputType] public sealed class TaskDefinitionEnvironmentFile { /// - /// The file type to use. The only supported value is ``s3``. + /// The file type to use. Environment files are objects in Amazon S3. The only supported value is ``s3``. /// public readonly string? Type; /// diff --git a/sdk/dotnet/Ecs/Outputs/TaskDefinitionEphemeralStorage.cs b/sdk/dotnet/Ecs/Outputs/TaskDefinitionEphemeralStorage.cs index 4950abeeb1..c95012b2c6 100644 --- a/sdk/dotnet/Ecs/Outputs/TaskDefinitionEphemeralStorage.cs +++ b/sdk/dotnet/Ecs/Outputs/TaskDefinitionEphemeralStorage.cs @@ -20,7 +20,7 @@ namespace Pulumi.AwsNative.Ecs.Outputs public sealed class TaskDefinitionEphemeralStorage { /// - /// The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``21`` GiB and the maximum supported value is ``200`` GiB. + /// The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``20`` GiB and the maximum supported value is ``200`` GiB. /// public readonly int? SizeInGiB; diff --git a/sdk/dotnet/Ecs/Outputs/TaskDefinitionFSxAuthorizationConfig.cs b/sdk/dotnet/Ecs/Outputs/TaskDefinitionFSxAuthorizationConfig.cs new file mode 100644 index 0000000000..4b4b209644 --- /dev/null +++ b/sdk/dotnet/Ecs/Outputs/TaskDefinitionFSxAuthorizationConfig.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.Ecs.Outputs +{ + + [OutputType] + public sealed class TaskDefinitionFSxAuthorizationConfig + { + public readonly string CredentialsParameter; + public readonly string Domain; + + [OutputConstructor] + private TaskDefinitionFSxAuthorizationConfig( + string credentialsParameter, + + string domain) + { + CredentialsParameter = credentialsParameter; + Domain = domain; + } + } +} diff --git a/sdk/dotnet/Ecs/Outputs/TaskDefinitionFSxWindowsFileServerVolumeConfiguration.cs b/sdk/dotnet/Ecs/Outputs/TaskDefinitionFSxWindowsFileServerVolumeConfiguration.cs new file mode 100644 index 0000000000..3f9d15db78 --- /dev/null +++ b/sdk/dotnet/Ecs/Outputs/TaskDefinitionFSxWindowsFileServerVolumeConfiguration.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.Ecs.Outputs +{ + + [OutputType] + public sealed class TaskDefinitionFSxWindowsFileServerVolumeConfiguration + { + public readonly Outputs.TaskDefinitionFSxAuthorizationConfig? AuthorizationConfig; + public readonly string FileSystemId; + public readonly string RootDirectory; + + [OutputConstructor] + private TaskDefinitionFSxWindowsFileServerVolumeConfiguration( + Outputs.TaskDefinitionFSxAuthorizationConfig? authorizationConfig, + + string fileSystemId, + + string rootDirectory) + { + AuthorizationConfig = authorizationConfig; + FileSystemId = fileSystemId; + RootDirectory = rootDirectory; + } + } +} diff --git a/sdk/dotnet/Ecs/Outputs/TaskDefinitionFirelensConfiguration.cs b/sdk/dotnet/Ecs/Outputs/TaskDefinitionFirelensConfiguration.cs index 5a3832067a..42c79a90a3 100644 --- a/sdk/dotnet/Ecs/Outputs/TaskDefinitionFirelensConfiguration.cs +++ b/sdk/dotnet/Ecs/Outputs/TaskDefinitionFirelensConfiguration.cs @@ -19,9 +19,9 @@ public sealed class TaskDefinitionFirelensConfiguration /// /// The options to use when configuring the log router. This field is optional and can be used to add additional metadata, such as the task, task definition, cluster, and container instance details to the log event. /// If specified, valid option keys are: - /// + ``enable-ecs-log-metadata``, which can be ``true`` or ``false`` - /// + ``config-file-type``, which can be ``s3`` or ``file`` - /// + ``config-file-value``, which is either an S3 ARN or a file path + /// + ``enable-ecs-log-metadata``, which can be ``true`` or ``false`` + /// + ``config-file-type``, which can be ``s3`` or ``file`` + /// + ``config-file-value``, which is either an S3 ARN or a file path /// public readonly ImmutableDictionary? Options; /// diff --git a/sdk/dotnet/Ecs/Outputs/TaskDefinitionHealthCheck.cs b/sdk/dotnet/Ecs/Outputs/TaskDefinitionHealthCheck.cs index 70e0871533..1111c91539 100644 --- a/sdk/dotnet/Ecs/Outputs/TaskDefinitionHealthCheck.cs +++ b/sdk/dotnet/Ecs/Outputs/TaskDefinitionHealthCheck.cs @@ -13,7 +13,11 @@ namespace Pulumi.AwsNative.Ecs.Outputs /// /// The ``HealthCheck`` property specifies an object representing a container health check. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image (such as those specified in a parent image or from the image's Dockerfile). This configuration maps to the ``HEALTHCHECK`` parameter of [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). /// The Amazon ECS container agent only monitors and reports on the health checks specified in the task definition. Amazon ECS does not monitor Docker health checks that are embedded in a container image and not specified in the container definition. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image. - /// If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a servi + /// If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a service, if the task reports as unhealthy then the task will be stopped and the service scheduler will replace it. + /// The following are notes about container health check support: + /// + Container health checks require version 1.17.0 or greater of the Amazon ECS container agent. For more information, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html). + /// + Container health checks are supported for Fargate tasks if you are using platform version 1.1.0 or greater. For more information, see [Platform Versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). + /// + Container health checks are not supported for tasks that are part of a service that is configured to use a Classic Load Balancer. /// [OutputType] public sealed class TaskDefinitionHealthCheck diff --git a/sdk/dotnet/Ecs/Outputs/TaskDefinitionKernelCapabilities.cs b/sdk/dotnet/Ecs/Outputs/TaskDefinitionKernelCapabilities.cs index 76b3d4ee62..0a79dda47c 100644 --- a/sdk/dotnet/Ecs/Outputs/TaskDefinitionKernelCapabilities.cs +++ b/sdk/dotnet/Ecs/Outputs/TaskDefinitionKernelCapabilities.cs @@ -11,7 +11,7 @@ namespace Pulumi.AwsNative.Ecs.Outputs { /// - /// The ``KernelCapabilities`` property specifies the Linux capabilities for the container that are added to or dropped from the default configuration that is provided by Docker. For more information on the default capabilities and the non-default available capabilities, see [Runtime privilege and Linux capabilities](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) in the *Docker run reference*. For more detailed information on these Linux capabilities, see the [capabilities(7)](https://docs.aws.amazon.com/http://man7.org/linux/man-pages/man7/capabilities.7.html) Linux manual page. + /// The Linux capabilities to add or remove from the default Docker configuration for a container defined in the task definition. For more information about the default capabilities and the non-default available capabilities, see [Runtime privilege and Linux capabilities](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) in the *Docker run reference*. For more detailed information about these Linux capabilities, see the [capabilities(7)](https://docs.aws.amazon.com/http://man7.org/linux/man-pages/man7/capabilities.7.html) Linux manual page. /// [OutputType] public sealed class TaskDefinitionKernelCapabilities @@ -19,12 +19,12 @@ public sealed class TaskDefinitionKernelCapabilities /// /// The Linux capabilities for the container that have been added to the default configuration provided by Docker. This parameter maps to ``CapAdd`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-add`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). /// Tasks launched on FARGATElong only support adding the ``SYS_PTRACE`` kernel capability. - /// Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" + /// Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"`` /// public readonly ImmutableArray Add; /// /// The Linux capabilities for the container that have been removed from the default configuration provided by Docker. This parameter maps to ``CapDrop`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-drop`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - /// Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" + /// Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"`` /// public readonly ImmutableArray Drop; diff --git a/sdk/dotnet/Ecs/Outputs/TaskDefinitionLogConfiguration.cs b/sdk/dotnet/Ecs/Outputs/TaskDefinitionLogConfiguration.cs index c474ae1758..44708bd81c 100644 --- a/sdk/dotnet/Ecs/Outputs/TaskDefinitionLogConfiguration.cs +++ b/sdk/dotnet/Ecs/Outputs/TaskDefinitionLogConfiguration.cs @@ -22,7 +22,7 @@ public sealed class TaskDefinitionLogConfiguration /// For tasks hosted on Amazon EC2 instances, the supported log drivers are ``awslogs``, ``fluentd``, ``gelf``, ``json-file``, ``journald``, ``logentries``,``syslog``, ``splunk``, and ``awsfirelens``. /// For more information about using the ``awslogs`` log driver, see [Using the awslogs log driver](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html) in the *Amazon Elastic Container Service Developer Guide*. /// For more information about using the ``awsfirelens`` log driver, see [Custom log routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*. - /// If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs + /// If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs-agent) and customize it to work with that driver. We encourage you to submit pull requests for changes that you would like to have included. However, we don't currently provide support for running modified copies of this software. /// public readonly string LogDriver; /// diff --git a/sdk/dotnet/Ecs/Outputs/TaskDefinitionPortMapping.cs b/sdk/dotnet/Ecs/Outputs/TaskDefinitionPortMapping.cs index fcf6217dd3..981b890ea4 100644 --- a/sdk/dotnet/Ecs/Outputs/TaskDefinitionPortMapping.cs +++ b/sdk/dotnet/Ecs/Outputs/TaskDefinitionPortMapping.cs @@ -22,7 +22,7 @@ public sealed class TaskDefinitionPortMapping /// The application protocol that's used for the port mapping. This parameter only applies to Service Connect. We recommend that you set this parameter to be consistent with the protocol that your application uses. If you set this parameter, Amazon ECS adds protocol-specific connection handling to the Service Connect proxy. If you set this parameter, Amazon ECS adds protocol-specific telemetry in the Amazon ECS console and CloudWatch. /// If you don't set a value for this parameter, then TCP is used. However, Amazon ECS doesn't add protocol-specific telemetry for TCP. /// ``appProtocol`` is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment. - /// Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS se + /// Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. /// public readonly Pulumi.AwsNative.Ecs.TaskDefinitionPortMappingAppProtocol? AppProtocol; /// @@ -41,7 +41,17 @@ public sealed class TaskDefinitionPortMapping /// + You can specify a maximum of 100 port ranges per container. /// + You do not specify a ``hostPortRange``. The value of the ``hostPortRange`` is set as follows: /// + For containers in a task with the ``awsvpc`` network mode, the ``hostPortRange`` is set to the same value as the ``containerPortRange``. This is a static mapping strategy. - /// + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open host + /// + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open host ports from the default ephemeral range and passes it to docker to bind them to the container ports. + /// + /// + The ``containerPortRange`` valid values are between 1 and 65535. + /// + A port can only be included in one port mapping per container. + /// + You cannot specify overlapping port ranges. + /// + The first port in the range must be less than last port in the range. + /// + Docker recommends that you turn off the docker-proxy in the Docker daemon config file when you have a large number of ports. + /// For more information, see [Issue #11185](https://docs.aws.amazon.com/https://github.com/moby/moby/issues/11185) on the Github website. + /// For information about how to turn off the docker-proxy in the Docker daemon config file, see [Docker daemon](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/bootstrap_container_instance.html#bootstrap_docker_daemon) in the *Amazon ECS Developer Guide*. + /// + /// You can call [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) to view the ``hostPortRange`` which are the host ports that are bound to the container ports. /// public readonly string? ContainerPortRange; /// @@ -51,7 +61,9 @@ public sealed class TaskDefinitionPortMapping /// + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open ports on the host and automatically binds them to the container ports. This is a dynamic mapping strategy. /// /// If you use containers in a task with the ``awsvpc`` or ``host`` network mode, the ``hostPort`` can either be left blank or set to the same value as the ``containerPort``. - /// If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0``) while specifying a ``containerPort`` and your container automatically + /// If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0``) while specifying a ``containerPort`` and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version. + /// The default ephemeral port range for Docker version 1.6.0 and later is listed on the instance under ``/proc/sys/net/ipv4/ip_local_port_range``. If this kernel parameter is unavailable, the default ephemeral port range from 49153 through 65535 (Linux) or 49152 through 65535 (Windows) is used. Do not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range. + /// The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678-51680. Any host port that was previously specified in a running task is also reserved while the task is running. That is, after a task stops, the host port is released. The current reserved ports are displayed in the ``remainingResources`` of [DescribeContainerInstances](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html) output. A container instance can have up to 100 reserved ports at a time. This number includes the default reserved ports. Automatically assigned ports aren't included in the 100 reserved ports quota. /// public readonly int? HostPort; /// diff --git a/sdk/dotnet/Ecs/Outputs/TaskDefinitionProxyConfiguration.cs b/sdk/dotnet/Ecs/Outputs/TaskDefinitionProxyConfiguration.cs index c731f03302..e7d21eea00 100644 --- a/sdk/dotnet/Ecs/Outputs/TaskDefinitionProxyConfiguration.cs +++ b/sdk/dotnet/Ecs/Outputs/TaskDefinitionProxyConfiguration.cs @@ -27,7 +27,9 @@ public sealed class TaskDefinitionProxyConfiguration /// + ``IgnoredGID`` - (Required) The group ID (GID) of the proxy container as defined by the ``user`` parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If ``IgnoredUID`` is specified, this field can be empty. /// + ``AppPorts`` - (Required) The list of ports that the application uses. Network traffic to these ports is forwarded to the ``ProxyIngressPort`` and ``ProxyEgressPort``. /// + ``ProxyIngressPort`` - (Required) Specifies the port that incoming traffic to the ``AppPorts`` is directed to. - /// + ``ProxyEgressPort`` - (Required) Specifies the port that outgoi + /// + ``ProxyEgressPort`` - (Required) Specifies the port that outgoing traffic from the ``AppPorts`` is directed to. + /// + ``EgressIgnoredPorts`` - (Required) The egress traffic going to the specified ports is ignored and not redirected to the ``ProxyEgressPort``. It can be an empty list. + /// + ``EgressIgnoredIPs`` - (Required) The egress traffic going to the specified IP addresses is ignored and not redirected to the ``ProxyEgressPort``. It can be an empty list. /// public readonly ImmutableArray ProxyConfigurationProperties; /// diff --git a/sdk/dotnet/Ecs/Outputs/TaskDefinitionSystemControl.cs b/sdk/dotnet/Ecs/Outputs/TaskDefinitionSystemControl.cs index 9b3a435517..298cdf6e40 100644 --- a/sdk/dotnet/Ecs/Outputs/TaskDefinitionSystemControl.cs +++ b/sdk/dotnet/Ecs/Outputs/TaskDefinitionSystemControl.cs @@ -13,7 +13,15 @@ namespace Pulumi.AwsNative.Ecs.Outputs /// /// A list of namespaced kernel parameters to set in the container. This parameter maps to ``Sysctls`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--sysctl`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). For example, you can configure ``net.ipv4.tcp_keepalive_time`` setting to maintain longer lived connections. /// We don't recommend that you specify network-related ``systemControls`` parameters for multiple containers in a single task that also uses either the ``awsvpc`` or ``host`` network mode. Doing this has the following disadvantages: - /// + For tasks that use the ``awsvpc`` network mode including Fargate, if you set ``systemControls`` for any container, it applies to all containers in the task. If you set different ``sy + /// + For tasks that use the ``awsvpc`` network mode including Fargate, if you set ``systemControls`` for any container, it applies to all containers in the task. If you set different ``systemControls`` for multiple containers in a single task, the container that's started last determines which ``systemControls`` take effect. + /// + For tasks that use the ``host`` network mode, the network namespace ``systemControls`` aren't supported. + /// + /// If you're setting an IPC resource namespace to use for the containers in the task, the following conditions apply to your system controls. For more information, see [IPC mode](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#task_definition_ipcmode). + /// + For tasks that use the ``host`` IPC mode, IPC namespace ``systemControls`` aren't supported. + /// + For tasks that use the ``task`` IPC mode, IPC namespace ``systemControls`` values apply to all containers within a task. + /// + /// This parameter is not supported for Windows containers. + /// This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate. /// [OutputType] public sealed class TaskDefinitionSystemControl diff --git a/sdk/dotnet/Ecs/Outputs/TaskDefinitionVolume.cs b/sdk/dotnet/Ecs/Outputs/TaskDefinitionVolume.cs index 3e3156650e..4def90112c 100644 --- a/sdk/dotnet/Ecs/Outputs/TaskDefinitionVolume.cs +++ b/sdk/dotnet/Ecs/Outputs/TaskDefinitionVolume.cs @@ -31,6 +31,7 @@ public sealed class TaskDefinitionVolume /// This parameter is specified when you use an Amazon Elastic File System file system for task storage. /// public readonly Outputs.TaskDefinitionEfsVolumeConfiguration? EfsVolumeConfiguration; + public readonly Outputs.TaskDefinitionFSxWindowsFileServerVolumeConfiguration? FSxWindowsFileServerVolumeConfiguration; /// /// This parameter is specified when you use bind mount host volumes. The contents of the ``host`` parameter determine whether your bind mount host volume persists on the host container instance and where it's stored. If the ``host`` parameter is empty, then the Docker daemon assigns a host path for your data volume. However, the data isn't guaranteed to persist after the containers that are associated with it stop running. /// Windows containers can mount whole directories on the same drive as ``$env:ProgramData``. Windows containers can't mount directories on a different drive, and mount point can't be across drives. For example, you can mount ``C:\my\path:C:\my\path`` and ``D:\:D:\``, but not ``D:\my\path:C:\my\path`` or ``D:\:C:\my\path``. @@ -52,6 +53,8 @@ private TaskDefinitionVolume( Outputs.TaskDefinitionEfsVolumeConfiguration? efsVolumeConfiguration, + Outputs.TaskDefinitionFSxWindowsFileServerVolumeConfiguration? fSxWindowsFileServerVolumeConfiguration, + Outputs.TaskDefinitionHostVolumeProperties? host, string? name) @@ -59,6 +62,7 @@ private TaskDefinitionVolume( ConfiguredAtLaunch = configuredAtLaunch; DockerVolumeConfiguration = dockerVolumeConfiguration; EfsVolumeConfiguration = efsVolumeConfiguration; + FSxWindowsFileServerVolumeConfiguration = fSxWindowsFileServerVolumeConfiguration; Host = host; Name = name; } diff --git a/sdk/dotnet/Ecs/TaskDefinition.cs b/sdk/dotnet/Ecs/TaskDefinition.cs index 3927fced64..a75ec4a770 100644 --- a/sdk/dotnet/Ecs/TaskDefinition.cs +++ b/sdk/dotnet/Ecs/TaskDefinition.cs @@ -12,7 +12,9 @@ namespace Pulumi.AwsNative.Ecs /// /// Registers a new task definition from the supplied ``family`` and ``containerDefinitions``. Optionally, you can add data volumes to your containers with the ``volumes`` parameter. For more information about task definition parameters and defaults, see [Amazon ECS Task Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) in the *Amazon Elastic Container Service Developer Guide*. /// You can specify a role for your task with the ``taskRoleArn`` parameter. When you specify a role for a task, its containers can then use the latest versions of the CLI or SDKs to make API requests to the AWS services that are specified in the policy that's associated with the role. For more information, see [IAM Roles for Tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*. - /// You can specify a Docker networking mode for the containers in your task definition with the ``networkMod + /// You can specify a Docker networking mode for the containers in your task definition with the ``networkMode`` parameter. The available network modes correspond to those described in [Network settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#/network-settings) in the Docker run reference. If you specify the ``awsvpc`` network mode, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*. + /// In the following example or examples, the Authorization header contents (``AUTHPARAMS``) must be replaced with an AWS Signature Version 4 signature. For more information, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the *General Reference*. + /// You only need to learn how to sign HTTP requests if you intend to create them manually. When you use the [](https://docs.aws.amazon.com/cli/) or one of the [SDKs](https://docs.aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you, with the access key that you specify when you configure the tools. When you use these tools, you don't have to sign requests yourself. /// /// ## Example Usage /// ### Example @@ -321,7 +323,10 @@ public partial class TaskDefinition : global::Pulumi.CustomResource /// + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) /// + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) /// + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - /// + 8192 (8 vCPU) - Available ``memory`` va + /// + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments + /// This option requires Linux platform ``1.4.0`` or later. + /// + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments + /// This option requires Linux platform ``1.4.0`` or later. /// [Output("cpu")] public Output Cpu { get; private set; } = null!; @@ -354,7 +359,12 @@ public partial class TaskDefinition : global::Pulumi.CustomResource /// /// The IPC resource namespace to use for the containers in the task. The valid values are ``host``, ``task``, or ``none``. If ``host`` is specified, then all containers within the tasks that specified the ``host`` IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If ``task`` is specified, all containers within the specified task share the same IPC resources. If ``none`` is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see [IPC settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#ipc-settings---ipc) in the *Docker run reference*. - /// If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more inform + /// If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/). + /// If you are setting namespaced kernel parameters using ``systemControls`` for the containers in the task, the following will apply to your IPC resource namespace. For more information, see [System Controls](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html) in the *Amazon Elastic Container Service Developer Guide*. + /// + For tasks that use the ``host`` IPC mode, IPC namespace related ``systemControls`` are not supported. + /// + For tasks that use the ``task`` IPC mode, IPC namespace related ``systemControls`` will apply to all containers within a task. + /// + /// This parameter is not supported for Windows containers or tasks run on FARGATElong. /// [Output("ipcMode")] public Output IpcMode { get; private set; } = null!; @@ -365,7 +375,13 @@ public partial class TaskDefinition : global::Pulumi.CustomResource /// If your tasks runs on FARGATElong, this field is required. You must use one of the following values. The value you choose determines your range of valid values for the ``cpu`` parameter. /// + 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available ``cpu`` values: 256 (.25 vCPU) /// + 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available ``cpu`` values: 512 (.5 vCPU) - /// + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` va + /// + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` values: 1024 (1 vCPU) + /// + Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 2048 (2 vCPU) + /// + Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 4096 (4 vCPU) + /// + Between 16 GB and 60 GB in 4 GB increments - Available ``cpu`` values: 8192 (8 vCPU) + /// This option requires Linux platform ``1.4.0`` or later. + /// + Between 32GB and 120 GB in 8 GB increments - Available ``cpu`` values: 16384 (16 vCPU) + /// This option requires Linux platform ``1.4.0`` or later. /// [Output("memory")] public Output Memory { get; private set; } = null!; @@ -373,7 +389,11 @@ public partial class TaskDefinition : global::Pulumi.CustomResource /// /// The Docker networking mode to use for the containers in the task. The valid values are ``none``, ``bridge``, ``awsvpc``, and ``host``. If no network mode is specified, the default is ``bridge``. /// For Amazon ECS tasks on Fargate, the ``awsvpc`` network mode is required. For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, ``<default>`` or ``awsvpc`` can be used. If the network mode is set to ``none``, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The ``host`` and ``awsvpc`` network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the ``bridge`` mode. - /// With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elasti + /// With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elastic network interface port (for the ``awsvpc`` network mode), so you cannot take advantage of dynamic host port mappings. + /// When using the ``host`` network mode, you should not run containers using the root user (UID 0). It is considered best practice to use a non-root user. + /// If the network mode is ``awsvpc``, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration value when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*. + /// If the network mode is ``host``, you cannot run multiple instantiations of the same task on a single container instance when port mappings are used. + /// For more information, see [Network settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#network-settings) in the *Docker run reference*. /// [Output("networkMode")] public Output NetworkMode { get; private set; } = null!; @@ -383,7 +403,9 @@ public partial class TaskDefinition : global::Pulumi.CustomResource /// If ``host`` is specified, all containers within the tasks that specified the ``host`` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance. /// If ``task`` is specified, all containers within the specified task share the same process namespace. /// If no value is specified, the default is a private namespace for each container. For more information, see [PID settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#pid-settings---pid) in the *Docker run reference*. - /// If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://doc + /// If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/). + /// This parameter is not supported for Windows containers. + /// This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate. /// [Output("pidMode")] public Output PidMode { get; private set; } = null!; @@ -424,7 +446,7 @@ public partial class TaskDefinition : global::Pulumi.CustomResource /// + Maximum value length - 256 Unicode characters in UTF-8 /// + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. /// + Tag keys and values are case-sensitive. - /// + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values + /// + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. /// [Output("tags")] public Output> Tags { get; private set; } = null!; @@ -530,7 +552,10 @@ public InputList ContainerDefiniti /// + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) /// + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) /// + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - /// + 8192 (8 vCPU) - Available ``memory`` va + /// + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments + /// This option requires Linux platform ``1.4.0`` or later. + /// + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments + /// This option requires Linux platform ``1.4.0`` or later. /// [Input("cpu")] public Input? Cpu { get; set; } @@ -569,7 +594,12 @@ public InputList InferenceAcceler /// /// The IPC resource namespace to use for the containers in the task. The valid values are ``host``, ``task``, or ``none``. If ``host`` is specified, then all containers within the tasks that specified the ``host`` IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If ``task`` is specified, all containers within the specified task share the same IPC resources. If ``none`` is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see [IPC settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#ipc-settings---ipc) in the *Docker run reference*. - /// If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more inform + /// If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/). + /// If you are setting namespaced kernel parameters using ``systemControls`` for the containers in the task, the following will apply to your IPC resource namespace. For more information, see [System Controls](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html) in the *Amazon Elastic Container Service Developer Guide*. + /// + For tasks that use the ``host`` IPC mode, IPC namespace related ``systemControls`` are not supported. + /// + For tasks that use the ``task`` IPC mode, IPC namespace related ``systemControls`` will apply to all containers within a task. + /// + /// This parameter is not supported for Windows containers or tasks run on FARGATElong. /// [Input("ipcMode")] public Input? IpcMode { get; set; } @@ -580,7 +610,13 @@ public InputList InferenceAcceler /// If your tasks runs on FARGATElong, this field is required. You must use one of the following values. The value you choose determines your range of valid values for the ``cpu`` parameter. /// + 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available ``cpu`` values: 256 (.25 vCPU) /// + 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available ``cpu`` values: 512 (.5 vCPU) - /// + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` va + /// + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` values: 1024 (1 vCPU) + /// + Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 2048 (2 vCPU) + /// + Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 4096 (4 vCPU) + /// + Between 16 GB and 60 GB in 4 GB increments - Available ``cpu`` values: 8192 (8 vCPU) + /// This option requires Linux platform ``1.4.0`` or later. + /// + Between 32GB and 120 GB in 8 GB increments - Available ``cpu`` values: 16384 (16 vCPU) + /// This option requires Linux platform ``1.4.0`` or later. /// [Input("memory")] public Input? Memory { get; set; } @@ -588,7 +624,11 @@ public InputList InferenceAcceler /// /// The Docker networking mode to use for the containers in the task. The valid values are ``none``, ``bridge``, ``awsvpc``, and ``host``. If no network mode is specified, the default is ``bridge``. /// For Amazon ECS tasks on Fargate, the ``awsvpc`` network mode is required. For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, ``<default>`` or ``awsvpc`` can be used. If the network mode is set to ``none``, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The ``host`` and ``awsvpc`` network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the ``bridge`` mode. - /// With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elasti + /// With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elastic network interface port (for the ``awsvpc`` network mode), so you cannot take advantage of dynamic host port mappings. + /// When using the ``host`` network mode, you should not run containers using the root user (UID 0). It is considered best practice to use a non-root user. + /// If the network mode is ``awsvpc``, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration value when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*. + /// If the network mode is ``host``, you cannot run multiple instantiations of the same task on a single container instance when port mappings are used. + /// For more information, see [Network settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#network-settings) in the *Docker run reference*. /// [Input("networkMode")] public Input? NetworkMode { get; set; } @@ -598,7 +638,9 @@ public InputList InferenceAcceler /// If ``host`` is specified, all containers within the tasks that specified the ``host`` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance. /// If ``task`` is specified, all containers within the specified task share the same process namespace. /// If no value is specified, the default is a private namespace for each container. For more information, see [PID settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#pid-settings---pid) in the *Docker run reference*. - /// If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://doc + /// If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/). + /// This parameter is not supported for Windows containers. + /// This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate. /// [Input("pidMode")] public Input? PidMode { get; set; } @@ -654,7 +696,7 @@ public InputList RequiresCompatibilities /// + Maximum value length - 256 Unicode characters in UTF-8 /// + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. /// + Tag keys and values are case-sensitive. - /// + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values + /// + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. /// public InputList Tags { 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..b4e9ff2f4f 100644 --- a/sdk/dotnet/EntityResolution/Enums.cs +++ b/sdk/dotnet/EntityResolution/Enums.cs @@ -34,6 +34,89 @@ 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 IdNamespaceIdMappingWorkflowPropertiesIdMappingType : IEquatable + { + private readonly string _value; + + private IdNamespaceIdMappingWorkflowPropertiesIdMappingType(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static IdNamespaceIdMappingWorkflowPropertiesIdMappingType Provider { get; } = new IdNamespaceIdMappingWorkflowPropertiesIdMappingType("PROVIDER"); + + public static bool operator ==(IdNamespaceIdMappingWorkflowPropertiesIdMappingType left, IdNamespaceIdMappingWorkflowPropertiesIdMappingType right) => left.Equals(right); + public static bool operator !=(IdNamespaceIdMappingWorkflowPropertiesIdMappingType left, IdNamespaceIdMappingWorkflowPropertiesIdMappingType right) => !left.Equals(right); + + public static explicit operator string(IdNamespaceIdMappingWorkflowPropertiesIdMappingType value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is IdNamespaceIdMappingWorkflowPropertiesIdMappingType other && Equals(other); + public bool Equals(IdNamespaceIdMappingWorkflowPropertiesIdMappingType 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 IdNamespaceType : IEquatable + { + private readonly string _value; + + private IdNamespaceType(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static IdNamespaceType Source { get; } = new IdNamespaceType("SOURCE"); + public static IdNamespaceType Target { get; } = new IdNamespaceType("TARGET"); + + public static bool operator ==(IdNamespaceType left, IdNamespaceType right) => left.Equals(right); + public static bool operator !=(IdNamespaceType left, IdNamespaceType right) => !left.Equals(right); + + public static explicit operator string(IdNamespaceType value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is IdNamespaceType other && Equals(other); + public bool Equals(IdNamespaceType 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 { @@ -91,6 +174,34 @@ private MatchingWorkflowRuleBasedPropertiesAttributeMatchingModel(string value) public override string ToString() => _value; } + [EnumType] + public readonly struct PolicyStatementStatementEffect : IEquatable + { + private readonly string _value; + + private PolicyStatementStatementEffect(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static PolicyStatementStatementEffect Allow { get; } = new PolicyStatementStatementEffect("Allow"); + public static PolicyStatementStatementEffect Deny { get; } = new PolicyStatementStatementEffect("Deny"); + + public static bool operator ==(PolicyStatementStatementEffect left, PolicyStatementStatementEffect right) => left.Equals(right); + public static bool operator !=(PolicyStatementStatementEffect left, PolicyStatementStatementEffect right) => !left.Equals(right); + + public static explicit operator string(PolicyStatementStatementEffect value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is PolicyStatementStatementEffect other && Equals(other); + public bool Equals(PolicyStatementStatementEffect 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 SchemaMappingSchemaAttributeType : IEquatable { diff --git a/sdk/dotnet/EntityResolution/GetIdNamespace.cs b/sdk/dotnet/EntityResolution/GetIdNamespace.cs new file mode 100644 index 0000000000..3a714dac33 --- /dev/null +++ b/sdk/dotnet/EntityResolution/GetIdNamespace.cs @@ -0,0 +1,104 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.EntityResolution +{ + public static class GetIdNamespace + { + /// + /// IdNamespace defined in AWS Entity Resolution service + /// + public static Task InvokeAsync(GetIdNamespaceArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:entityresolution:getIdNamespace", args ?? new GetIdNamespaceArgs(), options.WithDefaults()); + + /// + /// IdNamespace defined in AWS Entity Resolution service + /// + public static Output Invoke(GetIdNamespaceInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:entityresolution:getIdNamespace", args ?? new GetIdNamespaceInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetIdNamespaceArgs : global::Pulumi.InvokeArgs + { + [Input("idNamespaceName", required: true)] + public string IdNamespaceName { get; set; } = null!; + + public GetIdNamespaceArgs() + { + } + public static new GetIdNamespaceArgs Empty => new GetIdNamespaceArgs(); + } + + public sealed class GetIdNamespaceInvokeArgs : global::Pulumi.InvokeArgs + { + [Input("idNamespaceName", required: true)] + public Input IdNamespaceName { get; set; } = null!; + + public GetIdNamespaceInvokeArgs() + { + } + public static new GetIdNamespaceInvokeArgs Empty => new GetIdNamespaceInvokeArgs(); + } + + + [OutputType] + public sealed class GetIdNamespaceResult + { + /// + /// The date and time when the IdNamespace was created + /// + public readonly string? CreatedAt; + public readonly string? Description; + public readonly ImmutableArray IdMappingWorkflowProperties; + /// + /// The arn associated with the IdNamespace + /// + public readonly string? IdNamespaceArn; + public readonly ImmutableArray InputSourceConfig; + public readonly string? RoleArn; + public readonly ImmutableArray Tags; + public readonly Pulumi.AwsNative.EntityResolution.IdNamespaceType? Type; + /// + /// The date and time when the IdNamespace was updated + /// + public readonly string? UpdatedAt; + + [OutputConstructor] + private GetIdNamespaceResult( + string? createdAt, + + string? description, + + ImmutableArray idMappingWorkflowProperties, + + string? idNamespaceArn, + + ImmutableArray inputSourceConfig, + + string? roleArn, + + ImmutableArray tags, + + Pulumi.AwsNative.EntityResolution.IdNamespaceType? type, + + string? updatedAt) + { + CreatedAt = createdAt; + Description = description; + IdMappingWorkflowProperties = idMappingWorkflowProperties; + IdNamespaceArn = idNamespaceArn; + InputSourceConfig = inputSourceConfig; + RoleArn = roleArn; + Tags = tags; + Type = type; + UpdatedAt = updatedAt; + } + } +} diff --git a/sdk/dotnet/EntityResolution/GetPolicyStatement.cs b/sdk/dotnet/EntityResolution/GetPolicyStatement.cs new file mode 100644 index 0000000000..756d1a56ca --- /dev/null +++ b/sdk/dotnet/EntityResolution/GetPolicyStatement.cs @@ -0,0 +1,81 @@ +// *** 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.EntityResolution +{ + public static class GetPolicyStatement + { + /// + /// Policy Statement defined in AWS Entity Resolution Service + /// + public static Task InvokeAsync(GetPolicyStatementArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:entityresolution:getPolicyStatement", args ?? new GetPolicyStatementArgs(), options.WithDefaults()); + + /// + /// Policy Statement defined in AWS Entity Resolution Service + /// + public static Output Invoke(GetPolicyStatementInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:entityresolution:getPolicyStatement", args ?? new GetPolicyStatementInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetPolicyStatementArgs : global::Pulumi.InvokeArgs + { + [Input("arn", required: true)] + public string Arn { get; set; } = null!; + + [Input("statementId", required: true)] + public string StatementId { get; set; } = null!; + + public GetPolicyStatementArgs() + { + } + public static new GetPolicyStatementArgs Empty => new GetPolicyStatementArgs(); + } + + public sealed class GetPolicyStatementInvokeArgs : global::Pulumi.InvokeArgs + { + [Input("arn", required: true)] + public Input Arn { get; set; } = null!; + + [Input("statementId", required: true)] + public Input StatementId { get; set; } = null!; + + public GetPolicyStatementInvokeArgs() + { + } + public static new GetPolicyStatementInvokeArgs Empty => new GetPolicyStatementInvokeArgs(); + } + + + [OutputType] + public sealed class GetPolicyStatementResult + { + public readonly ImmutableArray Action; + public readonly string? Condition; + public readonly Pulumi.AwsNative.EntityResolution.PolicyStatementStatementEffect? Effect; + public readonly ImmutableArray Principal; + + [OutputConstructor] + private GetPolicyStatementResult( + ImmutableArray action, + + string? condition, + + Pulumi.AwsNative.EntityResolution.PolicyStatementStatementEffect? effect, + + ImmutableArray principal) + { + Action = action; + Condition = condition; + Effect = effect; + Principal = principal; + } + } +} 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/IdNamespace.cs b/sdk/dotnet/EntityResolution/IdNamespace.cs new file mode 100644 index 0000000000..6cab47b069 --- /dev/null +++ b/sdk/dotnet/EntityResolution/IdNamespace.cs @@ -0,0 +1,147 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.EntityResolution +{ + /// + /// IdNamespace defined in AWS Entity Resolution service + /// + [AwsNativeResourceType("aws-native:entityresolution:IdNamespace")] + public partial class IdNamespace : global::Pulumi.CustomResource + { + /// + /// The date and time when the IdNamespace was created + /// + [Output("createdAt")] + public Output CreatedAt { get; private set; } = null!; + + [Output("description")] + public Output Description { get; private set; } = null!; + + [Output("idMappingWorkflowProperties")] + public Output> IdMappingWorkflowProperties { get; private set; } = null!; + + /// + /// The arn associated with the IdNamespace + /// + [Output("idNamespaceArn")] + public Output IdNamespaceArn { get; private set; } = null!; + + [Output("idNamespaceName")] + public Output IdNamespaceName { get; private set; } = null!; + + [Output("inputSourceConfig")] + public Output> InputSourceConfig { get; private set; } = null!; + + [Output("roleArn")] + public Output RoleArn { get; private set; } = null!; + + [Output("tags")] + public Output> Tags { get; private set; } = null!; + + [Output("type")] + public Output Type { get; private set; } = null!; + + /// + /// The date and time when the IdNamespace was updated + /// + [Output("updatedAt")] + public Output UpdatedAt { get; private set; } = null!; + + + /// + /// Create a IdNamespace 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 IdNamespace(string name, IdNamespaceArgs args, CustomResourceOptions? options = null) + : base("aws-native:entityresolution:IdNamespace", name, args ?? new IdNamespaceArgs(), MakeResourceOptions(options, "")) + { + } + + private IdNamespace(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:entityresolution:IdNamespace", name, null, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + ReplaceOnChanges = + { + "idNamespaceName", + }, + }; + 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 IdNamespace 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 IdNamespace Get(string name, Input id, CustomResourceOptions? options = null) + { + return new IdNamespace(name, id, options); + } + } + + public sealed class IdNamespaceArgs : global::Pulumi.ResourceArgs + { + [Input("description")] + public Input? Description { get; set; } + + [Input("idMappingWorkflowProperties")] + private InputList? _idMappingWorkflowProperties; + public InputList IdMappingWorkflowProperties + { + get => _idMappingWorkflowProperties ?? (_idMappingWorkflowProperties = new InputList()); + set => _idMappingWorkflowProperties = value; + } + + [Input("idNamespaceName")] + public Input? IdNamespaceName { get; set; } + + [Input("inputSourceConfig")] + private InputList? _inputSourceConfig; + public InputList InputSourceConfig + { + get => _inputSourceConfig ?? (_inputSourceConfig = new InputList()); + set => _inputSourceConfig = value; + } + + [Input("roleArn")] + public Input? RoleArn { get; set; } + + [Input("tags")] + private InputList? _tags; + public InputList Tags + { + get => _tags ?? (_tags = new InputList()); + set => _tags = value; + } + + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public IdNamespaceArgs() + { + } + public static new IdNamespaceArgs Empty => new IdNamespaceArgs(); + } +} 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/Inputs/IdNamespaceIdMappingWorkflowPropertiesArgs.cs b/sdk/dotnet/EntityResolution/Inputs/IdNamespaceIdMappingWorkflowPropertiesArgs.cs new file mode 100644 index 0000000000..2dc77f072e --- /dev/null +++ b/sdk/dotnet/EntityResolution/Inputs/IdNamespaceIdMappingWorkflowPropertiesArgs.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.EntityResolution.Inputs +{ + + public sealed class IdNamespaceIdMappingWorkflowPropertiesArgs : global::Pulumi.ResourceArgs + { + [Input("idMappingType", required: true)] + public Input IdMappingType { get; set; } = null!; + + [Input("providerProperties")] + public Input? ProviderProperties { get; set; } + + public IdNamespaceIdMappingWorkflowPropertiesArgs() + { + } + public static new IdNamespaceIdMappingWorkflowPropertiesArgs Empty => new IdNamespaceIdMappingWorkflowPropertiesArgs(); + } +} diff --git a/sdk/dotnet/EntityResolution/Inputs/IdNamespaceInputSourceArgs.cs b/sdk/dotnet/EntityResolution/Inputs/IdNamespaceInputSourceArgs.cs new file mode 100644 index 0000000000..d088024e2a --- /dev/null +++ b/sdk/dotnet/EntityResolution/Inputs/IdNamespaceInputSourceArgs.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.EntityResolution.Inputs +{ + + public sealed class IdNamespaceInputSourceArgs : global::Pulumi.ResourceArgs + { + [Input("inputSourceArn", required: true)] + public Input InputSourceArn { get; set; } = null!; + + [Input("schemaName")] + public Input? SchemaName { get; set; } + + public IdNamespaceInputSourceArgs() + { + } + public static new IdNamespaceInputSourceArgs Empty => new IdNamespaceInputSourceArgs(); + } +} diff --git a/sdk/dotnet/EntityResolution/Inputs/IdNamespaceNamespaceProviderPropertiesArgs.cs b/sdk/dotnet/EntityResolution/Inputs/IdNamespaceNamespaceProviderPropertiesArgs.cs new file mode 100644 index 0000000000..7ffde480cd --- /dev/null +++ b/sdk/dotnet/EntityResolution/Inputs/IdNamespaceNamespaceProviderPropertiesArgs.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.EntityResolution.Inputs +{ + + public sealed class IdNamespaceNamespaceProviderPropertiesArgs : global::Pulumi.ResourceArgs + { + [Input("providerConfiguration")] + private InputMap? _providerConfiguration; + + /// + /// Additional Provider configuration that would be required for the provider service. The Configuration must be in JSON string format. + /// + public InputMap ProviderConfiguration + { + get => _providerConfiguration ?? (_providerConfiguration = new InputMap()); + set => _providerConfiguration = value; + } + + [Input("providerServiceArn", required: true)] + public Input ProviderServiceArn { get; set; } = null!; + + public IdNamespaceNamespaceProviderPropertiesArgs() + { + } + public static new IdNamespaceNamespaceProviderPropertiesArgs Empty => new IdNamespaceNamespaceProviderPropertiesArgs(); + } +} 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/EntityResolution/Outputs/IdNamespaceIdMappingWorkflowProperties.cs b/sdk/dotnet/EntityResolution/Outputs/IdNamespaceIdMappingWorkflowProperties.cs new file mode 100644 index 0000000000..ca7f0fa82d --- /dev/null +++ b/sdk/dotnet/EntityResolution/Outputs/IdNamespaceIdMappingWorkflowProperties.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.EntityResolution.Outputs +{ + + [OutputType] + public sealed class IdNamespaceIdMappingWorkflowProperties + { + public readonly Pulumi.AwsNative.EntityResolution.IdNamespaceIdMappingWorkflowPropertiesIdMappingType IdMappingType; + public readonly Outputs.IdNamespaceNamespaceProviderProperties? ProviderProperties; + + [OutputConstructor] + private IdNamespaceIdMappingWorkflowProperties( + Pulumi.AwsNative.EntityResolution.IdNamespaceIdMappingWorkflowPropertiesIdMappingType idMappingType, + + Outputs.IdNamespaceNamespaceProviderProperties? providerProperties) + { + IdMappingType = idMappingType; + ProviderProperties = providerProperties; + } + } +} diff --git a/sdk/dotnet/EntityResolution/Outputs/IdNamespaceInputSource.cs b/sdk/dotnet/EntityResolution/Outputs/IdNamespaceInputSource.cs new file mode 100644 index 0000000000..84ef3febd6 --- /dev/null +++ b/sdk/dotnet/EntityResolution/Outputs/IdNamespaceInputSource.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.EntityResolution.Outputs +{ + + [OutputType] + public sealed class IdNamespaceInputSource + { + public readonly string InputSourceArn; + public readonly string? SchemaName; + + [OutputConstructor] + private IdNamespaceInputSource( + string inputSourceArn, + + string? schemaName) + { + InputSourceArn = inputSourceArn; + SchemaName = schemaName; + } + } +} diff --git a/sdk/dotnet/EntityResolution/Outputs/IdNamespaceNamespaceProviderProperties.cs b/sdk/dotnet/EntityResolution/Outputs/IdNamespaceNamespaceProviderProperties.cs new file mode 100644 index 0000000000..58f6dd5f8e --- /dev/null +++ b/sdk/dotnet/EntityResolution/Outputs/IdNamespaceNamespaceProviderProperties.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.EntityResolution.Outputs +{ + + [OutputType] + public sealed class IdNamespaceNamespaceProviderProperties + { + /// + /// Additional Provider configuration that would be required for the provider service. The Configuration must be in JSON string format. + /// + public readonly ImmutableDictionary? ProviderConfiguration; + public readonly string ProviderServiceArn; + + [OutputConstructor] + private IdNamespaceNamespaceProviderProperties( + ImmutableDictionary? providerConfiguration, + + string providerServiceArn) + { + ProviderConfiguration = providerConfiguration; + ProviderServiceArn = providerServiceArn; + } + } +} diff --git a/sdk/dotnet/EntityResolution/PolicyStatement.cs b/sdk/dotnet/EntityResolution/PolicyStatement.cs new file mode 100644 index 0000000000..f92419c04b --- /dev/null +++ b/sdk/dotnet/EntityResolution/PolicyStatement.cs @@ -0,0 +1,119 @@ +// *** 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.EntityResolution +{ + /// + /// Policy Statement defined in AWS Entity Resolution Service + /// + [AwsNativeResourceType("aws-native:entityresolution:PolicyStatement")] + public partial class PolicyStatement : global::Pulumi.CustomResource + { + [Output("action")] + public Output> Action { get; private set; } = null!; + + [Output("arn")] + public Output Arn { get; private set; } = null!; + + [Output("condition")] + public Output Condition { get; private set; } = null!; + + [Output("effect")] + public Output Effect { get; private set; } = null!; + + [Output("principal")] + public Output> Principal { get; private set; } = null!; + + [Output("statementId")] + public Output StatementId { get; private set; } = null!; + + + /// + /// Create a PolicyStatement 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 PolicyStatement(string name, PolicyStatementArgs args, CustomResourceOptions? options = null) + : base("aws-native:entityresolution:PolicyStatement", name, args ?? new PolicyStatementArgs(), MakeResourceOptions(options, "")) + { + } + + private PolicyStatement(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:entityresolution:PolicyStatement", name, null, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + ReplaceOnChanges = + { + "arn", + "statementId", + }, + }; + 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 PolicyStatement 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 PolicyStatement Get(string name, Input id, CustomResourceOptions? options = null) + { + return new PolicyStatement(name, id, options); + } + } + + public sealed class PolicyStatementArgs : global::Pulumi.ResourceArgs + { + [Input("action")] + private InputList? _action; + public InputList Action + { + get => _action ?? (_action = new InputList()); + set => _action = value; + } + + [Input("arn", required: true)] + public Input Arn { get; set; } = null!; + + [Input("condition")] + public Input? Condition { get; set; } + + [Input("effect")] + public Input? Effect { get; set; } + + [Input("principal")] + private InputList? _principal; + public InputList Principal + { + get => _principal ?? (_principal = new InputList()); + set => _principal = value; + } + + [Input("statementId", required: true)] + public Input StatementId { get; set; } = null!; + + public PolicyStatementArgs() + { + } + public static new PolicyStatementArgs Empty => new PolicyStatementArgs(); + } +} 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/Ivs/EncoderConfiguration.cs b/sdk/dotnet/Ivs/EncoderConfiguration.cs new file mode 100644 index 0000000000..b45547e16a --- /dev/null +++ b/sdk/dotnet/Ivs/EncoderConfiguration.cs @@ -0,0 +1,121 @@ +// *** 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.Ivs +{ + /// + /// Resource Type definition for AWS::IVS::EncoderConfiguration. + /// + [AwsNativeResourceType("aws-native:ivs:EncoderConfiguration")] + public partial class EncoderConfiguration : global::Pulumi.CustomResource + { + /// + /// Encoder configuration identifier. + /// + [Output("arn")] + public Output Arn { get; private set; } = null!; + + /// + /// Encoder configuration name. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// An array of key-value pairs to apply to this resource. + /// + [Output("tags")] + public Output> Tags { get; private set; } = null!; + + /// + /// Video configuration. Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps + /// + [Output("video")] + public Output Video { get; private set; } = null!; + + + /// + /// Create a EncoderConfiguration 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 EncoderConfiguration(string name, EncoderConfigurationArgs? args = null, CustomResourceOptions? options = null) + : base("aws-native:ivs:EncoderConfiguration", name, args ?? new EncoderConfigurationArgs(), MakeResourceOptions(options, "")) + { + } + + private EncoderConfiguration(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:ivs:EncoderConfiguration", name, null, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + ReplaceOnChanges = + { + "name", + "video", + }, + }; + 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 EncoderConfiguration 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 EncoderConfiguration Get(string name, Input id, CustomResourceOptions? options = null) + { + return new EncoderConfiguration(name, id, options); + } + } + + public sealed class EncoderConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// Encoder configuration name. + /// + [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; + } + + /// + /// Video configuration. Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps + /// + [Input("video")] + public Input? Video { get; set; } + + public EncoderConfigurationArgs() + { + } + public static new EncoderConfigurationArgs Empty => new EncoderConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Ivs/GetEncoderConfiguration.cs b/sdk/dotnet/Ivs/GetEncoderConfiguration.cs new file mode 100644 index 0000000000..1f981f3da6 --- /dev/null +++ b/sdk/dotnet/Ivs/GetEncoderConfiguration.cs @@ -0,0 +1,79 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.Ivs +{ + public static class GetEncoderConfiguration + { + /// + /// Resource Type definition for AWS::IVS::EncoderConfiguration. + /// + public static Task InvokeAsync(GetEncoderConfigurationArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:ivs:getEncoderConfiguration", args ?? new GetEncoderConfigurationArgs(), options.WithDefaults()); + + /// + /// Resource Type definition for AWS::IVS::EncoderConfiguration. + /// + public static Output Invoke(GetEncoderConfigurationInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:ivs:getEncoderConfiguration", args ?? new GetEncoderConfigurationInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetEncoderConfigurationArgs : global::Pulumi.InvokeArgs + { + /// + /// Encoder configuration identifier. + /// + [Input("arn", required: true)] + public string Arn { get; set; } = null!; + + public GetEncoderConfigurationArgs() + { + } + public static new GetEncoderConfigurationArgs Empty => new GetEncoderConfigurationArgs(); + } + + public sealed class GetEncoderConfigurationInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// Encoder configuration identifier. + /// + [Input("arn", required: true)] + public Input Arn { get; set; } = null!; + + public GetEncoderConfigurationInvokeArgs() + { + } + public static new GetEncoderConfigurationInvokeArgs Empty => new GetEncoderConfigurationInvokeArgs(); + } + + + [OutputType] + public sealed class GetEncoderConfigurationResult + { + /// + /// Encoder configuration identifier. + /// + public readonly string? Arn; + /// + /// An array of key-value pairs to apply to this resource. + /// + public readonly ImmutableArray Tags; + + [OutputConstructor] + private GetEncoderConfigurationResult( + string? arn, + + ImmutableArray tags) + { + Arn = arn; + Tags = tags; + } + } +} diff --git a/sdk/dotnet/Ivs/GetPlaybackRestrictionPolicy.cs b/sdk/dotnet/Ivs/GetPlaybackRestrictionPolicy.cs new file mode 100644 index 0000000000..2768087826 --- /dev/null +++ b/sdk/dotnet/Ivs/GetPlaybackRestrictionPolicy.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.Ivs +{ + public static class GetPlaybackRestrictionPolicy + { + /// + /// Resource Type definition for AWS::IVS::PlaybackRestrictionPolicy. + /// + public static Task InvokeAsync(GetPlaybackRestrictionPolicyArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:ivs:getPlaybackRestrictionPolicy", args ?? new GetPlaybackRestrictionPolicyArgs(), options.WithDefaults()); + + /// + /// Resource Type definition for AWS::IVS::PlaybackRestrictionPolicy. + /// + public static Output Invoke(GetPlaybackRestrictionPolicyInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:ivs:getPlaybackRestrictionPolicy", args ?? new GetPlaybackRestrictionPolicyInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetPlaybackRestrictionPolicyArgs : global::Pulumi.InvokeArgs + { + /// + /// Playback-restriction-policy identifier. + /// + [Input("arn", required: true)] + public string Arn { get; set; } = null!; + + public GetPlaybackRestrictionPolicyArgs() + { + } + public static new GetPlaybackRestrictionPolicyArgs Empty => new GetPlaybackRestrictionPolicyArgs(); + } + + public sealed class GetPlaybackRestrictionPolicyInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// Playback-restriction-policy identifier. + /// + [Input("arn", required: true)] + public Input Arn { get; set; } = null!; + + public GetPlaybackRestrictionPolicyInvokeArgs() + { + } + public static new GetPlaybackRestrictionPolicyInvokeArgs Empty => new GetPlaybackRestrictionPolicyInvokeArgs(); + } + + + [OutputType] + public sealed class GetPlaybackRestrictionPolicyResult + { + /// + /// A list of country codes that control geoblocking restriction. Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries (an empty array). + /// + public readonly ImmutableArray AllowedCountries; + /// + /// A list of origin sites that control CORS restriction. Allowed values are the same as valid values of the Origin header defined at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin + /// + public readonly ImmutableArray AllowedOrigins; + /// + /// Playback-restriction-policy identifier. + /// + public readonly string? Arn; + /// + /// Whether channel playback is constrained by origin site. + /// + public readonly bool? EnableStrictOriginEnforcement; + /// + /// Playback-restriction-policy name. + /// + public readonly string? Name; + /// + /// An array of key-value pairs to apply to this resource. + /// + public readonly ImmutableArray Tags; + + [OutputConstructor] + private GetPlaybackRestrictionPolicyResult( + ImmutableArray allowedCountries, + + ImmutableArray allowedOrigins, + + string? arn, + + bool? enableStrictOriginEnforcement, + + string? name, + + ImmutableArray tags) + { + AllowedCountries = allowedCountries; + AllowedOrigins = allowedOrigins; + Arn = arn; + EnableStrictOriginEnforcement = enableStrictOriginEnforcement; + Name = name; + Tags = tags; + } + } +} diff --git a/sdk/dotnet/Ivs/GetStorageConfiguration.cs b/sdk/dotnet/Ivs/GetStorageConfiguration.cs new file mode 100644 index 0000000000..df16a7deb2 --- /dev/null +++ b/sdk/dotnet/Ivs/GetStorageConfiguration.cs @@ -0,0 +1,79 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.Ivs +{ + public static class GetStorageConfiguration + { + /// + /// Resource Type definition for AWS::IVS::StorageConfiguration + /// + public static Task InvokeAsync(GetStorageConfigurationArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:ivs:getStorageConfiguration", args ?? new GetStorageConfigurationArgs(), options.WithDefaults()); + + /// + /// Resource Type definition for AWS::IVS::StorageConfiguration + /// + public static Output Invoke(GetStorageConfigurationInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:ivs:getStorageConfiguration", args ?? new GetStorageConfigurationInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetStorageConfigurationArgs : global::Pulumi.InvokeArgs + { + /// + /// Storage Configuration ARN is automatically generated on creation and assigned as the unique identifier. + /// + [Input("arn", required: true)] + public string Arn { get; set; } = null!; + + public GetStorageConfigurationArgs() + { + } + public static new GetStorageConfigurationArgs Empty => new GetStorageConfigurationArgs(); + } + + public sealed class GetStorageConfigurationInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// Storage Configuration ARN is automatically generated on creation and assigned as the unique identifier. + /// + [Input("arn", required: true)] + public Input Arn { get; set; } = null!; + + public GetStorageConfigurationInvokeArgs() + { + } + public static new GetStorageConfigurationInvokeArgs Empty => new GetStorageConfigurationInvokeArgs(); + } + + + [OutputType] + public sealed class GetStorageConfigurationResult + { + /// + /// Storage Configuration ARN is automatically generated on creation and assigned as the unique identifier. + /// + public readonly string? Arn; + /// + /// A list of key-value pairs that contain metadata for the asset model. + /// + public readonly ImmutableArray Tags; + + [OutputConstructor] + private GetStorageConfigurationResult( + string? arn, + + ImmutableArray tags) + { + Arn = arn; + Tags = tags; + } + } +} diff --git a/sdk/dotnet/Ivs/Inputs/StorageConfigurationS3StorageConfigurationArgs.cs b/sdk/dotnet/Ivs/Inputs/StorageConfigurationS3StorageConfigurationArgs.cs new file mode 100644 index 0000000000..3a766c5d28 --- /dev/null +++ b/sdk/dotnet/Ivs/Inputs/StorageConfigurationS3StorageConfigurationArgs.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.Ivs.Inputs +{ + + /// + /// A complex type that describes an S3 location where recorded videos will be stored. + /// + public sealed class StorageConfigurationS3StorageConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// Location (S3 bucket name) where recorded videos will be stored. Note that the StorageConfiguration and S3 bucket must be in the same region as the Composition. + /// + [Input("bucketName", required: true)] + public Input BucketName { get; set; } = null!; + + public StorageConfigurationS3StorageConfigurationArgs() + { + } + public static new StorageConfigurationS3StorageConfigurationArgs Empty => new StorageConfigurationS3StorageConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Ivs/Inputs/VideoPropertiesArgs.cs b/sdk/dotnet/Ivs/Inputs/VideoPropertiesArgs.cs new file mode 100644 index 0000000000..88e511a762 --- /dev/null +++ b/sdk/dotnet/Ivs/Inputs/VideoPropertiesArgs.cs @@ -0,0 +1,47 @@ +// *** 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.Ivs.Inputs +{ + + /// + /// Video configuration. Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps + /// + public sealed class VideoPropertiesArgs : global::Pulumi.ResourceArgs + { + /// + /// Bitrate for generated output, in bps. Default: 2500000. + /// + [Input("bitrate")] + public Input? Bitrate { get; set; } + + /// + /// Video frame rate, in fps. Default: 30. + /// + [Input("framerate")] + public Input? Framerate { get; set; } + + /// + /// Video-resolution height. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 720. + /// + [Input("height")] + public Input? Height { get; set; } + + /// + /// Video-resolution width. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 1280. + /// + [Input("width")] + public Input? Width { get; set; } + + public VideoPropertiesArgs() + { + } + public static new VideoPropertiesArgs Empty => new VideoPropertiesArgs(); + } +} diff --git a/sdk/dotnet/Ivs/Outputs/StorageConfigurationS3StorageConfiguration.cs b/sdk/dotnet/Ivs/Outputs/StorageConfigurationS3StorageConfiguration.cs new file mode 100644 index 0000000000..c8eddcada7 --- /dev/null +++ b/sdk/dotnet/Ivs/Outputs/StorageConfigurationS3StorageConfiguration.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.Ivs.Outputs +{ + + /// + /// A complex type that describes an S3 location where recorded videos will be stored. + /// + [OutputType] + public sealed class StorageConfigurationS3StorageConfiguration + { + /// + /// Location (S3 bucket name) where recorded videos will be stored. Note that the StorageConfiguration and S3 bucket must be in the same region as the Composition. + /// + public readonly string BucketName; + + [OutputConstructor] + private StorageConfigurationS3StorageConfiguration(string bucketName) + { + BucketName = bucketName; + } + } +} diff --git a/sdk/dotnet/Ivs/Outputs/VideoProperties.cs b/sdk/dotnet/Ivs/Outputs/VideoProperties.cs new file mode 100644 index 0000000000..567c748133 --- /dev/null +++ b/sdk/dotnet/Ivs/Outputs/VideoProperties.cs @@ -0,0 +1,52 @@ +// *** 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.Ivs.Outputs +{ + + /// + /// Video configuration. Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps + /// + [OutputType] + public sealed class VideoProperties + { + /// + /// Bitrate for generated output, in bps. Default: 2500000. + /// + public readonly int? Bitrate; + /// + /// Video frame rate, in fps. Default: 30. + /// + public readonly double? Framerate; + /// + /// Video-resolution height. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 720. + /// + public readonly int? Height; + /// + /// Video-resolution width. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 1280. + /// + public readonly int? Width; + + [OutputConstructor] + private VideoProperties( + int? bitrate, + + double? framerate, + + int? height, + + int? width) + { + Bitrate = bitrate; + Framerate = framerate; + Height = height; + Width = width; + } + } +} diff --git a/sdk/dotnet/Ivs/PlaybackRestrictionPolicy.cs b/sdk/dotnet/Ivs/PlaybackRestrictionPolicy.cs new file mode 100644 index 0000000000..5bcc7eec3e --- /dev/null +++ b/sdk/dotnet/Ivs/PlaybackRestrictionPolicy.cs @@ -0,0 +1,152 @@ +// *** 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.Ivs +{ + /// + /// Resource Type definition for AWS::IVS::PlaybackRestrictionPolicy. + /// + [AwsNativeResourceType("aws-native:ivs:PlaybackRestrictionPolicy")] + public partial class PlaybackRestrictionPolicy : global::Pulumi.CustomResource + { + /// + /// A list of country codes that control geoblocking restriction. Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries (an empty array). + /// + [Output("allowedCountries")] + public Output> AllowedCountries { get; private set; } = null!; + + /// + /// A list of origin sites that control CORS restriction. Allowed values are the same as valid values of the Origin header defined at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin + /// + [Output("allowedOrigins")] + public Output> AllowedOrigins { get; private set; } = null!; + + /// + /// Playback-restriction-policy identifier. + /// + [Output("arn")] + public Output Arn { get; private set; } = null!; + + /// + /// Whether channel playback is constrained by origin site. + /// + [Output("enableStrictOriginEnforcement")] + public Output EnableStrictOriginEnforcement { get; private set; } = null!; + + /// + /// Playback-restriction-policy name. + /// + [Output("name")] + public Output Name { 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 PlaybackRestrictionPolicy 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 PlaybackRestrictionPolicy(string name, PlaybackRestrictionPolicyArgs args, CustomResourceOptions? options = null) + : base("aws-native:ivs:PlaybackRestrictionPolicy", name, args ?? new PlaybackRestrictionPolicyArgs(), MakeResourceOptions(options, "")) + { + } + + private PlaybackRestrictionPolicy(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:ivs:PlaybackRestrictionPolicy", 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 PlaybackRestrictionPolicy 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 PlaybackRestrictionPolicy Get(string name, Input id, CustomResourceOptions? options = null) + { + return new PlaybackRestrictionPolicy(name, id, options); + } + } + + public sealed class PlaybackRestrictionPolicyArgs : global::Pulumi.ResourceArgs + { + [Input("allowedCountries", required: true)] + private InputList? _allowedCountries; + + /// + /// A list of country codes that control geoblocking restriction. Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries (an empty array). + /// + public InputList AllowedCountries + { + get => _allowedCountries ?? (_allowedCountries = new InputList()); + set => _allowedCountries = value; + } + + [Input("allowedOrigins", required: true)] + private InputList? _allowedOrigins; + + /// + /// A list of origin sites that control CORS restriction. Allowed values are the same as valid values of the Origin header defined at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin + /// + public InputList AllowedOrigins + { + get => _allowedOrigins ?? (_allowedOrigins = new InputList()); + set => _allowedOrigins = value; + } + + /// + /// Whether channel playback is constrained by origin site. + /// + [Input("enableStrictOriginEnforcement")] + public Input? EnableStrictOriginEnforcement { get; set; } + + /// + /// Playback-restriction-policy name. + /// + [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 PlaybackRestrictionPolicyArgs() + { + } + public static new PlaybackRestrictionPolicyArgs Empty => new PlaybackRestrictionPolicyArgs(); + } +} diff --git a/sdk/dotnet/Ivs/StorageConfiguration.cs b/sdk/dotnet/Ivs/StorageConfiguration.cs new file mode 100644 index 0000000000..c86bfac6ad --- /dev/null +++ b/sdk/dotnet/Ivs/StorageConfiguration.cs @@ -0,0 +1,115 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.Ivs +{ + /// + /// Resource Type definition for AWS::IVS::StorageConfiguration + /// + [AwsNativeResourceType("aws-native:ivs:StorageConfiguration")] + public partial class StorageConfiguration : global::Pulumi.CustomResource + { + /// + /// Storage Configuration ARN is automatically generated on creation and assigned as the unique identifier. + /// + [Output("arn")] + public Output Arn { get; private set; } = null!; + + /// + /// Storage Configuration Name. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + [Output("s3")] + public Output S3 { get; private set; } = null!; + + /// + /// A list of key-value pairs that contain metadata for the asset model. + /// + [Output("tags")] + public Output> Tags { get; private set; } = null!; + + + /// + /// Create a StorageConfiguration 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 StorageConfiguration(string name, StorageConfigurationArgs args, CustomResourceOptions? options = null) + : base("aws-native:ivs:StorageConfiguration", name, args ?? new StorageConfigurationArgs(), MakeResourceOptions(options, "")) + { + } + + private StorageConfiguration(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:ivs:StorageConfiguration", name, null, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + ReplaceOnChanges = + { + "name", + "s3", + }, + }; + 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 StorageConfiguration 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 StorageConfiguration Get(string name, Input id, CustomResourceOptions? options = null) + { + return new StorageConfiguration(name, id, options); + } + } + + public sealed class StorageConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// Storage Configuration Name. + /// + [Input("name")] + public Input? Name { get; set; } + + [Input("s3", required: true)] + public Input S3 { get; set; } = null!; + + [Input("tags")] + private InputList? _tags; + + /// + /// A list of key-value pairs that contain metadata for the asset model. + /// + public InputList Tags + { + get => _tags ?? (_tags = new InputList()); + set => _tags = value; + } + + public StorageConfigurationArgs() + { + } + public static new StorageConfigurationArgs Empty => new StorageConfigurationArgs(); + } +} 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/Lambda/Enums.cs b/sdk/dotnet/Lambda/Enums.cs index 4332813b72..e6508bdb88 100644 --- a/sdk/dotnet/Lambda/Enums.cs +++ b/sdk/dotnet/Lambda/Enums.cs @@ -292,11 +292,11 @@ private FunctionPackageType(string value) /// /// Specify the runtime update mode. - /// + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates. - /// + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date. - /// + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback). - /// - /// *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual`` + /// + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates. + /// + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date. + /// + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback). + /// + /// *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual`` /// [EnumType] public readonly struct FunctionRuntimeManagementConfigUpdateRuntimeOn : IEquatable diff --git a/sdk/dotnet/Lambda/Inputs/FunctionRuntimeManagementConfigArgs.cs b/sdk/dotnet/Lambda/Inputs/FunctionRuntimeManagementConfigArgs.cs index 31a6c7c5e8..6b86f4df39 100644 --- a/sdk/dotnet/Lambda/Inputs/FunctionRuntimeManagementConfigArgs.cs +++ b/sdk/dotnet/Lambda/Inputs/FunctionRuntimeManagementConfigArgs.cs @@ -24,11 +24,11 @@ public sealed class FunctionRuntimeManagementConfigArgs : global::Pulumi.Resourc /// /// Specify the runtime update mode. - /// + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates. - /// + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date. - /// + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback). - /// - /// *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual`` + /// + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates. + /// + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date. + /// + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback). + /// + /// *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual`` /// [Input("updateRuntimeOn", required: true)] public Input UpdateRuntimeOn { get; set; } = null!; diff --git a/sdk/dotnet/Lambda/Outputs/FunctionRuntimeManagementConfig.cs b/sdk/dotnet/Lambda/Outputs/FunctionRuntimeManagementConfig.cs index e9c4da2a9d..39e7cba4a9 100644 --- a/sdk/dotnet/Lambda/Outputs/FunctionRuntimeManagementConfig.cs +++ b/sdk/dotnet/Lambda/Outputs/FunctionRuntimeManagementConfig.cs @@ -23,11 +23,11 @@ public sealed class FunctionRuntimeManagementConfig public readonly string? RuntimeVersionArn; /// /// Specify the runtime update mode. - /// + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates. - /// + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date. - /// + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback). - /// - /// *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual`` + /// + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates. + /// + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date. + /// + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback). + /// + /// *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual`` /// public readonly Pulumi.AwsNative.Lambda.FunctionRuntimeManagementConfigUpdateRuntimeOn UpdateRuntimeOn; diff --git a/sdk/dotnet/Logs/Enums.cs b/sdk/dotnet/Logs/Enums.cs index 67116c1b0e..d64e77797e 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..d8b0022ec6 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..b765bc0ae0 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..06ad221dc4 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..06ede362de 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/MediaTailor/Channel.cs b/sdk/dotnet/MediaTailor/Channel.cs index ace1252319..5a8247ea88 100644 --- a/sdk/dotnet/MediaTailor/Channel.cs +++ b/sdk/dotnet/MediaTailor/Channel.cs @@ -21,6 +21,12 @@ public partial class Channel : global::Pulumi.CustomResource [Output("arn")] public Output Arn { get; private set; } = null!; + /// + /// <p>The list of audiences defined in channel.</p> + /// + [Output("audiences")] + public Output> Audiences { get; private set; } = null!; + [Output("channelName")] public Output ChannelName { get; private set; } = null!; @@ -101,6 +107,18 @@ public static Channel Get(string name, Input id, CustomResourceOptions? public sealed class ChannelArgs : global::Pulumi.ResourceArgs { + [Input("audiences")] + private InputList? _audiences; + + /// + /// <p>The list of audiences defined in channel.</p> + /// + public InputList Audiences + { + get => _audiences ?? (_audiences = new InputList()); + set => _audiences = value; + } + [Input("channelName")] public Input? ChannelName { get; set; } diff --git a/sdk/dotnet/MediaTailor/GetChannel.cs b/sdk/dotnet/MediaTailor/GetChannel.cs index 3311baefb5..bcaa254fb8 100644 --- a/sdk/dotnet/MediaTailor/GetChannel.cs +++ b/sdk/dotnet/MediaTailor/GetChannel.cs @@ -55,6 +55,10 @@ public sealed class GetChannelResult /// <p>The ARN of the channel.</p> /// public readonly string? Arn; + /// + /// <p>The list of audiences defined in channel.</p> + /// + public readonly ImmutableArray Audiences; public readonly Outputs.ChannelSlateSource? FillerSlate; public readonly Outputs.ChannelLogConfigurationForChannel? LogConfiguration; public readonly Pulumi.AwsNative.MediaTailor.ChannelPlaybackMode? PlaybackMode; @@ -68,6 +72,8 @@ public sealed class GetChannelResult private GetChannelResult( string? arn, + ImmutableArray audiences, + Outputs.ChannelSlateSource? fillerSlate, Outputs.ChannelLogConfigurationForChannel? logConfiguration, @@ -79,6 +85,7 @@ private GetChannelResult( Outputs.ChannelTimeShiftConfiguration? timeShiftConfiguration) { Arn = arn; + Audiences = audiences; FillerSlate = fillerSlate; LogConfiguration = logConfiguration; PlaybackMode = playbackMode; diff --git a/sdk/dotnet/Rds/CustomDbEngineVersion.cs b/sdk/dotnet/Rds/CustomDbEngineVersion.cs index 8c6df8a15a..89079ef123 100644 --- a/sdk/dotnet/Rds/CustomDbEngineVersion.cs +++ b/sdk/dotnet/Rds/CustomDbEngineVersion.cs @@ -19,7 +19,7 @@ public partial class CustomDbEngineVersion : global::Pulumi.CustomResource /// The name of an Amazon S3 bucket that contains database installation files for your CEV. For example, a valid bucket name is `my-custom-installation-files`. /// [Output("databaseInstallationFilesS3BucketName")] - public Output DatabaseInstallationFilesS3BucketName { get; private set; } = null!; + public Output DatabaseInstallationFilesS3BucketName { get; private set; } = null!; /// /// The Amazon S3 directory that contains the database installation files for your CEV. For example, a valid bucket name is `123456789012/cev1`. If this setting isn't specified, no prefix is assumed. @@ -51,6 +51,12 @@ public partial class CustomDbEngineVersion : global::Pulumi.CustomResource [Output("engineVersion")] public Output EngineVersion { get; private set; } = null!; + /// + /// The identifier of Amazon Machine Image (AMI) used for CEV. + /// + [Output("imageId")] + public Output ImageId { get; private set; } = null!; + /// /// The AWS KMS key identifier for an encrypted CEV. A symmetric KMS key is required for RDS Custom, but optional for Amazon RDS. /// @@ -63,6 +69,12 @@ public partial class CustomDbEngineVersion : global::Pulumi.CustomResource [Output("manifest")] public Output Manifest { get; private set; } = null!; + /// + /// The identifier of the source custom engine version. + /// + [Output("sourceCustomDbEngineVersionIdentifier")] + public Output SourceCustomDbEngineVersionIdentifier { get; private set; } = null!; + /// /// The availability status to be assigned to the CEV. /// @@ -75,6 +87,12 @@ public partial class CustomDbEngineVersion : global::Pulumi.CustomResource [Output("tags")] public Output> Tags { get; private set; } = null!; + /// + /// A value that indicates whether AWS provided latest image is applied automatically to the Custom Engine Version. By default, AWS provided latest image is applied automatically. This value is only applied on create. + /// + [Output("useAwsProvidedLatestImage")] + public Output UseAwsProvidedLatestImage { get; private set; } = null!; + /// /// Create a CustomDbEngineVersion resource with the given unique name, arguments, and options. @@ -104,8 +122,11 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? "databaseInstallationFilesS3Prefix", "engine", "engineVersion", + "imageId", "kmsKeyId", "manifest", + "sourceCustomDbEngineVersionIdentifier", + "useAwsProvidedLatestImage", }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); @@ -132,8 +153,8 @@ public sealed class CustomDbEngineVersionArgs : global::Pulumi.ResourceArgs /// /// The name of an Amazon S3 bucket that contains database installation files for your CEV. For example, a valid bucket name is `my-custom-installation-files`. /// - [Input("databaseInstallationFilesS3BucketName", required: true)] - public Input DatabaseInstallationFilesS3BucketName { get; set; } = null!; + [Input("databaseInstallationFilesS3BucketName")] + public Input? DatabaseInstallationFilesS3BucketName { get; set; } /// /// The Amazon S3 directory that contains the database installation files for your CEV. For example, a valid bucket name is `123456789012/cev1`. If this setting isn't specified, no prefix is assumed. @@ -159,6 +180,12 @@ public sealed class CustomDbEngineVersionArgs : global::Pulumi.ResourceArgs [Input("engineVersion", required: true)] public Input EngineVersion { get; set; } = null!; + /// + /// The identifier of Amazon Machine Image (AMI) used for CEV. + /// + [Input("imageId")] + public Input? ImageId { get; set; } + /// /// The AWS KMS key identifier for an encrypted CEV. A symmetric KMS key is required for RDS Custom, but optional for Amazon RDS. /// @@ -171,6 +198,12 @@ public sealed class CustomDbEngineVersionArgs : global::Pulumi.ResourceArgs [Input("manifest")] public Input? Manifest { get; set; } + /// + /// The identifier of the source custom engine version. + /// + [Input("sourceCustomDbEngineVersionIdentifier")] + public Input? SourceCustomDbEngineVersionIdentifier { get; set; } + /// /// The availability status to be assigned to the CEV. /// @@ -189,6 +222,12 @@ public InputList Tags set => _tags = value; } + /// + /// A value that indicates whether AWS provided latest image is applied automatically to the Custom Engine Version. By default, AWS provided latest image is applied automatically. This value is only applied on create. + /// + [Input("useAwsProvidedLatestImage")] + public Input? UseAwsProvidedLatestImage { get; set; } + public CustomDbEngineVersionArgs() { } 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/Route53/GetHostedZone.cs b/sdk/dotnet/Route53/GetHostedZone.cs index 1d291c442f..4d971186ca 100644 --- a/sdk/dotnet/Route53/GetHostedZone.cs +++ b/sdk/dotnet/Route53/GetHostedZone.cs @@ -106,7 +106,7 @@ public sealed class GetHostedZoneResult public readonly Outputs.HostedZoneQueryLoggingConfig? QueryLoggingConfig; /// /// *Private hosted zones:* A complex type that contains information about the VPCs that are associated with the specified hosted zone. - /// For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + /// For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. /// public readonly ImmutableArray Vpcs; diff --git a/sdk/dotnet/Route53/HostedZone.cs b/sdk/dotnet/Route53/HostedZone.cs index a1c81a01fd..fef1f3f8eb 100644 --- a/sdk/dotnet/Route53/HostedZone.cs +++ b/sdk/dotnet/Route53/HostedZone.cs @@ -72,7 +72,7 @@ public partial class HostedZone : global::Pulumi.CustomResource /// /// *Private hosted zones:* A complex type that contains information about the VPCs that are associated with the specified hosted zone. - /// For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + /// For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. /// [Output("vpcs")] public Output> Vpcs { get; private set; } = null!; @@ -171,7 +171,7 @@ public InputList HostedZoneTags /// /// *Private hosted zones:* A complex type that contains information about the VPCs that are associated with the specified hosted zone. - /// For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + /// For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. /// public InputList Vpcs { diff --git a/sdk/dotnet/Route53/Inputs/HostedZoneVpcArgs.cs b/sdk/dotnet/Route53/Inputs/HostedZoneVpcArgs.cs index d032b7fedf..eb4c2ada07 100644 --- a/sdk/dotnet/Route53/Inputs/HostedZoneVpcArgs.cs +++ b/sdk/dotnet/Route53/Inputs/HostedZoneVpcArgs.cs @@ -12,20 +12,20 @@ namespace Pulumi.AwsNative.Route53.Inputs /// /// *Private hosted zones only:* A complex type that contains information about an Amazon VPC. Route 53 Resolver uses the records in the private hosted zone to route traffic in that VPC. - /// For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + /// For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. /// public sealed class HostedZoneVpcArgs : global::Pulumi.ResourceArgs { /// /// *Private hosted zones only:* The ID of an Amazon VPC. - /// For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + /// For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. /// [Input("vpcId", required: true)] public Input VpcId { get; set; } = null!; /// /// *Private hosted zones only:* The region that an Amazon VPC was created in. - /// For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + /// For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. /// [Input("vpcRegion", required: true)] public Input VpcRegion { get; set; } = null!; diff --git a/sdk/dotnet/Route53/Outputs/HostedZoneVpc.cs b/sdk/dotnet/Route53/Outputs/HostedZoneVpc.cs index f7db649cbb..b9a9089d3e 100644 --- a/sdk/dotnet/Route53/Outputs/HostedZoneVpc.cs +++ b/sdk/dotnet/Route53/Outputs/HostedZoneVpc.cs @@ -12,19 +12,19 @@ namespace Pulumi.AwsNative.Route53.Outputs /// /// *Private hosted zones only:* A complex type that contains information about an Amazon VPC. Route 53 Resolver uses the records in the private hosted zone to route traffic in that VPC. - /// For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + /// For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. /// [OutputType] public sealed class HostedZoneVpc { /// /// *Private hosted zones only:* The ID of an Amazon VPC. - /// For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + /// For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. /// public readonly string VpcId; /// /// *Private hosted zones only:* The region that an Amazon VPC was created in. - /// For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + /// For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. /// public readonly string VpcRegion; diff --git a/sdk/dotnet/SageMaker/AppImageConfig.cs b/sdk/dotnet/SageMaker/AppImageConfig.cs index 1bf5c7c409..8302be88b2 100644 --- a/sdk/dotnet/SageMaker/AppImageConfig.cs +++ b/sdk/dotnet/SageMaker/AppImageConfig.cs @@ -27,6 +27,12 @@ public partial class AppImageConfig : global::Pulumi.CustomResource [Output("appImageConfigName")] public Output AppImageConfigName { get; private set; } = null!; + /// + /// The CodeEditorAppImageConfig. + /// + [Output("codeEditorAppImageConfig")] + public Output CodeEditorAppImageConfig { get; private set; } = null!; + /// /// The JupyterLabAppImageConfig. /// @@ -101,6 +107,12 @@ public sealed class AppImageConfigArgs : global::Pulumi.ResourceArgs [Input("appImageConfigName")] public Input? AppImageConfigName { get; set; } + /// + /// The CodeEditorAppImageConfig. + /// + [Input("codeEditorAppImageConfig")] + public Input? CodeEditorAppImageConfig { get; set; } + /// /// The JupyterLabAppImageConfig. /// diff --git a/sdk/dotnet/SageMaker/GetAppImageConfig.cs b/sdk/dotnet/SageMaker/GetAppImageConfig.cs index d72eca80ab..10df1f1fc0 100644 --- a/sdk/dotnet/SageMaker/GetAppImageConfig.cs +++ b/sdk/dotnet/SageMaker/GetAppImageConfig.cs @@ -62,6 +62,10 @@ public sealed class GetAppImageConfigResult /// public readonly string? AppImageConfigArn; /// + /// The CodeEditorAppImageConfig. + /// + public readonly Outputs.AppImageConfigCodeEditorAppImageConfig? CodeEditorAppImageConfig; + /// /// The JupyterLabAppImageConfig. /// public readonly Outputs.AppImageConfigJupyterLabAppImageConfig? JupyterLabAppImageConfig; @@ -74,11 +78,14 @@ public sealed class GetAppImageConfigResult private GetAppImageConfigResult( string? appImageConfigArn, + Outputs.AppImageConfigCodeEditorAppImageConfig? codeEditorAppImageConfig, + Outputs.AppImageConfigJupyterLabAppImageConfig? jupyterLabAppImageConfig, Outputs.AppImageConfigKernelGatewayImageConfig? kernelGatewayImageConfig) { AppImageConfigArn = appImageConfigArn; + CodeEditorAppImageConfig = codeEditorAppImageConfig; JupyterLabAppImageConfig = jupyterLabAppImageConfig; KernelGatewayImageConfig = kernelGatewayImageConfig; } diff --git a/sdk/dotnet/SageMaker/Inputs/AppImageConfigCodeEditorAppImageConfigArgs.cs b/sdk/dotnet/SageMaker/Inputs/AppImageConfigCodeEditorAppImageConfigArgs.cs new file mode 100644 index 0000000000..39f0e168d6 --- /dev/null +++ b/sdk/dotnet/SageMaker/Inputs/AppImageConfigCodeEditorAppImageConfigArgs.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.SageMaker.Inputs +{ + + /// + /// The configuration for the kernels in a SageMaker image running as a CodeEditor app. + /// + public sealed class AppImageConfigCodeEditorAppImageConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// The container configuration for a SageMaker image. + /// + [Input("containerConfig")] + public Input? ContainerConfig { get; set; } + + public AppImageConfigCodeEditorAppImageConfigArgs() + { + } + public static new AppImageConfigCodeEditorAppImageConfigArgs Empty => new AppImageConfigCodeEditorAppImageConfigArgs(); + } +} diff --git a/sdk/dotnet/SageMaker/Inputs/DomainCodeEditorAppSettingsArgs.cs b/sdk/dotnet/SageMaker/Inputs/DomainCodeEditorAppSettingsArgs.cs index 95ae9438eb..32fad3b600 100644 --- a/sdk/dotnet/SageMaker/Inputs/DomainCodeEditorAppSettingsArgs.cs +++ b/sdk/dotnet/SageMaker/Inputs/DomainCodeEditorAppSettingsArgs.cs @@ -15,6 +15,18 @@ namespace Pulumi.AwsNative.SageMaker.Inputs /// public sealed class DomainCodeEditorAppSettingsArgs : global::Pulumi.ResourceArgs { + [Input("customImages")] + private InputList? _customImages; + + /// + /// A list of custom images for use for CodeEditor apps. + /// + public InputList CustomImages + { + get => _customImages ?? (_customImages = new InputList()); + set => _customImages = value; + } + /// /// The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the CodeEditor app. /// diff --git a/sdk/dotnet/SageMaker/Inputs/UserProfileCodeEditorAppSettingsArgs.cs b/sdk/dotnet/SageMaker/Inputs/UserProfileCodeEditorAppSettingsArgs.cs index 62bd9c4414..3bfb5a1eb0 100644 --- a/sdk/dotnet/SageMaker/Inputs/UserProfileCodeEditorAppSettingsArgs.cs +++ b/sdk/dotnet/SageMaker/Inputs/UserProfileCodeEditorAppSettingsArgs.cs @@ -15,6 +15,18 @@ namespace Pulumi.AwsNative.SageMaker.Inputs /// public sealed class UserProfileCodeEditorAppSettingsArgs : global::Pulumi.ResourceArgs { + [Input("customImages")] + private InputList? _customImages; + + /// + /// A list of custom images for use for CodeEditor apps. + /// + public InputList CustomImages + { + get => _customImages ?? (_customImages = new InputList()); + set => _customImages = value; + } + /// /// The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the CodeEditor app. /// diff --git a/sdk/dotnet/SageMaker/Outputs/AppImageConfigCodeEditorAppImageConfig.cs b/sdk/dotnet/SageMaker/Outputs/AppImageConfigCodeEditorAppImageConfig.cs new file mode 100644 index 0000000000..188cf1f224 --- /dev/null +++ b/sdk/dotnet/SageMaker/Outputs/AppImageConfigCodeEditorAppImageConfig.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.SageMaker.Outputs +{ + + /// + /// The configuration for the kernels in a SageMaker image running as a CodeEditor app. + /// + [OutputType] + public sealed class AppImageConfigCodeEditorAppImageConfig + { + /// + /// The container configuration for a SageMaker image. + /// + public readonly Outputs.AppImageConfigContainerConfig? ContainerConfig; + + [OutputConstructor] + private AppImageConfigCodeEditorAppImageConfig(Outputs.AppImageConfigContainerConfig? containerConfig) + { + ContainerConfig = containerConfig; + } + } +} diff --git a/sdk/dotnet/SageMaker/Outputs/DomainCodeEditorAppSettings.cs b/sdk/dotnet/SageMaker/Outputs/DomainCodeEditorAppSettings.cs index 8b14bfb9b7..dcd8d57b13 100644 --- a/sdk/dotnet/SageMaker/Outputs/DomainCodeEditorAppSettings.cs +++ b/sdk/dotnet/SageMaker/Outputs/DomainCodeEditorAppSettings.cs @@ -16,6 +16,10 @@ namespace Pulumi.AwsNative.SageMaker.Outputs [OutputType] public sealed class DomainCodeEditorAppSettings { + /// + /// A list of custom images for use for CodeEditor apps. + /// + public readonly ImmutableArray CustomImages; /// /// The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the CodeEditor app. /// @@ -27,10 +31,13 @@ public sealed class DomainCodeEditorAppSettings [OutputConstructor] private DomainCodeEditorAppSettings( + ImmutableArray customImages, + Outputs.DomainResourceSpec? defaultResourceSpec, ImmutableArray lifecycleConfigArns) { + CustomImages = customImages; DefaultResourceSpec = defaultResourceSpec; LifecycleConfigArns = lifecycleConfigArns; } diff --git a/sdk/dotnet/SageMaker/Outputs/UserProfileCodeEditorAppSettings.cs b/sdk/dotnet/SageMaker/Outputs/UserProfileCodeEditorAppSettings.cs index 14ad0a911c..5fe23281bf 100644 --- a/sdk/dotnet/SageMaker/Outputs/UserProfileCodeEditorAppSettings.cs +++ b/sdk/dotnet/SageMaker/Outputs/UserProfileCodeEditorAppSettings.cs @@ -16,6 +16,10 @@ namespace Pulumi.AwsNative.SageMaker.Outputs [OutputType] public sealed class UserProfileCodeEditorAppSettings { + /// + /// A list of custom images for use for CodeEditor apps. + /// + public readonly ImmutableArray CustomImages; /// /// The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the CodeEditor app. /// @@ -27,10 +31,13 @@ public sealed class UserProfileCodeEditorAppSettings [OutputConstructor] private UserProfileCodeEditorAppSettings( + ImmutableArray customImages, + Outputs.UserProfileResourceSpec? defaultResourceSpec, ImmutableArray lifecycleConfigArns) { + CustomImages = customImages; DefaultResourceSpec = defaultResourceSpec; LifecycleConfigArns = lifecycleConfigArns; } diff --git a/sdk/dotnet/SecurityHub/DelegatedAdmin.cs b/sdk/dotnet/SecurityHub/DelegatedAdmin.cs new file mode 100644 index 0000000000..1b713dd017 --- /dev/null +++ b/sdk/dotnet/SecurityHub/DelegatedAdmin.cs @@ -0,0 +1,96 @@ +// *** 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.SecurityHub +{ + /// + /// The AWS::SecurityHub::DelegatedAdmin resource represents the AWS Security Hub delegated admin account in your organization. One delegated admin resource is allowed to create for the organization in each region in which you configure the AdminAccountId. + /// + [AwsNativeResourceType("aws-native:securityhub:DelegatedAdmin")] + public partial class DelegatedAdmin : global::Pulumi.CustomResource + { + /// + /// The Amazon Web Services account identifier of the account to designate as the Security Hub administrator account + /// + [Output("adminAccountId")] + public Output AdminAccountId { get; private set; } = null!; + + /// + /// The identifier of the DelegatedAdmin being created and assigned as the unique identifier + /// + [Output("delegatedAdminIdentifier")] + public Output DelegatedAdminIdentifier { get; private set; } = null!; + + /// + /// The current status of the Security Hub administrator account. Indicates whether the account is currently enabled as a Security Hub administrator + /// + [Output("status")] + public Output Status { get; private set; } = null!; + + + /// + /// Create a DelegatedAdmin 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 DelegatedAdmin(string name, DelegatedAdminArgs args, CustomResourceOptions? options = null) + : base("aws-native:securityhub:DelegatedAdmin", name, args ?? new DelegatedAdminArgs(), MakeResourceOptions(options, "")) + { + } + + private DelegatedAdmin(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:securityhub:DelegatedAdmin", name, null, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + ReplaceOnChanges = + { + "adminAccountId", + }, + }; + 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 DelegatedAdmin 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 DelegatedAdmin Get(string name, Input id, CustomResourceOptions? options = null) + { + return new DelegatedAdmin(name, id, options); + } + } + + public sealed class DelegatedAdminArgs : global::Pulumi.ResourceArgs + { + /// + /// The Amazon Web Services account identifier of the account to designate as the Security Hub administrator account + /// + [Input("adminAccountId", required: true)] + public Input AdminAccountId { get; set; } = null!; + + public DelegatedAdminArgs() + { + } + public static new DelegatedAdminArgs Empty => new DelegatedAdminArgs(); + } +} diff --git a/sdk/dotnet/SecurityHub/Enums.cs b/sdk/dotnet/SecurityHub/Enums.cs index f1cf6da8e7..01b479e9b6 100644 --- a/sdk/dotnet/SecurityHub/Enums.cs +++ b/sdk/dotnet/SecurityHub/Enums.cs @@ -247,4 +247,129 @@ private AutomationRulesFindingFieldsUpdateVerificationState(string value) public override string ToString() => _value; } + + /// + /// The current status of the Security Hub administrator account. Indicates whether the account is currently enabled as a Security Hub administrator + /// + [EnumType] + public readonly struct DelegatedAdminStatus : IEquatable + { + private readonly string _value; + + private DelegatedAdminStatus(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static DelegatedAdminStatus Enabled { get; } = new DelegatedAdminStatus("ENABLED"); + public static DelegatedAdminStatus DisableInProgress { get; } = new DelegatedAdminStatus("DISABLE_IN_PROGRESS"); + + public static bool operator ==(DelegatedAdminStatus left, DelegatedAdminStatus right) => left.Equals(right); + public static bool operator !=(DelegatedAdminStatus left, DelegatedAdminStatus right) => !left.Equals(right); + + public static explicit operator string(DelegatedAdminStatus value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is DelegatedAdminStatus other && Equals(other); + public bool Equals(DelegatedAdminStatus other) => string.Equals(_value, other._value, StringComparison.Ordinal); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value?.GetHashCode() ?? 0; + + public override string ToString() => _value; + } + + /// + /// A date range unit for the date filter. + /// + [EnumType] + public readonly struct InsightDateRangeUnit : IEquatable + { + private readonly string _value; + + private InsightDateRangeUnit(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static InsightDateRangeUnit Days { get; } = new InsightDateRangeUnit("DAYS"); + + public static bool operator ==(InsightDateRangeUnit left, InsightDateRangeUnit right) => left.Equals(right); + public static bool operator !=(InsightDateRangeUnit left, InsightDateRangeUnit right) => !left.Equals(right); + + public static explicit operator string(InsightDateRangeUnit value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is InsightDateRangeUnit other && Equals(other); + public bool Equals(InsightDateRangeUnit other) => string.Equals(_value, other._value, StringComparison.Ordinal); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value?.GetHashCode() ?? 0; + + public override string ToString() => _value; + } + + /// + /// The condition to apply to the key value when filtering Security Hub findings with a map filter. + /// + [EnumType] + public readonly struct InsightMapFilterComparison : IEquatable + { + private readonly string _value; + + private InsightMapFilterComparison(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static InsightMapFilterComparison EqualsValue { get; } = new InsightMapFilterComparison("EQUALS"); + public static InsightMapFilterComparison NotEquals { get; } = new InsightMapFilterComparison("NOT_EQUALS"); + + public static bool operator ==(InsightMapFilterComparison left, InsightMapFilterComparison right) => left.Equals(right); + public static bool operator !=(InsightMapFilterComparison left, InsightMapFilterComparison right) => !left.Equals(right); + + public static explicit operator string(InsightMapFilterComparison value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is InsightMapFilterComparison other && Equals(other); + public bool Equals(InsightMapFilterComparison other) => string.Equals(_value, other._value, StringComparison.Ordinal); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value?.GetHashCode() ?? 0; + + public override string ToString() => _value; + } + + /// + /// The condition to apply to a string value when filtering Security Hub findings. + /// + [EnumType] + public readonly struct InsightStringFilterComparison : IEquatable + { + private readonly string _value; + + private InsightStringFilterComparison(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static InsightStringFilterComparison EqualsValue { get; } = new InsightStringFilterComparison("EQUALS"); + public static InsightStringFilterComparison Prefix { get; } = new InsightStringFilterComparison("PREFIX"); + public static InsightStringFilterComparison NotEquals { get; } = new InsightStringFilterComparison("NOT_EQUALS"); + public static InsightStringFilterComparison PrefixNotEquals { get; } = new InsightStringFilterComparison("PREFIX_NOT_EQUALS"); + + public static bool operator ==(InsightStringFilterComparison left, InsightStringFilterComparison right) => left.Equals(right); + public static bool operator !=(InsightStringFilterComparison left, InsightStringFilterComparison right) => !left.Equals(right); + + public static explicit operator string(InsightStringFilterComparison value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is InsightStringFilterComparison other && Equals(other); + public bool Equals(InsightStringFilterComparison 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/SecurityHub/GetDelegatedAdmin.cs b/sdk/dotnet/SecurityHub/GetDelegatedAdmin.cs new file mode 100644 index 0000000000..db9f973d19 --- /dev/null +++ b/sdk/dotnet/SecurityHub/GetDelegatedAdmin.cs @@ -0,0 +1,79 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.SecurityHub +{ + public static class GetDelegatedAdmin + { + /// + /// The AWS::SecurityHub::DelegatedAdmin resource represents the AWS Security Hub delegated admin account in your organization. One delegated admin resource is allowed to create for the organization in each region in which you configure the AdminAccountId. + /// + public static Task InvokeAsync(GetDelegatedAdminArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:securityhub:getDelegatedAdmin", args ?? new GetDelegatedAdminArgs(), options.WithDefaults()); + + /// + /// The AWS::SecurityHub::DelegatedAdmin resource represents the AWS Security Hub delegated admin account in your organization. One delegated admin resource is allowed to create for the organization in each region in which you configure the AdminAccountId. + /// + public static Output Invoke(GetDelegatedAdminInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:securityhub:getDelegatedAdmin", args ?? new GetDelegatedAdminInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetDelegatedAdminArgs : global::Pulumi.InvokeArgs + { + /// + /// The identifier of the DelegatedAdmin being created and assigned as the unique identifier + /// + [Input("delegatedAdminIdentifier", required: true)] + public string DelegatedAdminIdentifier { get; set; } = null!; + + public GetDelegatedAdminArgs() + { + } + public static new GetDelegatedAdminArgs Empty => new GetDelegatedAdminArgs(); + } + + public sealed class GetDelegatedAdminInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The identifier of the DelegatedAdmin being created and assigned as the unique identifier + /// + [Input("delegatedAdminIdentifier", required: true)] + public Input DelegatedAdminIdentifier { get; set; } = null!; + + public GetDelegatedAdminInvokeArgs() + { + } + public static new GetDelegatedAdminInvokeArgs Empty => new GetDelegatedAdminInvokeArgs(); + } + + + [OutputType] + public sealed class GetDelegatedAdminResult + { + /// + /// The identifier of the DelegatedAdmin being created and assigned as the unique identifier + /// + public readonly string? DelegatedAdminIdentifier; + /// + /// The current status of the Security Hub administrator account. Indicates whether the account is currently enabled as a Security Hub administrator + /// + public readonly Pulumi.AwsNative.SecurityHub.DelegatedAdminStatus? Status; + + [OutputConstructor] + private GetDelegatedAdminResult( + string? delegatedAdminIdentifier, + + Pulumi.AwsNative.SecurityHub.DelegatedAdminStatus? status) + { + DelegatedAdminIdentifier = delegatedAdminIdentifier; + Status = status; + } + } +} diff --git a/sdk/dotnet/SecurityHub/GetInsight.cs b/sdk/dotnet/SecurityHub/GetInsight.cs new file mode 100644 index 0000000000..a7bcfa35cd --- /dev/null +++ b/sdk/dotnet/SecurityHub/GetInsight.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.SecurityHub +{ + public static class GetInsight + { + /// + /// The AWS::SecurityHub::Insight resource represents the AWS Security Hub Insight in your account. An AWS Security Hub insight is a collection of related findings. + /// + public static Task InvokeAsync(GetInsightArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:securityhub:getInsight", args ?? new GetInsightArgs(), options.WithDefaults()); + + /// + /// The AWS::SecurityHub::Insight resource represents the AWS Security Hub Insight in your account. An AWS Security Hub insight is a collection of related findings. + /// + public static Output Invoke(GetInsightInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:securityhub:getInsight", args ?? new GetInsightInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetInsightArgs : global::Pulumi.InvokeArgs + { + /// + /// The ARN of a Security Hub insight + /// + [Input("insightArn", required: true)] + public string InsightArn { get; set; } = null!; + + public GetInsightArgs() + { + } + public static new GetInsightArgs Empty => new GetInsightArgs(); + } + + public sealed class GetInsightInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The ARN of a Security Hub insight + /// + [Input("insightArn", required: true)] + public Input InsightArn { get; set; } = null!; + + public GetInsightInvokeArgs() + { + } + public static new GetInsightInvokeArgs Empty => new GetInsightInvokeArgs(); + } + + + [OutputType] + public sealed class GetInsightResult + { + /// + /// One or more attributes used to filter the findings included in the insight + /// + public readonly Outputs.InsightAwsSecurityFindingFilters? Filters; + /// + /// The grouping attribute for the insight's findings + /// + public readonly string? GroupByAttribute; + /// + /// The ARN of a Security Hub insight + /// + public readonly string? InsightArn; + /// + /// The name of a Security Hub insight + /// + public readonly string? Name; + + [OutputConstructor] + private GetInsightResult( + Outputs.InsightAwsSecurityFindingFilters? filters, + + string? groupByAttribute, + + string? insightArn, + + string? name) + { + Filters = filters; + GroupByAttribute = groupByAttribute; + InsightArn = insightArn; + Name = name; + } + } +} diff --git a/sdk/dotnet/SecurityHub/GetProductSubscription.cs b/sdk/dotnet/SecurityHub/GetProductSubscription.cs new file mode 100644 index 0000000000..0f2602bd1e --- /dev/null +++ b/sdk/dotnet/SecurityHub/GetProductSubscription.cs @@ -0,0 +1,71 @@ +// *** 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.SecurityHub +{ + public static class GetProductSubscription + { + /// + /// The AWS::SecurityHub::ProductSubscription resource represents a subscription to a service that is allowed to generate findings for your Security Hub account. One product subscription resource is created for each product enabled. + /// + public static Task InvokeAsync(GetProductSubscriptionArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:securityhub:getProductSubscription", args ?? new GetProductSubscriptionArgs(), options.WithDefaults()); + + /// + /// The AWS::SecurityHub::ProductSubscription resource represents a subscription to a service that is allowed to generate findings for your Security Hub account. One product subscription resource is created for each product enabled. + /// + public static Output Invoke(GetProductSubscriptionInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:securityhub:getProductSubscription", args ?? new GetProductSubscriptionInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetProductSubscriptionArgs : global::Pulumi.InvokeArgs + { + /// + /// The ARN of the product subscription for the account + /// + [Input("productSubscriptionArn", required: true)] + public string ProductSubscriptionArn { get; set; } = null!; + + public GetProductSubscriptionArgs() + { + } + public static new GetProductSubscriptionArgs Empty => new GetProductSubscriptionArgs(); + } + + public sealed class GetProductSubscriptionInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The ARN of the product subscription for the account + /// + [Input("productSubscriptionArn", required: true)] + public Input ProductSubscriptionArn { get; set; } = null!; + + public GetProductSubscriptionInvokeArgs() + { + } + public static new GetProductSubscriptionInvokeArgs Empty => new GetProductSubscriptionInvokeArgs(); + } + + + [OutputType] + public sealed class GetProductSubscriptionResult + { + /// + /// The ARN of the product subscription for the account + /// + public readonly string? ProductSubscriptionArn; + + [OutputConstructor] + private GetProductSubscriptionResult(string? productSubscriptionArn) + { + ProductSubscriptionArn = productSubscriptionArn; + } + } +} diff --git a/sdk/dotnet/SecurityHub/Inputs/InsightAwsSecurityFindingFiltersArgs.cs b/sdk/dotnet/SecurityHub/Inputs/InsightAwsSecurityFindingFiltersArgs.cs new file mode 100644 index 0000000000..a2d00bb829 --- /dev/null +++ b/sdk/dotnet/SecurityHub/Inputs/InsightAwsSecurityFindingFiltersArgs.cs @@ -0,0 +1,1271 @@ +// *** 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.SecurityHub.Inputs +{ + + /// + /// A collection of filters that are applied to all active findings aggregated by AWS Security Hub. + /// + public sealed class InsightAwsSecurityFindingFiltersArgs : global::Pulumi.ResourceArgs + { + [Input("awsAccountId")] + private InputList? _awsAccountId; + + /// + /// The AWS account ID in which a finding is generated. + /// + public InputList AwsAccountId + { + get => _awsAccountId ?? (_awsAccountId = new InputList()); + set => _awsAccountId = value; + } + + [Input("awsAccountName")] + private InputList? _awsAccountName; + + /// + /// The name of the AWS account in which a finding is generated. + /// + public InputList AwsAccountName + { + get => _awsAccountName ?? (_awsAccountName = new InputList()); + set => _awsAccountName = value; + } + + [Input("companyName")] + private InputList? _companyName; + + /// + /// The name of the findings provider (company) that owns the solution (product) that generates findings. + /// + public InputList CompanyName + { + get => _companyName ?? (_companyName = new InputList()); + set => _companyName = value; + } + + [Input("complianceAssociatedStandardsId")] + private InputList? _complianceAssociatedStandardsId; + + /// + /// The unique identifier of a standard in which a control is enabled. + /// + public InputList ComplianceAssociatedStandardsId + { + get => _complianceAssociatedStandardsId ?? (_complianceAssociatedStandardsId = new InputList()); + set => _complianceAssociatedStandardsId = value; + } + + [Input("complianceSecurityControlId")] + private InputList? _complianceSecurityControlId; + + /// + /// The unique identifier of a control across standards. + /// + public InputList ComplianceSecurityControlId + { + get => _complianceSecurityControlId ?? (_complianceSecurityControlId = new InputList()); + set => _complianceSecurityControlId = value; + } + + [Input("complianceSecurityControlParametersName")] + private InputList? _complianceSecurityControlParametersName; + + /// + /// The name of a security control parameter. + /// + public InputList ComplianceSecurityControlParametersName + { + get => _complianceSecurityControlParametersName ?? (_complianceSecurityControlParametersName = new InputList()); + set => _complianceSecurityControlParametersName = value; + } + + [Input("complianceSecurityControlParametersValue")] + private InputList? _complianceSecurityControlParametersValue; + + /// + /// The current value of a security control parameter. + /// + public InputList ComplianceSecurityControlParametersValue + { + get => _complianceSecurityControlParametersValue ?? (_complianceSecurityControlParametersValue = new InputList()); + set => _complianceSecurityControlParametersValue = value; + } + + [Input("complianceStatus")] + private InputList? _complianceStatus; + + /// + /// Exclusive to findings that are generated as the result of a check run against a specific rule in a supported standard. + /// + public InputList ComplianceStatus + { + get => _complianceStatus ?? (_complianceStatus = new InputList()); + set => _complianceStatus = value; + } + + [Input("confidence")] + private InputList? _confidence; + + /// + /// A finding's confidence. + /// + public InputList Confidence + { + get => _confidence ?? (_confidence = new InputList()); + set => _confidence = value; + } + + [Input("createdAt")] + private InputList? _createdAt; + + /// + /// An ISO8601-formatted timestamp that indicates when the security findings provider captured the potential security issue that a finding captured. + /// + public InputList CreatedAt + { + get => _createdAt ?? (_createdAt = new InputList()); + set => _createdAt = value; + } + + [Input("criticality")] + private InputList? _criticality; + + /// + /// The level of importance assigned to the resources associated with the finding. + /// + public InputList Criticality + { + get => _criticality ?? (_criticality = new InputList()); + set => _criticality = value; + } + + [Input("description")] + private InputList? _description; + + /// + /// A finding's description. + /// + public InputList Description + { + get => _description ?? (_description = new InputList()); + set => _description = value; + } + + [Input("findingProviderFieldsConfidence")] + private InputList? _findingProviderFieldsConfidence; + + /// + /// The finding provider value for the finding confidence. + /// + public InputList FindingProviderFieldsConfidence + { + get => _findingProviderFieldsConfidence ?? (_findingProviderFieldsConfidence = new InputList()); + set => _findingProviderFieldsConfidence = value; + } + + [Input("findingProviderFieldsCriticality")] + private InputList? _findingProviderFieldsCriticality; + + /// + /// The finding provider value for the level of importance assigned to the resources associated with the findings. + /// + public InputList FindingProviderFieldsCriticality + { + get => _findingProviderFieldsCriticality ?? (_findingProviderFieldsCriticality = new InputList()); + set => _findingProviderFieldsCriticality = value; + } + + [Input("findingProviderFieldsRelatedFindingsId")] + private InputList? _findingProviderFieldsRelatedFindingsId; + + /// + /// The finding identifier of a related finding that is identified by the finding provider. + /// + public InputList FindingProviderFieldsRelatedFindingsId + { + get => _findingProviderFieldsRelatedFindingsId ?? (_findingProviderFieldsRelatedFindingsId = new InputList()); + set => _findingProviderFieldsRelatedFindingsId = value; + } + + [Input("findingProviderFieldsRelatedFindingsProductArn")] + private InputList? _findingProviderFieldsRelatedFindingsProductArn; + + /// + /// The ARN of the solution that generated a related finding that is identified by the finding provider. + /// + public InputList FindingProviderFieldsRelatedFindingsProductArn + { + get => _findingProviderFieldsRelatedFindingsProductArn ?? (_findingProviderFieldsRelatedFindingsProductArn = new InputList()); + set => _findingProviderFieldsRelatedFindingsProductArn = value; + } + + [Input("findingProviderFieldsSeverityLabel")] + private InputList? _findingProviderFieldsSeverityLabel; + + /// + /// The finding provider value for the severity label. + /// + public InputList FindingProviderFieldsSeverityLabel + { + get => _findingProviderFieldsSeverityLabel ?? (_findingProviderFieldsSeverityLabel = new InputList()); + set => _findingProviderFieldsSeverityLabel = value; + } + + [Input("findingProviderFieldsSeverityOriginal")] + private InputList? _findingProviderFieldsSeverityOriginal; + + /// + /// The finding provider's original value for the severity. + /// + public InputList FindingProviderFieldsSeverityOriginal + { + get => _findingProviderFieldsSeverityOriginal ?? (_findingProviderFieldsSeverityOriginal = new InputList()); + set => _findingProviderFieldsSeverityOriginal = value; + } + + [Input("findingProviderFieldsTypes")] + private InputList? _findingProviderFieldsTypes; + + /// + /// One or more finding types that the finding provider assigned to the finding. + /// + public InputList FindingProviderFieldsTypes + { + get => _findingProviderFieldsTypes ?? (_findingProviderFieldsTypes = new InputList()); + set => _findingProviderFieldsTypes = value; + } + + [Input("firstObservedAt")] + private InputList? _firstObservedAt; + + /// + /// An ISO8601-formatted timestamp that indicates when the security findings provider first observed the potential security issue that a finding captured. + /// + public InputList FirstObservedAt + { + get => _firstObservedAt ?? (_firstObservedAt = new InputList()); + set => _firstObservedAt = value; + } + + [Input("generatorId")] + private InputList? _generatorId; + + /// + /// The identifier for the solution-specific component (a discrete unit of logic) that generated a finding. + /// + public InputList GeneratorId + { + get => _generatorId ?? (_generatorId = new InputList()); + set => _generatorId = value; + } + + [Input("id")] + private InputList? _id; + + /// + /// The security findings provider-specific identifier for a finding. + /// + public InputList Id + { + get => _id ?? (_id = new InputList()); + set => _id = value; + } + + [Input("keyword")] + private InputList? _keyword; + + /// + /// A keyword for a finding. + /// + public InputList Keyword + { + get => _keyword ?? (_keyword = new InputList()); + set => _keyword = value; + } + + [Input("lastObservedAt")] + private InputList? _lastObservedAt; + + /// + /// An ISO8601-formatted timestamp that indicates when the security findings provider most recently observed the potential security issue that a finding captured. + /// + public InputList LastObservedAt + { + get => _lastObservedAt ?? (_lastObservedAt = new InputList()); + set => _lastObservedAt = value; + } + + [Input("malwareName")] + private InputList? _malwareName; + + /// + /// The name of the malware that was observed. + /// + public InputList MalwareName + { + get => _malwareName ?? (_malwareName = new InputList()); + set => _malwareName = value; + } + + [Input("malwarePath")] + private InputList? _malwarePath; + + /// + /// The filesystem path of the malware that was observed. + /// + public InputList MalwarePath + { + get => _malwarePath ?? (_malwarePath = new InputList()); + set => _malwarePath = value; + } + + [Input("malwareState")] + private InputList? _malwareState; + + /// + /// The state of the malware that was observed. + /// + public InputList MalwareState + { + get => _malwareState ?? (_malwareState = new InputList()); + set => _malwareState = value; + } + + [Input("malwareType")] + private InputList? _malwareType; + + /// + /// The type of the malware that was observed. + /// + public InputList MalwareType + { + get => _malwareType ?? (_malwareType = new InputList()); + set => _malwareType = value; + } + + [Input("networkDestinationDomain")] + private InputList? _networkDestinationDomain; + + /// + /// The destination domain of network-related information about a finding. + /// + public InputList NetworkDestinationDomain + { + get => _networkDestinationDomain ?? (_networkDestinationDomain = new InputList()); + set => _networkDestinationDomain = value; + } + + [Input("networkDestinationIpV4")] + private InputList? _networkDestinationIpV4; + + /// + /// The destination IPv4 address of network-related information about a finding. + /// + public InputList NetworkDestinationIpV4 + { + get => _networkDestinationIpV4 ?? (_networkDestinationIpV4 = new InputList()); + set => _networkDestinationIpV4 = value; + } + + [Input("networkDestinationIpV6")] + private InputList? _networkDestinationIpV6; + + /// + /// The destination IPv6 address of network-related information about a finding. + /// + public InputList NetworkDestinationIpV6 + { + get => _networkDestinationIpV6 ?? (_networkDestinationIpV6 = new InputList()); + set => _networkDestinationIpV6 = value; + } + + [Input("networkDestinationPort")] + private InputList? _networkDestinationPort; + + /// + /// The destination port of network-related information about a finding. + /// + public InputList NetworkDestinationPort + { + get => _networkDestinationPort ?? (_networkDestinationPort = new InputList()); + set => _networkDestinationPort = value; + } + + [Input("networkDirection")] + private InputList? _networkDirection; + + /// + /// Indicates the direction of network traffic associated with a finding. + /// + public InputList NetworkDirection + { + get => _networkDirection ?? (_networkDirection = new InputList()); + set => _networkDirection = value; + } + + [Input("networkProtocol")] + private InputList? _networkProtocol; + + /// + /// The protocol of network-related information about a finding. + /// + public InputList NetworkProtocol + { + get => _networkProtocol ?? (_networkProtocol = new InputList()); + set => _networkProtocol = value; + } + + [Input("networkSourceDomain")] + private InputList? _networkSourceDomain; + + /// + /// The source domain of network-related information about a finding. + /// + public InputList NetworkSourceDomain + { + get => _networkSourceDomain ?? (_networkSourceDomain = new InputList()); + set => _networkSourceDomain = value; + } + + [Input("networkSourceIpV4")] + private InputList? _networkSourceIpV4; + + /// + /// The source IPv4 address of network-related information about a finding. + /// + public InputList NetworkSourceIpV4 + { + get => _networkSourceIpV4 ?? (_networkSourceIpV4 = new InputList()); + set => _networkSourceIpV4 = value; + } + + [Input("networkSourceIpV6")] + private InputList? _networkSourceIpV6; + + /// + /// The source IPv6 address of network-related information about a finding. + /// + public InputList NetworkSourceIpV6 + { + get => _networkSourceIpV6 ?? (_networkSourceIpV6 = new InputList()); + set => _networkSourceIpV6 = value; + } + + [Input("networkSourceMac")] + private InputList? _networkSourceMac; + + /// + /// The source media access control (MAC) address of network-related information about a finding. + /// + public InputList NetworkSourceMac + { + get => _networkSourceMac ?? (_networkSourceMac = new InputList()); + set => _networkSourceMac = value; + } + + [Input("networkSourcePort")] + private InputList? _networkSourcePort; + + /// + /// The source port of network-related information about a finding. + /// + public InputList NetworkSourcePort + { + get => _networkSourcePort ?? (_networkSourcePort = new InputList()); + set => _networkSourcePort = value; + } + + [Input("noteText")] + private InputList? _noteText; + + /// + /// The text of a note. + /// + public InputList NoteText + { + get => _noteText ?? (_noteText = new InputList()); + set => _noteText = value; + } + + [Input("noteUpdatedAt")] + private InputList? _noteUpdatedAt; + + /// + /// The timestamp of when the note was updated. + /// + public InputList NoteUpdatedAt + { + get => _noteUpdatedAt ?? (_noteUpdatedAt = new InputList()); + set => _noteUpdatedAt = value; + } + + [Input("noteUpdatedBy")] + private InputList? _noteUpdatedBy; + + /// + /// The principal that created a note. + /// + public InputList NoteUpdatedBy + { + get => _noteUpdatedBy ?? (_noteUpdatedBy = new InputList()); + set => _noteUpdatedBy = value; + } + + [Input("processLaunchedAt")] + private InputList? _processLaunchedAt; + + /// + /// A timestamp that identifies when the process was launched. + /// + public InputList ProcessLaunchedAt + { + get => _processLaunchedAt ?? (_processLaunchedAt = new InputList()); + set => _processLaunchedAt = value; + } + + [Input("processName")] + private InputList? _processName; + + /// + /// The name of the process. + /// + public InputList ProcessName + { + get => _processName ?? (_processName = new InputList()); + set => _processName = value; + } + + [Input("processParentPid")] + private InputList? _processParentPid; + + /// + /// The parent process ID. + /// + public InputList ProcessParentPid + { + get => _processParentPid ?? (_processParentPid = new InputList()); + set => _processParentPid = value; + } + + [Input("processPath")] + private InputList? _processPath; + + /// + /// The path to the process executable. + /// + public InputList ProcessPath + { + get => _processPath ?? (_processPath = new InputList()); + set => _processPath = value; + } + + [Input("processPid")] + private InputList? _processPid; + + /// + /// The process ID. + /// + public InputList ProcessPid + { + get => _processPid ?? (_processPid = new InputList()); + set => _processPid = value; + } + + [Input("processTerminatedAt")] + private InputList? _processTerminatedAt; + + /// + /// A timestamp that identifies when the process was terminated. + /// + public InputList ProcessTerminatedAt + { + get => _processTerminatedAt ?? (_processTerminatedAt = new InputList()); + set => _processTerminatedAt = value; + } + + [Input("productArn")] + private InputList? _productArn; + + /// + /// The ARN generated by Security Hub that uniquely identifies a third-party company (security findings provider) after this provider's product (solution that generates findings) is registered with Security Hub. + /// + public InputList ProductArn + { + get => _productArn ?? (_productArn = new InputList()); + set => _productArn = value; + } + + [Input("productFields")] + private InputList? _productFields; + + /// + /// A data type where security findings providers can include additional solution-specific details that aren't part of the defined AwsSecurityFinding format. + /// + public InputList ProductFields + { + get => _productFields ?? (_productFields = new InputList()); + set => _productFields = value; + } + + [Input("productName")] + private InputList? _productName; + + /// + /// The name of the solution (product) that generates findings. + /// + public InputList ProductName + { + get => _productName ?? (_productName = new InputList()); + set => _productName = value; + } + + [Input("recommendationText")] + private InputList? _recommendationText; + + /// + /// The recommendation of what to do about the issue described in a finding. + /// + public InputList RecommendationText + { + get => _recommendationText ?? (_recommendationText = new InputList()); + set => _recommendationText = value; + } + + [Input("recordState")] + private InputList? _recordState; + + /// + /// The updated record state for the finding. + /// + public InputList RecordState + { + get => _recordState ?? (_recordState = new InputList()); + set => _recordState = value; + } + + [Input("region")] + private InputList? _region; + + /// + /// The Region from which the finding was generated. + /// + public InputList Region + { + get => _region ?? (_region = new InputList()); + set => _region = value; + } + + [Input("relatedFindingsId")] + private InputList? _relatedFindingsId; + + /// + /// The solution-generated identifier for a related finding. + /// + public InputList RelatedFindingsId + { + get => _relatedFindingsId ?? (_relatedFindingsId = new InputList()); + set => _relatedFindingsId = value; + } + + [Input("relatedFindingsProductArn")] + private InputList? _relatedFindingsProductArn; + + /// + /// The ARN of the solution that generated a related finding. + /// + public InputList RelatedFindingsProductArn + { + get => _relatedFindingsProductArn ?? (_relatedFindingsProductArn = new InputList()); + set => _relatedFindingsProductArn = value; + } + + [Input("resourceApplicationArn")] + private InputList? _resourceApplicationArn; + + /// + /// The ARN of the application that is related to a finding. + /// + public InputList ResourceApplicationArn + { + get => _resourceApplicationArn ?? (_resourceApplicationArn = new InputList()); + set => _resourceApplicationArn = value; + } + + [Input("resourceApplicationName")] + private InputList? _resourceApplicationName; + + /// + /// The name of the application that is related to a finding. + /// + public InputList ResourceApplicationName + { + get => _resourceApplicationName ?? (_resourceApplicationName = new InputList()); + set => _resourceApplicationName = value; + } + + [Input("resourceAwsEc2InstanceIamInstanceProfileArn")] + private InputList? _resourceAwsEc2InstanceIamInstanceProfileArn; + + /// + /// The IAM profile ARN of the instance. + /// + public InputList ResourceAwsEc2InstanceIamInstanceProfileArn + { + get => _resourceAwsEc2InstanceIamInstanceProfileArn ?? (_resourceAwsEc2InstanceIamInstanceProfileArn = new InputList()); + set => _resourceAwsEc2InstanceIamInstanceProfileArn = value; + } + + [Input("resourceAwsEc2InstanceImageId")] + private InputList? _resourceAwsEc2InstanceImageId; + + /// + /// The Amazon Machine Image (AMI) ID of the instance. + /// + public InputList ResourceAwsEc2InstanceImageId + { + get => _resourceAwsEc2InstanceImageId ?? (_resourceAwsEc2InstanceImageId = new InputList()); + set => _resourceAwsEc2InstanceImageId = value; + } + + [Input("resourceAwsEc2InstanceIpV4Addresses")] + private InputList? _resourceAwsEc2InstanceIpV4Addresses; + + /// + /// The IPv4 addresses associated with the instance. + /// + public InputList ResourceAwsEc2InstanceIpV4Addresses + { + get => _resourceAwsEc2InstanceIpV4Addresses ?? (_resourceAwsEc2InstanceIpV4Addresses = new InputList()); + set => _resourceAwsEc2InstanceIpV4Addresses = value; + } + + [Input("resourceAwsEc2InstanceIpV6Addresses")] + private InputList? _resourceAwsEc2InstanceIpV6Addresses; + + /// + /// The IPv6 addresses associated with the instance. + /// + public InputList ResourceAwsEc2InstanceIpV6Addresses + { + get => _resourceAwsEc2InstanceIpV6Addresses ?? (_resourceAwsEc2InstanceIpV6Addresses = new InputList()); + set => _resourceAwsEc2InstanceIpV6Addresses = value; + } + + [Input("resourceAwsEc2InstanceKeyName")] + private InputList? _resourceAwsEc2InstanceKeyName; + + /// + /// The key name associated with the instance. + /// + public InputList ResourceAwsEc2InstanceKeyName + { + get => _resourceAwsEc2InstanceKeyName ?? (_resourceAwsEc2InstanceKeyName = new InputList()); + set => _resourceAwsEc2InstanceKeyName = value; + } + + [Input("resourceAwsEc2InstanceLaunchedAt")] + private InputList? _resourceAwsEc2InstanceLaunchedAt; + + /// + /// The date and time the instance was launched. + /// + public InputList ResourceAwsEc2InstanceLaunchedAt + { + get => _resourceAwsEc2InstanceLaunchedAt ?? (_resourceAwsEc2InstanceLaunchedAt = new InputList()); + set => _resourceAwsEc2InstanceLaunchedAt = value; + } + + [Input("resourceAwsEc2InstanceSubnetId")] + private InputList? _resourceAwsEc2InstanceSubnetId; + + /// + /// The identifier of the subnet that the instance was launched in. + /// + public InputList ResourceAwsEc2InstanceSubnetId + { + get => _resourceAwsEc2InstanceSubnetId ?? (_resourceAwsEc2InstanceSubnetId = new InputList()); + set => _resourceAwsEc2InstanceSubnetId = value; + } + + [Input("resourceAwsEc2InstanceType")] + private InputList? _resourceAwsEc2InstanceType; + + /// + /// The instance type of the instance. + /// + public InputList ResourceAwsEc2InstanceType + { + get => _resourceAwsEc2InstanceType ?? (_resourceAwsEc2InstanceType = new InputList()); + set => _resourceAwsEc2InstanceType = value; + } + + [Input("resourceAwsEc2InstanceVpcId")] + private InputList? _resourceAwsEc2InstanceVpcId; + + /// + /// The identifier of the VPC that the instance was launched in. + /// + public InputList ResourceAwsEc2InstanceVpcId + { + get => _resourceAwsEc2InstanceVpcId ?? (_resourceAwsEc2InstanceVpcId = new InputList()); + set => _resourceAwsEc2InstanceVpcId = value; + } + + [Input("resourceAwsIamAccessKeyCreatedAt")] + private InputList? _resourceAwsIamAccessKeyCreatedAt; + + /// + /// The creation date/time of the IAM access key related to a finding. + /// + public InputList ResourceAwsIamAccessKeyCreatedAt + { + get => _resourceAwsIamAccessKeyCreatedAt ?? (_resourceAwsIamAccessKeyCreatedAt = new InputList()); + set => _resourceAwsIamAccessKeyCreatedAt = value; + } + + [Input("resourceAwsIamAccessKeyPrincipalName")] + private InputList? _resourceAwsIamAccessKeyPrincipalName; + + /// + /// The name of the principal that is associated with an IAM access key. + /// + public InputList ResourceAwsIamAccessKeyPrincipalName + { + get => _resourceAwsIamAccessKeyPrincipalName ?? (_resourceAwsIamAccessKeyPrincipalName = new InputList()); + set => _resourceAwsIamAccessKeyPrincipalName = value; + } + + [Input("resourceAwsIamAccessKeyStatus")] + private InputList? _resourceAwsIamAccessKeyStatus; + + /// + /// The status of the IAM access key related to a finding. + /// + public InputList ResourceAwsIamAccessKeyStatus + { + get => _resourceAwsIamAccessKeyStatus ?? (_resourceAwsIamAccessKeyStatus = new InputList()); + set => _resourceAwsIamAccessKeyStatus = value; + } + + [Input("resourceAwsIamAccessKeyUserName")] + private InputList? _resourceAwsIamAccessKeyUserName; + + /// + /// The user associated with the IAM access key related to a finding. + /// + public InputList ResourceAwsIamAccessKeyUserName + { + get => _resourceAwsIamAccessKeyUserName ?? (_resourceAwsIamAccessKeyUserName = new InputList()); + set => _resourceAwsIamAccessKeyUserName = value; + } + + [Input("resourceAwsIamUserUserName")] + private InputList? _resourceAwsIamUserUserName; + + /// + /// The name of an IAM user. + /// + public InputList ResourceAwsIamUserUserName + { + get => _resourceAwsIamUserUserName ?? (_resourceAwsIamUserUserName = new InputList()); + set => _resourceAwsIamUserUserName = value; + } + + [Input("resourceAwsS3BucketOwnerId")] + private InputList? _resourceAwsS3BucketOwnerId; + + /// + /// The canonical user ID of the owner of the S3 bucket. + /// + public InputList ResourceAwsS3BucketOwnerId + { + get => _resourceAwsS3BucketOwnerId ?? (_resourceAwsS3BucketOwnerId = new InputList()); + set => _resourceAwsS3BucketOwnerId = value; + } + + [Input("resourceAwsS3BucketOwnerName")] + private InputList? _resourceAwsS3BucketOwnerName; + + /// + /// The display name of the owner of the S3 bucket. + /// + public InputList ResourceAwsS3BucketOwnerName + { + get => _resourceAwsS3BucketOwnerName ?? (_resourceAwsS3BucketOwnerName = new InputList()); + set => _resourceAwsS3BucketOwnerName = value; + } + + [Input("resourceContainerImageId")] + private InputList? _resourceContainerImageId; + + /// + /// The identifier of the image related to a finding. + /// + public InputList ResourceContainerImageId + { + get => _resourceContainerImageId ?? (_resourceContainerImageId = new InputList()); + set => _resourceContainerImageId = value; + } + + [Input("resourceContainerImageName")] + private InputList? _resourceContainerImageName; + + /// + /// The name of the image related to a finding. + /// + public InputList ResourceContainerImageName + { + get => _resourceContainerImageName ?? (_resourceContainerImageName = new InputList()); + set => _resourceContainerImageName = value; + } + + [Input("resourceContainerLaunchedAt")] + private InputList? _resourceContainerLaunchedAt; + + /// + /// A timestamp that identifies when the container was started. + /// + public InputList ResourceContainerLaunchedAt + { + get => _resourceContainerLaunchedAt ?? (_resourceContainerLaunchedAt = new InputList()); + set => _resourceContainerLaunchedAt = value; + } + + [Input("resourceContainerName")] + private InputList? _resourceContainerName; + + /// + /// The name of the container related to a finding. + /// + public InputList ResourceContainerName + { + get => _resourceContainerName ?? (_resourceContainerName = new InputList()); + set => _resourceContainerName = value; + } + + [Input("resourceDetailsOther")] + private InputList? _resourceDetailsOther; + + /// + /// The details of a resource that doesn't have a specific subfield for the resource type defined. + /// + public InputList ResourceDetailsOther + { + get => _resourceDetailsOther ?? (_resourceDetailsOther = new InputList()); + set => _resourceDetailsOther = value; + } + + [Input("resourceId")] + private InputList? _resourceId; + + /// + /// The canonical identifier for the given resource type. + /// + public InputList ResourceId + { + get => _resourceId ?? (_resourceId = new InputList()); + set => _resourceId = value; + } + + [Input("resourcePartition")] + private InputList? _resourcePartition; + + /// + /// The canonical AWS partition name that the Region is assigned to. + /// + public InputList ResourcePartition + { + get => _resourcePartition ?? (_resourcePartition = new InputList()); + set => _resourcePartition = value; + } + + [Input("resourceRegion")] + private InputList? _resourceRegion; + + /// + /// The canonical AWS external Region name where this resource is located. + /// + public InputList ResourceRegion + { + get => _resourceRegion ?? (_resourceRegion = new InputList()); + set => _resourceRegion = value; + } + + [Input("resourceTags")] + private InputList? _resourceTags; + + /// + /// A list of AWS tags associated with a resource at the time the finding was processed. + /// + public InputList ResourceTags + { + get => _resourceTags ?? (_resourceTags = new InputList()); + set => _resourceTags = value; + } + + [Input("resourceType")] + private InputList? _resourceType; + + /// + /// Specifies the type of the resource that details are provided for. + /// + public InputList ResourceType + { + get => _resourceType ?? (_resourceType = new InputList()); + set => _resourceType = value; + } + + [Input("sample")] + private InputList? _sample; + + /// + /// Indicates whether or not sample findings are included in the filter results. + /// + public InputList Sample + { + get => _sample ?? (_sample = new InputList()); + set => _sample = value; + } + + [Input("severityLabel")] + private InputList? _severityLabel; + + /// + /// The label of a finding's severity. + /// + public InputList SeverityLabel + { + get => _severityLabel ?? (_severityLabel = new InputList()); + set => _severityLabel = value; + } + + [Input("severityNormalized")] + private InputList? _severityNormalized; + + /// + /// The normalized severity of a finding. + /// + public InputList SeverityNormalized + { + get => _severityNormalized ?? (_severityNormalized = new InputList()); + set => _severityNormalized = value; + } + + [Input("severityProduct")] + private InputList? _severityProduct; + + /// + /// The native severity as defined by the security findings provider's solution that generated the finding. + /// + public InputList SeverityProduct + { + get => _severityProduct ?? (_severityProduct = new InputList()); + set => _severityProduct = value; + } + + [Input("sourceUrl")] + private InputList? _sourceUrl; + + /// + /// A URL that links to a page about the current finding in the security findings provider's solution. + /// + public InputList SourceUrl + { + get => _sourceUrl ?? (_sourceUrl = new InputList()); + set => _sourceUrl = value; + } + + [Input("threatIntelIndicatorCategory")] + private InputList? _threatIntelIndicatorCategory; + + /// + /// The category of a threat intelligence indicator. + /// + public InputList ThreatIntelIndicatorCategory + { + get => _threatIntelIndicatorCategory ?? (_threatIntelIndicatorCategory = new InputList()); + set => _threatIntelIndicatorCategory = value; + } + + [Input("threatIntelIndicatorLastObservedAt")] + private InputList? _threatIntelIndicatorLastObservedAt; + + /// + /// A timestamp that identifies the last observation of a threat intelligence indicator. + /// + public InputList ThreatIntelIndicatorLastObservedAt + { + get => _threatIntelIndicatorLastObservedAt ?? (_threatIntelIndicatorLastObservedAt = new InputList()); + set => _threatIntelIndicatorLastObservedAt = value; + } + + [Input("threatIntelIndicatorSource")] + private InputList? _threatIntelIndicatorSource; + + /// + /// The source of the threat intelligence. + /// + public InputList ThreatIntelIndicatorSource + { + get => _threatIntelIndicatorSource ?? (_threatIntelIndicatorSource = new InputList()); + set => _threatIntelIndicatorSource = value; + } + + [Input("threatIntelIndicatorSourceUrl")] + private InputList? _threatIntelIndicatorSourceUrl; + + /// + /// The URL for more details from the source of the threat intelligence. + /// + public InputList ThreatIntelIndicatorSourceUrl + { + get => _threatIntelIndicatorSourceUrl ?? (_threatIntelIndicatorSourceUrl = new InputList()); + set => _threatIntelIndicatorSourceUrl = value; + } + + [Input("threatIntelIndicatorType")] + private InputList? _threatIntelIndicatorType; + + /// + /// The type of a threat intelligence indicator. + /// + public InputList ThreatIntelIndicatorType + { + get => _threatIntelIndicatorType ?? (_threatIntelIndicatorType = new InputList()); + set => _threatIntelIndicatorType = value; + } + + [Input("threatIntelIndicatorValue")] + private InputList? _threatIntelIndicatorValue; + + /// + /// The value of a threat intelligence indicator. + /// + public InputList ThreatIntelIndicatorValue + { + get => _threatIntelIndicatorValue ?? (_threatIntelIndicatorValue = new InputList()); + set => _threatIntelIndicatorValue = value; + } + + [Input("title")] + private InputList? _title; + + /// + /// A finding's title. + /// + public InputList Title + { + get => _title ?? (_title = new InputList()); + set => _title = value; + } + + [Input("type")] + private InputList? _type; + + /// + /// A finding type in the format of namespace/category/classifier that classifies a finding. + /// + public InputList Type + { + get => _type ?? (_type = new InputList()); + set => _type = value; + } + + [Input("updatedAt")] + private InputList? _updatedAt; + + /// + /// An ISO8601-formatted timestamp that indicates when the security findings provider last updated the finding record. + /// + public InputList UpdatedAt + { + get => _updatedAt ?? (_updatedAt = new InputList()); + set => _updatedAt = value; + } + + [Input("userDefinedFields")] + private InputList? _userDefinedFields; + + /// + /// A list of name/value string pairs associated with the finding. + /// + public InputList UserDefinedFields + { + get => _userDefinedFields ?? (_userDefinedFields = new InputList()); + set => _userDefinedFields = value; + } + + [Input("verificationState")] + private InputList? _verificationState; + + /// + /// The veracity of a finding. + /// + public InputList VerificationState + { + get => _verificationState ?? (_verificationState = new InputList()); + set => _verificationState = value; + } + + [Input("vulnerabilitiesExploitAvailable")] + private InputList? _vulnerabilitiesExploitAvailable; + + /// + /// Indicates whether a software vulnerability in your environment has a known exploit. + /// + public InputList VulnerabilitiesExploitAvailable + { + get => _vulnerabilitiesExploitAvailable ?? (_vulnerabilitiesExploitAvailable = new InputList()); + set => _vulnerabilitiesExploitAvailable = value; + } + + [Input("vulnerabilitiesFixAvailable")] + private InputList? _vulnerabilitiesFixAvailable; + + /// + /// Indicates whether a vulnerability is fixed in a newer version of the affected software packages. + /// + public InputList VulnerabilitiesFixAvailable + { + get => _vulnerabilitiesFixAvailable ?? (_vulnerabilitiesFixAvailable = new InputList()); + set => _vulnerabilitiesFixAvailable = value; + } + + [Input("workflowState")] + private InputList? _workflowState; + + /// + /// The workflow state of a finding. + /// + public InputList WorkflowState + { + get => _workflowState ?? (_workflowState = new InputList()); + set => _workflowState = value; + } + + [Input("workflowStatus")] + private InputList? _workflowStatus; + + /// + /// The status of the investigation into a finding. + /// + public InputList WorkflowStatus + { + get => _workflowStatus ?? (_workflowStatus = new InputList()); + set => _workflowStatus = value; + } + + public InsightAwsSecurityFindingFiltersArgs() + { + } + public static new InsightAwsSecurityFindingFiltersArgs Empty => new InsightAwsSecurityFindingFiltersArgs(); + } +} diff --git a/sdk/dotnet/SecurityHub/Inputs/InsightBooleanFilterArgs.cs b/sdk/dotnet/SecurityHub/Inputs/InsightBooleanFilterArgs.cs new file mode 100644 index 0000000000..215700ae9c --- /dev/null +++ b/sdk/dotnet/SecurityHub/Inputs/InsightBooleanFilterArgs.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.SecurityHub.Inputs +{ + + /// + /// Boolean filter for querying findings. + /// + public sealed class InsightBooleanFilterArgs : global::Pulumi.ResourceArgs + { + /// + /// The value of the boolean. + /// + [Input("value", required: true)] + public Input Value { get; set; } = null!; + + public InsightBooleanFilterArgs() + { + } + public static new InsightBooleanFilterArgs Empty => new InsightBooleanFilterArgs(); + } +} diff --git a/sdk/dotnet/SecurityHub/Inputs/InsightDateFilterArgs.cs b/sdk/dotnet/SecurityHub/Inputs/InsightDateFilterArgs.cs new file mode 100644 index 0000000000..985c3aab2a --- /dev/null +++ b/sdk/dotnet/SecurityHub/Inputs/InsightDateFilterArgs.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.SecurityHub.Inputs +{ + + /// + /// A date filter for querying findings. + /// + public sealed class InsightDateFilterArgs : global::Pulumi.ResourceArgs + { + [Input("dateRange")] + public Input? DateRange { get; set; } + + [Input("end")] + public Input? End { get; set; } + + [Input("start")] + public Input? Start { get; set; } + + public InsightDateFilterArgs() + { + } + public static new InsightDateFilterArgs Empty => new InsightDateFilterArgs(); + } +} diff --git a/sdk/dotnet/SecurityHub/Inputs/InsightDateRangeArgs.cs b/sdk/dotnet/SecurityHub/Inputs/InsightDateRangeArgs.cs new file mode 100644 index 0000000000..f9b52c6cad --- /dev/null +++ b/sdk/dotnet/SecurityHub/Inputs/InsightDateRangeArgs.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.SecurityHub.Inputs +{ + + /// + /// A date range for the date filter. + /// + public sealed class InsightDateRangeArgs : global::Pulumi.ResourceArgs + { + /// + /// A date range unit for the date filter. + /// + [Input("unit", required: true)] + public Input Unit { get; set; } = null!; + + /// + /// A date range value for the date filter. + /// + [Input("value", required: true)] + public Input Value { get; set; } = null!; + + public InsightDateRangeArgs() + { + } + public static new InsightDateRangeArgs Empty => new InsightDateRangeArgs(); + } +} diff --git a/sdk/dotnet/SecurityHub/Inputs/InsightIpFilterArgs.cs b/sdk/dotnet/SecurityHub/Inputs/InsightIpFilterArgs.cs new file mode 100644 index 0000000000..d9dfef9e25 --- /dev/null +++ b/sdk/dotnet/SecurityHub/Inputs/InsightIpFilterArgs.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.SecurityHub.Inputs +{ + + /// + /// The IP filter for querying findings. + /// + public sealed class InsightIpFilterArgs : global::Pulumi.ResourceArgs + { + /// + /// A finding's CIDR value. + /// + [Input("cidr", required: true)] + public Input Cidr { get; set; } = null!; + + public InsightIpFilterArgs() + { + } + public static new InsightIpFilterArgs Empty => new InsightIpFilterArgs(); + } +} diff --git a/sdk/dotnet/SecurityHub/Inputs/InsightKeywordFilterArgs.cs b/sdk/dotnet/SecurityHub/Inputs/InsightKeywordFilterArgs.cs new file mode 100644 index 0000000000..bd0d93aa46 --- /dev/null +++ b/sdk/dotnet/SecurityHub/Inputs/InsightKeywordFilterArgs.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.SecurityHub.Inputs +{ + + /// + /// A keyword filter for querying findings. + /// + public sealed class InsightKeywordFilterArgs : global::Pulumi.ResourceArgs + { + /// + /// A value for the keyword. + /// + [Input("value", required: true)] + public Input Value { get; set; } = null!; + + public InsightKeywordFilterArgs() + { + } + public static new InsightKeywordFilterArgs Empty => new InsightKeywordFilterArgs(); + } +} diff --git a/sdk/dotnet/SecurityHub/Inputs/InsightMapFilterArgs.cs b/sdk/dotnet/SecurityHub/Inputs/InsightMapFilterArgs.cs new file mode 100644 index 0000000000..a5f22c0633 --- /dev/null +++ b/sdk/dotnet/SecurityHub/Inputs/InsightMapFilterArgs.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.SecurityHub.Inputs +{ + + /// + /// A map filter for filtering AWS Security Hub findings. + /// + public sealed class InsightMapFilterArgs : global::Pulumi.ResourceArgs + { + /// + /// The condition to apply to the key value when filtering Security Hub findings with a map filter. + /// + [Input("comparison", required: true)] + public Input Comparison { get; set; } = null!; + + [Input("key", required: true)] + public Input Key { get; set; } = null!; + + [Input("value", required: true)] + public Input Value { get; set; } = null!; + + public InsightMapFilterArgs() + { + } + public static new InsightMapFilterArgs Empty => new InsightMapFilterArgs(); + } +} diff --git a/sdk/dotnet/SecurityHub/Inputs/InsightNumberFilterArgs.cs b/sdk/dotnet/SecurityHub/Inputs/InsightNumberFilterArgs.cs new file mode 100644 index 0000000000..f59cac8408 --- /dev/null +++ b/sdk/dotnet/SecurityHub/Inputs/InsightNumberFilterArgs.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.SecurityHub.Inputs +{ + + /// + /// A number filter for querying findings. + /// + public sealed class InsightNumberFilterArgs : global::Pulumi.ResourceArgs + { + /// + /// The equal-to condition to be applied to a single field when querying for findings. + /// + [Input("eq")] + public Input? Eq { get; set; } + + /// + /// The greater-than-equal condition to be applied to a single field when querying for findings. + /// + [Input("gte")] + public Input? Gte { get; set; } + + /// + /// The less-than-equal condition to be applied to a single field when querying for findings. + /// + [Input("lte")] + public Input? Lte { get; set; } + + public InsightNumberFilterArgs() + { + } + public static new InsightNumberFilterArgs Empty => new InsightNumberFilterArgs(); + } +} diff --git a/sdk/dotnet/SecurityHub/Inputs/InsightStringFilterArgs.cs b/sdk/dotnet/SecurityHub/Inputs/InsightStringFilterArgs.cs new file mode 100644 index 0000000000..727965436d --- /dev/null +++ b/sdk/dotnet/SecurityHub/Inputs/InsightStringFilterArgs.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.SecurityHub.Inputs +{ + + /// + /// A string filter for filtering AWS Security Hub findings. + /// + public sealed class InsightStringFilterArgs : global::Pulumi.ResourceArgs + { + [Input("comparison", required: true)] + public Input Comparison { get; set; } = null!; + + [Input("value", required: true)] + public Input Value { get; set; } = null!; + + public InsightStringFilterArgs() + { + } + public static new InsightStringFilterArgs Empty => new InsightStringFilterArgs(); + } +} diff --git a/sdk/dotnet/SecurityHub/Insight.cs b/sdk/dotnet/SecurityHub/Insight.cs new file mode 100644 index 0000000000..1857ea6941 --- /dev/null +++ b/sdk/dotnet/SecurityHub/Insight.cs @@ -0,0 +1,110 @@ +// *** 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.SecurityHub +{ + /// + /// The AWS::SecurityHub::Insight resource represents the AWS Security Hub Insight in your account. An AWS Security Hub insight is a collection of related findings. + /// + [AwsNativeResourceType("aws-native:securityhub:Insight")] + public partial class Insight : global::Pulumi.CustomResource + { + /// + /// One or more attributes used to filter the findings included in the insight + /// + [Output("filters")] + public Output Filters { get; private set; } = null!; + + /// + /// The grouping attribute for the insight's findings + /// + [Output("groupByAttribute")] + public Output GroupByAttribute { get; private set; } = null!; + + /// + /// The ARN of a Security Hub insight + /// + [Output("insightArn")] + public Output InsightArn { get; private set; } = null!; + + /// + /// The name of a Security Hub insight + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + + /// + /// Create a Insight 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 Insight(string name, InsightArgs args, CustomResourceOptions? options = null) + : base("aws-native:securityhub:Insight", name, args ?? new InsightArgs(), MakeResourceOptions(options, "")) + { + } + + private Insight(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:securityhub:Insight", 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 Insight 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 Insight Get(string name, Input id, CustomResourceOptions? options = null) + { + return new Insight(name, id, options); + } + } + + public sealed class InsightArgs : global::Pulumi.ResourceArgs + { + /// + /// One or more attributes used to filter the findings included in the insight + /// + [Input("filters", required: true)] + public Input Filters { get; set; } = null!; + + /// + /// The grouping attribute for the insight's findings + /// + [Input("groupByAttribute", required: true)] + public Input GroupByAttribute { get; set; } = null!; + + /// + /// The name of a Security Hub insight + /// + [Input("name")] + public Input? Name { get; set; } + + public InsightArgs() + { + } + public static new InsightArgs Empty => new InsightArgs(); + } +} diff --git a/sdk/dotnet/SecurityHub/Outputs/InsightAwsSecurityFindingFilters.cs b/sdk/dotnet/SecurityHub/Outputs/InsightAwsSecurityFindingFilters.cs new file mode 100644 index 0000000000..cc9c5641c7 --- /dev/null +++ b/sdk/dotnet/SecurityHub/Outputs/InsightAwsSecurityFindingFilters.cs @@ -0,0 +1,752 @@ +// *** 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.SecurityHub.Outputs +{ + + /// + /// A collection of filters that are applied to all active findings aggregated by AWS Security Hub. + /// + [OutputType] + public sealed class InsightAwsSecurityFindingFilters + { + /// + /// The AWS account ID in which a finding is generated. + /// + public readonly ImmutableArray AwsAccountId; + /// + /// The name of the AWS account in which a finding is generated. + /// + public readonly ImmutableArray AwsAccountName; + /// + /// The name of the findings provider (company) that owns the solution (product) that generates findings. + /// + public readonly ImmutableArray CompanyName; + /// + /// The unique identifier of a standard in which a control is enabled. + /// + public readonly ImmutableArray ComplianceAssociatedStandardsId; + /// + /// The unique identifier of a control across standards. + /// + public readonly ImmutableArray ComplianceSecurityControlId; + /// + /// The name of a security control parameter. + /// + public readonly ImmutableArray ComplianceSecurityControlParametersName; + /// + /// The current value of a security control parameter. + /// + public readonly ImmutableArray ComplianceSecurityControlParametersValue; + /// + /// Exclusive to findings that are generated as the result of a check run against a specific rule in a supported standard. + /// + public readonly ImmutableArray ComplianceStatus; + /// + /// A finding's confidence. + /// + public readonly ImmutableArray Confidence; + /// + /// An ISO8601-formatted timestamp that indicates when the security findings provider captured the potential security issue that a finding captured. + /// + public readonly ImmutableArray CreatedAt; + /// + /// The level of importance assigned to the resources associated with the finding. + /// + public readonly ImmutableArray Criticality; + /// + /// A finding's description. + /// + public readonly ImmutableArray Description; + /// + /// The finding provider value for the finding confidence. + /// + public readonly ImmutableArray FindingProviderFieldsConfidence; + /// + /// The finding provider value for the level of importance assigned to the resources associated with the findings. + /// + public readonly ImmutableArray FindingProviderFieldsCriticality; + /// + /// The finding identifier of a related finding that is identified by the finding provider. + /// + public readonly ImmutableArray FindingProviderFieldsRelatedFindingsId; + /// + /// The ARN of the solution that generated a related finding that is identified by the finding provider. + /// + public readonly ImmutableArray FindingProviderFieldsRelatedFindingsProductArn; + /// + /// The finding provider value for the severity label. + /// + public readonly ImmutableArray FindingProviderFieldsSeverityLabel; + /// + /// The finding provider's original value for the severity. + /// + public readonly ImmutableArray FindingProviderFieldsSeverityOriginal; + /// + /// One or more finding types that the finding provider assigned to the finding. + /// + public readonly ImmutableArray FindingProviderFieldsTypes; + /// + /// An ISO8601-formatted timestamp that indicates when the security findings provider first observed the potential security issue that a finding captured. + /// + public readonly ImmutableArray FirstObservedAt; + /// + /// The identifier for the solution-specific component (a discrete unit of logic) that generated a finding. + /// + public readonly ImmutableArray GeneratorId; + /// + /// The security findings provider-specific identifier for a finding. + /// + public readonly ImmutableArray Id; + /// + /// A keyword for a finding. + /// + public readonly ImmutableArray Keyword; + /// + /// An ISO8601-formatted timestamp that indicates when the security findings provider most recently observed the potential security issue that a finding captured. + /// + public readonly ImmutableArray LastObservedAt; + /// + /// The name of the malware that was observed. + /// + public readonly ImmutableArray MalwareName; + /// + /// The filesystem path of the malware that was observed. + /// + public readonly ImmutableArray MalwarePath; + /// + /// The state of the malware that was observed. + /// + public readonly ImmutableArray MalwareState; + /// + /// The type of the malware that was observed. + /// + public readonly ImmutableArray MalwareType; + /// + /// The destination domain of network-related information about a finding. + /// + public readonly ImmutableArray NetworkDestinationDomain; + /// + /// The destination IPv4 address of network-related information about a finding. + /// + public readonly ImmutableArray NetworkDestinationIpV4; + /// + /// The destination IPv6 address of network-related information about a finding. + /// + public readonly ImmutableArray NetworkDestinationIpV6; + /// + /// The destination port of network-related information about a finding. + /// + public readonly ImmutableArray NetworkDestinationPort; + /// + /// Indicates the direction of network traffic associated with a finding. + /// + public readonly ImmutableArray NetworkDirection; + /// + /// The protocol of network-related information about a finding. + /// + public readonly ImmutableArray NetworkProtocol; + /// + /// The source domain of network-related information about a finding. + /// + public readonly ImmutableArray NetworkSourceDomain; + /// + /// The source IPv4 address of network-related information about a finding. + /// + public readonly ImmutableArray NetworkSourceIpV4; + /// + /// The source IPv6 address of network-related information about a finding. + /// + public readonly ImmutableArray NetworkSourceIpV6; + /// + /// The source media access control (MAC) address of network-related information about a finding. + /// + public readonly ImmutableArray NetworkSourceMac; + /// + /// The source port of network-related information about a finding. + /// + public readonly ImmutableArray NetworkSourcePort; + /// + /// The text of a note. + /// + public readonly ImmutableArray NoteText; + /// + /// The timestamp of when the note was updated. + /// + public readonly ImmutableArray NoteUpdatedAt; + /// + /// The principal that created a note. + /// + public readonly ImmutableArray NoteUpdatedBy; + /// + /// A timestamp that identifies when the process was launched. + /// + public readonly ImmutableArray ProcessLaunchedAt; + /// + /// The name of the process. + /// + public readonly ImmutableArray ProcessName; + /// + /// The parent process ID. + /// + public readonly ImmutableArray ProcessParentPid; + /// + /// The path to the process executable. + /// + public readonly ImmutableArray ProcessPath; + /// + /// The process ID. + /// + public readonly ImmutableArray ProcessPid; + /// + /// A timestamp that identifies when the process was terminated. + /// + public readonly ImmutableArray ProcessTerminatedAt; + /// + /// The ARN generated by Security Hub that uniquely identifies a third-party company (security findings provider) after this provider's product (solution that generates findings) is registered with Security Hub. + /// + public readonly ImmutableArray ProductArn; + /// + /// A data type where security findings providers can include additional solution-specific details that aren't part of the defined AwsSecurityFinding format. + /// + public readonly ImmutableArray ProductFields; + /// + /// The name of the solution (product) that generates findings. + /// + public readonly ImmutableArray ProductName; + /// + /// The recommendation of what to do about the issue described in a finding. + /// + public readonly ImmutableArray RecommendationText; + /// + /// The updated record state for the finding. + /// + public readonly ImmutableArray RecordState; + /// + /// The Region from which the finding was generated. + /// + public readonly ImmutableArray Region; + /// + /// The solution-generated identifier for a related finding. + /// + public readonly ImmutableArray RelatedFindingsId; + /// + /// The ARN of the solution that generated a related finding. + /// + public readonly ImmutableArray RelatedFindingsProductArn; + /// + /// The ARN of the application that is related to a finding. + /// + public readonly ImmutableArray ResourceApplicationArn; + /// + /// The name of the application that is related to a finding. + /// + public readonly ImmutableArray ResourceApplicationName; + /// + /// The IAM profile ARN of the instance. + /// + public readonly ImmutableArray ResourceAwsEc2InstanceIamInstanceProfileArn; + /// + /// The Amazon Machine Image (AMI) ID of the instance. + /// + public readonly ImmutableArray ResourceAwsEc2InstanceImageId; + /// + /// The IPv4 addresses associated with the instance. + /// + public readonly ImmutableArray ResourceAwsEc2InstanceIpV4Addresses; + /// + /// The IPv6 addresses associated with the instance. + /// + public readonly ImmutableArray ResourceAwsEc2InstanceIpV6Addresses; + /// + /// The key name associated with the instance. + /// + public readonly ImmutableArray ResourceAwsEc2InstanceKeyName; + /// + /// The date and time the instance was launched. + /// + public readonly ImmutableArray ResourceAwsEc2InstanceLaunchedAt; + /// + /// The identifier of the subnet that the instance was launched in. + /// + public readonly ImmutableArray ResourceAwsEc2InstanceSubnetId; + /// + /// The instance type of the instance. + /// + public readonly ImmutableArray ResourceAwsEc2InstanceType; + /// + /// The identifier of the VPC that the instance was launched in. + /// + public readonly ImmutableArray ResourceAwsEc2InstanceVpcId; + /// + /// The creation date/time of the IAM access key related to a finding. + /// + public readonly ImmutableArray ResourceAwsIamAccessKeyCreatedAt; + /// + /// The name of the principal that is associated with an IAM access key. + /// + public readonly ImmutableArray ResourceAwsIamAccessKeyPrincipalName; + /// + /// The status of the IAM access key related to a finding. + /// + public readonly ImmutableArray ResourceAwsIamAccessKeyStatus; + /// + /// The user associated with the IAM access key related to a finding. + /// + public readonly ImmutableArray ResourceAwsIamAccessKeyUserName; + /// + /// The name of an IAM user. + /// + public readonly ImmutableArray ResourceAwsIamUserUserName; + /// + /// The canonical user ID of the owner of the S3 bucket. + /// + public readonly ImmutableArray ResourceAwsS3BucketOwnerId; + /// + /// The display name of the owner of the S3 bucket. + /// + public readonly ImmutableArray ResourceAwsS3BucketOwnerName; + /// + /// The identifier of the image related to a finding. + /// + public readonly ImmutableArray ResourceContainerImageId; + /// + /// The name of the image related to a finding. + /// + public readonly ImmutableArray ResourceContainerImageName; + /// + /// A timestamp that identifies when the container was started. + /// + public readonly ImmutableArray ResourceContainerLaunchedAt; + /// + /// The name of the container related to a finding. + /// + public readonly ImmutableArray ResourceContainerName; + /// + /// The details of a resource that doesn't have a specific subfield for the resource type defined. + /// + public readonly ImmutableArray ResourceDetailsOther; + /// + /// The canonical identifier for the given resource type. + /// + public readonly ImmutableArray ResourceId; + /// + /// The canonical AWS partition name that the Region is assigned to. + /// + public readonly ImmutableArray ResourcePartition; + /// + /// The canonical AWS external Region name where this resource is located. + /// + public readonly ImmutableArray ResourceRegion; + /// + /// A list of AWS tags associated with a resource at the time the finding was processed. + /// + public readonly ImmutableArray ResourceTags; + /// + /// Specifies the type of the resource that details are provided for. + /// + public readonly ImmutableArray ResourceType; + /// + /// Indicates whether or not sample findings are included in the filter results. + /// + public readonly ImmutableArray Sample; + /// + /// The label of a finding's severity. + /// + public readonly ImmutableArray SeverityLabel; + /// + /// The normalized severity of a finding. + /// + public readonly ImmutableArray SeverityNormalized; + /// + /// The native severity as defined by the security findings provider's solution that generated the finding. + /// + public readonly ImmutableArray SeverityProduct; + /// + /// A URL that links to a page about the current finding in the security findings provider's solution. + /// + public readonly ImmutableArray SourceUrl; + /// + /// The category of a threat intelligence indicator. + /// + public readonly ImmutableArray ThreatIntelIndicatorCategory; + /// + /// A timestamp that identifies the last observation of a threat intelligence indicator. + /// + public readonly ImmutableArray ThreatIntelIndicatorLastObservedAt; + /// + /// The source of the threat intelligence. + /// + public readonly ImmutableArray ThreatIntelIndicatorSource; + /// + /// The URL for more details from the source of the threat intelligence. + /// + public readonly ImmutableArray ThreatIntelIndicatorSourceUrl; + /// + /// The type of a threat intelligence indicator. + /// + public readonly ImmutableArray ThreatIntelIndicatorType; + /// + /// The value of a threat intelligence indicator. + /// + public readonly ImmutableArray ThreatIntelIndicatorValue; + /// + /// A finding's title. + /// + public readonly ImmutableArray Title; + /// + /// A finding type in the format of namespace/category/classifier that classifies a finding. + /// + public readonly ImmutableArray Type; + /// + /// An ISO8601-formatted timestamp that indicates when the security findings provider last updated the finding record. + /// + public readonly ImmutableArray UpdatedAt; + /// + /// A list of name/value string pairs associated with the finding. + /// + public readonly ImmutableArray UserDefinedFields; + /// + /// The veracity of a finding. + /// + public readonly ImmutableArray VerificationState; + /// + /// Indicates whether a software vulnerability in your environment has a known exploit. + /// + public readonly ImmutableArray VulnerabilitiesExploitAvailable; + /// + /// Indicates whether a vulnerability is fixed in a newer version of the affected software packages. + /// + public readonly ImmutableArray VulnerabilitiesFixAvailable; + /// + /// The workflow state of a finding. + /// + public readonly ImmutableArray WorkflowState; + /// + /// The status of the investigation into a finding. + /// + public readonly ImmutableArray WorkflowStatus; + + [OutputConstructor] + private InsightAwsSecurityFindingFilters( + ImmutableArray awsAccountId, + + ImmutableArray awsAccountName, + + ImmutableArray companyName, + + ImmutableArray complianceAssociatedStandardsId, + + ImmutableArray complianceSecurityControlId, + + ImmutableArray complianceSecurityControlParametersName, + + ImmutableArray complianceSecurityControlParametersValue, + + ImmutableArray complianceStatus, + + ImmutableArray confidence, + + ImmutableArray createdAt, + + ImmutableArray criticality, + + ImmutableArray description, + + ImmutableArray findingProviderFieldsConfidence, + + ImmutableArray findingProviderFieldsCriticality, + + ImmutableArray findingProviderFieldsRelatedFindingsId, + + ImmutableArray findingProviderFieldsRelatedFindingsProductArn, + + ImmutableArray findingProviderFieldsSeverityLabel, + + ImmutableArray findingProviderFieldsSeverityOriginal, + + ImmutableArray findingProviderFieldsTypes, + + ImmutableArray firstObservedAt, + + ImmutableArray generatorId, + + ImmutableArray id, + + ImmutableArray keyword, + + ImmutableArray lastObservedAt, + + ImmutableArray malwareName, + + ImmutableArray malwarePath, + + ImmutableArray malwareState, + + ImmutableArray malwareType, + + ImmutableArray networkDestinationDomain, + + ImmutableArray networkDestinationIpV4, + + ImmutableArray networkDestinationIpV6, + + ImmutableArray networkDestinationPort, + + ImmutableArray networkDirection, + + ImmutableArray networkProtocol, + + ImmutableArray networkSourceDomain, + + ImmutableArray networkSourceIpV4, + + ImmutableArray networkSourceIpV6, + + ImmutableArray networkSourceMac, + + ImmutableArray networkSourcePort, + + ImmutableArray noteText, + + ImmutableArray noteUpdatedAt, + + ImmutableArray noteUpdatedBy, + + ImmutableArray processLaunchedAt, + + ImmutableArray processName, + + ImmutableArray processParentPid, + + ImmutableArray processPath, + + ImmutableArray processPid, + + ImmutableArray processTerminatedAt, + + ImmutableArray productArn, + + ImmutableArray productFields, + + ImmutableArray productName, + + ImmutableArray recommendationText, + + ImmutableArray recordState, + + ImmutableArray region, + + ImmutableArray relatedFindingsId, + + ImmutableArray relatedFindingsProductArn, + + ImmutableArray resourceApplicationArn, + + ImmutableArray resourceApplicationName, + + ImmutableArray resourceAwsEc2InstanceIamInstanceProfileArn, + + ImmutableArray resourceAwsEc2InstanceImageId, + + ImmutableArray resourceAwsEc2InstanceIpV4Addresses, + + ImmutableArray resourceAwsEc2InstanceIpV6Addresses, + + ImmutableArray resourceAwsEc2InstanceKeyName, + + ImmutableArray resourceAwsEc2InstanceLaunchedAt, + + ImmutableArray resourceAwsEc2InstanceSubnetId, + + ImmutableArray resourceAwsEc2InstanceType, + + ImmutableArray resourceAwsEc2InstanceVpcId, + + ImmutableArray resourceAwsIamAccessKeyCreatedAt, + + ImmutableArray resourceAwsIamAccessKeyPrincipalName, + + ImmutableArray resourceAwsIamAccessKeyStatus, + + ImmutableArray resourceAwsIamAccessKeyUserName, + + ImmutableArray resourceAwsIamUserUserName, + + ImmutableArray resourceAwsS3BucketOwnerId, + + ImmutableArray resourceAwsS3BucketOwnerName, + + ImmutableArray resourceContainerImageId, + + ImmutableArray resourceContainerImageName, + + ImmutableArray resourceContainerLaunchedAt, + + ImmutableArray resourceContainerName, + + ImmutableArray resourceDetailsOther, + + ImmutableArray resourceId, + + ImmutableArray resourcePartition, + + ImmutableArray resourceRegion, + + ImmutableArray resourceTags, + + ImmutableArray resourceType, + + ImmutableArray sample, + + ImmutableArray severityLabel, + + ImmutableArray severityNormalized, + + ImmutableArray severityProduct, + + ImmutableArray sourceUrl, + + ImmutableArray threatIntelIndicatorCategory, + + ImmutableArray threatIntelIndicatorLastObservedAt, + + ImmutableArray threatIntelIndicatorSource, + + ImmutableArray threatIntelIndicatorSourceUrl, + + ImmutableArray threatIntelIndicatorType, + + ImmutableArray threatIntelIndicatorValue, + + ImmutableArray title, + + ImmutableArray type, + + ImmutableArray updatedAt, + + ImmutableArray userDefinedFields, + + ImmutableArray verificationState, + + ImmutableArray vulnerabilitiesExploitAvailable, + + ImmutableArray vulnerabilitiesFixAvailable, + + ImmutableArray workflowState, + + ImmutableArray workflowStatus) + { + AwsAccountId = awsAccountId; + AwsAccountName = awsAccountName; + CompanyName = companyName; + ComplianceAssociatedStandardsId = complianceAssociatedStandardsId; + ComplianceSecurityControlId = complianceSecurityControlId; + ComplianceSecurityControlParametersName = complianceSecurityControlParametersName; + ComplianceSecurityControlParametersValue = complianceSecurityControlParametersValue; + ComplianceStatus = complianceStatus; + Confidence = confidence; + CreatedAt = createdAt; + Criticality = criticality; + Description = description; + FindingProviderFieldsConfidence = findingProviderFieldsConfidence; + FindingProviderFieldsCriticality = findingProviderFieldsCriticality; + FindingProviderFieldsRelatedFindingsId = findingProviderFieldsRelatedFindingsId; + FindingProviderFieldsRelatedFindingsProductArn = findingProviderFieldsRelatedFindingsProductArn; + FindingProviderFieldsSeverityLabel = findingProviderFieldsSeverityLabel; + FindingProviderFieldsSeverityOriginal = findingProviderFieldsSeverityOriginal; + FindingProviderFieldsTypes = findingProviderFieldsTypes; + FirstObservedAt = firstObservedAt; + GeneratorId = generatorId; + Id = id; + Keyword = keyword; + LastObservedAt = lastObservedAt; + MalwareName = malwareName; + MalwarePath = malwarePath; + MalwareState = malwareState; + MalwareType = malwareType; + NetworkDestinationDomain = networkDestinationDomain; + NetworkDestinationIpV4 = networkDestinationIpV4; + NetworkDestinationIpV6 = networkDestinationIpV6; + NetworkDestinationPort = networkDestinationPort; + NetworkDirection = networkDirection; + NetworkProtocol = networkProtocol; + NetworkSourceDomain = networkSourceDomain; + NetworkSourceIpV4 = networkSourceIpV4; + NetworkSourceIpV6 = networkSourceIpV6; + NetworkSourceMac = networkSourceMac; + NetworkSourcePort = networkSourcePort; + NoteText = noteText; + NoteUpdatedAt = noteUpdatedAt; + NoteUpdatedBy = noteUpdatedBy; + ProcessLaunchedAt = processLaunchedAt; + ProcessName = processName; + ProcessParentPid = processParentPid; + ProcessPath = processPath; + ProcessPid = processPid; + ProcessTerminatedAt = processTerminatedAt; + ProductArn = productArn; + ProductFields = productFields; + ProductName = productName; + RecommendationText = recommendationText; + RecordState = recordState; + Region = region; + RelatedFindingsId = relatedFindingsId; + RelatedFindingsProductArn = relatedFindingsProductArn; + ResourceApplicationArn = resourceApplicationArn; + ResourceApplicationName = resourceApplicationName; + ResourceAwsEc2InstanceIamInstanceProfileArn = resourceAwsEc2InstanceIamInstanceProfileArn; + ResourceAwsEc2InstanceImageId = resourceAwsEc2InstanceImageId; + ResourceAwsEc2InstanceIpV4Addresses = resourceAwsEc2InstanceIpV4Addresses; + ResourceAwsEc2InstanceIpV6Addresses = resourceAwsEc2InstanceIpV6Addresses; + ResourceAwsEc2InstanceKeyName = resourceAwsEc2InstanceKeyName; + ResourceAwsEc2InstanceLaunchedAt = resourceAwsEc2InstanceLaunchedAt; + ResourceAwsEc2InstanceSubnetId = resourceAwsEc2InstanceSubnetId; + ResourceAwsEc2InstanceType = resourceAwsEc2InstanceType; + ResourceAwsEc2InstanceVpcId = resourceAwsEc2InstanceVpcId; + ResourceAwsIamAccessKeyCreatedAt = resourceAwsIamAccessKeyCreatedAt; + ResourceAwsIamAccessKeyPrincipalName = resourceAwsIamAccessKeyPrincipalName; + ResourceAwsIamAccessKeyStatus = resourceAwsIamAccessKeyStatus; + ResourceAwsIamAccessKeyUserName = resourceAwsIamAccessKeyUserName; + ResourceAwsIamUserUserName = resourceAwsIamUserUserName; + ResourceAwsS3BucketOwnerId = resourceAwsS3BucketOwnerId; + ResourceAwsS3BucketOwnerName = resourceAwsS3BucketOwnerName; + ResourceContainerImageId = resourceContainerImageId; + ResourceContainerImageName = resourceContainerImageName; + ResourceContainerLaunchedAt = resourceContainerLaunchedAt; + ResourceContainerName = resourceContainerName; + ResourceDetailsOther = resourceDetailsOther; + ResourceId = resourceId; + ResourcePartition = resourcePartition; + ResourceRegion = resourceRegion; + ResourceTags = resourceTags; + ResourceType = resourceType; + Sample = sample; + SeverityLabel = severityLabel; + SeverityNormalized = severityNormalized; + SeverityProduct = severityProduct; + SourceUrl = sourceUrl; + ThreatIntelIndicatorCategory = threatIntelIndicatorCategory; + ThreatIntelIndicatorLastObservedAt = threatIntelIndicatorLastObservedAt; + ThreatIntelIndicatorSource = threatIntelIndicatorSource; + ThreatIntelIndicatorSourceUrl = threatIntelIndicatorSourceUrl; + ThreatIntelIndicatorType = threatIntelIndicatorType; + ThreatIntelIndicatorValue = threatIntelIndicatorValue; + Title = title; + Type = type; + UpdatedAt = updatedAt; + UserDefinedFields = userDefinedFields; + VerificationState = verificationState; + VulnerabilitiesExploitAvailable = vulnerabilitiesExploitAvailable; + VulnerabilitiesFixAvailable = vulnerabilitiesFixAvailable; + WorkflowState = workflowState; + WorkflowStatus = workflowStatus; + } + } +} diff --git a/sdk/dotnet/SecurityHub/Outputs/InsightBooleanFilter.cs b/sdk/dotnet/SecurityHub/Outputs/InsightBooleanFilter.cs new file mode 100644 index 0000000000..a02e91dbcb --- /dev/null +++ b/sdk/dotnet/SecurityHub/Outputs/InsightBooleanFilter.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.SecurityHub.Outputs +{ + + /// + /// Boolean filter for querying findings. + /// + [OutputType] + public sealed class InsightBooleanFilter + { + /// + /// The value of the boolean. + /// + public readonly bool Value; + + [OutputConstructor] + private InsightBooleanFilter(bool value) + { + Value = value; + } + } +} diff --git a/sdk/dotnet/SecurityHub/Outputs/InsightDateFilter.cs b/sdk/dotnet/SecurityHub/Outputs/InsightDateFilter.cs new file mode 100644 index 0000000000..1bac926c19 --- /dev/null +++ b/sdk/dotnet/SecurityHub/Outputs/InsightDateFilter.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.SecurityHub.Outputs +{ + + /// + /// A date filter for querying findings. + /// + [OutputType] + public sealed class InsightDateFilter + { + public readonly Outputs.InsightDateRange? DateRange; + public readonly string? End; + public readonly string? Start; + + [OutputConstructor] + private InsightDateFilter( + Outputs.InsightDateRange? dateRange, + + string? end, + + string? start) + { + DateRange = dateRange; + End = end; + Start = start; + } + } +} diff --git a/sdk/dotnet/SecurityHub/Outputs/InsightDateRange.cs b/sdk/dotnet/SecurityHub/Outputs/InsightDateRange.cs new file mode 100644 index 0000000000..46bb09d061 --- /dev/null +++ b/sdk/dotnet/SecurityHub/Outputs/InsightDateRange.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.SecurityHub.Outputs +{ + + /// + /// A date range for the date filter. + /// + [OutputType] + public sealed class InsightDateRange + { + /// + /// A date range unit for the date filter. + /// + public readonly Pulumi.AwsNative.SecurityHub.InsightDateRangeUnit Unit; + /// + /// A date range value for the date filter. + /// + public readonly double Value; + + [OutputConstructor] + private InsightDateRange( + Pulumi.AwsNative.SecurityHub.InsightDateRangeUnit unit, + + double value) + { + Unit = unit; + Value = value; + } + } +} diff --git a/sdk/dotnet/SecurityHub/Outputs/InsightIpFilter.cs b/sdk/dotnet/SecurityHub/Outputs/InsightIpFilter.cs new file mode 100644 index 0000000000..37463f1ec4 --- /dev/null +++ b/sdk/dotnet/SecurityHub/Outputs/InsightIpFilter.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.SecurityHub.Outputs +{ + + /// + /// The IP filter for querying findings. + /// + [OutputType] + public sealed class InsightIpFilter + { + /// + /// A finding's CIDR value. + /// + public readonly string Cidr; + + [OutputConstructor] + private InsightIpFilter(string cidr) + { + Cidr = cidr; + } + } +} diff --git a/sdk/dotnet/SecurityHub/Outputs/InsightKeywordFilter.cs b/sdk/dotnet/SecurityHub/Outputs/InsightKeywordFilter.cs new file mode 100644 index 0000000000..378dd18dd6 --- /dev/null +++ b/sdk/dotnet/SecurityHub/Outputs/InsightKeywordFilter.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.SecurityHub.Outputs +{ + + /// + /// A keyword filter for querying findings. + /// + [OutputType] + public sealed class InsightKeywordFilter + { + /// + /// A value for the keyword. + /// + public readonly string Value; + + [OutputConstructor] + private InsightKeywordFilter(string value) + { + Value = value; + } + } +} diff --git a/sdk/dotnet/SecurityHub/Outputs/InsightMapFilter.cs b/sdk/dotnet/SecurityHub/Outputs/InsightMapFilter.cs new file mode 100644 index 0000000000..d591991b28 --- /dev/null +++ b/sdk/dotnet/SecurityHub/Outputs/InsightMapFilter.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.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.SecurityHub.Outputs +{ + + /// + /// A map filter for filtering AWS Security Hub findings. + /// + [OutputType] + public sealed class InsightMapFilter + { + /// + /// The condition to apply to the key value when filtering Security Hub findings with a map filter. + /// + public readonly Pulumi.AwsNative.SecurityHub.InsightMapFilterComparison Comparison; + public readonly string Key; + public readonly string Value; + + [OutputConstructor] + private InsightMapFilter( + Pulumi.AwsNative.SecurityHub.InsightMapFilterComparison comparison, + + string key, + + string value) + { + Comparison = comparison; + Key = key; + Value = value; + } + } +} diff --git a/sdk/dotnet/SecurityHub/Outputs/InsightNumberFilter.cs b/sdk/dotnet/SecurityHub/Outputs/InsightNumberFilter.cs new file mode 100644 index 0000000000..336ed690c7 --- /dev/null +++ b/sdk/dotnet/SecurityHub/Outputs/InsightNumberFilter.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.SecurityHub.Outputs +{ + + /// + /// A number filter for querying findings. + /// + [OutputType] + public sealed class InsightNumberFilter + { + /// + /// The equal-to condition to be applied to a single field when querying for findings. + /// + public readonly double? Eq; + /// + /// The greater-than-equal condition to be applied to a single field when querying for findings. + /// + public readonly double? Gte; + /// + /// The less-than-equal condition to be applied to a single field when querying for findings. + /// + public readonly double? Lte; + + [OutputConstructor] + private InsightNumberFilter( + double? eq, + + double? gte, + + double? lte) + { + Eq = eq; + Gte = gte; + Lte = lte; + } + } +} diff --git a/sdk/dotnet/SecurityHub/Outputs/InsightStringFilter.cs b/sdk/dotnet/SecurityHub/Outputs/InsightStringFilter.cs new file mode 100644 index 0000000000..6418a555c9 --- /dev/null +++ b/sdk/dotnet/SecurityHub/Outputs/InsightStringFilter.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.SecurityHub.Outputs +{ + + /// + /// A string filter for filtering AWS Security Hub findings. + /// + [OutputType] + public sealed class InsightStringFilter + { + public readonly Pulumi.AwsNative.SecurityHub.InsightStringFilterComparison Comparison; + public readonly string Value; + + [OutputConstructor] + private InsightStringFilter( + Pulumi.AwsNative.SecurityHub.InsightStringFilterComparison comparison, + + string value) + { + Comparison = comparison; + Value = value; + } + } +} diff --git a/sdk/dotnet/SecurityHub/ProductSubscription.cs b/sdk/dotnet/SecurityHub/ProductSubscription.cs new file mode 100644 index 0000000000..500f88bae0 --- /dev/null +++ b/sdk/dotnet/SecurityHub/ProductSubscription.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.SecurityHub +{ + /// + /// The AWS::SecurityHub::ProductSubscription resource represents a subscription to a service that is allowed to generate findings for your Security Hub account. One product subscription resource is created for each product enabled. + /// + [AwsNativeResourceType("aws-native:securityhub:ProductSubscription")] + public partial class ProductSubscription : global::Pulumi.CustomResource + { + /// + /// The generic ARN of the product being subscribed to + /// + [Output("productArn")] + public Output ProductArn { get; private set; } = null!; + + /// + /// The ARN of the product subscription for the account + /// + [Output("productSubscriptionArn")] + public Output ProductSubscriptionArn { get; private set; } = null!; + + + /// + /// Create a ProductSubscription 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 ProductSubscription(string name, ProductSubscriptionArgs args, CustomResourceOptions? options = null) + : base("aws-native:securityhub:ProductSubscription", name, args ?? new ProductSubscriptionArgs(), MakeResourceOptions(options, "")) + { + } + + private ProductSubscription(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:securityhub:ProductSubscription", name, null, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + ReplaceOnChanges = + { + "productArn", + }, + }; + 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 ProductSubscription 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 ProductSubscription Get(string name, Input id, CustomResourceOptions? options = null) + { + return new ProductSubscription(name, id, options); + } + } + + public sealed class ProductSubscriptionArgs : global::Pulumi.ResourceArgs + { + /// + /// The generic ARN of the product being subscribed to + /// + [Input("productArn", required: true)] + public Input ProductArn { get; set; } = null!; + + public ProductSubscriptionArgs() + { + } + public static new ProductSubscriptionArgs Empty => new ProductSubscriptionArgs(); + } +} 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/dotnet/Ssm/GetParameter.cs b/sdk/dotnet/Ssm/GetParameter.cs index f2fba7bb3e..6d5e25c2e7 100644 --- a/sdk/dotnet/Ssm/GetParameter.cs +++ b/sdk/dotnet/Ssm/GetParameter.cs @@ -35,7 +35,7 @@ public sealed class GetParameterArgs : global::Pulumi.InvokeArgs { /// /// The name of the parameter. - /// The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` + /// The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` /// [Input("name", required: true)] public string Name { get; set; } = null!; @@ -50,7 +50,7 @@ public sealed class GetParameterInvokeArgs : global::Pulumi.InvokeArgs { /// /// The name of the parameter. - /// The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` + /// The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` /// [Input("name", required: true)] public Input Name { get; set; } = null!; diff --git a/sdk/dotnet/Ssm/Parameter.cs b/sdk/dotnet/Ssm/Parameter.cs index 71ce396858..a9863fa8d9 100644 --- a/sdk/dotnet/Ssm/Parameter.cs +++ b/sdk/dotnet/Ssm/Parameter.cs @@ -192,7 +192,7 @@ public partial class Parameter : global::Pulumi.CustomResource /// /// The name of the parameter. - /// The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` + /// The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` /// [Output("name")] public Output Name { get; private set; } = null!; @@ -298,7 +298,7 @@ public sealed class ParameterArgs : global::Pulumi.ResourceArgs /// /// The name of the parameter. - /// The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` + /// The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` /// [Input("name")] public Input? Name { get; set; } diff --git a/sdk/dotnet/VerifiedPermissions/Inputs/IdentitySourceCognitoGroupConfigurationArgs.cs b/sdk/dotnet/VerifiedPermissions/Inputs/IdentitySourceCognitoGroupConfigurationArgs.cs new file mode 100644 index 0000000000..152522dd2d --- /dev/null +++ b/sdk/dotnet/VerifiedPermissions/Inputs/IdentitySourceCognitoGroupConfigurationArgs.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.VerifiedPermissions.Inputs +{ + + public sealed class IdentitySourceCognitoGroupConfigurationArgs : global::Pulumi.ResourceArgs + { + [Input("groupEntityType", required: true)] + public Input GroupEntityType { get; set; } = null!; + + public IdentitySourceCognitoGroupConfigurationArgs() + { + } + public static new IdentitySourceCognitoGroupConfigurationArgs Empty => new IdentitySourceCognitoGroupConfigurationArgs(); + } +} diff --git a/sdk/dotnet/VerifiedPermissions/Inputs/IdentitySourceCognitoUserPoolConfigurationArgs.cs b/sdk/dotnet/VerifiedPermissions/Inputs/IdentitySourceCognitoUserPoolConfigurationArgs.cs index 79df27a08f..56575c415d 100644 --- a/sdk/dotnet/VerifiedPermissions/Inputs/IdentitySourceCognitoUserPoolConfigurationArgs.cs +++ b/sdk/dotnet/VerifiedPermissions/Inputs/IdentitySourceCognitoUserPoolConfigurationArgs.cs @@ -20,6 +20,9 @@ public InputList ClientIds set => _clientIds = value; } + [Input("groupConfiguration")] + public Input? GroupConfiguration { get; set; } + [Input("userPoolArn", required: true)] public Input UserPoolArn { get; set; } = null!; diff --git a/sdk/dotnet/VerifiedPermissions/Outputs/IdentitySourceCognitoGroupConfiguration.cs b/sdk/dotnet/VerifiedPermissions/Outputs/IdentitySourceCognitoGroupConfiguration.cs new file mode 100644 index 0000000000..fdc770ba8a --- /dev/null +++ b/sdk/dotnet/VerifiedPermissions/Outputs/IdentitySourceCognitoGroupConfiguration.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.VerifiedPermissions.Outputs +{ + + [OutputType] + public sealed class IdentitySourceCognitoGroupConfiguration + { + public readonly string GroupEntityType; + + [OutputConstructor] + private IdentitySourceCognitoGroupConfiguration(string groupEntityType) + { + GroupEntityType = groupEntityType; + } + } +} diff --git a/sdk/dotnet/VerifiedPermissions/Outputs/IdentitySourceCognitoUserPoolConfiguration.cs b/sdk/dotnet/VerifiedPermissions/Outputs/IdentitySourceCognitoUserPoolConfiguration.cs index 0ce7391813..483d45ccc6 100644 --- a/sdk/dotnet/VerifiedPermissions/Outputs/IdentitySourceCognitoUserPoolConfiguration.cs +++ b/sdk/dotnet/VerifiedPermissions/Outputs/IdentitySourceCognitoUserPoolConfiguration.cs @@ -14,15 +14,19 @@ namespace Pulumi.AwsNative.VerifiedPermissions.Outputs public sealed class IdentitySourceCognitoUserPoolConfiguration { public readonly ImmutableArray ClientIds; + public readonly Outputs.IdentitySourceCognitoGroupConfiguration? GroupConfiguration; public readonly string UserPoolArn; [OutputConstructor] private IdentitySourceCognitoUserPoolConfiguration( ImmutableArray clientIds, + Outputs.IdentitySourceCognitoGroupConfiguration? groupConfiguration, + string userPoolArn) { ClientIds = clientIds; + GroupConfiguration = groupConfiguration; UserPoolArn = userPoolArn; } } diff --git a/sdk/go/aws/amplify/domain.go b/sdk/go/aws/amplify/domain.go index cc870f129a..ae8c08e311 100644 --- a/sdk/go/aws/amplify/domain.go +++ b/sdk/go/aws/amplify/domain.go @@ -20,7 +20,7 @@ type Domain struct { Arn pulumi.StringOutput `pulumi:"arn"` AutoSubDomainCreationPatterns pulumi.StringArrayOutput `pulumi:"autoSubDomainCreationPatterns"` AutoSubDomainIamRole pulumi.StringPtrOutput `pulumi:"autoSubDomainIamRole"` - Certificate DomainCertificatePtrOutput `pulumi:"certificate"` + Certificate DomainCertificateOutput `pulumi:"certificate"` CertificateRecord pulumi.StringOutput `pulumi:"certificateRecord"` CertificateSettings DomainCertificateSettingsPtrOutput `pulumi:"certificateSettings"` DomainName pulumi.StringOutput `pulumi:"domainName"` @@ -28,7 +28,7 @@ type Domain struct { EnableAutoSubDomain pulumi.BoolPtrOutput `pulumi:"enableAutoSubDomain"` StatusReason pulumi.StringOutput `pulumi:"statusReason"` SubDomainSettings DomainSubDomainSettingArrayOutput `pulumi:"subDomainSettings"` - UpdateStatus pulumi.StringPtrOutput `pulumi:"updateStatus"` + UpdateStatus pulumi.StringOutput `pulumi:"updateStatus"` } // NewDomain registers a new resource with the given unique name, arguments, and options. @@ -85,12 +85,10 @@ type domainArgs struct { AppId string `pulumi:"appId"` AutoSubDomainCreationPatterns []string `pulumi:"autoSubDomainCreationPatterns"` AutoSubDomainIamRole *string `pulumi:"autoSubDomainIamRole"` - Certificate *DomainCertificate `pulumi:"certificate"` CertificateSettings *DomainCertificateSettings `pulumi:"certificateSettings"` DomainName *string `pulumi:"domainName"` EnableAutoSubDomain *bool `pulumi:"enableAutoSubDomain"` SubDomainSettings []DomainSubDomainSetting `pulumi:"subDomainSettings"` - UpdateStatus *string `pulumi:"updateStatus"` } // The set of arguments for constructing a Domain resource. @@ -98,12 +96,10 @@ type DomainArgs struct { AppId pulumi.StringInput AutoSubDomainCreationPatterns pulumi.StringArrayInput AutoSubDomainIamRole pulumi.StringPtrInput - Certificate DomainCertificatePtrInput CertificateSettings DomainCertificateSettingsPtrInput DomainName pulumi.StringPtrInput EnableAutoSubDomain pulumi.BoolPtrInput SubDomainSettings DomainSubDomainSettingArrayInput - UpdateStatus pulumi.StringPtrInput } func (DomainArgs) ElementType() reflect.Type { @@ -159,8 +155,8 @@ func (o DomainOutput) AutoSubDomainIamRole() pulumi.StringPtrOutput { return o.ApplyT(func(v *Domain) pulumi.StringPtrOutput { return v.AutoSubDomainIamRole }).(pulumi.StringPtrOutput) } -func (o DomainOutput) Certificate() DomainCertificatePtrOutput { - return o.ApplyT(func(v *Domain) DomainCertificatePtrOutput { return v.Certificate }).(DomainCertificatePtrOutput) +func (o DomainOutput) Certificate() DomainCertificateOutput { + return o.ApplyT(func(v *Domain) DomainCertificateOutput { return v.Certificate }).(DomainCertificateOutput) } func (o DomainOutput) CertificateRecord() pulumi.StringOutput { @@ -191,8 +187,8 @@ func (o DomainOutput) SubDomainSettings() DomainSubDomainSettingArrayOutput { return o.ApplyT(func(v *Domain) DomainSubDomainSettingArrayOutput { return v.SubDomainSettings }).(DomainSubDomainSettingArrayOutput) } -func (o DomainOutput) UpdateStatus() pulumi.StringPtrOutput { - return o.ApplyT(func(v *Domain) pulumi.StringPtrOutput { return v.UpdateStatus }).(pulumi.StringPtrOutput) +func (o DomainOutput) UpdateStatus() pulumi.StringOutput { + return o.ApplyT(func(v *Domain) pulumi.StringOutput { return v.UpdateStatus }).(pulumi.StringOutput) } func init() { diff --git a/sdk/go/aws/amplify/getDomain.go b/sdk/go/aws/amplify/getDomain.go index d29b46508a..1d9a197c33 100644 --- a/sdk/go/aws/amplify/getDomain.go +++ b/sdk/go/aws/amplify/getDomain.go @@ -27,17 +27,16 @@ type LookupDomainArgs struct { } type LookupDomainResult struct { - Arn *string `pulumi:"arn"` - AutoSubDomainCreationPatterns []string `pulumi:"autoSubDomainCreationPatterns"` - AutoSubDomainIamRole *string `pulumi:"autoSubDomainIamRole"` - Certificate *DomainCertificate `pulumi:"certificate"` - CertificateRecord *string `pulumi:"certificateRecord"` - CertificateSettings *DomainCertificateSettings `pulumi:"certificateSettings"` - DomainStatus *string `pulumi:"domainStatus"` - EnableAutoSubDomain *bool `pulumi:"enableAutoSubDomain"` - StatusReason *string `pulumi:"statusReason"` - SubDomainSettings []DomainSubDomainSetting `pulumi:"subDomainSettings"` - UpdateStatus *string `pulumi:"updateStatus"` + Arn *string `pulumi:"arn"` + AutoSubDomainCreationPatterns []string `pulumi:"autoSubDomainCreationPatterns"` + AutoSubDomainIamRole *string `pulumi:"autoSubDomainIamRole"` + Certificate *DomainCertificate `pulumi:"certificate"` + CertificateRecord *string `pulumi:"certificateRecord"` + DomainStatus *string `pulumi:"domainStatus"` + EnableAutoSubDomain *bool `pulumi:"enableAutoSubDomain"` + StatusReason *string `pulumi:"statusReason"` + SubDomainSettings []DomainSubDomainSetting `pulumi:"subDomainSettings"` + UpdateStatus *string `pulumi:"updateStatus"` } func LookupDomainOutput(ctx *pulumi.Context, args LookupDomainOutputArgs, opts ...pulumi.InvokeOption) LookupDomainResultOutput { @@ -95,10 +94,6 @@ func (o LookupDomainResultOutput) CertificateRecord() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupDomainResult) *string { return v.CertificateRecord }).(pulumi.StringPtrOutput) } -func (o LookupDomainResultOutput) CertificateSettings() DomainCertificateSettingsPtrOutput { - return o.ApplyT(func(v LookupDomainResult) *DomainCertificateSettings { return v.CertificateSettings }).(DomainCertificateSettingsPtrOutput) -} - func (o LookupDomainResultOutput) DomainStatus() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupDomainResult) *string { return v.DomainStatus }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/aws/amplify/pulumiEnums.go b/sdk/go/aws/amplify/pulumiEnums.go index b8379ca668..2e2e84f5d1 100644 --- a/sdk/go/aws/amplify/pulumiEnums.go +++ b/sdk/go/aws/amplify/pulumiEnums.go @@ -526,42 +526,6 @@ const ( DomainCertificateCertificateTypeCustom = DomainCertificateCertificateType("CUSTOM") ) -func (DomainCertificateCertificateType) ElementType() reflect.Type { - return reflect.TypeOf((*DomainCertificateCertificateType)(nil)).Elem() -} - -func (e DomainCertificateCertificateType) ToDomainCertificateCertificateTypeOutput() DomainCertificateCertificateTypeOutput { - return pulumi.ToOutput(e).(DomainCertificateCertificateTypeOutput) -} - -func (e DomainCertificateCertificateType) ToDomainCertificateCertificateTypeOutputWithContext(ctx context.Context) DomainCertificateCertificateTypeOutput { - return pulumi.ToOutputWithContext(ctx, e).(DomainCertificateCertificateTypeOutput) -} - -func (e DomainCertificateCertificateType) ToDomainCertificateCertificateTypePtrOutput() DomainCertificateCertificateTypePtrOutput { - return e.ToDomainCertificateCertificateTypePtrOutputWithContext(context.Background()) -} - -func (e DomainCertificateCertificateType) ToDomainCertificateCertificateTypePtrOutputWithContext(ctx context.Context) DomainCertificateCertificateTypePtrOutput { - return DomainCertificateCertificateType(e).ToDomainCertificateCertificateTypeOutputWithContext(ctx).ToDomainCertificateCertificateTypePtrOutputWithContext(ctx) -} - -func (e DomainCertificateCertificateType) ToStringOutput() pulumi.StringOutput { - return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) -} - -func (e DomainCertificateCertificateType) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { - return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) -} - -func (e DomainCertificateCertificateType) ToStringPtrOutput() pulumi.StringPtrOutput { - return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) -} - -func (e DomainCertificateCertificateType) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { - return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) -} - type DomainCertificateCertificateTypeOutput struct{ *pulumi.OutputState } func (DomainCertificateCertificateTypeOutput) ElementType() reflect.Type { @@ -645,45 +609,6 @@ func (o DomainCertificateCertificateTypePtrOutput) ToStringPtrOutputWithContext( }).(pulumi.StringPtrOutput) } -// DomainCertificateCertificateTypeInput is an input type that accepts values of the DomainCertificateCertificateType enum -// A concrete instance of `DomainCertificateCertificateTypeInput` can be one of the following: -// -// DomainCertificateCertificateTypeAmplifyManaged -// DomainCertificateCertificateTypeCustom -type DomainCertificateCertificateTypeInput interface { - pulumi.Input - - ToDomainCertificateCertificateTypeOutput() DomainCertificateCertificateTypeOutput - ToDomainCertificateCertificateTypeOutputWithContext(context.Context) DomainCertificateCertificateTypeOutput -} - -var domainCertificateCertificateTypePtrType = reflect.TypeOf((**DomainCertificateCertificateType)(nil)).Elem() - -type DomainCertificateCertificateTypePtrInput interface { - pulumi.Input - - ToDomainCertificateCertificateTypePtrOutput() DomainCertificateCertificateTypePtrOutput - ToDomainCertificateCertificateTypePtrOutputWithContext(context.Context) DomainCertificateCertificateTypePtrOutput -} - -type domainCertificateCertificateTypePtr string - -func DomainCertificateCertificateTypePtr(v string) DomainCertificateCertificateTypePtrInput { - return (*domainCertificateCertificateTypePtr)(&v) -} - -func (*domainCertificateCertificateTypePtr) ElementType() reflect.Type { - return domainCertificateCertificateTypePtrType -} - -func (in *domainCertificateCertificateTypePtr) ToDomainCertificateCertificateTypePtrOutput() DomainCertificateCertificateTypePtrOutput { - return pulumi.ToOutput(in).(DomainCertificateCertificateTypePtrOutput) -} - -func (in *domainCertificateCertificateTypePtr) ToDomainCertificateCertificateTypePtrOutputWithContext(ctx context.Context) DomainCertificateCertificateTypePtrOutput { - return pulumi.ToOutputWithContext(ctx, in).(DomainCertificateCertificateTypePtrOutput) -} - type DomainCertificateSettingsCertificateType string const ( @@ -856,8 +781,6 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*AppPlatformPtrInput)(nil)).Elem(), AppPlatform("WEB")) pulumi.RegisterInputType(reflect.TypeOf((*BranchStageInput)(nil)).Elem(), BranchStage("EXPERIMENTAL")) pulumi.RegisterInputType(reflect.TypeOf((*BranchStagePtrInput)(nil)).Elem(), BranchStage("EXPERIMENTAL")) - pulumi.RegisterInputType(reflect.TypeOf((*DomainCertificateCertificateTypeInput)(nil)).Elem(), DomainCertificateCertificateType("AMPLIFY_MANAGED")) - pulumi.RegisterInputType(reflect.TypeOf((*DomainCertificateCertificateTypePtrInput)(nil)).Elem(), DomainCertificateCertificateType("AMPLIFY_MANAGED")) pulumi.RegisterInputType(reflect.TypeOf((*DomainCertificateSettingsCertificateTypeInput)(nil)).Elem(), DomainCertificateSettingsCertificateType("AMPLIFY_MANAGED")) pulumi.RegisterInputType(reflect.TypeOf((*DomainCertificateSettingsCertificateTypePtrInput)(nil)).Elem(), DomainCertificateSettingsCertificateType("AMPLIFY_MANAGED")) pulumi.RegisterOutputType(AppAutoBranchCreationConfigStageOutput{}) diff --git a/sdk/go/aws/amplify/pulumiTypes.go b/sdk/go/aws/amplify/pulumiTypes.go index 068388777b..968e92ae78 100644 --- a/sdk/go/aws/amplify/pulumiTypes.go +++ b/sdk/go/aws/amplify/pulumiTypes.go @@ -1083,76 +1083,6 @@ type DomainCertificate struct { CertificateVerificationDnsRecord *string `pulumi:"certificateVerificationDnsRecord"` } -// DomainCertificateInput is an input type that accepts DomainCertificateArgs and DomainCertificateOutput values. -// You can construct a concrete instance of `DomainCertificateInput` via: -// -// DomainCertificateArgs{...} -type DomainCertificateInput interface { - pulumi.Input - - ToDomainCertificateOutput() DomainCertificateOutput - ToDomainCertificateOutputWithContext(context.Context) DomainCertificateOutput -} - -type DomainCertificateArgs struct { - CertificateArn pulumi.StringPtrInput `pulumi:"certificateArn"` - CertificateType DomainCertificateCertificateTypePtrInput `pulumi:"certificateType"` - CertificateVerificationDnsRecord pulumi.StringPtrInput `pulumi:"certificateVerificationDnsRecord"` -} - -func (DomainCertificateArgs) ElementType() reflect.Type { - return reflect.TypeOf((*DomainCertificate)(nil)).Elem() -} - -func (i DomainCertificateArgs) ToDomainCertificateOutput() DomainCertificateOutput { - return i.ToDomainCertificateOutputWithContext(context.Background()) -} - -func (i DomainCertificateArgs) ToDomainCertificateOutputWithContext(ctx context.Context) DomainCertificateOutput { - return pulumi.ToOutputWithContext(ctx, i).(DomainCertificateOutput) -} - -func (i DomainCertificateArgs) ToDomainCertificatePtrOutput() DomainCertificatePtrOutput { - return i.ToDomainCertificatePtrOutputWithContext(context.Background()) -} - -func (i DomainCertificateArgs) ToDomainCertificatePtrOutputWithContext(ctx context.Context) DomainCertificatePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(DomainCertificateOutput).ToDomainCertificatePtrOutputWithContext(ctx) -} - -// DomainCertificatePtrInput is an input type that accepts DomainCertificateArgs, DomainCertificatePtr and DomainCertificatePtrOutput values. -// You can construct a concrete instance of `DomainCertificatePtrInput` via: -// -// DomainCertificateArgs{...} -// -// or: -// -// nil -type DomainCertificatePtrInput interface { - pulumi.Input - - ToDomainCertificatePtrOutput() DomainCertificatePtrOutput - ToDomainCertificatePtrOutputWithContext(context.Context) DomainCertificatePtrOutput -} - -type domainCertificatePtrType DomainCertificateArgs - -func DomainCertificatePtr(v *DomainCertificateArgs) DomainCertificatePtrInput { - return (*domainCertificatePtrType)(v) -} - -func (*domainCertificatePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**DomainCertificate)(nil)).Elem() -} - -func (i *domainCertificatePtrType) ToDomainCertificatePtrOutput() DomainCertificatePtrOutput { - return i.ToDomainCertificatePtrOutputWithContext(context.Background()) -} - -func (i *domainCertificatePtrType) ToDomainCertificatePtrOutputWithContext(ctx context.Context) DomainCertificatePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(DomainCertificatePtrOutput) -} - type DomainCertificateOutput struct{ *pulumi.OutputState } func (DomainCertificateOutput) ElementType() reflect.Type { @@ -1167,16 +1097,6 @@ func (o DomainCertificateOutput) ToDomainCertificateOutputWithContext(ctx contex return o } -func (o DomainCertificateOutput) ToDomainCertificatePtrOutput() DomainCertificatePtrOutput { - return o.ToDomainCertificatePtrOutputWithContext(context.Background()) -} - -func (o DomainCertificateOutput) ToDomainCertificatePtrOutputWithContext(ctx context.Context) DomainCertificatePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v DomainCertificate) *DomainCertificate { - return &v - }).(DomainCertificatePtrOutput) -} - func (o DomainCertificateOutput) CertificateArn() pulumi.StringPtrOutput { return o.ApplyT(func(v DomainCertificate) *string { return v.CertificateArn }).(pulumi.StringPtrOutput) } @@ -1503,8 +1423,6 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*BranchBasicAuthConfigPtrInput)(nil)).Elem(), BranchBasicAuthConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*BranchEnvironmentVariableInput)(nil)).Elem(), BranchEnvironmentVariableArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*BranchEnvironmentVariableArrayInput)(nil)).Elem(), BranchEnvironmentVariableArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*DomainCertificateInput)(nil)).Elem(), DomainCertificateArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*DomainCertificatePtrInput)(nil)).Elem(), DomainCertificateArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainCertificateSettingsInput)(nil)).Elem(), DomainCertificateSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainCertificateSettingsPtrInput)(nil)).Elem(), DomainCertificateSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainSubDomainSettingInput)(nil)).Elem(), DomainSubDomainSettingArgs{}) 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/arczonalshift/pulumiEnums.go b/sdk/go/aws/arczonalshift/pulumiEnums.go index efc2b33965..1b7fc02c61 100644 --- a/sdk/go/aws/arczonalshift/pulumiEnums.go +++ b/sdk/go/aws/arczonalshift/pulumiEnums.go @@ -176,8 +176,7 @@ func (in *zonalAutoshiftConfigurationControlConditionTypePtr) ToZonalAutoshiftCo type ZonalAutoshiftConfigurationZonalAutoshiftStatus string const ( - ZonalAutoshiftConfigurationZonalAutoshiftStatusEnabled = ZonalAutoshiftConfigurationZonalAutoshiftStatus("ENABLED") - ZonalAutoshiftConfigurationZonalAutoshiftStatusDisabled = ZonalAutoshiftConfigurationZonalAutoshiftStatus("DISABLED") + ZonalAutoshiftConfigurationZonalAutoshiftStatusEnabled = ZonalAutoshiftConfigurationZonalAutoshiftStatus("ENABLED") ) func (ZonalAutoshiftConfigurationZonalAutoshiftStatus) ElementType() reflect.Type { @@ -303,7 +302,6 @@ func (o ZonalAutoshiftConfigurationZonalAutoshiftStatusPtrOutput) ToStringPtrOut // A concrete instance of `ZonalAutoshiftConfigurationZonalAutoshiftStatusInput` can be one of the following: // // ZonalAutoshiftConfigurationZonalAutoshiftStatusEnabled -// ZonalAutoshiftConfigurationZonalAutoshiftStatusDisabled type ZonalAutoshiftConfigurationZonalAutoshiftStatusInput interface { pulumi.Input 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/dataSource.go b/sdk/go/aws/bedrock/dataSource.go new file mode 100644 index 0000000000..d849b196d2 --- /dev/null +++ b/sdk/go/aws/bedrock/dataSource.go @@ -0,0 +1,202 @@ +// 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::DataSource Resource Type +type DataSource struct { + pulumi.CustomResourceState + + // The time at which the data source was created. + CreatedAt pulumi.StringOutput `pulumi:"createdAt"` + DataSourceConfiguration DataSourceConfigurationOutput `pulumi:"dataSourceConfiguration"` + // Identifier for a resource. + DataSourceId pulumi.StringOutput `pulumi:"dataSourceId"` + DataSourceStatus DataSourceStatusOutput `pulumi:"dataSourceStatus"` + // Description of the Resource. + Description pulumi.StringPtrOutput `pulumi:"description"` + // The unique identifier of the knowledge base to which to add the data source. + KnowledgeBaseId pulumi.StringOutput `pulumi:"knowledgeBaseId"` + // The name of the data source. + Name pulumi.StringOutput `pulumi:"name"` + ServerSideEncryptionConfiguration DataSourceServerSideEncryptionConfigurationPtrOutput `pulumi:"serverSideEncryptionConfiguration"` + // The time at which the knowledge base was last updated. + UpdatedAt pulumi.StringOutput `pulumi:"updatedAt"` + VectorIngestionConfiguration DataSourceVectorIngestionConfigurationPtrOutput `pulumi:"vectorIngestionConfiguration"` +} + +// NewDataSource registers a new resource with the given unique name, arguments, and options. +func NewDataSource(ctx *pulumi.Context, + name string, args *DataSourceArgs, opts ...pulumi.ResourceOption) (*DataSource, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.DataSourceConfiguration == nil { + return nil, errors.New("invalid value for required argument 'DataSourceConfiguration'") + } + if args.KnowledgeBaseId == nil { + return nil, errors.New("invalid value for required argument 'KnowledgeBaseId'") + } + replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "knowledgeBaseId", + "vectorIngestionConfiguration", + }) + opts = append(opts, replaceOnChanges) + opts = internal.PkgResourceDefaultOpts(opts) + var resource DataSource + err := ctx.RegisterResource("aws-native:bedrock:DataSource", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetDataSource gets an existing DataSource 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 GetDataSource(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *DataSourceState, opts ...pulumi.ResourceOption) (*DataSource, error) { + var resource DataSource + err := ctx.ReadResource("aws-native:bedrock:DataSource", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering DataSource resources. +type dataSourceState struct { +} + +type DataSourceState struct { +} + +func (DataSourceState) ElementType() reflect.Type { + return reflect.TypeOf((*dataSourceState)(nil)).Elem() +} + +type dataSourceArgs struct { + DataSourceConfiguration DataSourceConfiguration `pulumi:"dataSourceConfiguration"` + // Description of the Resource. + Description *string `pulumi:"description"` + // The unique identifier of the knowledge base to which to add the data source. + KnowledgeBaseId string `pulumi:"knowledgeBaseId"` + // The name of the data source. + Name *string `pulumi:"name"` + ServerSideEncryptionConfiguration *DataSourceServerSideEncryptionConfiguration `pulumi:"serverSideEncryptionConfiguration"` + VectorIngestionConfiguration *DataSourceVectorIngestionConfiguration `pulumi:"vectorIngestionConfiguration"` +} + +// The set of arguments for constructing a DataSource resource. +type DataSourceArgs struct { + DataSourceConfiguration DataSourceConfigurationInput + // Description of the Resource. + Description pulumi.StringPtrInput + // The unique identifier of the knowledge base to which to add the data source. + KnowledgeBaseId pulumi.StringInput + // The name of the data source. + Name pulumi.StringPtrInput + ServerSideEncryptionConfiguration DataSourceServerSideEncryptionConfigurationPtrInput + VectorIngestionConfiguration DataSourceVectorIngestionConfigurationPtrInput +} + +func (DataSourceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*dataSourceArgs)(nil)).Elem() +} + +type DataSourceInput interface { + pulumi.Input + + ToDataSourceOutput() DataSourceOutput + ToDataSourceOutputWithContext(ctx context.Context) DataSourceOutput +} + +func (*DataSource) ElementType() reflect.Type { + return reflect.TypeOf((**DataSource)(nil)).Elem() +} + +func (i *DataSource) ToDataSourceOutput() DataSourceOutput { + return i.ToDataSourceOutputWithContext(context.Background()) +} + +func (i *DataSource) ToDataSourceOutputWithContext(ctx context.Context) DataSourceOutput { + return pulumi.ToOutputWithContext(ctx, i).(DataSourceOutput) +} + +type DataSourceOutput struct{ *pulumi.OutputState } + +func (DataSourceOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DataSource)(nil)).Elem() +} + +func (o DataSourceOutput) ToDataSourceOutput() DataSourceOutput { + return o +} + +func (o DataSourceOutput) ToDataSourceOutputWithContext(ctx context.Context) DataSourceOutput { + return o +} + +// The time at which the data source was created. +func (o DataSourceOutput) CreatedAt() pulumi.StringOutput { + return o.ApplyT(func(v *DataSource) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput) +} + +func (o DataSourceOutput) DataSourceConfiguration() DataSourceConfigurationOutput { + return o.ApplyT(func(v *DataSource) DataSourceConfigurationOutput { return v.DataSourceConfiguration }).(DataSourceConfigurationOutput) +} + +// Identifier for a resource. +func (o DataSourceOutput) DataSourceId() pulumi.StringOutput { + return o.ApplyT(func(v *DataSource) pulumi.StringOutput { return v.DataSourceId }).(pulumi.StringOutput) +} + +func (o DataSourceOutput) DataSourceStatus() DataSourceStatusOutput { + return o.ApplyT(func(v *DataSource) DataSourceStatusOutput { return v.DataSourceStatus }).(DataSourceStatusOutput) +} + +// Description of the Resource. +func (o DataSourceOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DataSource) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// The unique identifier of the knowledge base to which to add the data source. +func (o DataSourceOutput) KnowledgeBaseId() pulumi.StringOutput { + return o.ApplyT(func(v *DataSource) pulumi.StringOutput { return v.KnowledgeBaseId }).(pulumi.StringOutput) +} + +// The name of the data source. +func (o DataSourceOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *DataSource) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +func (o DataSourceOutput) ServerSideEncryptionConfiguration() DataSourceServerSideEncryptionConfigurationPtrOutput { + return o.ApplyT(func(v *DataSource) DataSourceServerSideEncryptionConfigurationPtrOutput { + return v.ServerSideEncryptionConfiguration + }).(DataSourceServerSideEncryptionConfigurationPtrOutput) +} + +// The time at which the knowledge base was last updated. +func (o DataSourceOutput) UpdatedAt() pulumi.StringOutput { + return o.ApplyT(func(v *DataSource) pulumi.StringOutput { return v.UpdatedAt }).(pulumi.StringOutput) +} + +func (o DataSourceOutput) VectorIngestionConfiguration() DataSourceVectorIngestionConfigurationPtrOutput { + return o.ApplyT(func(v *DataSource) DataSourceVectorIngestionConfigurationPtrOutput { + return v.VectorIngestionConfiguration + }).(DataSourceVectorIngestionConfigurationPtrOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*DataSourceInput)(nil)).Elem(), &DataSource{}) + pulumi.RegisterOutputType(DataSourceOutput{}) +} 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/getDataSource.go b/sdk/go/aws/bedrock/getDataSource.go new file mode 100644 index 0000000000..6b1b8fff8a --- /dev/null +++ b/sdk/go/aws/bedrock/getDataSource.go @@ -0,0 +1,127 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package 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::DataSource Resource Type +func LookupDataSource(ctx *pulumi.Context, args *LookupDataSourceArgs, opts ...pulumi.InvokeOption) (*LookupDataSourceResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupDataSourceResult + err := ctx.Invoke("aws-native:bedrock:getDataSource", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupDataSourceArgs struct { + // Identifier for a resource. + DataSourceId string `pulumi:"dataSourceId"` + // The unique identifier of the knowledge base to which to add the data source. + KnowledgeBaseId string `pulumi:"knowledgeBaseId"` +} + +type LookupDataSourceResult struct { + // The time at which the data source was created. + CreatedAt *string `pulumi:"createdAt"` + DataSourceConfiguration *DataSourceConfiguration `pulumi:"dataSourceConfiguration"` + // Identifier for a resource. + DataSourceId *string `pulumi:"dataSourceId"` + DataSourceStatus *DataSourceStatus `pulumi:"dataSourceStatus"` + // Description of the Resource. + Description *string `pulumi:"description"` + // The name of the data source. + Name *string `pulumi:"name"` + ServerSideEncryptionConfiguration *DataSourceServerSideEncryptionConfiguration `pulumi:"serverSideEncryptionConfiguration"` + // The time at which the knowledge base was last updated. + UpdatedAt *string `pulumi:"updatedAt"` +} + +func LookupDataSourceOutput(ctx *pulumi.Context, args LookupDataSourceOutputArgs, opts ...pulumi.InvokeOption) LookupDataSourceResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupDataSourceResult, error) { + args := v.(LookupDataSourceArgs) + r, err := LookupDataSource(ctx, &args, opts...) + var s LookupDataSourceResult + if r != nil { + s = *r + } + return s, err + }).(LookupDataSourceResultOutput) +} + +type LookupDataSourceOutputArgs struct { + // Identifier for a resource. + DataSourceId pulumi.StringInput `pulumi:"dataSourceId"` + // The unique identifier of the knowledge base to which to add the data source. + KnowledgeBaseId pulumi.StringInput `pulumi:"knowledgeBaseId"` +} + +func (LookupDataSourceOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupDataSourceArgs)(nil)).Elem() +} + +type LookupDataSourceResultOutput struct{ *pulumi.OutputState } + +func (LookupDataSourceResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupDataSourceResult)(nil)).Elem() +} + +func (o LookupDataSourceResultOutput) ToLookupDataSourceResultOutput() LookupDataSourceResultOutput { + return o +} + +func (o LookupDataSourceResultOutput) ToLookupDataSourceResultOutputWithContext(ctx context.Context) LookupDataSourceResultOutput { + return o +} + +// The time at which the data source was created. +func (o LookupDataSourceResultOutput) CreatedAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupDataSourceResult) *string { return v.CreatedAt }).(pulumi.StringPtrOutput) +} + +func (o LookupDataSourceResultOutput) DataSourceConfiguration() DataSourceConfigurationPtrOutput { + return o.ApplyT(func(v LookupDataSourceResult) *DataSourceConfiguration { return v.DataSourceConfiguration }).(DataSourceConfigurationPtrOutput) +} + +// Identifier for a resource. +func (o LookupDataSourceResultOutput) DataSourceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupDataSourceResult) *string { return v.DataSourceId }).(pulumi.StringPtrOutput) +} + +func (o LookupDataSourceResultOutput) DataSourceStatus() DataSourceStatusPtrOutput { + return o.ApplyT(func(v LookupDataSourceResult) *DataSourceStatus { return v.DataSourceStatus }).(DataSourceStatusPtrOutput) +} + +// Description of the Resource. +func (o LookupDataSourceResultOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupDataSourceResult) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// The name of the data source. +func (o LookupDataSourceResultOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupDataSourceResult) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +func (o LookupDataSourceResultOutput) ServerSideEncryptionConfiguration() DataSourceServerSideEncryptionConfigurationPtrOutput { + return o.ApplyT(func(v LookupDataSourceResult) *DataSourceServerSideEncryptionConfiguration { + return v.ServerSideEncryptionConfiguration + }).(DataSourceServerSideEncryptionConfigurationPtrOutput) +} + +// The time at which the knowledge base was last updated. +func (o LookupDataSourceResultOutput) UpdatedAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupDataSourceResult) *string { return v.UpdatedAt }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupDataSourceResultOutput{}) +} diff --git a/sdk/go/aws/bedrock/getKnowledgeBase.go b/sdk/go/aws/bedrock/getKnowledgeBase.go new file mode 100644 index 0000000000..d9bf7abbd2 --- /dev/null +++ b/sdk/go/aws/bedrock/getKnowledgeBase.go @@ -0,0 +1,137 @@ +// 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::KnowledgeBase Resource Type +func LookupKnowledgeBase(ctx *pulumi.Context, args *LookupKnowledgeBaseArgs, opts ...pulumi.InvokeOption) (*LookupKnowledgeBaseResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupKnowledgeBaseResult + err := ctx.Invoke("aws-native:bedrock:getKnowledgeBase", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupKnowledgeBaseArgs struct { + // The unique identifier of the knowledge base. + KnowledgeBaseId string `pulumi:"knowledgeBaseId"` +} + +type LookupKnowledgeBaseResult struct { + // The time at which the knowledge base was created. + CreatedAt *string `pulumi:"createdAt"` + // Description of the Resource. + Description *string `pulumi:"description"` + // A list of reasons that the API operation on the knowledge base failed. + FailureReasons []string `pulumi:"failureReasons"` + // The ARN of the knowledge base. + KnowledgeBaseArn *string `pulumi:"knowledgeBaseArn"` + // The unique identifier of the knowledge base. + KnowledgeBaseId *string `pulumi:"knowledgeBaseId"` + // The name of the knowledge base. + Name *string `pulumi:"name"` + // The ARN of the IAM role with permissions to invoke API operations on the knowledge base. The ARN must begin with AmazonBedrockExecutionRoleForKnowledgeBase_ + RoleArn *string `pulumi:"roleArn"` + Status *KnowledgeBaseStatus `pulumi:"status"` + Tags map[string]string `pulumi:"tags"` + // The time at which the knowledge base was last updated. + UpdatedAt *string `pulumi:"updatedAt"` +} + +func LookupKnowledgeBaseOutput(ctx *pulumi.Context, args LookupKnowledgeBaseOutputArgs, opts ...pulumi.InvokeOption) LookupKnowledgeBaseResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupKnowledgeBaseResult, error) { + args := v.(LookupKnowledgeBaseArgs) + r, err := LookupKnowledgeBase(ctx, &args, opts...) + var s LookupKnowledgeBaseResult + if r != nil { + s = *r + } + return s, err + }).(LookupKnowledgeBaseResultOutput) +} + +type LookupKnowledgeBaseOutputArgs struct { + // The unique identifier of the knowledge base. + KnowledgeBaseId pulumi.StringInput `pulumi:"knowledgeBaseId"` +} + +func (LookupKnowledgeBaseOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupKnowledgeBaseArgs)(nil)).Elem() +} + +type LookupKnowledgeBaseResultOutput struct{ *pulumi.OutputState } + +func (LookupKnowledgeBaseResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupKnowledgeBaseResult)(nil)).Elem() +} + +func (o LookupKnowledgeBaseResultOutput) ToLookupKnowledgeBaseResultOutput() LookupKnowledgeBaseResultOutput { + return o +} + +func (o LookupKnowledgeBaseResultOutput) ToLookupKnowledgeBaseResultOutputWithContext(ctx context.Context) LookupKnowledgeBaseResultOutput { + return o +} + +// The time at which the knowledge base was created. +func (o LookupKnowledgeBaseResultOutput) CreatedAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupKnowledgeBaseResult) *string { return v.CreatedAt }).(pulumi.StringPtrOutput) +} + +// Description of the Resource. +func (o LookupKnowledgeBaseResultOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupKnowledgeBaseResult) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// A list of reasons that the API operation on the knowledge base failed. +func (o LookupKnowledgeBaseResultOutput) FailureReasons() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupKnowledgeBaseResult) []string { return v.FailureReasons }).(pulumi.StringArrayOutput) +} + +// The ARN of the knowledge base. +func (o LookupKnowledgeBaseResultOutput) KnowledgeBaseArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupKnowledgeBaseResult) *string { return v.KnowledgeBaseArn }).(pulumi.StringPtrOutput) +} + +// The unique identifier of the knowledge base. +func (o LookupKnowledgeBaseResultOutput) KnowledgeBaseId() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupKnowledgeBaseResult) *string { return v.KnowledgeBaseId }).(pulumi.StringPtrOutput) +} + +// The name of the knowledge base. +func (o LookupKnowledgeBaseResultOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupKnowledgeBaseResult) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// The ARN of the IAM role with permissions to invoke API operations on the knowledge base. The ARN must begin with AmazonBedrockExecutionRoleForKnowledgeBase_ +func (o LookupKnowledgeBaseResultOutput) RoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupKnowledgeBaseResult) *string { return v.RoleArn }).(pulumi.StringPtrOutput) +} + +func (o LookupKnowledgeBaseResultOutput) Status() KnowledgeBaseStatusPtrOutput { + return o.ApplyT(func(v LookupKnowledgeBaseResult) *KnowledgeBaseStatus { return v.Status }).(KnowledgeBaseStatusPtrOutput) +} + +func (o LookupKnowledgeBaseResultOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v LookupKnowledgeBaseResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +// The time at which the knowledge base was last updated. +func (o LookupKnowledgeBaseResultOutput) UpdatedAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupKnowledgeBaseResult) *string { return v.UpdatedAt }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupKnowledgeBaseResultOutput{}) +} diff --git a/sdk/go/aws/bedrock/init.go b/sdk/go/aws/bedrock/init.go new file mode 100644 index 0000000000..0816b9f60b --- /dev/null +++ b/sdk/go/aws/bedrock/init.go @@ -0,0 +1,50 @@ +// 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{} + case "aws-native:bedrock:DataSource": + r = &DataSource{} + case "aws-native:bedrock:KnowledgeBase": + r = &KnowledgeBase{} + 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/knowledgeBase.go b/sdk/go/aws/bedrock/knowledgeBase.go new file mode 100644 index 0000000000..a8f2144992 --- /dev/null +++ b/sdk/go/aws/bedrock/knowledgeBase.go @@ -0,0 +1,215 @@ +// 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::KnowledgeBase Resource Type +type KnowledgeBase struct { + pulumi.CustomResourceState + + // The time at which the knowledge base was created. + CreatedAt pulumi.StringOutput `pulumi:"createdAt"` + // Description of the Resource. + Description pulumi.StringPtrOutput `pulumi:"description"` + // A list of reasons that the API operation on the knowledge base failed. + FailureReasons pulumi.StringArrayOutput `pulumi:"failureReasons"` + // The ARN of the knowledge base. + KnowledgeBaseArn pulumi.StringOutput `pulumi:"knowledgeBaseArn"` + KnowledgeBaseConfiguration KnowledgeBaseConfigurationOutput `pulumi:"knowledgeBaseConfiguration"` + // The unique identifier of the knowledge base. + KnowledgeBaseId pulumi.StringOutput `pulumi:"knowledgeBaseId"` + // The name of the knowledge base. + Name pulumi.StringOutput `pulumi:"name"` + // The ARN of the IAM role with permissions to invoke API operations on the knowledge base. The ARN must begin with AmazonBedrockExecutionRoleForKnowledgeBase_ + RoleArn pulumi.StringOutput `pulumi:"roleArn"` + Status KnowledgeBaseStatusOutput `pulumi:"status"` + StorageConfiguration KnowledgeBaseStorageConfigurationOutput `pulumi:"storageConfiguration"` + Tags pulumi.StringMapOutput `pulumi:"tags"` + // The time at which the knowledge base was last updated. + UpdatedAt pulumi.StringOutput `pulumi:"updatedAt"` +} + +// NewKnowledgeBase registers a new resource with the given unique name, arguments, and options. +func NewKnowledgeBase(ctx *pulumi.Context, + name string, args *KnowledgeBaseArgs, opts ...pulumi.ResourceOption) (*KnowledgeBase, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.KnowledgeBaseConfiguration == nil { + return nil, errors.New("invalid value for required argument 'KnowledgeBaseConfiguration'") + } + if args.RoleArn == nil { + return nil, errors.New("invalid value for required argument 'RoleArn'") + } + if args.StorageConfiguration == nil { + return nil, errors.New("invalid value for required argument 'StorageConfiguration'") + } + replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "knowledgeBaseConfiguration", + "storageConfiguration", + }) + opts = append(opts, replaceOnChanges) + opts = internal.PkgResourceDefaultOpts(opts) + var resource KnowledgeBase + err := ctx.RegisterResource("aws-native:bedrock:KnowledgeBase", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetKnowledgeBase gets an existing KnowledgeBase 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 GetKnowledgeBase(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *KnowledgeBaseState, opts ...pulumi.ResourceOption) (*KnowledgeBase, error) { + var resource KnowledgeBase + err := ctx.ReadResource("aws-native:bedrock:KnowledgeBase", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering KnowledgeBase resources. +type knowledgeBaseState struct { +} + +type KnowledgeBaseState struct { +} + +func (KnowledgeBaseState) ElementType() reflect.Type { + return reflect.TypeOf((*knowledgeBaseState)(nil)).Elem() +} + +type knowledgeBaseArgs struct { + // Description of the Resource. + Description *string `pulumi:"description"` + KnowledgeBaseConfiguration KnowledgeBaseConfiguration `pulumi:"knowledgeBaseConfiguration"` + // The name of the knowledge base. + Name *string `pulumi:"name"` + // The ARN of the IAM role with permissions to invoke API operations on the knowledge base. The ARN must begin with AmazonBedrockExecutionRoleForKnowledgeBase_ + RoleArn string `pulumi:"roleArn"` + StorageConfiguration KnowledgeBaseStorageConfiguration `pulumi:"storageConfiguration"` + Tags map[string]string `pulumi:"tags"` +} + +// The set of arguments for constructing a KnowledgeBase resource. +type KnowledgeBaseArgs struct { + // Description of the Resource. + Description pulumi.StringPtrInput + KnowledgeBaseConfiguration KnowledgeBaseConfigurationInput + // The name of the knowledge base. + Name pulumi.StringPtrInput + // The ARN of the IAM role with permissions to invoke API operations on the knowledge base. The ARN must begin with AmazonBedrockExecutionRoleForKnowledgeBase_ + RoleArn pulumi.StringInput + StorageConfiguration KnowledgeBaseStorageConfigurationInput + Tags pulumi.StringMapInput +} + +func (KnowledgeBaseArgs) ElementType() reflect.Type { + return reflect.TypeOf((*knowledgeBaseArgs)(nil)).Elem() +} + +type KnowledgeBaseInput interface { + pulumi.Input + + ToKnowledgeBaseOutput() KnowledgeBaseOutput + ToKnowledgeBaseOutputWithContext(ctx context.Context) KnowledgeBaseOutput +} + +func (*KnowledgeBase) ElementType() reflect.Type { + return reflect.TypeOf((**KnowledgeBase)(nil)).Elem() +} + +func (i *KnowledgeBase) ToKnowledgeBaseOutput() KnowledgeBaseOutput { + return i.ToKnowledgeBaseOutputWithContext(context.Background()) +} + +func (i *KnowledgeBase) ToKnowledgeBaseOutputWithContext(ctx context.Context) KnowledgeBaseOutput { + return pulumi.ToOutputWithContext(ctx, i).(KnowledgeBaseOutput) +} + +type KnowledgeBaseOutput struct{ *pulumi.OutputState } + +func (KnowledgeBaseOutput) ElementType() reflect.Type { + return reflect.TypeOf((**KnowledgeBase)(nil)).Elem() +} + +func (o KnowledgeBaseOutput) ToKnowledgeBaseOutput() KnowledgeBaseOutput { + return o +} + +func (o KnowledgeBaseOutput) ToKnowledgeBaseOutputWithContext(ctx context.Context) KnowledgeBaseOutput { + return o +} + +// The time at which the knowledge base was created. +func (o KnowledgeBaseOutput) CreatedAt() pulumi.StringOutput { + return o.ApplyT(func(v *KnowledgeBase) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput) +} + +// Description of the Resource. +func (o KnowledgeBaseOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KnowledgeBase) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// A list of reasons that the API operation on the knowledge base failed. +func (o KnowledgeBaseOutput) FailureReasons() pulumi.StringArrayOutput { + return o.ApplyT(func(v *KnowledgeBase) pulumi.StringArrayOutput { return v.FailureReasons }).(pulumi.StringArrayOutput) +} + +// The ARN of the knowledge base. +func (o KnowledgeBaseOutput) KnowledgeBaseArn() pulumi.StringOutput { + return o.ApplyT(func(v *KnowledgeBase) pulumi.StringOutput { return v.KnowledgeBaseArn }).(pulumi.StringOutput) +} + +func (o KnowledgeBaseOutput) KnowledgeBaseConfiguration() KnowledgeBaseConfigurationOutput { + return o.ApplyT(func(v *KnowledgeBase) KnowledgeBaseConfigurationOutput { return v.KnowledgeBaseConfiguration }).(KnowledgeBaseConfigurationOutput) +} + +// The unique identifier of the knowledge base. +func (o KnowledgeBaseOutput) KnowledgeBaseId() pulumi.StringOutput { + return o.ApplyT(func(v *KnowledgeBase) pulumi.StringOutput { return v.KnowledgeBaseId }).(pulumi.StringOutput) +} + +// The name of the knowledge base. +func (o KnowledgeBaseOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *KnowledgeBase) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The ARN of the IAM role with permissions to invoke API operations on the knowledge base. The ARN must begin with AmazonBedrockExecutionRoleForKnowledgeBase_ +func (o KnowledgeBaseOutput) RoleArn() pulumi.StringOutput { + return o.ApplyT(func(v *KnowledgeBase) pulumi.StringOutput { return v.RoleArn }).(pulumi.StringOutput) +} + +func (o KnowledgeBaseOutput) Status() KnowledgeBaseStatusOutput { + return o.ApplyT(func(v *KnowledgeBase) KnowledgeBaseStatusOutput { return v.Status }).(KnowledgeBaseStatusOutput) +} + +func (o KnowledgeBaseOutput) StorageConfiguration() KnowledgeBaseStorageConfigurationOutput { + return o.ApplyT(func(v *KnowledgeBase) KnowledgeBaseStorageConfigurationOutput { return v.StorageConfiguration }).(KnowledgeBaseStorageConfigurationOutput) +} + +func (o KnowledgeBaseOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *KnowledgeBase) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// The time at which the knowledge base was last updated. +func (o KnowledgeBaseOutput) UpdatedAt() pulumi.StringOutput { + return o.ApplyT(func(v *KnowledgeBase) pulumi.StringOutput { return v.UpdatedAt }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*KnowledgeBaseInput)(nil)).Elem(), &KnowledgeBase{}) + pulumi.RegisterOutputType(KnowledgeBaseOutput{}) +} diff --git a/sdk/go/aws/bedrock/pulumiEnums.go b/sdk/go/aws/bedrock/pulumiEnums.go new file mode 100644 index 0000000000..5abc8f41a2 --- /dev/null +++ b/sdk/go/aws/bedrock/pulumiEnums.go @@ -0,0 +1,2098 @@ +// 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) +} + +// Knowledge base can split your source data into chunks. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried. You have the following options for chunking your data. If you opt for NONE, then you may want to pre-process your files by splitting them up such that each file corresponds to a chunk. +type DataSourceChunkingStrategy string + +const ( + DataSourceChunkingStrategyFixedSize = DataSourceChunkingStrategy("FIXED_SIZE") + DataSourceChunkingStrategyNone = DataSourceChunkingStrategy("NONE") +) + +func (DataSourceChunkingStrategy) ElementType() reflect.Type { + return reflect.TypeOf((*DataSourceChunkingStrategy)(nil)).Elem() +} + +func (e DataSourceChunkingStrategy) ToDataSourceChunkingStrategyOutput() DataSourceChunkingStrategyOutput { + return pulumi.ToOutput(e).(DataSourceChunkingStrategyOutput) +} + +func (e DataSourceChunkingStrategy) ToDataSourceChunkingStrategyOutputWithContext(ctx context.Context) DataSourceChunkingStrategyOutput { + return pulumi.ToOutputWithContext(ctx, e).(DataSourceChunkingStrategyOutput) +} + +func (e DataSourceChunkingStrategy) ToDataSourceChunkingStrategyPtrOutput() DataSourceChunkingStrategyPtrOutput { + return e.ToDataSourceChunkingStrategyPtrOutputWithContext(context.Background()) +} + +func (e DataSourceChunkingStrategy) ToDataSourceChunkingStrategyPtrOutputWithContext(ctx context.Context) DataSourceChunkingStrategyPtrOutput { + return DataSourceChunkingStrategy(e).ToDataSourceChunkingStrategyOutputWithContext(ctx).ToDataSourceChunkingStrategyPtrOutputWithContext(ctx) +} + +func (e DataSourceChunkingStrategy) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e DataSourceChunkingStrategy) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e DataSourceChunkingStrategy) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e DataSourceChunkingStrategy) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type DataSourceChunkingStrategyOutput struct{ *pulumi.OutputState } + +func (DataSourceChunkingStrategyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DataSourceChunkingStrategy)(nil)).Elem() +} + +func (o DataSourceChunkingStrategyOutput) ToDataSourceChunkingStrategyOutput() DataSourceChunkingStrategyOutput { + return o +} + +func (o DataSourceChunkingStrategyOutput) ToDataSourceChunkingStrategyOutputWithContext(ctx context.Context) DataSourceChunkingStrategyOutput { + return o +} + +func (o DataSourceChunkingStrategyOutput) ToDataSourceChunkingStrategyPtrOutput() DataSourceChunkingStrategyPtrOutput { + return o.ToDataSourceChunkingStrategyPtrOutputWithContext(context.Background()) +} + +func (o DataSourceChunkingStrategyOutput) ToDataSourceChunkingStrategyPtrOutputWithContext(ctx context.Context) DataSourceChunkingStrategyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DataSourceChunkingStrategy) *DataSourceChunkingStrategy { + return &v + }).(DataSourceChunkingStrategyPtrOutput) +} + +func (o DataSourceChunkingStrategyOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o DataSourceChunkingStrategyOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e DataSourceChunkingStrategy) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o DataSourceChunkingStrategyOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o DataSourceChunkingStrategyOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e DataSourceChunkingStrategy) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type DataSourceChunkingStrategyPtrOutput struct{ *pulumi.OutputState } + +func (DataSourceChunkingStrategyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DataSourceChunkingStrategy)(nil)).Elem() +} + +func (o DataSourceChunkingStrategyPtrOutput) ToDataSourceChunkingStrategyPtrOutput() DataSourceChunkingStrategyPtrOutput { + return o +} + +func (o DataSourceChunkingStrategyPtrOutput) ToDataSourceChunkingStrategyPtrOutputWithContext(ctx context.Context) DataSourceChunkingStrategyPtrOutput { + return o +} + +func (o DataSourceChunkingStrategyPtrOutput) Elem() DataSourceChunkingStrategyOutput { + return o.ApplyT(func(v *DataSourceChunkingStrategy) DataSourceChunkingStrategy { + if v != nil { + return *v + } + var ret DataSourceChunkingStrategy + return ret + }).(DataSourceChunkingStrategyOutput) +} + +func (o DataSourceChunkingStrategyPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o DataSourceChunkingStrategyPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *DataSourceChunkingStrategy) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// DataSourceChunkingStrategyInput is an input type that accepts values of the DataSourceChunkingStrategy enum +// A concrete instance of `DataSourceChunkingStrategyInput` can be one of the following: +// +// DataSourceChunkingStrategyFixedSize +// DataSourceChunkingStrategyNone +type DataSourceChunkingStrategyInput interface { + pulumi.Input + + ToDataSourceChunkingStrategyOutput() DataSourceChunkingStrategyOutput + ToDataSourceChunkingStrategyOutputWithContext(context.Context) DataSourceChunkingStrategyOutput +} + +var dataSourceChunkingStrategyPtrType = reflect.TypeOf((**DataSourceChunkingStrategy)(nil)).Elem() + +type DataSourceChunkingStrategyPtrInput interface { + pulumi.Input + + ToDataSourceChunkingStrategyPtrOutput() DataSourceChunkingStrategyPtrOutput + ToDataSourceChunkingStrategyPtrOutputWithContext(context.Context) DataSourceChunkingStrategyPtrOutput +} + +type dataSourceChunkingStrategyPtr string + +func DataSourceChunkingStrategyPtr(v string) DataSourceChunkingStrategyPtrInput { + return (*dataSourceChunkingStrategyPtr)(&v) +} + +func (*dataSourceChunkingStrategyPtr) ElementType() reflect.Type { + return dataSourceChunkingStrategyPtrType +} + +func (in *dataSourceChunkingStrategyPtr) ToDataSourceChunkingStrategyPtrOutput() DataSourceChunkingStrategyPtrOutput { + return pulumi.ToOutput(in).(DataSourceChunkingStrategyPtrOutput) +} + +func (in *dataSourceChunkingStrategyPtr) ToDataSourceChunkingStrategyPtrOutputWithContext(ctx context.Context) DataSourceChunkingStrategyPtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(DataSourceChunkingStrategyPtrOutput) +} + +// The status of a data source. +type DataSourceStatus string + +const ( + DataSourceStatusAvailable = DataSourceStatus("AVAILABLE") + DataSourceStatusDeleting = DataSourceStatus("DELETING") +) + +type DataSourceStatusOutput struct{ *pulumi.OutputState } + +func (DataSourceStatusOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DataSourceStatus)(nil)).Elem() +} + +func (o DataSourceStatusOutput) ToDataSourceStatusOutput() DataSourceStatusOutput { + return o +} + +func (o DataSourceStatusOutput) ToDataSourceStatusOutputWithContext(ctx context.Context) DataSourceStatusOutput { + return o +} + +func (o DataSourceStatusOutput) ToDataSourceStatusPtrOutput() DataSourceStatusPtrOutput { + return o.ToDataSourceStatusPtrOutputWithContext(context.Background()) +} + +func (o DataSourceStatusOutput) ToDataSourceStatusPtrOutputWithContext(ctx context.Context) DataSourceStatusPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DataSourceStatus) *DataSourceStatus { + return &v + }).(DataSourceStatusPtrOutput) +} + +func (o DataSourceStatusOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o DataSourceStatusOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e DataSourceStatus) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o DataSourceStatusOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o DataSourceStatusOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e DataSourceStatus) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type DataSourceStatusPtrOutput struct{ *pulumi.OutputState } + +func (DataSourceStatusPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DataSourceStatus)(nil)).Elem() +} + +func (o DataSourceStatusPtrOutput) ToDataSourceStatusPtrOutput() DataSourceStatusPtrOutput { + return o +} + +func (o DataSourceStatusPtrOutput) ToDataSourceStatusPtrOutputWithContext(ctx context.Context) DataSourceStatusPtrOutput { + return o +} + +func (o DataSourceStatusPtrOutput) Elem() DataSourceStatusOutput { + return o.ApplyT(func(v *DataSourceStatus) DataSourceStatus { + if v != nil { + return *v + } + var ret DataSourceStatus + return ret + }).(DataSourceStatusOutput) +} + +func (o DataSourceStatusPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o DataSourceStatusPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *DataSourceStatus) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// The type of the data source location. +type DataSourceType string + +const ( + DataSourceTypeS3 = DataSourceType("S3") +) + +func (DataSourceType) ElementType() reflect.Type { + return reflect.TypeOf((*DataSourceType)(nil)).Elem() +} + +func (e DataSourceType) ToDataSourceTypeOutput() DataSourceTypeOutput { + return pulumi.ToOutput(e).(DataSourceTypeOutput) +} + +func (e DataSourceType) ToDataSourceTypeOutputWithContext(ctx context.Context) DataSourceTypeOutput { + return pulumi.ToOutputWithContext(ctx, e).(DataSourceTypeOutput) +} + +func (e DataSourceType) ToDataSourceTypePtrOutput() DataSourceTypePtrOutput { + return e.ToDataSourceTypePtrOutputWithContext(context.Background()) +} + +func (e DataSourceType) ToDataSourceTypePtrOutputWithContext(ctx context.Context) DataSourceTypePtrOutput { + return DataSourceType(e).ToDataSourceTypeOutputWithContext(ctx).ToDataSourceTypePtrOutputWithContext(ctx) +} + +func (e DataSourceType) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e DataSourceType) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e DataSourceType) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e DataSourceType) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type DataSourceTypeOutput struct{ *pulumi.OutputState } + +func (DataSourceTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DataSourceType)(nil)).Elem() +} + +func (o DataSourceTypeOutput) ToDataSourceTypeOutput() DataSourceTypeOutput { + return o +} + +func (o DataSourceTypeOutput) ToDataSourceTypeOutputWithContext(ctx context.Context) DataSourceTypeOutput { + return o +} + +func (o DataSourceTypeOutput) ToDataSourceTypePtrOutput() DataSourceTypePtrOutput { + return o.ToDataSourceTypePtrOutputWithContext(context.Background()) +} + +func (o DataSourceTypeOutput) ToDataSourceTypePtrOutputWithContext(ctx context.Context) DataSourceTypePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DataSourceType) *DataSourceType { + return &v + }).(DataSourceTypePtrOutput) +} + +func (o DataSourceTypeOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o DataSourceTypeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e DataSourceType) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o DataSourceTypeOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o DataSourceTypeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e DataSourceType) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type DataSourceTypePtrOutput struct{ *pulumi.OutputState } + +func (DataSourceTypePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DataSourceType)(nil)).Elem() +} + +func (o DataSourceTypePtrOutput) ToDataSourceTypePtrOutput() DataSourceTypePtrOutput { + return o +} + +func (o DataSourceTypePtrOutput) ToDataSourceTypePtrOutputWithContext(ctx context.Context) DataSourceTypePtrOutput { + return o +} + +func (o DataSourceTypePtrOutput) Elem() DataSourceTypeOutput { + return o.ApplyT(func(v *DataSourceType) DataSourceType { + if v != nil { + return *v + } + var ret DataSourceType + return ret + }).(DataSourceTypeOutput) +} + +func (o DataSourceTypePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o DataSourceTypePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *DataSourceType) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// DataSourceTypeInput is an input type that accepts values of the DataSourceType enum +// A concrete instance of `DataSourceTypeInput` can be one of the following: +// +// DataSourceTypeS3 +type DataSourceTypeInput interface { + pulumi.Input + + ToDataSourceTypeOutput() DataSourceTypeOutput + ToDataSourceTypeOutputWithContext(context.Context) DataSourceTypeOutput +} + +var dataSourceTypePtrType = reflect.TypeOf((**DataSourceType)(nil)).Elem() + +type DataSourceTypePtrInput interface { + pulumi.Input + + ToDataSourceTypePtrOutput() DataSourceTypePtrOutput + ToDataSourceTypePtrOutputWithContext(context.Context) DataSourceTypePtrOutput +} + +type dataSourceTypePtr string + +func DataSourceTypePtr(v string) DataSourceTypePtrInput { + return (*dataSourceTypePtr)(&v) +} + +func (*dataSourceTypePtr) ElementType() reflect.Type { + return dataSourceTypePtrType +} + +func (in *dataSourceTypePtr) ToDataSourceTypePtrOutput() DataSourceTypePtrOutput { + return pulumi.ToOutput(in).(DataSourceTypePtrOutput) +} + +func (in *dataSourceTypePtr) ToDataSourceTypePtrOutputWithContext(ctx context.Context) DataSourceTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(DataSourceTypePtrOutput) +} + +// The status of a knowledge base. +type KnowledgeBaseStatus string + +const ( + KnowledgeBaseStatusCreating = KnowledgeBaseStatus("CREATING") + KnowledgeBaseStatusActive = KnowledgeBaseStatus("ACTIVE") + KnowledgeBaseStatusDeleting = KnowledgeBaseStatus("DELETING") + KnowledgeBaseStatusUpdating = KnowledgeBaseStatus("UPDATING") + KnowledgeBaseStatusFailed = KnowledgeBaseStatus("FAILED") +) + +type KnowledgeBaseStatusOutput struct{ *pulumi.OutputState } + +func (KnowledgeBaseStatusOutput) ElementType() reflect.Type { + return reflect.TypeOf((*KnowledgeBaseStatus)(nil)).Elem() +} + +func (o KnowledgeBaseStatusOutput) ToKnowledgeBaseStatusOutput() KnowledgeBaseStatusOutput { + return o +} + +func (o KnowledgeBaseStatusOutput) ToKnowledgeBaseStatusOutputWithContext(ctx context.Context) KnowledgeBaseStatusOutput { + return o +} + +func (o KnowledgeBaseStatusOutput) ToKnowledgeBaseStatusPtrOutput() KnowledgeBaseStatusPtrOutput { + return o.ToKnowledgeBaseStatusPtrOutputWithContext(context.Background()) +} + +func (o KnowledgeBaseStatusOutput) ToKnowledgeBaseStatusPtrOutputWithContext(ctx context.Context) KnowledgeBaseStatusPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v KnowledgeBaseStatus) *KnowledgeBaseStatus { + return &v + }).(KnowledgeBaseStatusPtrOutput) +} + +func (o KnowledgeBaseStatusOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o KnowledgeBaseStatusOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e KnowledgeBaseStatus) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o KnowledgeBaseStatusOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o KnowledgeBaseStatusOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e KnowledgeBaseStatus) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type KnowledgeBaseStatusPtrOutput struct{ *pulumi.OutputState } + +func (KnowledgeBaseStatusPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**KnowledgeBaseStatus)(nil)).Elem() +} + +func (o KnowledgeBaseStatusPtrOutput) ToKnowledgeBaseStatusPtrOutput() KnowledgeBaseStatusPtrOutput { + return o +} + +func (o KnowledgeBaseStatusPtrOutput) ToKnowledgeBaseStatusPtrOutputWithContext(ctx context.Context) KnowledgeBaseStatusPtrOutput { + return o +} + +func (o KnowledgeBaseStatusPtrOutput) Elem() KnowledgeBaseStatusOutput { + return o.ApplyT(func(v *KnowledgeBaseStatus) KnowledgeBaseStatus { + if v != nil { + return *v + } + var ret KnowledgeBaseStatus + return ret + }).(KnowledgeBaseStatusOutput) +} + +func (o KnowledgeBaseStatusPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o KnowledgeBaseStatusPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *KnowledgeBaseStatus) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// The storage type of a knowledge base. +type KnowledgeBaseStorageType string + +const ( + KnowledgeBaseStorageTypeOpensearchServerless = KnowledgeBaseStorageType("OPENSEARCH_SERVERLESS") + KnowledgeBaseStorageTypePinecone = KnowledgeBaseStorageType("PINECONE") + KnowledgeBaseStorageTypeRds = KnowledgeBaseStorageType("RDS") +) + +func (KnowledgeBaseStorageType) ElementType() reflect.Type { + return reflect.TypeOf((*KnowledgeBaseStorageType)(nil)).Elem() +} + +func (e KnowledgeBaseStorageType) ToKnowledgeBaseStorageTypeOutput() KnowledgeBaseStorageTypeOutput { + return pulumi.ToOutput(e).(KnowledgeBaseStorageTypeOutput) +} + +func (e KnowledgeBaseStorageType) ToKnowledgeBaseStorageTypeOutputWithContext(ctx context.Context) KnowledgeBaseStorageTypeOutput { + return pulumi.ToOutputWithContext(ctx, e).(KnowledgeBaseStorageTypeOutput) +} + +func (e KnowledgeBaseStorageType) ToKnowledgeBaseStorageTypePtrOutput() KnowledgeBaseStorageTypePtrOutput { + return e.ToKnowledgeBaseStorageTypePtrOutputWithContext(context.Background()) +} + +func (e KnowledgeBaseStorageType) ToKnowledgeBaseStorageTypePtrOutputWithContext(ctx context.Context) KnowledgeBaseStorageTypePtrOutput { + return KnowledgeBaseStorageType(e).ToKnowledgeBaseStorageTypeOutputWithContext(ctx).ToKnowledgeBaseStorageTypePtrOutputWithContext(ctx) +} + +func (e KnowledgeBaseStorageType) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e KnowledgeBaseStorageType) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e KnowledgeBaseStorageType) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e KnowledgeBaseStorageType) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type KnowledgeBaseStorageTypeOutput struct{ *pulumi.OutputState } + +func (KnowledgeBaseStorageTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*KnowledgeBaseStorageType)(nil)).Elem() +} + +func (o KnowledgeBaseStorageTypeOutput) ToKnowledgeBaseStorageTypeOutput() KnowledgeBaseStorageTypeOutput { + return o +} + +func (o KnowledgeBaseStorageTypeOutput) ToKnowledgeBaseStorageTypeOutputWithContext(ctx context.Context) KnowledgeBaseStorageTypeOutput { + return o +} + +func (o KnowledgeBaseStorageTypeOutput) ToKnowledgeBaseStorageTypePtrOutput() KnowledgeBaseStorageTypePtrOutput { + return o.ToKnowledgeBaseStorageTypePtrOutputWithContext(context.Background()) +} + +func (o KnowledgeBaseStorageTypeOutput) ToKnowledgeBaseStorageTypePtrOutputWithContext(ctx context.Context) KnowledgeBaseStorageTypePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v KnowledgeBaseStorageType) *KnowledgeBaseStorageType { + return &v + }).(KnowledgeBaseStorageTypePtrOutput) +} + +func (o KnowledgeBaseStorageTypeOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o KnowledgeBaseStorageTypeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e KnowledgeBaseStorageType) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o KnowledgeBaseStorageTypeOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o KnowledgeBaseStorageTypeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e KnowledgeBaseStorageType) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type KnowledgeBaseStorageTypePtrOutput struct{ *pulumi.OutputState } + +func (KnowledgeBaseStorageTypePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**KnowledgeBaseStorageType)(nil)).Elem() +} + +func (o KnowledgeBaseStorageTypePtrOutput) ToKnowledgeBaseStorageTypePtrOutput() KnowledgeBaseStorageTypePtrOutput { + return o +} + +func (o KnowledgeBaseStorageTypePtrOutput) ToKnowledgeBaseStorageTypePtrOutputWithContext(ctx context.Context) KnowledgeBaseStorageTypePtrOutput { + return o +} + +func (o KnowledgeBaseStorageTypePtrOutput) Elem() KnowledgeBaseStorageTypeOutput { + return o.ApplyT(func(v *KnowledgeBaseStorageType) KnowledgeBaseStorageType { + if v != nil { + return *v + } + var ret KnowledgeBaseStorageType + return ret + }).(KnowledgeBaseStorageTypeOutput) +} + +func (o KnowledgeBaseStorageTypePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o KnowledgeBaseStorageTypePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *KnowledgeBaseStorageType) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// KnowledgeBaseStorageTypeInput is an input type that accepts values of the KnowledgeBaseStorageType enum +// A concrete instance of `KnowledgeBaseStorageTypeInput` can be one of the following: +// +// KnowledgeBaseStorageTypeOpensearchServerless +// KnowledgeBaseStorageTypePinecone +// KnowledgeBaseStorageTypeRds +type KnowledgeBaseStorageTypeInput interface { + pulumi.Input + + ToKnowledgeBaseStorageTypeOutput() KnowledgeBaseStorageTypeOutput + ToKnowledgeBaseStorageTypeOutputWithContext(context.Context) KnowledgeBaseStorageTypeOutput +} + +var knowledgeBaseStorageTypePtrType = reflect.TypeOf((**KnowledgeBaseStorageType)(nil)).Elem() + +type KnowledgeBaseStorageTypePtrInput interface { + pulumi.Input + + ToKnowledgeBaseStorageTypePtrOutput() KnowledgeBaseStorageTypePtrOutput + ToKnowledgeBaseStorageTypePtrOutputWithContext(context.Context) KnowledgeBaseStorageTypePtrOutput +} + +type knowledgeBaseStorageTypePtr string + +func KnowledgeBaseStorageTypePtr(v string) KnowledgeBaseStorageTypePtrInput { + return (*knowledgeBaseStorageTypePtr)(&v) +} + +func (*knowledgeBaseStorageTypePtr) ElementType() reflect.Type { + return knowledgeBaseStorageTypePtrType +} + +func (in *knowledgeBaseStorageTypePtr) ToKnowledgeBaseStorageTypePtrOutput() KnowledgeBaseStorageTypePtrOutput { + return pulumi.ToOutput(in).(KnowledgeBaseStorageTypePtrOutput) +} + +func (in *knowledgeBaseStorageTypePtr) ToKnowledgeBaseStorageTypePtrOutputWithContext(ctx context.Context) KnowledgeBaseStorageTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(KnowledgeBaseStorageTypePtrOutput) +} + +// The type of a knowledge base. +type KnowledgeBaseType string + +const ( + KnowledgeBaseTypeVector = KnowledgeBaseType("VECTOR") +) + +func (KnowledgeBaseType) ElementType() reflect.Type { + return reflect.TypeOf((*KnowledgeBaseType)(nil)).Elem() +} + +func (e KnowledgeBaseType) ToKnowledgeBaseTypeOutput() KnowledgeBaseTypeOutput { + return pulumi.ToOutput(e).(KnowledgeBaseTypeOutput) +} + +func (e KnowledgeBaseType) ToKnowledgeBaseTypeOutputWithContext(ctx context.Context) KnowledgeBaseTypeOutput { + return pulumi.ToOutputWithContext(ctx, e).(KnowledgeBaseTypeOutput) +} + +func (e KnowledgeBaseType) ToKnowledgeBaseTypePtrOutput() KnowledgeBaseTypePtrOutput { + return e.ToKnowledgeBaseTypePtrOutputWithContext(context.Background()) +} + +func (e KnowledgeBaseType) ToKnowledgeBaseTypePtrOutputWithContext(ctx context.Context) KnowledgeBaseTypePtrOutput { + return KnowledgeBaseType(e).ToKnowledgeBaseTypeOutputWithContext(ctx).ToKnowledgeBaseTypePtrOutputWithContext(ctx) +} + +func (e KnowledgeBaseType) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e KnowledgeBaseType) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e KnowledgeBaseType) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e KnowledgeBaseType) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type KnowledgeBaseTypeOutput struct{ *pulumi.OutputState } + +func (KnowledgeBaseTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*KnowledgeBaseType)(nil)).Elem() +} + +func (o KnowledgeBaseTypeOutput) ToKnowledgeBaseTypeOutput() KnowledgeBaseTypeOutput { + return o +} + +func (o KnowledgeBaseTypeOutput) ToKnowledgeBaseTypeOutputWithContext(ctx context.Context) KnowledgeBaseTypeOutput { + return o +} + +func (o KnowledgeBaseTypeOutput) ToKnowledgeBaseTypePtrOutput() KnowledgeBaseTypePtrOutput { + return o.ToKnowledgeBaseTypePtrOutputWithContext(context.Background()) +} + +func (o KnowledgeBaseTypeOutput) ToKnowledgeBaseTypePtrOutputWithContext(ctx context.Context) KnowledgeBaseTypePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v KnowledgeBaseType) *KnowledgeBaseType { + return &v + }).(KnowledgeBaseTypePtrOutput) +} + +func (o KnowledgeBaseTypeOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o KnowledgeBaseTypeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e KnowledgeBaseType) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o KnowledgeBaseTypeOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o KnowledgeBaseTypeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e KnowledgeBaseType) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type KnowledgeBaseTypePtrOutput struct{ *pulumi.OutputState } + +func (KnowledgeBaseTypePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**KnowledgeBaseType)(nil)).Elem() +} + +func (o KnowledgeBaseTypePtrOutput) ToKnowledgeBaseTypePtrOutput() KnowledgeBaseTypePtrOutput { + return o +} + +func (o KnowledgeBaseTypePtrOutput) ToKnowledgeBaseTypePtrOutputWithContext(ctx context.Context) KnowledgeBaseTypePtrOutput { + return o +} + +func (o KnowledgeBaseTypePtrOutput) Elem() KnowledgeBaseTypeOutput { + return o.ApplyT(func(v *KnowledgeBaseType) KnowledgeBaseType { + if v != nil { + return *v + } + var ret KnowledgeBaseType + return ret + }).(KnowledgeBaseTypeOutput) +} + +func (o KnowledgeBaseTypePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o KnowledgeBaseTypePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *KnowledgeBaseType) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// KnowledgeBaseTypeInput is an input type that accepts values of the KnowledgeBaseType enum +// A concrete instance of `KnowledgeBaseTypeInput` can be one of the following: +// +// KnowledgeBaseTypeVector +type KnowledgeBaseTypeInput interface { + pulumi.Input + + ToKnowledgeBaseTypeOutput() KnowledgeBaseTypeOutput + ToKnowledgeBaseTypeOutputWithContext(context.Context) KnowledgeBaseTypeOutput +} + +var knowledgeBaseTypePtrType = reflect.TypeOf((**KnowledgeBaseType)(nil)).Elem() + +type KnowledgeBaseTypePtrInput interface { + pulumi.Input + + ToKnowledgeBaseTypePtrOutput() KnowledgeBaseTypePtrOutput + ToKnowledgeBaseTypePtrOutputWithContext(context.Context) KnowledgeBaseTypePtrOutput +} + +type knowledgeBaseTypePtr string + +func KnowledgeBaseTypePtr(v string) KnowledgeBaseTypePtrInput { + return (*knowledgeBaseTypePtr)(&v) +} + +func (*knowledgeBaseTypePtr) ElementType() reflect.Type { + return knowledgeBaseTypePtrType +} + +func (in *knowledgeBaseTypePtr) ToKnowledgeBaseTypePtrOutput() KnowledgeBaseTypePtrOutput { + return pulumi.ToOutput(in).(KnowledgeBaseTypePtrOutput) +} + +func (in *knowledgeBaseTypePtr) ToKnowledgeBaseTypePtrOutputWithContext(ctx context.Context) KnowledgeBaseTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(KnowledgeBaseTypePtrOutput) +} + +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.RegisterInputType(reflect.TypeOf((*DataSourceChunkingStrategyInput)(nil)).Elem(), DataSourceChunkingStrategy("FIXED_SIZE")) + pulumi.RegisterInputType(reflect.TypeOf((*DataSourceChunkingStrategyPtrInput)(nil)).Elem(), DataSourceChunkingStrategy("FIXED_SIZE")) + pulumi.RegisterInputType(reflect.TypeOf((*DataSourceTypeInput)(nil)).Elem(), DataSourceType("S3")) + pulumi.RegisterInputType(reflect.TypeOf((*DataSourceTypePtrInput)(nil)).Elem(), DataSourceType("S3")) + pulumi.RegisterInputType(reflect.TypeOf((*KnowledgeBaseStorageTypeInput)(nil)).Elem(), KnowledgeBaseStorageType("OPENSEARCH_SERVERLESS")) + pulumi.RegisterInputType(reflect.TypeOf((*KnowledgeBaseStorageTypePtrInput)(nil)).Elem(), KnowledgeBaseStorageType("OPENSEARCH_SERVERLESS")) + pulumi.RegisterInputType(reflect.TypeOf((*KnowledgeBaseTypeInput)(nil)).Elem(), KnowledgeBaseType("VECTOR")) + pulumi.RegisterInputType(reflect.TypeOf((*KnowledgeBaseTypePtrInput)(nil)).Elem(), KnowledgeBaseType("VECTOR")) + 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{}) + pulumi.RegisterOutputType(DataSourceChunkingStrategyOutput{}) + pulumi.RegisterOutputType(DataSourceChunkingStrategyPtrOutput{}) + pulumi.RegisterOutputType(DataSourceStatusOutput{}) + pulumi.RegisterOutputType(DataSourceStatusPtrOutput{}) + pulumi.RegisterOutputType(DataSourceTypeOutput{}) + pulumi.RegisterOutputType(DataSourceTypePtrOutput{}) + pulumi.RegisterOutputType(KnowledgeBaseStatusOutput{}) + pulumi.RegisterOutputType(KnowledgeBaseStatusPtrOutput{}) + pulumi.RegisterOutputType(KnowledgeBaseStorageTypeOutput{}) + pulumi.RegisterOutputType(KnowledgeBaseStorageTypePtrOutput{}) + pulumi.RegisterOutputType(KnowledgeBaseTypeOutput{}) + pulumi.RegisterOutputType(KnowledgeBaseTypePtrOutput{}) +} diff --git a/sdk/go/aws/bedrock/pulumiTypes.go b/sdk/go/aws/bedrock/pulumiTypes.go new file mode 100644 index 0000000000..290d59110d --- /dev/null +++ b/sdk/go/aws/bedrock/pulumiTypes.go @@ -0,0 +1,3707 @@ +// 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) +} + +// Details about how to chunk the documents in the data source. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried. +type DataSourceChunkingConfiguration struct { + ChunkingStrategy DataSourceChunkingStrategy `pulumi:"chunkingStrategy"` + FixedSizeChunkingConfiguration *DataSourceFixedSizeChunkingConfiguration `pulumi:"fixedSizeChunkingConfiguration"` +} + +// DataSourceChunkingConfigurationInput is an input type that accepts DataSourceChunkingConfigurationArgs and DataSourceChunkingConfigurationOutput values. +// You can construct a concrete instance of `DataSourceChunkingConfigurationInput` via: +// +// DataSourceChunkingConfigurationArgs{...} +type DataSourceChunkingConfigurationInput interface { + pulumi.Input + + ToDataSourceChunkingConfigurationOutput() DataSourceChunkingConfigurationOutput + ToDataSourceChunkingConfigurationOutputWithContext(context.Context) DataSourceChunkingConfigurationOutput +} + +// Details about how to chunk the documents in the data source. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried. +type DataSourceChunkingConfigurationArgs struct { + ChunkingStrategy DataSourceChunkingStrategyInput `pulumi:"chunkingStrategy"` + FixedSizeChunkingConfiguration DataSourceFixedSizeChunkingConfigurationPtrInput `pulumi:"fixedSizeChunkingConfiguration"` +} + +func (DataSourceChunkingConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DataSourceChunkingConfiguration)(nil)).Elem() +} + +func (i DataSourceChunkingConfigurationArgs) ToDataSourceChunkingConfigurationOutput() DataSourceChunkingConfigurationOutput { + return i.ToDataSourceChunkingConfigurationOutputWithContext(context.Background()) +} + +func (i DataSourceChunkingConfigurationArgs) ToDataSourceChunkingConfigurationOutputWithContext(ctx context.Context) DataSourceChunkingConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(DataSourceChunkingConfigurationOutput) +} + +func (i DataSourceChunkingConfigurationArgs) ToDataSourceChunkingConfigurationPtrOutput() DataSourceChunkingConfigurationPtrOutput { + return i.ToDataSourceChunkingConfigurationPtrOutputWithContext(context.Background()) +} + +func (i DataSourceChunkingConfigurationArgs) ToDataSourceChunkingConfigurationPtrOutputWithContext(ctx context.Context) DataSourceChunkingConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DataSourceChunkingConfigurationOutput).ToDataSourceChunkingConfigurationPtrOutputWithContext(ctx) +} + +// DataSourceChunkingConfigurationPtrInput is an input type that accepts DataSourceChunkingConfigurationArgs, DataSourceChunkingConfigurationPtr and DataSourceChunkingConfigurationPtrOutput values. +// You can construct a concrete instance of `DataSourceChunkingConfigurationPtrInput` via: +// +// DataSourceChunkingConfigurationArgs{...} +// +// or: +// +// nil +type DataSourceChunkingConfigurationPtrInput interface { + pulumi.Input + + ToDataSourceChunkingConfigurationPtrOutput() DataSourceChunkingConfigurationPtrOutput + ToDataSourceChunkingConfigurationPtrOutputWithContext(context.Context) DataSourceChunkingConfigurationPtrOutput +} + +type dataSourceChunkingConfigurationPtrType DataSourceChunkingConfigurationArgs + +func DataSourceChunkingConfigurationPtr(v *DataSourceChunkingConfigurationArgs) DataSourceChunkingConfigurationPtrInput { + return (*dataSourceChunkingConfigurationPtrType)(v) +} + +func (*dataSourceChunkingConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DataSourceChunkingConfiguration)(nil)).Elem() +} + +func (i *dataSourceChunkingConfigurationPtrType) ToDataSourceChunkingConfigurationPtrOutput() DataSourceChunkingConfigurationPtrOutput { + return i.ToDataSourceChunkingConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *dataSourceChunkingConfigurationPtrType) ToDataSourceChunkingConfigurationPtrOutputWithContext(ctx context.Context) DataSourceChunkingConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DataSourceChunkingConfigurationPtrOutput) +} + +// Details about how to chunk the documents in the data source. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried. +type DataSourceChunkingConfigurationOutput struct{ *pulumi.OutputState } + +func (DataSourceChunkingConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DataSourceChunkingConfiguration)(nil)).Elem() +} + +func (o DataSourceChunkingConfigurationOutput) ToDataSourceChunkingConfigurationOutput() DataSourceChunkingConfigurationOutput { + return o +} + +func (o DataSourceChunkingConfigurationOutput) ToDataSourceChunkingConfigurationOutputWithContext(ctx context.Context) DataSourceChunkingConfigurationOutput { + return o +} + +func (o DataSourceChunkingConfigurationOutput) ToDataSourceChunkingConfigurationPtrOutput() DataSourceChunkingConfigurationPtrOutput { + return o.ToDataSourceChunkingConfigurationPtrOutputWithContext(context.Background()) +} + +func (o DataSourceChunkingConfigurationOutput) ToDataSourceChunkingConfigurationPtrOutputWithContext(ctx context.Context) DataSourceChunkingConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DataSourceChunkingConfiguration) *DataSourceChunkingConfiguration { + return &v + }).(DataSourceChunkingConfigurationPtrOutput) +} + +func (o DataSourceChunkingConfigurationOutput) ChunkingStrategy() DataSourceChunkingStrategyOutput { + return o.ApplyT(func(v DataSourceChunkingConfiguration) DataSourceChunkingStrategy { return v.ChunkingStrategy }).(DataSourceChunkingStrategyOutput) +} + +func (o DataSourceChunkingConfigurationOutput) FixedSizeChunkingConfiguration() DataSourceFixedSizeChunkingConfigurationPtrOutput { + return o.ApplyT(func(v DataSourceChunkingConfiguration) *DataSourceFixedSizeChunkingConfiguration { + return v.FixedSizeChunkingConfiguration + }).(DataSourceFixedSizeChunkingConfigurationPtrOutput) +} + +type DataSourceChunkingConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (DataSourceChunkingConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DataSourceChunkingConfiguration)(nil)).Elem() +} + +func (o DataSourceChunkingConfigurationPtrOutput) ToDataSourceChunkingConfigurationPtrOutput() DataSourceChunkingConfigurationPtrOutput { + return o +} + +func (o DataSourceChunkingConfigurationPtrOutput) ToDataSourceChunkingConfigurationPtrOutputWithContext(ctx context.Context) DataSourceChunkingConfigurationPtrOutput { + return o +} + +func (o DataSourceChunkingConfigurationPtrOutput) Elem() DataSourceChunkingConfigurationOutput { + return o.ApplyT(func(v *DataSourceChunkingConfiguration) DataSourceChunkingConfiguration { + if v != nil { + return *v + } + var ret DataSourceChunkingConfiguration + return ret + }).(DataSourceChunkingConfigurationOutput) +} + +func (o DataSourceChunkingConfigurationPtrOutput) ChunkingStrategy() DataSourceChunkingStrategyPtrOutput { + return o.ApplyT(func(v *DataSourceChunkingConfiguration) *DataSourceChunkingStrategy { + if v == nil { + return nil + } + return &v.ChunkingStrategy + }).(DataSourceChunkingStrategyPtrOutput) +} + +func (o DataSourceChunkingConfigurationPtrOutput) FixedSizeChunkingConfiguration() DataSourceFixedSizeChunkingConfigurationPtrOutput { + return o.ApplyT(func(v *DataSourceChunkingConfiguration) *DataSourceFixedSizeChunkingConfiguration { + if v == nil { + return nil + } + return v.FixedSizeChunkingConfiguration + }).(DataSourceFixedSizeChunkingConfigurationPtrOutput) +} + +// Specifies a raw data source location to ingest. +type DataSourceConfiguration struct { + S3Configuration DataSourceS3DataSourceConfiguration `pulumi:"s3Configuration"` + Type DataSourceType `pulumi:"type"` +} + +// DataSourceConfigurationInput is an input type that accepts DataSourceConfigurationArgs and DataSourceConfigurationOutput values. +// You can construct a concrete instance of `DataSourceConfigurationInput` via: +// +// DataSourceConfigurationArgs{...} +type DataSourceConfigurationInput interface { + pulumi.Input + + ToDataSourceConfigurationOutput() DataSourceConfigurationOutput + ToDataSourceConfigurationOutputWithContext(context.Context) DataSourceConfigurationOutput +} + +// Specifies a raw data source location to ingest. +type DataSourceConfigurationArgs struct { + S3Configuration DataSourceS3DataSourceConfigurationInput `pulumi:"s3Configuration"` + Type DataSourceTypeInput `pulumi:"type"` +} + +func (DataSourceConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DataSourceConfiguration)(nil)).Elem() +} + +func (i DataSourceConfigurationArgs) ToDataSourceConfigurationOutput() DataSourceConfigurationOutput { + return i.ToDataSourceConfigurationOutputWithContext(context.Background()) +} + +func (i DataSourceConfigurationArgs) ToDataSourceConfigurationOutputWithContext(ctx context.Context) DataSourceConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(DataSourceConfigurationOutput) +} + +// Specifies a raw data source location to ingest. +type DataSourceConfigurationOutput struct{ *pulumi.OutputState } + +func (DataSourceConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DataSourceConfiguration)(nil)).Elem() +} + +func (o DataSourceConfigurationOutput) ToDataSourceConfigurationOutput() DataSourceConfigurationOutput { + return o +} + +func (o DataSourceConfigurationOutput) ToDataSourceConfigurationOutputWithContext(ctx context.Context) DataSourceConfigurationOutput { + return o +} + +func (o DataSourceConfigurationOutput) S3Configuration() DataSourceS3DataSourceConfigurationOutput { + return o.ApplyT(func(v DataSourceConfiguration) DataSourceS3DataSourceConfiguration { return v.S3Configuration }).(DataSourceS3DataSourceConfigurationOutput) +} + +func (o DataSourceConfigurationOutput) Type() DataSourceTypeOutput { + return o.ApplyT(func(v DataSourceConfiguration) DataSourceType { return v.Type }).(DataSourceTypeOutput) +} + +type DataSourceConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (DataSourceConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DataSourceConfiguration)(nil)).Elem() +} + +func (o DataSourceConfigurationPtrOutput) ToDataSourceConfigurationPtrOutput() DataSourceConfigurationPtrOutput { + return o +} + +func (o DataSourceConfigurationPtrOutput) ToDataSourceConfigurationPtrOutputWithContext(ctx context.Context) DataSourceConfigurationPtrOutput { + return o +} + +func (o DataSourceConfigurationPtrOutput) Elem() DataSourceConfigurationOutput { + return o.ApplyT(func(v *DataSourceConfiguration) DataSourceConfiguration { + if v != nil { + return *v + } + var ret DataSourceConfiguration + return ret + }).(DataSourceConfigurationOutput) +} + +func (o DataSourceConfigurationPtrOutput) S3Configuration() DataSourceS3DataSourceConfigurationPtrOutput { + return o.ApplyT(func(v *DataSourceConfiguration) *DataSourceS3DataSourceConfiguration { + if v == nil { + return nil + } + return &v.S3Configuration + }).(DataSourceS3DataSourceConfigurationPtrOutput) +} + +func (o DataSourceConfigurationPtrOutput) Type() DataSourceTypePtrOutput { + return o.ApplyT(func(v *DataSourceConfiguration) *DataSourceType { + if v == nil { + return nil + } + return &v.Type + }).(DataSourceTypePtrOutput) +} + +// Configurations for when you choose fixed-size chunking. If you set the chunkingStrategy as NONE, exclude this field. +type DataSourceFixedSizeChunkingConfiguration struct { + // The maximum number of tokens to include in a chunk. + MaxTokens int `pulumi:"maxTokens"` + // The percentage of overlap between adjacent chunks of a data source. + OverlapPercentage int `pulumi:"overlapPercentage"` +} + +// DataSourceFixedSizeChunkingConfigurationInput is an input type that accepts DataSourceFixedSizeChunkingConfigurationArgs and DataSourceFixedSizeChunkingConfigurationOutput values. +// You can construct a concrete instance of `DataSourceFixedSizeChunkingConfigurationInput` via: +// +// DataSourceFixedSizeChunkingConfigurationArgs{...} +type DataSourceFixedSizeChunkingConfigurationInput interface { + pulumi.Input + + ToDataSourceFixedSizeChunkingConfigurationOutput() DataSourceFixedSizeChunkingConfigurationOutput + ToDataSourceFixedSizeChunkingConfigurationOutputWithContext(context.Context) DataSourceFixedSizeChunkingConfigurationOutput +} + +// Configurations for when you choose fixed-size chunking. If you set the chunkingStrategy as NONE, exclude this field. +type DataSourceFixedSizeChunkingConfigurationArgs struct { + // The maximum number of tokens to include in a chunk. + MaxTokens pulumi.IntInput `pulumi:"maxTokens"` + // The percentage of overlap between adjacent chunks of a data source. + OverlapPercentage pulumi.IntInput `pulumi:"overlapPercentage"` +} + +func (DataSourceFixedSizeChunkingConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DataSourceFixedSizeChunkingConfiguration)(nil)).Elem() +} + +func (i DataSourceFixedSizeChunkingConfigurationArgs) ToDataSourceFixedSizeChunkingConfigurationOutput() DataSourceFixedSizeChunkingConfigurationOutput { + return i.ToDataSourceFixedSizeChunkingConfigurationOutputWithContext(context.Background()) +} + +func (i DataSourceFixedSizeChunkingConfigurationArgs) ToDataSourceFixedSizeChunkingConfigurationOutputWithContext(ctx context.Context) DataSourceFixedSizeChunkingConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(DataSourceFixedSizeChunkingConfigurationOutput) +} + +func (i DataSourceFixedSizeChunkingConfigurationArgs) ToDataSourceFixedSizeChunkingConfigurationPtrOutput() DataSourceFixedSizeChunkingConfigurationPtrOutput { + return i.ToDataSourceFixedSizeChunkingConfigurationPtrOutputWithContext(context.Background()) +} + +func (i DataSourceFixedSizeChunkingConfigurationArgs) ToDataSourceFixedSizeChunkingConfigurationPtrOutputWithContext(ctx context.Context) DataSourceFixedSizeChunkingConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DataSourceFixedSizeChunkingConfigurationOutput).ToDataSourceFixedSizeChunkingConfigurationPtrOutputWithContext(ctx) +} + +// DataSourceFixedSizeChunkingConfigurationPtrInput is an input type that accepts DataSourceFixedSizeChunkingConfigurationArgs, DataSourceFixedSizeChunkingConfigurationPtr and DataSourceFixedSizeChunkingConfigurationPtrOutput values. +// You can construct a concrete instance of `DataSourceFixedSizeChunkingConfigurationPtrInput` via: +// +// DataSourceFixedSizeChunkingConfigurationArgs{...} +// +// or: +// +// nil +type DataSourceFixedSizeChunkingConfigurationPtrInput interface { + pulumi.Input + + ToDataSourceFixedSizeChunkingConfigurationPtrOutput() DataSourceFixedSizeChunkingConfigurationPtrOutput + ToDataSourceFixedSizeChunkingConfigurationPtrOutputWithContext(context.Context) DataSourceFixedSizeChunkingConfigurationPtrOutput +} + +type dataSourceFixedSizeChunkingConfigurationPtrType DataSourceFixedSizeChunkingConfigurationArgs + +func DataSourceFixedSizeChunkingConfigurationPtr(v *DataSourceFixedSizeChunkingConfigurationArgs) DataSourceFixedSizeChunkingConfigurationPtrInput { + return (*dataSourceFixedSizeChunkingConfigurationPtrType)(v) +} + +func (*dataSourceFixedSizeChunkingConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DataSourceFixedSizeChunkingConfiguration)(nil)).Elem() +} + +func (i *dataSourceFixedSizeChunkingConfigurationPtrType) ToDataSourceFixedSizeChunkingConfigurationPtrOutput() DataSourceFixedSizeChunkingConfigurationPtrOutput { + return i.ToDataSourceFixedSizeChunkingConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *dataSourceFixedSizeChunkingConfigurationPtrType) ToDataSourceFixedSizeChunkingConfigurationPtrOutputWithContext(ctx context.Context) DataSourceFixedSizeChunkingConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DataSourceFixedSizeChunkingConfigurationPtrOutput) +} + +// Configurations for when you choose fixed-size chunking. If you set the chunkingStrategy as NONE, exclude this field. +type DataSourceFixedSizeChunkingConfigurationOutput struct{ *pulumi.OutputState } + +func (DataSourceFixedSizeChunkingConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DataSourceFixedSizeChunkingConfiguration)(nil)).Elem() +} + +func (o DataSourceFixedSizeChunkingConfigurationOutput) ToDataSourceFixedSizeChunkingConfigurationOutput() DataSourceFixedSizeChunkingConfigurationOutput { + return o +} + +func (o DataSourceFixedSizeChunkingConfigurationOutput) ToDataSourceFixedSizeChunkingConfigurationOutputWithContext(ctx context.Context) DataSourceFixedSizeChunkingConfigurationOutput { + return o +} + +func (o DataSourceFixedSizeChunkingConfigurationOutput) ToDataSourceFixedSizeChunkingConfigurationPtrOutput() DataSourceFixedSizeChunkingConfigurationPtrOutput { + return o.ToDataSourceFixedSizeChunkingConfigurationPtrOutputWithContext(context.Background()) +} + +func (o DataSourceFixedSizeChunkingConfigurationOutput) ToDataSourceFixedSizeChunkingConfigurationPtrOutputWithContext(ctx context.Context) DataSourceFixedSizeChunkingConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DataSourceFixedSizeChunkingConfiguration) *DataSourceFixedSizeChunkingConfiguration { + return &v + }).(DataSourceFixedSizeChunkingConfigurationPtrOutput) +} + +// The maximum number of tokens to include in a chunk. +func (o DataSourceFixedSizeChunkingConfigurationOutput) MaxTokens() pulumi.IntOutput { + return o.ApplyT(func(v DataSourceFixedSizeChunkingConfiguration) int { return v.MaxTokens }).(pulumi.IntOutput) +} + +// The percentage of overlap between adjacent chunks of a data source. +func (o DataSourceFixedSizeChunkingConfigurationOutput) OverlapPercentage() pulumi.IntOutput { + return o.ApplyT(func(v DataSourceFixedSizeChunkingConfiguration) int { return v.OverlapPercentage }).(pulumi.IntOutput) +} + +type DataSourceFixedSizeChunkingConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (DataSourceFixedSizeChunkingConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DataSourceFixedSizeChunkingConfiguration)(nil)).Elem() +} + +func (o DataSourceFixedSizeChunkingConfigurationPtrOutput) ToDataSourceFixedSizeChunkingConfigurationPtrOutput() DataSourceFixedSizeChunkingConfigurationPtrOutput { + return o +} + +func (o DataSourceFixedSizeChunkingConfigurationPtrOutput) ToDataSourceFixedSizeChunkingConfigurationPtrOutputWithContext(ctx context.Context) DataSourceFixedSizeChunkingConfigurationPtrOutput { + return o +} + +func (o DataSourceFixedSizeChunkingConfigurationPtrOutput) Elem() DataSourceFixedSizeChunkingConfigurationOutput { + return o.ApplyT(func(v *DataSourceFixedSizeChunkingConfiguration) DataSourceFixedSizeChunkingConfiguration { + if v != nil { + return *v + } + var ret DataSourceFixedSizeChunkingConfiguration + return ret + }).(DataSourceFixedSizeChunkingConfigurationOutput) +} + +// The maximum number of tokens to include in a chunk. +func (o DataSourceFixedSizeChunkingConfigurationPtrOutput) MaxTokens() pulumi.IntPtrOutput { + return o.ApplyT(func(v *DataSourceFixedSizeChunkingConfiguration) *int { + if v == nil { + return nil + } + return &v.MaxTokens + }).(pulumi.IntPtrOutput) +} + +// The percentage of overlap between adjacent chunks of a data source. +func (o DataSourceFixedSizeChunkingConfigurationPtrOutput) OverlapPercentage() pulumi.IntPtrOutput { + return o.ApplyT(func(v *DataSourceFixedSizeChunkingConfiguration) *int { + if v == nil { + return nil + } + return &v.OverlapPercentage + }).(pulumi.IntPtrOutput) +} + +// Contains information about the S3 configuration of the data source. +type DataSourceS3DataSourceConfiguration struct { + // The ARN of the bucket that contains the data source. + BucketArn string `pulumi:"bucketArn"` + // A list of S3 prefixes that define the object containing the data sources. + InclusionPrefixes []string `pulumi:"inclusionPrefixes"` +} + +// DataSourceS3DataSourceConfigurationInput is an input type that accepts DataSourceS3DataSourceConfigurationArgs and DataSourceS3DataSourceConfigurationOutput values. +// You can construct a concrete instance of `DataSourceS3DataSourceConfigurationInput` via: +// +// DataSourceS3DataSourceConfigurationArgs{...} +type DataSourceS3DataSourceConfigurationInput interface { + pulumi.Input + + ToDataSourceS3DataSourceConfigurationOutput() DataSourceS3DataSourceConfigurationOutput + ToDataSourceS3DataSourceConfigurationOutputWithContext(context.Context) DataSourceS3DataSourceConfigurationOutput +} + +// Contains information about the S3 configuration of the data source. +type DataSourceS3DataSourceConfigurationArgs struct { + // The ARN of the bucket that contains the data source. + BucketArn pulumi.StringInput `pulumi:"bucketArn"` + // A list of S3 prefixes that define the object containing the data sources. + InclusionPrefixes pulumi.StringArrayInput `pulumi:"inclusionPrefixes"` +} + +func (DataSourceS3DataSourceConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DataSourceS3DataSourceConfiguration)(nil)).Elem() +} + +func (i DataSourceS3DataSourceConfigurationArgs) ToDataSourceS3DataSourceConfigurationOutput() DataSourceS3DataSourceConfigurationOutput { + return i.ToDataSourceS3DataSourceConfigurationOutputWithContext(context.Background()) +} + +func (i DataSourceS3DataSourceConfigurationArgs) ToDataSourceS3DataSourceConfigurationOutputWithContext(ctx context.Context) DataSourceS3DataSourceConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(DataSourceS3DataSourceConfigurationOutput) +} + +// Contains information about the S3 configuration of the data source. +type DataSourceS3DataSourceConfigurationOutput struct{ *pulumi.OutputState } + +func (DataSourceS3DataSourceConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DataSourceS3DataSourceConfiguration)(nil)).Elem() +} + +func (o DataSourceS3DataSourceConfigurationOutput) ToDataSourceS3DataSourceConfigurationOutput() DataSourceS3DataSourceConfigurationOutput { + return o +} + +func (o DataSourceS3DataSourceConfigurationOutput) ToDataSourceS3DataSourceConfigurationOutputWithContext(ctx context.Context) DataSourceS3DataSourceConfigurationOutput { + return o +} + +// The ARN of the bucket that contains the data source. +func (o DataSourceS3DataSourceConfigurationOutput) BucketArn() pulumi.StringOutput { + return o.ApplyT(func(v DataSourceS3DataSourceConfiguration) string { return v.BucketArn }).(pulumi.StringOutput) +} + +// A list of S3 prefixes that define the object containing the data sources. +func (o DataSourceS3DataSourceConfigurationOutput) InclusionPrefixes() pulumi.StringArrayOutput { + return o.ApplyT(func(v DataSourceS3DataSourceConfiguration) []string { return v.InclusionPrefixes }).(pulumi.StringArrayOutput) +} + +type DataSourceS3DataSourceConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (DataSourceS3DataSourceConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DataSourceS3DataSourceConfiguration)(nil)).Elem() +} + +func (o DataSourceS3DataSourceConfigurationPtrOutput) ToDataSourceS3DataSourceConfigurationPtrOutput() DataSourceS3DataSourceConfigurationPtrOutput { + return o +} + +func (o DataSourceS3DataSourceConfigurationPtrOutput) ToDataSourceS3DataSourceConfigurationPtrOutputWithContext(ctx context.Context) DataSourceS3DataSourceConfigurationPtrOutput { + return o +} + +func (o DataSourceS3DataSourceConfigurationPtrOutput) Elem() DataSourceS3DataSourceConfigurationOutput { + return o.ApplyT(func(v *DataSourceS3DataSourceConfiguration) DataSourceS3DataSourceConfiguration { + if v != nil { + return *v + } + var ret DataSourceS3DataSourceConfiguration + return ret + }).(DataSourceS3DataSourceConfigurationOutput) +} + +// The ARN of the bucket that contains the data source. +func (o DataSourceS3DataSourceConfigurationPtrOutput) BucketArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DataSourceS3DataSourceConfiguration) *string { + if v == nil { + return nil + } + return &v.BucketArn + }).(pulumi.StringPtrOutput) +} + +// A list of S3 prefixes that define the object containing the data sources. +func (o DataSourceS3DataSourceConfigurationPtrOutput) InclusionPrefixes() pulumi.StringArrayOutput { + return o.ApplyT(func(v *DataSourceS3DataSourceConfiguration) []string { + if v == nil { + return nil + } + return v.InclusionPrefixes + }).(pulumi.StringArrayOutput) +} + +// Contains details about the server-side encryption for the data source. +type DataSourceServerSideEncryptionConfiguration struct { + // The ARN of the AWS KMS key used to encrypt the resource. + KmsKeyArn *string `pulumi:"kmsKeyArn"` +} + +// DataSourceServerSideEncryptionConfigurationInput is an input type that accepts DataSourceServerSideEncryptionConfigurationArgs and DataSourceServerSideEncryptionConfigurationOutput values. +// You can construct a concrete instance of `DataSourceServerSideEncryptionConfigurationInput` via: +// +// DataSourceServerSideEncryptionConfigurationArgs{...} +type DataSourceServerSideEncryptionConfigurationInput interface { + pulumi.Input + + ToDataSourceServerSideEncryptionConfigurationOutput() DataSourceServerSideEncryptionConfigurationOutput + ToDataSourceServerSideEncryptionConfigurationOutputWithContext(context.Context) DataSourceServerSideEncryptionConfigurationOutput +} + +// Contains details about the server-side encryption for the data source. +type DataSourceServerSideEncryptionConfigurationArgs struct { + // The ARN of the AWS KMS key used to encrypt the resource. + KmsKeyArn pulumi.StringPtrInput `pulumi:"kmsKeyArn"` +} + +func (DataSourceServerSideEncryptionConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DataSourceServerSideEncryptionConfiguration)(nil)).Elem() +} + +func (i DataSourceServerSideEncryptionConfigurationArgs) ToDataSourceServerSideEncryptionConfigurationOutput() DataSourceServerSideEncryptionConfigurationOutput { + return i.ToDataSourceServerSideEncryptionConfigurationOutputWithContext(context.Background()) +} + +func (i DataSourceServerSideEncryptionConfigurationArgs) ToDataSourceServerSideEncryptionConfigurationOutputWithContext(ctx context.Context) DataSourceServerSideEncryptionConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(DataSourceServerSideEncryptionConfigurationOutput) +} + +func (i DataSourceServerSideEncryptionConfigurationArgs) ToDataSourceServerSideEncryptionConfigurationPtrOutput() DataSourceServerSideEncryptionConfigurationPtrOutput { + return i.ToDataSourceServerSideEncryptionConfigurationPtrOutputWithContext(context.Background()) +} + +func (i DataSourceServerSideEncryptionConfigurationArgs) ToDataSourceServerSideEncryptionConfigurationPtrOutputWithContext(ctx context.Context) DataSourceServerSideEncryptionConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DataSourceServerSideEncryptionConfigurationOutput).ToDataSourceServerSideEncryptionConfigurationPtrOutputWithContext(ctx) +} + +// DataSourceServerSideEncryptionConfigurationPtrInput is an input type that accepts DataSourceServerSideEncryptionConfigurationArgs, DataSourceServerSideEncryptionConfigurationPtr and DataSourceServerSideEncryptionConfigurationPtrOutput values. +// You can construct a concrete instance of `DataSourceServerSideEncryptionConfigurationPtrInput` via: +// +// DataSourceServerSideEncryptionConfigurationArgs{...} +// +// or: +// +// nil +type DataSourceServerSideEncryptionConfigurationPtrInput interface { + pulumi.Input + + ToDataSourceServerSideEncryptionConfigurationPtrOutput() DataSourceServerSideEncryptionConfigurationPtrOutput + ToDataSourceServerSideEncryptionConfigurationPtrOutputWithContext(context.Context) DataSourceServerSideEncryptionConfigurationPtrOutput +} + +type dataSourceServerSideEncryptionConfigurationPtrType DataSourceServerSideEncryptionConfigurationArgs + +func DataSourceServerSideEncryptionConfigurationPtr(v *DataSourceServerSideEncryptionConfigurationArgs) DataSourceServerSideEncryptionConfigurationPtrInput { + return (*dataSourceServerSideEncryptionConfigurationPtrType)(v) +} + +func (*dataSourceServerSideEncryptionConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DataSourceServerSideEncryptionConfiguration)(nil)).Elem() +} + +func (i *dataSourceServerSideEncryptionConfigurationPtrType) ToDataSourceServerSideEncryptionConfigurationPtrOutput() DataSourceServerSideEncryptionConfigurationPtrOutput { + return i.ToDataSourceServerSideEncryptionConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *dataSourceServerSideEncryptionConfigurationPtrType) ToDataSourceServerSideEncryptionConfigurationPtrOutputWithContext(ctx context.Context) DataSourceServerSideEncryptionConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DataSourceServerSideEncryptionConfigurationPtrOutput) +} + +// Contains details about the server-side encryption for the data source. +type DataSourceServerSideEncryptionConfigurationOutput struct{ *pulumi.OutputState } + +func (DataSourceServerSideEncryptionConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DataSourceServerSideEncryptionConfiguration)(nil)).Elem() +} + +func (o DataSourceServerSideEncryptionConfigurationOutput) ToDataSourceServerSideEncryptionConfigurationOutput() DataSourceServerSideEncryptionConfigurationOutput { + return o +} + +func (o DataSourceServerSideEncryptionConfigurationOutput) ToDataSourceServerSideEncryptionConfigurationOutputWithContext(ctx context.Context) DataSourceServerSideEncryptionConfigurationOutput { + return o +} + +func (o DataSourceServerSideEncryptionConfigurationOutput) ToDataSourceServerSideEncryptionConfigurationPtrOutput() DataSourceServerSideEncryptionConfigurationPtrOutput { + return o.ToDataSourceServerSideEncryptionConfigurationPtrOutputWithContext(context.Background()) +} + +func (o DataSourceServerSideEncryptionConfigurationOutput) ToDataSourceServerSideEncryptionConfigurationPtrOutputWithContext(ctx context.Context) DataSourceServerSideEncryptionConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DataSourceServerSideEncryptionConfiguration) *DataSourceServerSideEncryptionConfiguration { + return &v + }).(DataSourceServerSideEncryptionConfigurationPtrOutput) +} + +// The ARN of the AWS KMS key used to encrypt the resource. +func (o DataSourceServerSideEncryptionConfigurationOutput) KmsKeyArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v DataSourceServerSideEncryptionConfiguration) *string { return v.KmsKeyArn }).(pulumi.StringPtrOutput) +} + +type DataSourceServerSideEncryptionConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (DataSourceServerSideEncryptionConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DataSourceServerSideEncryptionConfiguration)(nil)).Elem() +} + +func (o DataSourceServerSideEncryptionConfigurationPtrOutput) ToDataSourceServerSideEncryptionConfigurationPtrOutput() DataSourceServerSideEncryptionConfigurationPtrOutput { + return o +} + +func (o DataSourceServerSideEncryptionConfigurationPtrOutput) ToDataSourceServerSideEncryptionConfigurationPtrOutputWithContext(ctx context.Context) DataSourceServerSideEncryptionConfigurationPtrOutput { + return o +} + +func (o DataSourceServerSideEncryptionConfigurationPtrOutput) Elem() DataSourceServerSideEncryptionConfigurationOutput { + return o.ApplyT(func(v *DataSourceServerSideEncryptionConfiguration) DataSourceServerSideEncryptionConfiguration { + if v != nil { + return *v + } + var ret DataSourceServerSideEncryptionConfiguration + return ret + }).(DataSourceServerSideEncryptionConfigurationOutput) +} + +// The ARN of the AWS KMS key used to encrypt the resource. +func (o DataSourceServerSideEncryptionConfigurationPtrOutput) KmsKeyArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DataSourceServerSideEncryptionConfiguration) *string { + if v == nil { + return nil + } + return v.KmsKeyArn + }).(pulumi.StringPtrOutput) +} + +// Details about how to chunk the documents in the data source. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried. +type DataSourceVectorIngestionConfiguration struct { + ChunkingConfiguration *DataSourceChunkingConfiguration `pulumi:"chunkingConfiguration"` +} + +// DataSourceVectorIngestionConfigurationInput is an input type that accepts DataSourceVectorIngestionConfigurationArgs and DataSourceVectorIngestionConfigurationOutput values. +// You can construct a concrete instance of `DataSourceVectorIngestionConfigurationInput` via: +// +// DataSourceVectorIngestionConfigurationArgs{...} +type DataSourceVectorIngestionConfigurationInput interface { + pulumi.Input + + ToDataSourceVectorIngestionConfigurationOutput() DataSourceVectorIngestionConfigurationOutput + ToDataSourceVectorIngestionConfigurationOutputWithContext(context.Context) DataSourceVectorIngestionConfigurationOutput +} + +// Details about how to chunk the documents in the data source. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried. +type DataSourceVectorIngestionConfigurationArgs struct { + ChunkingConfiguration DataSourceChunkingConfigurationPtrInput `pulumi:"chunkingConfiguration"` +} + +func (DataSourceVectorIngestionConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DataSourceVectorIngestionConfiguration)(nil)).Elem() +} + +func (i DataSourceVectorIngestionConfigurationArgs) ToDataSourceVectorIngestionConfigurationOutput() DataSourceVectorIngestionConfigurationOutput { + return i.ToDataSourceVectorIngestionConfigurationOutputWithContext(context.Background()) +} + +func (i DataSourceVectorIngestionConfigurationArgs) ToDataSourceVectorIngestionConfigurationOutputWithContext(ctx context.Context) DataSourceVectorIngestionConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(DataSourceVectorIngestionConfigurationOutput) +} + +func (i DataSourceVectorIngestionConfigurationArgs) ToDataSourceVectorIngestionConfigurationPtrOutput() DataSourceVectorIngestionConfigurationPtrOutput { + return i.ToDataSourceVectorIngestionConfigurationPtrOutputWithContext(context.Background()) +} + +func (i DataSourceVectorIngestionConfigurationArgs) ToDataSourceVectorIngestionConfigurationPtrOutputWithContext(ctx context.Context) DataSourceVectorIngestionConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DataSourceVectorIngestionConfigurationOutput).ToDataSourceVectorIngestionConfigurationPtrOutputWithContext(ctx) +} + +// DataSourceVectorIngestionConfigurationPtrInput is an input type that accepts DataSourceVectorIngestionConfigurationArgs, DataSourceVectorIngestionConfigurationPtr and DataSourceVectorIngestionConfigurationPtrOutput values. +// You can construct a concrete instance of `DataSourceVectorIngestionConfigurationPtrInput` via: +// +// DataSourceVectorIngestionConfigurationArgs{...} +// +// or: +// +// nil +type DataSourceVectorIngestionConfigurationPtrInput interface { + pulumi.Input + + ToDataSourceVectorIngestionConfigurationPtrOutput() DataSourceVectorIngestionConfigurationPtrOutput + ToDataSourceVectorIngestionConfigurationPtrOutputWithContext(context.Context) DataSourceVectorIngestionConfigurationPtrOutput +} + +type dataSourceVectorIngestionConfigurationPtrType DataSourceVectorIngestionConfigurationArgs + +func DataSourceVectorIngestionConfigurationPtr(v *DataSourceVectorIngestionConfigurationArgs) DataSourceVectorIngestionConfigurationPtrInput { + return (*dataSourceVectorIngestionConfigurationPtrType)(v) +} + +func (*dataSourceVectorIngestionConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DataSourceVectorIngestionConfiguration)(nil)).Elem() +} + +func (i *dataSourceVectorIngestionConfigurationPtrType) ToDataSourceVectorIngestionConfigurationPtrOutput() DataSourceVectorIngestionConfigurationPtrOutput { + return i.ToDataSourceVectorIngestionConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *dataSourceVectorIngestionConfigurationPtrType) ToDataSourceVectorIngestionConfigurationPtrOutputWithContext(ctx context.Context) DataSourceVectorIngestionConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DataSourceVectorIngestionConfigurationPtrOutput) +} + +// Details about how to chunk the documents in the data source. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried. +type DataSourceVectorIngestionConfigurationOutput struct{ *pulumi.OutputState } + +func (DataSourceVectorIngestionConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DataSourceVectorIngestionConfiguration)(nil)).Elem() +} + +func (o DataSourceVectorIngestionConfigurationOutput) ToDataSourceVectorIngestionConfigurationOutput() DataSourceVectorIngestionConfigurationOutput { + return o +} + +func (o DataSourceVectorIngestionConfigurationOutput) ToDataSourceVectorIngestionConfigurationOutputWithContext(ctx context.Context) DataSourceVectorIngestionConfigurationOutput { + return o +} + +func (o DataSourceVectorIngestionConfigurationOutput) ToDataSourceVectorIngestionConfigurationPtrOutput() DataSourceVectorIngestionConfigurationPtrOutput { + return o.ToDataSourceVectorIngestionConfigurationPtrOutputWithContext(context.Background()) +} + +func (o DataSourceVectorIngestionConfigurationOutput) ToDataSourceVectorIngestionConfigurationPtrOutputWithContext(ctx context.Context) DataSourceVectorIngestionConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DataSourceVectorIngestionConfiguration) *DataSourceVectorIngestionConfiguration { + return &v + }).(DataSourceVectorIngestionConfigurationPtrOutput) +} + +func (o DataSourceVectorIngestionConfigurationOutput) ChunkingConfiguration() DataSourceChunkingConfigurationPtrOutput { + return o.ApplyT(func(v DataSourceVectorIngestionConfiguration) *DataSourceChunkingConfiguration { + return v.ChunkingConfiguration + }).(DataSourceChunkingConfigurationPtrOutput) +} + +type DataSourceVectorIngestionConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (DataSourceVectorIngestionConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DataSourceVectorIngestionConfiguration)(nil)).Elem() +} + +func (o DataSourceVectorIngestionConfigurationPtrOutput) ToDataSourceVectorIngestionConfigurationPtrOutput() DataSourceVectorIngestionConfigurationPtrOutput { + return o +} + +func (o DataSourceVectorIngestionConfigurationPtrOutput) ToDataSourceVectorIngestionConfigurationPtrOutputWithContext(ctx context.Context) DataSourceVectorIngestionConfigurationPtrOutput { + return o +} + +func (o DataSourceVectorIngestionConfigurationPtrOutput) Elem() DataSourceVectorIngestionConfigurationOutput { + return o.ApplyT(func(v *DataSourceVectorIngestionConfiguration) DataSourceVectorIngestionConfiguration { + if v != nil { + return *v + } + var ret DataSourceVectorIngestionConfiguration + return ret + }).(DataSourceVectorIngestionConfigurationOutput) +} + +func (o DataSourceVectorIngestionConfigurationPtrOutput) ChunkingConfiguration() DataSourceChunkingConfigurationPtrOutput { + return o.ApplyT(func(v *DataSourceVectorIngestionConfiguration) *DataSourceChunkingConfiguration { + if v == nil { + return nil + } + return v.ChunkingConfiguration + }).(DataSourceChunkingConfigurationPtrOutput) +} + +// Contains details about the embeddings model used for the knowledge base. +type KnowledgeBaseConfiguration struct { + Type KnowledgeBaseType `pulumi:"type"` + VectorKnowledgeBaseConfiguration KnowledgeBaseVectorKnowledgeBaseConfiguration `pulumi:"vectorKnowledgeBaseConfiguration"` +} + +// KnowledgeBaseConfigurationInput is an input type that accepts KnowledgeBaseConfigurationArgs and KnowledgeBaseConfigurationOutput values. +// You can construct a concrete instance of `KnowledgeBaseConfigurationInput` via: +// +// KnowledgeBaseConfigurationArgs{...} +type KnowledgeBaseConfigurationInput interface { + pulumi.Input + + ToKnowledgeBaseConfigurationOutput() KnowledgeBaseConfigurationOutput + ToKnowledgeBaseConfigurationOutputWithContext(context.Context) KnowledgeBaseConfigurationOutput +} + +// Contains details about the embeddings model used for the knowledge base. +type KnowledgeBaseConfigurationArgs struct { + Type KnowledgeBaseTypeInput `pulumi:"type"` + VectorKnowledgeBaseConfiguration KnowledgeBaseVectorKnowledgeBaseConfigurationInput `pulumi:"vectorKnowledgeBaseConfiguration"` +} + +func (KnowledgeBaseConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*KnowledgeBaseConfiguration)(nil)).Elem() +} + +func (i KnowledgeBaseConfigurationArgs) ToKnowledgeBaseConfigurationOutput() KnowledgeBaseConfigurationOutput { + return i.ToKnowledgeBaseConfigurationOutputWithContext(context.Background()) +} + +func (i KnowledgeBaseConfigurationArgs) ToKnowledgeBaseConfigurationOutputWithContext(ctx context.Context) KnowledgeBaseConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(KnowledgeBaseConfigurationOutput) +} + +// Contains details about the embeddings model used for the knowledge base. +type KnowledgeBaseConfigurationOutput struct{ *pulumi.OutputState } + +func (KnowledgeBaseConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*KnowledgeBaseConfiguration)(nil)).Elem() +} + +func (o KnowledgeBaseConfigurationOutput) ToKnowledgeBaseConfigurationOutput() KnowledgeBaseConfigurationOutput { + return o +} + +func (o KnowledgeBaseConfigurationOutput) ToKnowledgeBaseConfigurationOutputWithContext(ctx context.Context) KnowledgeBaseConfigurationOutput { + return o +} + +func (o KnowledgeBaseConfigurationOutput) Type() KnowledgeBaseTypeOutput { + return o.ApplyT(func(v KnowledgeBaseConfiguration) KnowledgeBaseType { return v.Type }).(KnowledgeBaseTypeOutput) +} + +func (o KnowledgeBaseConfigurationOutput) VectorKnowledgeBaseConfiguration() KnowledgeBaseVectorKnowledgeBaseConfigurationOutput { + return o.ApplyT(func(v KnowledgeBaseConfiguration) KnowledgeBaseVectorKnowledgeBaseConfiguration { + return v.VectorKnowledgeBaseConfiguration + }).(KnowledgeBaseVectorKnowledgeBaseConfigurationOutput) +} + +// Contains the storage configuration of the knowledge base in Amazon OpenSearch Service. +type KnowledgeBaseOpenSearchServerlessConfiguration struct { + // The ARN of the OpenSearch Service vector store. + CollectionArn string `pulumi:"collectionArn"` + FieldMapping KnowledgeBaseOpenSearchServerlessFieldMapping `pulumi:"fieldMapping"` + // The name of the vector store. + VectorIndexName string `pulumi:"vectorIndexName"` +} + +// KnowledgeBaseOpenSearchServerlessConfigurationInput is an input type that accepts KnowledgeBaseOpenSearchServerlessConfigurationArgs and KnowledgeBaseOpenSearchServerlessConfigurationOutput values. +// You can construct a concrete instance of `KnowledgeBaseOpenSearchServerlessConfigurationInput` via: +// +// KnowledgeBaseOpenSearchServerlessConfigurationArgs{...} +type KnowledgeBaseOpenSearchServerlessConfigurationInput interface { + pulumi.Input + + ToKnowledgeBaseOpenSearchServerlessConfigurationOutput() KnowledgeBaseOpenSearchServerlessConfigurationOutput + ToKnowledgeBaseOpenSearchServerlessConfigurationOutputWithContext(context.Context) KnowledgeBaseOpenSearchServerlessConfigurationOutput +} + +// Contains the storage configuration of the knowledge base in Amazon OpenSearch Service. +type KnowledgeBaseOpenSearchServerlessConfigurationArgs struct { + // The ARN of the OpenSearch Service vector store. + CollectionArn pulumi.StringInput `pulumi:"collectionArn"` + FieldMapping KnowledgeBaseOpenSearchServerlessFieldMappingInput `pulumi:"fieldMapping"` + // The name of the vector store. + VectorIndexName pulumi.StringInput `pulumi:"vectorIndexName"` +} + +func (KnowledgeBaseOpenSearchServerlessConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*KnowledgeBaseOpenSearchServerlessConfiguration)(nil)).Elem() +} + +func (i KnowledgeBaseOpenSearchServerlessConfigurationArgs) ToKnowledgeBaseOpenSearchServerlessConfigurationOutput() KnowledgeBaseOpenSearchServerlessConfigurationOutput { + return i.ToKnowledgeBaseOpenSearchServerlessConfigurationOutputWithContext(context.Background()) +} + +func (i KnowledgeBaseOpenSearchServerlessConfigurationArgs) ToKnowledgeBaseOpenSearchServerlessConfigurationOutputWithContext(ctx context.Context) KnowledgeBaseOpenSearchServerlessConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(KnowledgeBaseOpenSearchServerlessConfigurationOutput) +} + +func (i KnowledgeBaseOpenSearchServerlessConfigurationArgs) ToKnowledgeBaseOpenSearchServerlessConfigurationPtrOutput() KnowledgeBaseOpenSearchServerlessConfigurationPtrOutput { + return i.ToKnowledgeBaseOpenSearchServerlessConfigurationPtrOutputWithContext(context.Background()) +} + +func (i KnowledgeBaseOpenSearchServerlessConfigurationArgs) ToKnowledgeBaseOpenSearchServerlessConfigurationPtrOutputWithContext(ctx context.Context) KnowledgeBaseOpenSearchServerlessConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(KnowledgeBaseOpenSearchServerlessConfigurationOutput).ToKnowledgeBaseOpenSearchServerlessConfigurationPtrOutputWithContext(ctx) +} + +// KnowledgeBaseOpenSearchServerlessConfigurationPtrInput is an input type that accepts KnowledgeBaseOpenSearchServerlessConfigurationArgs, KnowledgeBaseOpenSearchServerlessConfigurationPtr and KnowledgeBaseOpenSearchServerlessConfigurationPtrOutput values. +// You can construct a concrete instance of `KnowledgeBaseOpenSearchServerlessConfigurationPtrInput` via: +// +// KnowledgeBaseOpenSearchServerlessConfigurationArgs{...} +// +// or: +// +// nil +type KnowledgeBaseOpenSearchServerlessConfigurationPtrInput interface { + pulumi.Input + + ToKnowledgeBaseOpenSearchServerlessConfigurationPtrOutput() KnowledgeBaseOpenSearchServerlessConfigurationPtrOutput + ToKnowledgeBaseOpenSearchServerlessConfigurationPtrOutputWithContext(context.Context) KnowledgeBaseOpenSearchServerlessConfigurationPtrOutput +} + +type knowledgeBaseOpenSearchServerlessConfigurationPtrType KnowledgeBaseOpenSearchServerlessConfigurationArgs + +func KnowledgeBaseOpenSearchServerlessConfigurationPtr(v *KnowledgeBaseOpenSearchServerlessConfigurationArgs) KnowledgeBaseOpenSearchServerlessConfigurationPtrInput { + return (*knowledgeBaseOpenSearchServerlessConfigurationPtrType)(v) +} + +func (*knowledgeBaseOpenSearchServerlessConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**KnowledgeBaseOpenSearchServerlessConfiguration)(nil)).Elem() +} + +func (i *knowledgeBaseOpenSearchServerlessConfigurationPtrType) ToKnowledgeBaseOpenSearchServerlessConfigurationPtrOutput() KnowledgeBaseOpenSearchServerlessConfigurationPtrOutput { + return i.ToKnowledgeBaseOpenSearchServerlessConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *knowledgeBaseOpenSearchServerlessConfigurationPtrType) ToKnowledgeBaseOpenSearchServerlessConfigurationPtrOutputWithContext(ctx context.Context) KnowledgeBaseOpenSearchServerlessConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(KnowledgeBaseOpenSearchServerlessConfigurationPtrOutput) +} + +// Contains the storage configuration of the knowledge base in Amazon OpenSearch Service. +type KnowledgeBaseOpenSearchServerlessConfigurationOutput struct{ *pulumi.OutputState } + +func (KnowledgeBaseOpenSearchServerlessConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*KnowledgeBaseOpenSearchServerlessConfiguration)(nil)).Elem() +} + +func (o KnowledgeBaseOpenSearchServerlessConfigurationOutput) ToKnowledgeBaseOpenSearchServerlessConfigurationOutput() KnowledgeBaseOpenSearchServerlessConfigurationOutput { + return o +} + +func (o KnowledgeBaseOpenSearchServerlessConfigurationOutput) ToKnowledgeBaseOpenSearchServerlessConfigurationOutputWithContext(ctx context.Context) KnowledgeBaseOpenSearchServerlessConfigurationOutput { + return o +} + +func (o KnowledgeBaseOpenSearchServerlessConfigurationOutput) ToKnowledgeBaseOpenSearchServerlessConfigurationPtrOutput() KnowledgeBaseOpenSearchServerlessConfigurationPtrOutput { + return o.ToKnowledgeBaseOpenSearchServerlessConfigurationPtrOutputWithContext(context.Background()) +} + +func (o KnowledgeBaseOpenSearchServerlessConfigurationOutput) ToKnowledgeBaseOpenSearchServerlessConfigurationPtrOutputWithContext(ctx context.Context) KnowledgeBaseOpenSearchServerlessConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v KnowledgeBaseOpenSearchServerlessConfiguration) *KnowledgeBaseOpenSearchServerlessConfiguration { + return &v + }).(KnowledgeBaseOpenSearchServerlessConfigurationPtrOutput) +} + +// The ARN of the OpenSearch Service vector store. +func (o KnowledgeBaseOpenSearchServerlessConfigurationOutput) CollectionArn() pulumi.StringOutput { + return o.ApplyT(func(v KnowledgeBaseOpenSearchServerlessConfiguration) string { return v.CollectionArn }).(pulumi.StringOutput) +} + +func (o KnowledgeBaseOpenSearchServerlessConfigurationOutput) FieldMapping() KnowledgeBaseOpenSearchServerlessFieldMappingOutput { + return o.ApplyT(func(v KnowledgeBaseOpenSearchServerlessConfiguration) KnowledgeBaseOpenSearchServerlessFieldMapping { + return v.FieldMapping + }).(KnowledgeBaseOpenSearchServerlessFieldMappingOutput) +} + +// The name of the vector store. +func (o KnowledgeBaseOpenSearchServerlessConfigurationOutput) VectorIndexName() pulumi.StringOutput { + return o.ApplyT(func(v KnowledgeBaseOpenSearchServerlessConfiguration) string { return v.VectorIndexName }).(pulumi.StringOutput) +} + +type KnowledgeBaseOpenSearchServerlessConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (KnowledgeBaseOpenSearchServerlessConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**KnowledgeBaseOpenSearchServerlessConfiguration)(nil)).Elem() +} + +func (o KnowledgeBaseOpenSearchServerlessConfigurationPtrOutput) ToKnowledgeBaseOpenSearchServerlessConfigurationPtrOutput() KnowledgeBaseOpenSearchServerlessConfigurationPtrOutput { + return o +} + +func (o KnowledgeBaseOpenSearchServerlessConfigurationPtrOutput) ToKnowledgeBaseOpenSearchServerlessConfigurationPtrOutputWithContext(ctx context.Context) KnowledgeBaseOpenSearchServerlessConfigurationPtrOutput { + return o +} + +func (o KnowledgeBaseOpenSearchServerlessConfigurationPtrOutput) Elem() KnowledgeBaseOpenSearchServerlessConfigurationOutput { + return o.ApplyT(func(v *KnowledgeBaseOpenSearchServerlessConfiguration) KnowledgeBaseOpenSearchServerlessConfiguration { + if v != nil { + return *v + } + var ret KnowledgeBaseOpenSearchServerlessConfiguration + return ret + }).(KnowledgeBaseOpenSearchServerlessConfigurationOutput) +} + +// The ARN of the OpenSearch Service vector store. +func (o KnowledgeBaseOpenSearchServerlessConfigurationPtrOutput) CollectionArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KnowledgeBaseOpenSearchServerlessConfiguration) *string { + if v == nil { + return nil + } + return &v.CollectionArn + }).(pulumi.StringPtrOutput) +} + +func (o KnowledgeBaseOpenSearchServerlessConfigurationPtrOutput) FieldMapping() KnowledgeBaseOpenSearchServerlessFieldMappingPtrOutput { + return o.ApplyT(func(v *KnowledgeBaseOpenSearchServerlessConfiguration) *KnowledgeBaseOpenSearchServerlessFieldMapping { + if v == nil { + return nil + } + return &v.FieldMapping + }).(KnowledgeBaseOpenSearchServerlessFieldMappingPtrOutput) +} + +// The name of the vector store. +func (o KnowledgeBaseOpenSearchServerlessConfigurationPtrOutput) VectorIndexName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KnowledgeBaseOpenSearchServerlessConfiguration) *string { + if v == nil { + return nil + } + return &v.VectorIndexName + }).(pulumi.StringPtrOutput) +} + +// A mapping of Bedrock Knowledge Base fields to OpenSearch Serverless field names +type KnowledgeBaseOpenSearchServerlessFieldMapping struct { + // The name of the field in which Amazon Bedrock stores metadata about the vector store. + MetadataField string `pulumi:"metadataField"` + // The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. + TextField string `pulumi:"textField"` + // The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources. + VectorField string `pulumi:"vectorField"` +} + +// KnowledgeBaseOpenSearchServerlessFieldMappingInput is an input type that accepts KnowledgeBaseOpenSearchServerlessFieldMappingArgs and KnowledgeBaseOpenSearchServerlessFieldMappingOutput values. +// You can construct a concrete instance of `KnowledgeBaseOpenSearchServerlessFieldMappingInput` via: +// +// KnowledgeBaseOpenSearchServerlessFieldMappingArgs{...} +type KnowledgeBaseOpenSearchServerlessFieldMappingInput interface { + pulumi.Input + + ToKnowledgeBaseOpenSearchServerlessFieldMappingOutput() KnowledgeBaseOpenSearchServerlessFieldMappingOutput + ToKnowledgeBaseOpenSearchServerlessFieldMappingOutputWithContext(context.Context) KnowledgeBaseOpenSearchServerlessFieldMappingOutput +} + +// A mapping of Bedrock Knowledge Base fields to OpenSearch Serverless field names +type KnowledgeBaseOpenSearchServerlessFieldMappingArgs struct { + // The name of the field in which Amazon Bedrock stores metadata about the vector store. + MetadataField pulumi.StringInput `pulumi:"metadataField"` + // The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. + TextField pulumi.StringInput `pulumi:"textField"` + // The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources. + VectorField pulumi.StringInput `pulumi:"vectorField"` +} + +func (KnowledgeBaseOpenSearchServerlessFieldMappingArgs) ElementType() reflect.Type { + return reflect.TypeOf((*KnowledgeBaseOpenSearchServerlessFieldMapping)(nil)).Elem() +} + +func (i KnowledgeBaseOpenSearchServerlessFieldMappingArgs) ToKnowledgeBaseOpenSearchServerlessFieldMappingOutput() KnowledgeBaseOpenSearchServerlessFieldMappingOutput { + return i.ToKnowledgeBaseOpenSearchServerlessFieldMappingOutputWithContext(context.Background()) +} + +func (i KnowledgeBaseOpenSearchServerlessFieldMappingArgs) ToKnowledgeBaseOpenSearchServerlessFieldMappingOutputWithContext(ctx context.Context) KnowledgeBaseOpenSearchServerlessFieldMappingOutput { + return pulumi.ToOutputWithContext(ctx, i).(KnowledgeBaseOpenSearchServerlessFieldMappingOutput) +} + +func (i KnowledgeBaseOpenSearchServerlessFieldMappingArgs) ToKnowledgeBaseOpenSearchServerlessFieldMappingPtrOutput() KnowledgeBaseOpenSearchServerlessFieldMappingPtrOutput { + return i.ToKnowledgeBaseOpenSearchServerlessFieldMappingPtrOutputWithContext(context.Background()) +} + +func (i KnowledgeBaseOpenSearchServerlessFieldMappingArgs) ToKnowledgeBaseOpenSearchServerlessFieldMappingPtrOutputWithContext(ctx context.Context) KnowledgeBaseOpenSearchServerlessFieldMappingPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(KnowledgeBaseOpenSearchServerlessFieldMappingOutput).ToKnowledgeBaseOpenSearchServerlessFieldMappingPtrOutputWithContext(ctx) +} + +// KnowledgeBaseOpenSearchServerlessFieldMappingPtrInput is an input type that accepts KnowledgeBaseOpenSearchServerlessFieldMappingArgs, KnowledgeBaseOpenSearchServerlessFieldMappingPtr and KnowledgeBaseOpenSearchServerlessFieldMappingPtrOutput values. +// You can construct a concrete instance of `KnowledgeBaseOpenSearchServerlessFieldMappingPtrInput` via: +// +// KnowledgeBaseOpenSearchServerlessFieldMappingArgs{...} +// +// or: +// +// nil +type KnowledgeBaseOpenSearchServerlessFieldMappingPtrInput interface { + pulumi.Input + + ToKnowledgeBaseOpenSearchServerlessFieldMappingPtrOutput() KnowledgeBaseOpenSearchServerlessFieldMappingPtrOutput + ToKnowledgeBaseOpenSearchServerlessFieldMappingPtrOutputWithContext(context.Context) KnowledgeBaseOpenSearchServerlessFieldMappingPtrOutput +} + +type knowledgeBaseOpenSearchServerlessFieldMappingPtrType KnowledgeBaseOpenSearchServerlessFieldMappingArgs + +func KnowledgeBaseOpenSearchServerlessFieldMappingPtr(v *KnowledgeBaseOpenSearchServerlessFieldMappingArgs) KnowledgeBaseOpenSearchServerlessFieldMappingPtrInput { + return (*knowledgeBaseOpenSearchServerlessFieldMappingPtrType)(v) +} + +func (*knowledgeBaseOpenSearchServerlessFieldMappingPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**KnowledgeBaseOpenSearchServerlessFieldMapping)(nil)).Elem() +} + +func (i *knowledgeBaseOpenSearchServerlessFieldMappingPtrType) ToKnowledgeBaseOpenSearchServerlessFieldMappingPtrOutput() KnowledgeBaseOpenSearchServerlessFieldMappingPtrOutput { + return i.ToKnowledgeBaseOpenSearchServerlessFieldMappingPtrOutputWithContext(context.Background()) +} + +func (i *knowledgeBaseOpenSearchServerlessFieldMappingPtrType) ToKnowledgeBaseOpenSearchServerlessFieldMappingPtrOutputWithContext(ctx context.Context) KnowledgeBaseOpenSearchServerlessFieldMappingPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(KnowledgeBaseOpenSearchServerlessFieldMappingPtrOutput) +} + +// A mapping of Bedrock Knowledge Base fields to OpenSearch Serverless field names +type KnowledgeBaseOpenSearchServerlessFieldMappingOutput struct{ *pulumi.OutputState } + +func (KnowledgeBaseOpenSearchServerlessFieldMappingOutput) ElementType() reflect.Type { + return reflect.TypeOf((*KnowledgeBaseOpenSearchServerlessFieldMapping)(nil)).Elem() +} + +func (o KnowledgeBaseOpenSearchServerlessFieldMappingOutput) ToKnowledgeBaseOpenSearchServerlessFieldMappingOutput() KnowledgeBaseOpenSearchServerlessFieldMappingOutput { + return o +} + +func (o KnowledgeBaseOpenSearchServerlessFieldMappingOutput) ToKnowledgeBaseOpenSearchServerlessFieldMappingOutputWithContext(ctx context.Context) KnowledgeBaseOpenSearchServerlessFieldMappingOutput { + return o +} + +func (o KnowledgeBaseOpenSearchServerlessFieldMappingOutput) ToKnowledgeBaseOpenSearchServerlessFieldMappingPtrOutput() KnowledgeBaseOpenSearchServerlessFieldMappingPtrOutput { + return o.ToKnowledgeBaseOpenSearchServerlessFieldMappingPtrOutputWithContext(context.Background()) +} + +func (o KnowledgeBaseOpenSearchServerlessFieldMappingOutput) ToKnowledgeBaseOpenSearchServerlessFieldMappingPtrOutputWithContext(ctx context.Context) KnowledgeBaseOpenSearchServerlessFieldMappingPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v KnowledgeBaseOpenSearchServerlessFieldMapping) *KnowledgeBaseOpenSearchServerlessFieldMapping { + return &v + }).(KnowledgeBaseOpenSearchServerlessFieldMappingPtrOutput) +} + +// The name of the field in which Amazon Bedrock stores metadata about the vector store. +func (o KnowledgeBaseOpenSearchServerlessFieldMappingOutput) MetadataField() pulumi.StringOutput { + return o.ApplyT(func(v KnowledgeBaseOpenSearchServerlessFieldMapping) string { return v.MetadataField }).(pulumi.StringOutput) +} + +// The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. +func (o KnowledgeBaseOpenSearchServerlessFieldMappingOutput) TextField() pulumi.StringOutput { + return o.ApplyT(func(v KnowledgeBaseOpenSearchServerlessFieldMapping) string { return v.TextField }).(pulumi.StringOutput) +} + +// The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources. +func (o KnowledgeBaseOpenSearchServerlessFieldMappingOutput) VectorField() pulumi.StringOutput { + return o.ApplyT(func(v KnowledgeBaseOpenSearchServerlessFieldMapping) string { return v.VectorField }).(pulumi.StringOutput) +} + +type KnowledgeBaseOpenSearchServerlessFieldMappingPtrOutput struct{ *pulumi.OutputState } + +func (KnowledgeBaseOpenSearchServerlessFieldMappingPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**KnowledgeBaseOpenSearchServerlessFieldMapping)(nil)).Elem() +} + +func (o KnowledgeBaseOpenSearchServerlessFieldMappingPtrOutput) ToKnowledgeBaseOpenSearchServerlessFieldMappingPtrOutput() KnowledgeBaseOpenSearchServerlessFieldMappingPtrOutput { + return o +} + +func (o KnowledgeBaseOpenSearchServerlessFieldMappingPtrOutput) ToKnowledgeBaseOpenSearchServerlessFieldMappingPtrOutputWithContext(ctx context.Context) KnowledgeBaseOpenSearchServerlessFieldMappingPtrOutput { + return o +} + +func (o KnowledgeBaseOpenSearchServerlessFieldMappingPtrOutput) Elem() KnowledgeBaseOpenSearchServerlessFieldMappingOutput { + return o.ApplyT(func(v *KnowledgeBaseOpenSearchServerlessFieldMapping) KnowledgeBaseOpenSearchServerlessFieldMapping { + if v != nil { + return *v + } + var ret KnowledgeBaseOpenSearchServerlessFieldMapping + return ret + }).(KnowledgeBaseOpenSearchServerlessFieldMappingOutput) +} + +// The name of the field in which Amazon Bedrock stores metadata about the vector store. +func (o KnowledgeBaseOpenSearchServerlessFieldMappingPtrOutput) MetadataField() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KnowledgeBaseOpenSearchServerlessFieldMapping) *string { + if v == nil { + return nil + } + return &v.MetadataField + }).(pulumi.StringPtrOutput) +} + +// The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. +func (o KnowledgeBaseOpenSearchServerlessFieldMappingPtrOutput) TextField() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KnowledgeBaseOpenSearchServerlessFieldMapping) *string { + if v == nil { + return nil + } + return &v.TextField + }).(pulumi.StringPtrOutput) +} + +// The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources. +func (o KnowledgeBaseOpenSearchServerlessFieldMappingPtrOutput) VectorField() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KnowledgeBaseOpenSearchServerlessFieldMapping) *string { + if v == nil { + return nil + } + return &v.VectorField + }).(pulumi.StringPtrOutput) +} + +// Contains the storage configuration of the knowledge base in Pinecone. +type KnowledgeBasePineconeConfiguration struct { + // The endpoint URL for your index management page. + ConnectionString string `pulumi:"connectionString"` + // The ARN of the secret that you created in AWS Secrets Manager that is linked to your Pinecone API key. + CredentialsSecretArn string `pulumi:"credentialsSecretArn"` + FieldMapping KnowledgeBasePineconeFieldMapping `pulumi:"fieldMapping"` + // The namespace to be used to write new data to your database. + Namespace *string `pulumi:"namespace"` +} + +// KnowledgeBasePineconeConfigurationInput is an input type that accepts KnowledgeBasePineconeConfigurationArgs and KnowledgeBasePineconeConfigurationOutput values. +// You can construct a concrete instance of `KnowledgeBasePineconeConfigurationInput` via: +// +// KnowledgeBasePineconeConfigurationArgs{...} +type KnowledgeBasePineconeConfigurationInput interface { + pulumi.Input + + ToKnowledgeBasePineconeConfigurationOutput() KnowledgeBasePineconeConfigurationOutput + ToKnowledgeBasePineconeConfigurationOutputWithContext(context.Context) KnowledgeBasePineconeConfigurationOutput +} + +// Contains the storage configuration of the knowledge base in Pinecone. +type KnowledgeBasePineconeConfigurationArgs struct { + // The endpoint URL for your index management page. + ConnectionString pulumi.StringInput `pulumi:"connectionString"` + // The ARN of the secret that you created in AWS Secrets Manager that is linked to your Pinecone API key. + CredentialsSecretArn pulumi.StringInput `pulumi:"credentialsSecretArn"` + FieldMapping KnowledgeBasePineconeFieldMappingInput `pulumi:"fieldMapping"` + // The namespace to be used to write new data to your database. + Namespace pulumi.StringPtrInput `pulumi:"namespace"` +} + +func (KnowledgeBasePineconeConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*KnowledgeBasePineconeConfiguration)(nil)).Elem() +} + +func (i KnowledgeBasePineconeConfigurationArgs) ToKnowledgeBasePineconeConfigurationOutput() KnowledgeBasePineconeConfigurationOutput { + return i.ToKnowledgeBasePineconeConfigurationOutputWithContext(context.Background()) +} + +func (i KnowledgeBasePineconeConfigurationArgs) ToKnowledgeBasePineconeConfigurationOutputWithContext(ctx context.Context) KnowledgeBasePineconeConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(KnowledgeBasePineconeConfigurationOutput) +} + +func (i KnowledgeBasePineconeConfigurationArgs) ToKnowledgeBasePineconeConfigurationPtrOutput() KnowledgeBasePineconeConfigurationPtrOutput { + return i.ToKnowledgeBasePineconeConfigurationPtrOutputWithContext(context.Background()) +} + +func (i KnowledgeBasePineconeConfigurationArgs) ToKnowledgeBasePineconeConfigurationPtrOutputWithContext(ctx context.Context) KnowledgeBasePineconeConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(KnowledgeBasePineconeConfigurationOutput).ToKnowledgeBasePineconeConfigurationPtrOutputWithContext(ctx) +} + +// KnowledgeBasePineconeConfigurationPtrInput is an input type that accepts KnowledgeBasePineconeConfigurationArgs, KnowledgeBasePineconeConfigurationPtr and KnowledgeBasePineconeConfigurationPtrOutput values. +// You can construct a concrete instance of `KnowledgeBasePineconeConfigurationPtrInput` via: +// +// KnowledgeBasePineconeConfigurationArgs{...} +// +// or: +// +// nil +type KnowledgeBasePineconeConfigurationPtrInput interface { + pulumi.Input + + ToKnowledgeBasePineconeConfigurationPtrOutput() KnowledgeBasePineconeConfigurationPtrOutput + ToKnowledgeBasePineconeConfigurationPtrOutputWithContext(context.Context) KnowledgeBasePineconeConfigurationPtrOutput +} + +type knowledgeBasePineconeConfigurationPtrType KnowledgeBasePineconeConfigurationArgs + +func KnowledgeBasePineconeConfigurationPtr(v *KnowledgeBasePineconeConfigurationArgs) KnowledgeBasePineconeConfigurationPtrInput { + return (*knowledgeBasePineconeConfigurationPtrType)(v) +} + +func (*knowledgeBasePineconeConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**KnowledgeBasePineconeConfiguration)(nil)).Elem() +} + +func (i *knowledgeBasePineconeConfigurationPtrType) ToKnowledgeBasePineconeConfigurationPtrOutput() KnowledgeBasePineconeConfigurationPtrOutput { + return i.ToKnowledgeBasePineconeConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *knowledgeBasePineconeConfigurationPtrType) ToKnowledgeBasePineconeConfigurationPtrOutputWithContext(ctx context.Context) KnowledgeBasePineconeConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(KnowledgeBasePineconeConfigurationPtrOutput) +} + +// Contains the storage configuration of the knowledge base in Pinecone. +type KnowledgeBasePineconeConfigurationOutput struct{ *pulumi.OutputState } + +func (KnowledgeBasePineconeConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*KnowledgeBasePineconeConfiguration)(nil)).Elem() +} + +func (o KnowledgeBasePineconeConfigurationOutput) ToKnowledgeBasePineconeConfigurationOutput() KnowledgeBasePineconeConfigurationOutput { + return o +} + +func (o KnowledgeBasePineconeConfigurationOutput) ToKnowledgeBasePineconeConfigurationOutputWithContext(ctx context.Context) KnowledgeBasePineconeConfigurationOutput { + return o +} + +func (o KnowledgeBasePineconeConfigurationOutput) ToKnowledgeBasePineconeConfigurationPtrOutput() KnowledgeBasePineconeConfigurationPtrOutput { + return o.ToKnowledgeBasePineconeConfigurationPtrOutputWithContext(context.Background()) +} + +func (o KnowledgeBasePineconeConfigurationOutput) ToKnowledgeBasePineconeConfigurationPtrOutputWithContext(ctx context.Context) KnowledgeBasePineconeConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v KnowledgeBasePineconeConfiguration) *KnowledgeBasePineconeConfiguration { + return &v + }).(KnowledgeBasePineconeConfigurationPtrOutput) +} + +// The endpoint URL for your index management page. +func (o KnowledgeBasePineconeConfigurationOutput) ConnectionString() pulumi.StringOutput { + return o.ApplyT(func(v KnowledgeBasePineconeConfiguration) string { return v.ConnectionString }).(pulumi.StringOutput) +} + +// The ARN of the secret that you created in AWS Secrets Manager that is linked to your Pinecone API key. +func (o KnowledgeBasePineconeConfigurationOutput) CredentialsSecretArn() pulumi.StringOutput { + return o.ApplyT(func(v KnowledgeBasePineconeConfiguration) string { return v.CredentialsSecretArn }).(pulumi.StringOutput) +} + +func (o KnowledgeBasePineconeConfigurationOutput) FieldMapping() KnowledgeBasePineconeFieldMappingOutput { + return o.ApplyT(func(v KnowledgeBasePineconeConfiguration) KnowledgeBasePineconeFieldMapping { return v.FieldMapping }).(KnowledgeBasePineconeFieldMappingOutput) +} + +// The namespace to be used to write new data to your database. +func (o KnowledgeBasePineconeConfigurationOutput) Namespace() pulumi.StringPtrOutput { + return o.ApplyT(func(v KnowledgeBasePineconeConfiguration) *string { return v.Namespace }).(pulumi.StringPtrOutput) +} + +type KnowledgeBasePineconeConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (KnowledgeBasePineconeConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**KnowledgeBasePineconeConfiguration)(nil)).Elem() +} + +func (o KnowledgeBasePineconeConfigurationPtrOutput) ToKnowledgeBasePineconeConfigurationPtrOutput() KnowledgeBasePineconeConfigurationPtrOutput { + return o +} + +func (o KnowledgeBasePineconeConfigurationPtrOutput) ToKnowledgeBasePineconeConfigurationPtrOutputWithContext(ctx context.Context) KnowledgeBasePineconeConfigurationPtrOutput { + return o +} + +func (o KnowledgeBasePineconeConfigurationPtrOutput) Elem() KnowledgeBasePineconeConfigurationOutput { + return o.ApplyT(func(v *KnowledgeBasePineconeConfiguration) KnowledgeBasePineconeConfiguration { + if v != nil { + return *v + } + var ret KnowledgeBasePineconeConfiguration + return ret + }).(KnowledgeBasePineconeConfigurationOutput) +} + +// The endpoint URL for your index management page. +func (o KnowledgeBasePineconeConfigurationPtrOutput) ConnectionString() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KnowledgeBasePineconeConfiguration) *string { + if v == nil { + return nil + } + return &v.ConnectionString + }).(pulumi.StringPtrOutput) +} + +// The ARN of the secret that you created in AWS Secrets Manager that is linked to your Pinecone API key. +func (o KnowledgeBasePineconeConfigurationPtrOutput) CredentialsSecretArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KnowledgeBasePineconeConfiguration) *string { + if v == nil { + return nil + } + return &v.CredentialsSecretArn + }).(pulumi.StringPtrOutput) +} + +func (o KnowledgeBasePineconeConfigurationPtrOutput) FieldMapping() KnowledgeBasePineconeFieldMappingPtrOutput { + return o.ApplyT(func(v *KnowledgeBasePineconeConfiguration) *KnowledgeBasePineconeFieldMapping { + if v == nil { + return nil + } + return &v.FieldMapping + }).(KnowledgeBasePineconeFieldMappingPtrOutput) +} + +// The namespace to be used to write new data to your database. +func (o KnowledgeBasePineconeConfigurationPtrOutput) Namespace() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KnowledgeBasePineconeConfiguration) *string { + if v == nil { + return nil + } + return v.Namespace + }).(pulumi.StringPtrOutput) +} + +// Contains the names of the fields to which to map information about the vector store. +type KnowledgeBasePineconeFieldMapping struct { + // The name of the field in which Amazon Bedrock stores metadata about the vector store. + MetadataField string `pulumi:"metadataField"` + // The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. + TextField string `pulumi:"textField"` +} + +// KnowledgeBasePineconeFieldMappingInput is an input type that accepts KnowledgeBasePineconeFieldMappingArgs and KnowledgeBasePineconeFieldMappingOutput values. +// You can construct a concrete instance of `KnowledgeBasePineconeFieldMappingInput` via: +// +// KnowledgeBasePineconeFieldMappingArgs{...} +type KnowledgeBasePineconeFieldMappingInput interface { + pulumi.Input + + ToKnowledgeBasePineconeFieldMappingOutput() KnowledgeBasePineconeFieldMappingOutput + ToKnowledgeBasePineconeFieldMappingOutputWithContext(context.Context) KnowledgeBasePineconeFieldMappingOutput +} + +// Contains the names of the fields to which to map information about the vector store. +type KnowledgeBasePineconeFieldMappingArgs struct { + // The name of the field in which Amazon Bedrock stores metadata about the vector store. + MetadataField pulumi.StringInput `pulumi:"metadataField"` + // The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. + TextField pulumi.StringInput `pulumi:"textField"` +} + +func (KnowledgeBasePineconeFieldMappingArgs) ElementType() reflect.Type { + return reflect.TypeOf((*KnowledgeBasePineconeFieldMapping)(nil)).Elem() +} + +func (i KnowledgeBasePineconeFieldMappingArgs) ToKnowledgeBasePineconeFieldMappingOutput() KnowledgeBasePineconeFieldMappingOutput { + return i.ToKnowledgeBasePineconeFieldMappingOutputWithContext(context.Background()) +} + +func (i KnowledgeBasePineconeFieldMappingArgs) ToKnowledgeBasePineconeFieldMappingOutputWithContext(ctx context.Context) KnowledgeBasePineconeFieldMappingOutput { + return pulumi.ToOutputWithContext(ctx, i).(KnowledgeBasePineconeFieldMappingOutput) +} + +func (i KnowledgeBasePineconeFieldMappingArgs) ToKnowledgeBasePineconeFieldMappingPtrOutput() KnowledgeBasePineconeFieldMappingPtrOutput { + return i.ToKnowledgeBasePineconeFieldMappingPtrOutputWithContext(context.Background()) +} + +func (i KnowledgeBasePineconeFieldMappingArgs) ToKnowledgeBasePineconeFieldMappingPtrOutputWithContext(ctx context.Context) KnowledgeBasePineconeFieldMappingPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(KnowledgeBasePineconeFieldMappingOutput).ToKnowledgeBasePineconeFieldMappingPtrOutputWithContext(ctx) +} + +// KnowledgeBasePineconeFieldMappingPtrInput is an input type that accepts KnowledgeBasePineconeFieldMappingArgs, KnowledgeBasePineconeFieldMappingPtr and KnowledgeBasePineconeFieldMappingPtrOutput values. +// You can construct a concrete instance of `KnowledgeBasePineconeFieldMappingPtrInput` via: +// +// KnowledgeBasePineconeFieldMappingArgs{...} +// +// or: +// +// nil +type KnowledgeBasePineconeFieldMappingPtrInput interface { + pulumi.Input + + ToKnowledgeBasePineconeFieldMappingPtrOutput() KnowledgeBasePineconeFieldMappingPtrOutput + ToKnowledgeBasePineconeFieldMappingPtrOutputWithContext(context.Context) KnowledgeBasePineconeFieldMappingPtrOutput +} + +type knowledgeBasePineconeFieldMappingPtrType KnowledgeBasePineconeFieldMappingArgs + +func KnowledgeBasePineconeFieldMappingPtr(v *KnowledgeBasePineconeFieldMappingArgs) KnowledgeBasePineconeFieldMappingPtrInput { + return (*knowledgeBasePineconeFieldMappingPtrType)(v) +} + +func (*knowledgeBasePineconeFieldMappingPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**KnowledgeBasePineconeFieldMapping)(nil)).Elem() +} + +func (i *knowledgeBasePineconeFieldMappingPtrType) ToKnowledgeBasePineconeFieldMappingPtrOutput() KnowledgeBasePineconeFieldMappingPtrOutput { + return i.ToKnowledgeBasePineconeFieldMappingPtrOutputWithContext(context.Background()) +} + +func (i *knowledgeBasePineconeFieldMappingPtrType) ToKnowledgeBasePineconeFieldMappingPtrOutputWithContext(ctx context.Context) KnowledgeBasePineconeFieldMappingPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(KnowledgeBasePineconeFieldMappingPtrOutput) +} + +// Contains the names of the fields to which to map information about the vector store. +type KnowledgeBasePineconeFieldMappingOutput struct{ *pulumi.OutputState } + +func (KnowledgeBasePineconeFieldMappingOutput) ElementType() reflect.Type { + return reflect.TypeOf((*KnowledgeBasePineconeFieldMapping)(nil)).Elem() +} + +func (o KnowledgeBasePineconeFieldMappingOutput) ToKnowledgeBasePineconeFieldMappingOutput() KnowledgeBasePineconeFieldMappingOutput { + return o +} + +func (o KnowledgeBasePineconeFieldMappingOutput) ToKnowledgeBasePineconeFieldMappingOutputWithContext(ctx context.Context) KnowledgeBasePineconeFieldMappingOutput { + return o +} + +func (o KnowledgeBasePineconeFieldMappingOutput) ToKnowledgeBasePineconeFieldMappingPtrOutput() KnowledgeBasePineconeFieldMappingPtrOutput { + return o.ToKnowledgeBasePineconeFieldMappingPtrOutputWithContext(context.Background()) +} + +func (o KnowledgeBasePineconeFieldMappingOutput) ToKnowledgeBasePineconeFieldMappingPtrOutputWithContext(ctx context.Context) KnowledgeBasePineconeFieldMappingPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v KnowledgeBasePineconeFieldMapping) *KnowledgeBasePineconeFieldMapping { + return &v + }).(KnowledgeBasePineconeFieldMappingPtrOutput) +} + +// The name of the field in which Amazon Bedrock stores metadata about the vector store. +func (o KnowledgeBasePineconeFieldMappingOutput) MetadataField() pulumi.StringOutput { + return o.ApplyT(func(v KnowledgeBasePineconeFieldMapping) string { return v.MetadataField }).(pulumi.StringOutput) +} + +// The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. +func (o KnowledgeBasePineconeFieldMappingOutput) TextField() pulumi.StringOutput { + return o.ApplyT(func(v KnowledgeBasePineconeFieldMapping) string { return v.TextField }).(pulumi.StringOutput) +} + +type KnowledgeBasePineconeFieldMappingPtrOutput struct{ *pulumi.OutputState } + +func (KnowledgeBasePineconeFieldMappingPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**KnowledgeBasePineconeFieldMapping)(nil)).Elem() +} + +func (o KnowledgeBasePineconeFieldMappingPtrOutput) ToKnowledgeBasePineconeFieldMappingPtrOutput() KnowledgeBasePineconeFieldMappingPtrOutput { + return o +} + +func (o KnowledgeBasePineconeFieldMappingPtrOutput) ToKnowledgeBasePineconeFieldMappingPtrOutputWithContext(ctx context.Context) KnowledgeBasePineconeFieldMappingPtrOutput { + return o +} + +func (o KnowledgeBasePineconeFieldMappingPtrOutput) Elem() KnowledgeBasePineconeFieldMappingOutput { + return o.ApplyT(func(v *KnowledgeBasePineconeFieldMapping) KnowledgeBasePineconeFieldMapping { + if v != nil { + return *v + } + var ret KnowledgeBasePineconeFieldMapping + return ret + }).(KnowledgeBasePineconeFieldMappingOutput) +} + +// The name of the field in which Amazon Bedrock stores metadata about the vector store. +func (o KnowledgeBasePineconeFieldMappingPtrOutput) MetadataField() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KnowledgeBasePineconeFieldMapping) *string { + if v == nil { + return nil + } + return &v.MetadataField + }).(pulumi.StringPtrOutput) +} + +// The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. +func (o KnowledgeBasePineconeFieldMappingPtrOutput) TextField() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KnowledgeBasePineconeFieldMapping) *string { + if v == nil { + return nil + } + return &v.TextField + }).(pulumi.StringPtrOutput) +} + +// Contains details about the storage configuration of the knowledge base in Amazon RDS. For more information, see Create a vector index in Amazon RDS. +type KnowledgeBaseRdsConfiguration struct { + // The ARN of the secret that you created in AWS Secrets Manager that is linked to your Amazon RDS database. + CredentialsSecretArn string `pulumi:"credentialsSecretArn"` + // The name of your Amazon RDS database. + DatabaseName string `pulumi:"databaseName"` + FieldMapping KnowledgeBaseRdsFieldMapping `pulumi:"fieldMapping"` + // The ARN of the vector store. + ResourceArn string `pulumi:"resourceArn"` + // The name of the table in the database. + TableName string `pulumi:"tableName"` +} + +// KnowledgeBaseRdsConfigurationInput is an input type that accepts KnowledgeBaseRdsConfigurationArgs and KnowledgeBaseRdsConfigurationOutput values. +// You can construct a concrete instance of `KnowledgeBaseRdsConfigurationInput` via: +// +// KnowledgeBaseRdsConfigurationArgs{...} +type KnowledgeBaseRdsConfigurationInput interface { + pulumi.Input + + ToKnowledgeBaseRdsConfigurationOutput() KnowledgeBaseRdsConfigurationOutput + ToKnowledgeBaseRdsConfigurationOutputWithContext(context.Context) KnowledgeBaseRdsConfigurationOutput +} + +// Contains details about the storage configuration of the knowledge base in Amazon RDS. For more information, see Create a vector index in Amazon RDS. +type KnowledgeBaseRdsConfigurationArgs struct { + // The ARN of the secret that you created in AWS Secrets Manager that is linked to your Amazon RDS database. + CredentialsSecretArn pulumi.StringInput `pulumi:"credentialsSecretArn"` + // The name of your Amazon RDS database. + DatabaseName pulumi.StringInput `pulumi:"databaseName"` + FieldMapping KnowledgeBaseRdsFieldMappingInput `pulumi:"fieldMapping"` + // The ARN of the vector store. + ResourceArn pulumi.StringInput `pulumi:"resourceArn"` + // The name of the table in the database. + TableName pulumi.StringInput `pulumi:"tableName"` +} + +func (KnowledgeBaseRdsConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*KnowledgeBaseRdsConfiguration)(nil)).Elem() +} + +func (i KnowledgeBaseRdsConfigurationArgs) ToKnowledgeBaseRdsConfigurationOutput() KnowledgeBaseRdsConfigurationOutput { + return i.ToKnowledgeBaseRdsConfigurationOutputWithContext(context.Background()) +} + +func (i KnowledgeBaseRdsConfigurationArgs) ToKnowledgeBaseRdsConfigurationOutputWithContext(ctx context.Context) KnowledgeBaseRdsConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(KnowledgeBaseRdsConfigurationOutput) +} + +func (i KnowledgeBaseRdsConfigurationArgs) ToKnowledgeBaseRdsConfigurationPtrOutput() KnowledgeBaseRdsConfigurationPtrOutput { + return i.ToKnowledgeBaseRdsConfigurationPtrOutputWithContext(context.Background()) +} + +func (i KnowledgeBaseRdsConfigurationArgs) ToKnowledgeBaseRdsConfigurationPtrOutputWithContext(ctx context.Context) KnowledgeBaseRdsConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(KnowledgeBaseRdsConfigurationOutput).ToKnowledgeBaseRdsConfigurationPtrOutputWithContext(ctx) +} + +// KnowledgeBaseRdsConfigurationPtrInput is an input type that accepts KnowledgeBaseRdsConfigurationArgs, KnowledgeBaseRdsConfigurationPtr and KnowledgeBaseRdsConfigurationPtrOutput values. +// You can construct a concrete instance of `KnowledgeBaseRdsConfigurationPtrInput` via: +// +// KnowledgeBaseRdsConfigurationArgs{...} +// +// or: +// +// nil +type KnowledgeBaseRdsConfigurationPtrInput interface { + pulumi.Input + + ToKnowledgeBaseRdsConfigurationPtrOutput() KnowledgeBaseRdsConfigurationPtrOutput + ToKnowledgeBaseRdsConfigurationPtrOutputWithContext(context.Context) KnowledgeBaseRdsConfigurationPtrOutput +} + +type knowledgeBaseRdsConfigurationPtrType KnowledgeBaseRdsConfigurationArgs + +func KnowledgeBaseRdsConfigurationPtr(v *KnowledgeBaseRdsConfigurationArgs) KnowledgeBaseRdsConfigurationPtrInput { + return (*knowledgeBaseRdsConfigurationPtrType)(v) +} + +func (*knowledgeBaseRdsConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**KnowledgeBaseRdsConfiguration)(nil)).Elem() +} + +func (i *knowledgeBaseRdsConfigurationPtrType) ToKnowledgeBaseRdsConfigurationPtrOutput() KnowledgeBaseRdsConfigurationPtrOutput { + return i.ToKnowledgeBaseRdsConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *knowledgeBaseRdsConfigurationPtrType) ToKnowledgeBaseRdsConfigurationPtrOutputWithContext(ctx context.Context) KnowledgeBaseRdsConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(KnowledgeBaseRdsConfigurationPtrOutput) +} + +// Contains details about the storage configuration of the knowledge base in Amazon RDS. For more information, see Create a vector index in Amazon RDS. +type KnowledgeBaseRdsConfigurationOutput struct{ *pulumi.OutputState } + +func (KnowledgeBaseRdsConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*KnowledgeBaseRdsConfiguration)(nil)).Elem() +} + +func (o KnowledgeBaseRdsConfigurationOutput) ToKnowledgeBaseRdsConfigurationOutput() KnowledgeBaseRdsConfigurationOutput { + return o +} + +func (o KnowledgeBaseRdsConfigurationOutput) ToKnowledgeBaseRdsConfigurationOutputWithContext(ctx context.Context) KnowledgeBaseRdsConfigurationOutput { + return o +} + +func (o KnowledgeBaseRdsConfigurationOutput) ToKnowledgeBaseRdsConfigurationPtrOutput() KnowledgeBaseRdsConfigurationPtrOutput { + return o.ToKnowledgeBaseRdsConfigurationPtrOutputWithContext(context.Background()) +} + +func (o KnowledgeBaseRdsConfigurationOutput) ToKnowledgeBaseRdsConfigurationPtrOutputWithContext(ctx context.Context) KnowledgeBaseRdsConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v KnowledgeBaseRdsConfiguration) *KnowledgeBaseRdsConfiguration { + return &v + }).(KnowledgeBaseRdsConfigurationPtrOutput) +} + +// The ARN of the secret that you created in AWS Secrets Manager that is linked to your Amazon RDS database. +func (o KnowledgeBaseRdsConfigurationOutput) CredentialsSecretArn() pulumi.StringOutput { + return o.ApplyT(func(v KnowledgeBaseRdsConfiguration) string { return v.CredentialsSecretArn }).(pulumi.StringOutput) +} + +// The name of your Amazon RDS database. +func (o KnowledgeBaseRdsConfigurationOutput) DatabaseName() pulumi.StringOutput { + return o.ApplyT(func(v KnowledgeBaseRdsConfiguration) string { return v.DatabaseName }).(pulumi.StringOutput) +} + +func (o KnowledgeBaseRdsConfigurationOutput) FieldMapping() KnowledgeBaseRdsFieldMappingOutput { + return o.ApplyT(func(v KnowledgeBaseRdsConfiguration) KnowledgeBaseRdsFieldMapping { return v.FieldMapping }).(KnowledgeBaseRdsFieldMappingOutput) +} + +// The ARN of the vector store. +func (o KnowledgeBaseRdsConfigurationOutput) ResourceArn() pulumi.StringOutput { + return o.ApplyT(func(v KnowledgeBaseRdsConfiguration) string { return v.ResourceArn }).(pulumi.StringOutput) +} + +// The name of the table in the database. +func (o KnowledgeBaseRdsConfigurationOutput) TableName() pulumi.StringOutput { + return o.ApplyT(func(v KnowledgeBaseRdsConfiguration) string { return v.TableName }).(pulumi.StringOutput) +} + +type KnowledgeBaseRdsConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (KnowledgeBaseRdsConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**KnowledgeBaseRdsConfiguration)(nil)).Elem() +} + +func (o KnowledgeBaseRdsConfigurationPtrOutput) ToKnowledgeBaseRdsConfigurationPtrOutput() KnowledgeBaseRdsConfigurationPtrOutput { + return o +} + +func (o KnowledgeBaseRdsConfigurationPtrOutput) ToKnowledgeBaseRdsConfigurationPtrOutputWithContext(ctx context.Context) KnowledgeBaseRdsConfigurationPtrOutput { + return o +} + +func (o KnowledgeBaseRdsConfigurationPtrOutput) Elem() KnowledgeBaseRdsConfigurationOutput { + return o.ApplyT(func(v *KnowledgeBaseRdsConfiguration) KnowledgeBaseRdsConfiguration { + if v != nil { + return *v + } + var ret KnowledgeBaseRdsConfiguration + return ret + }).(KnowledgeBaseRdsConfigurationOutput) +} + +// The ARN of the secret that you created in AWS Secrets Manager that is linked to your Amazon RDS database. +func (o KnowledgeBaseRdsConfigurationPtrOutput) CredentialsSecretArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KnowledgeBaseRdsConfiguration) *string { + if v == nil { + return nil + } + return &v.CredentialsSecretArn + }).(pulumi.StringPtrOutput) +} + +// The name of your Amazon RDS database. +func (o KnowledgeBaseRdsConfigurationPtrOutput) DatabaseName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KnowledgeBaseRdsConfiguration) *string { + if v == nil { + return nil + } + return &v.DatabaseName + }).(pulumi.StringPtrOutput) +} + +func (o KnowledgeBaseRdsConfigurationPtrOutput) FieldMapping() KnowledgeBaseRdsFieldMappingPtrOutput { + return o.ApplyT(func(v *KnowledgeBaseRdsConfiguration) *KnowledgeBaseRdsFieldMapping { + if v == nil { + return nil + } + return &v.FieldMapping + }).(KnowledgeBaseRdsFieldMappingPtrOutput) +} + +// The ARN of the vector store. +func (o KnowledgeBaseRdsConfigurationPtrOutput) ResourceArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KnowledgeBaseRdsConfiguration) *string { + if v == nil { + return nil + } + return &v.ResourceArn + }).(pulumi.StringPtrOutput) +} + +// The name of the table in the database. +func (o KnowledgeBaseRdsConfigurationPtrOutput) TableName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KnowledgeBaseRdsConfiguration) *string { + if v == nil { + return nil + } + return &v.TableName + }).(pulumi.StringPtrOutput) +} + +// Contains the names of the fields to which to map information about the vector store. +type KnowledgeBaseRdsFieldMapping struct { + // The name of the field in which Amazon Bedrock stores metadata about the vector store. + MetadataField string `pulumi:"metadataField"` + // The name of the field in which Amazon Bedrock stores the ID for each entry. + PrimaryKeyField string `pulumi:"primaryKeyField"` + // The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. + TextField string `pulumi:"textField"` + // The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources. + VectorField string `pulumi:"vectorField"` +} + +// KnowledgeBaseRdsFieldMappingInput is an input type that accepts KnowledgeBaseRdsFieldMappingArgs and KnowledgeBaseRdsFieldMappingOutput values. +// You can construct a concrete instance of `KnowledgeBaseRdsFieldMappingInput` via: +// +// KnowledgeBaseRdsFieldMappingArgs{...} +type KnowledgeBaseRdsFieldMappingInput interface { + pulumi.Input + + ToKnowledgeBaseRdsFieldMappingOutput() KnowledgeBaseRdsFieldMappingOutput + ToKnowledgeBaseRdsFieldMappingOutputWithContext(context.Context) KnowledgeBaseRdsFieldMappingOutput +} + +// Contains the names of the fields to which to map information about the vector store. +type KnowledgeBaseRdsFieldMappingArgs struct { + // The name of the field in which Amazon Bedrock stores metadata about the vector store. + MetadataField pulumi.StringInput `pulumi:"metadataField"` + // The name of the field in which Amazon Bedrock stores the ID for each entry. + PrimaryKeyField pulumi.StringInput `pulumi:"primaryKeyField"` + // The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. + TextField pulumi.StringInput `pulumi:"textField"` + // The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources. + VectorField pulumi.StringInput `pulumi:"vectorField"` +} + +func (KnowledgeBaseRdsFieldMappingArgs) ElementType() reflect.Type { + return reflect.TypeOf((*KnowledgeBaseRdsFieldMapping)(nil)).Elem() +} + +func (i KnowledgeBaseRdsFieldMappingArgs) ToKnowledgeBaseRdsFieldMappingOutput() KnowledgeBaseRdsFieldMappingOutput { + return i.ToKnowledgeBaseRdsFieldMappingOutputWithContext(context.Background()) +} + +func (i KnowledgeBaseRdsFieldMappingArgs) ToKnowledgeBaseRdsFieldMappingOutputWithContext(ctx context.Context) KnowledgeBaseRdsFieldMappingOutput { + return pulumi.ToOutputWithContext(ctx, i).(KnowledgeBaseRdsFieldMappingOutput) +} + +func (i KnowledgeBaseRdsFieldMappingArgs) ToKnowledgeBaseRdsFieldMappingPtrOutput() KnowledgeBaseRdsFieldMappingPtrOutput { + return i.ToKnowledgeBaseRdsFieldMappingPtrOutputWithContext(context.Background()) +} + +func (i KnowledgeBaseRdsFieldMappingArgs) ToKnowledgeBaseRdsFieldMappingPtrOutputWithContext(ctx context.Context) KnowledgeBaseRdsFieldMappingPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(KnowledgeBaseRdsFieldMappingOutput).ToKnowledgeBaseRdsFieldMappingPtrOutputWithContext(ctx) +} + +// KnowledgeBaseRdsFieldMappingPtrInput is an input type that accepts KnowledgeBaseRdsFieldMappingArgs, KnowledgeBaseRdsFieldMappingPtr and KnowledgeBaseRdsFieldMappingPtrOutput values. +// You can construct a concrete instance of `KnowledgeBaseRdsFieldMappingPtrInput` via: +// +// KnowledgeBaseRdsFieldMappingArgs{...} +// +// or: +// +// nil +type KnowledgeBaseRdsFieldMappingPtrInput interface { + pulumi.Input + + ToKnowledgeBaseRdsFieldMappingPtrOutput() KnowledgeBaseRdsFieldMappingPtrOutput + ToKnowledgeBaseRdsFieldMappingPtrOutputWithContext(context.Context) KnowledgeBaseRdsFieldMappingPtrOutput +} + +type knowledgeBaseRdsFieldMappingPtrType KnowledgeBaseRdsFieldMappingArgs + +func KnowledgeBaseRdsFieldMappingPtr(v *KnowledgeBaseRdsFieldMappingArgs) KnowledgeBaseRdsFieldMappingPtrInput { + return (*knowledgeBaseRdsFieldMappingPtrType)(v) +} + +func (*knowledgeBaseRdsFieldMappingPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**KnowledgeBaseRdsFieldMapping)(nil)).Elem() +} + +func (i *knowledgeBaseRdsFieldMappingPtrType) ToKnowledgeBaseRdsFieldMappingPtrOutput() KnowledgeBaseRdsFieldMappingPtrOutput { + return i.ToKnowledgeBaseRdsFieldMappingPtrOutputWithContext(context.Background()) +} + +func (i *knowledgeBaseRdsFieldMappingPtrType) ToKnowledgeBaseRdsFieldMappingPtrOutputWithContext(ctx context.Context) KnowledgeBaseRdsFieldMappingPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(KnowledgeBaseRdsFieldMappingPtrOutput) +} + +// Contains the names of the fields to which to map information about the vector store. +type KnowledgeBaseRdsFieldMappingOutput struct{ *pulumi.OutputState } + +func (KnowledgeBaseRdsFieldMappingOutput) ElementType() reflect.Type { + return reflect.TypeOf((*KnowledgeBaseRdsFieldMapping)(nil)).Elem() +} + +func (o KnowledgeBaseRdsFieldMappingOutput) ToKnowledgeBaseRdsFieldMappingOutput() KnowledgeBaseRdsFieldMappingOutput { + return o +} + +func (o KnowledgeBaseRdsFieldMappingOutput) ToKnowledgeBaseRdsFieldMappingOutputWithContext(ctx context.Context) KnowledgeBaseRdsFieldMappingOutput { + return o +} + +func (o KnowledgeBaseRdsFieldMappingOutput) ToKnowledgeBaseRdsFieldMappingPtrOutput() KnowledgeBaseRdsFieldMappingPtrOutput { + return o.ToKnowledgeBaseRdsFieldMappingPtrOutputWithContext(context.Background()) +} + +func (o KnowledgeBaseRdsFieldMappingOutput) ToKnowledgeBaseRdsFieldMappingPtrOutputWithContext(ctx context.Context) KnowledgeBaseRdsFieldMappingPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v KnowledgeBaseRdsFieldMapping) *KnowledgeBaseRdsFieldMapping { + return &v + }).(KnowledgeBaseRdsFieldMappingPtrOutput) +} + +// The name of the field in which Amazon Bedrock stores metadata about the vector store. +func (o KnowledgeBaseRdsFieldMappingOutput) MetadataField() pulumi.StringOutput { + return o.ApplyT(func(v KnowledgeBaseRdsFieldMapping) string { return v.MetadataField }).(pulumi.StringOutput) +} + +// The name of the field in which Amazon Bedrock stores the ID for each entry. +func (o KnowledgeBaseRdsFieldMappingOutput) PrimaryKeyField() pulumi.StringOutput { + return o.ApplyT(func(v KnowledgeBaseRdsFieldMapping) string { return v.PrimaryKeyField }).(pulumi.StringOutput) +} + +// The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. +func (o KnowledgeBaseRdsFieldMappingOutput) TextField() pulumi.StringOutput { + return o.ApplyT(func(v KnowledgeBaseRdsFieldMapping) string { return v.TextField }).(pulumi.StringOutput) +} + +// The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources. +func (o KnowledgeBaseRdsFieldMappingOutput) VectorField() pulumi.StringOutput { + return o.ApplyT(func(v KnowledgeBaseRdsFieldMapping) string { return v.VectorField }).(pulumi.StringOutput) +} + +type KnowledgeBaseRdsFieldMappingPtrOutput struct{ *pulumi.OutputState } + +func (KnowledgeBaseRdsFieldMappingPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**KnowledgeBaseRdsFieldMapping)(nil)).Elem() +} + +func (o KnowledgeBaseRdsFieldMappingPtrOutput) ToKnowledgeBaseRdsFieldMappingPtrOutput() KnowledgeBaseRdsFieldMappingPtrOutput { + return o +} + +func (o KnowledgeBaseRdsFieldMappingPtrOutput) ToKnowledgeBaseRdsFieldMappingPtrOutputWithContext(ctx context.Context) KnowledgeBaseRdsFieldMappingPtrOutput { + return o +} + +func (o KnowledgeBaseRdsFieldMappingPtrOutput) Elem() KnowledgeBaseRdsFieldMappingOutput { + return o.ApplyT(func(v *KnowledgeBaseRdsFieldMapping) KnowledgeBaseRdsFieldMapping { + if v != nil { + return *v + } + var ret KnowledgeBaseRdsFieldMapping + return ret + }).(KnowledgeBaseRdsFieldMappingOutput) +} + +// The name of the field in which Amazon Bedrock stores metadata about the vector store. +func (o KnowledgeBaseRdsFieldMappingPtrOutput) MetadataField() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KnowledgeBaseRdsFieldMapping) *string { + if v == nil { + return nil + } + return &v.MetadataField + }).(pulumi.StringPtrOutput) +} + +// The name of the field in which Amazon Bedrock stores the ID for each entry. +func (o KnowledgeBaseRdsFieldMappingPtrOutput) PrimaryKeyField() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KnowledgeBaseRdsFieldMapping) *string { + if v == nil { + return nil + } + return &v.PrimaryKeyField + }).(pulumi.StringPtrOutput) +} + +// The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. +func (o KnowledgeBaseRdsFieldMappingPtrOutput) TextField() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KnowledgeBaseRdsFieldMapping) *string { + if v == nil { + return nil + } + return &v.TextField + }).(pulumi.StringPtrOutput) +} + +// The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources. +func (o KnowledgeBaseRdsFieldMappingPtrOutput) VectorField() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KnowledgeBaseRdsFieldMapping) *string { + if v == nil { + return nil + } + return &v.VectorField + }).(pulumi.StringPtrOutput) +} + +// The vector store service in which the knowledge base is stored. +type KnowledgeBaseStorageConfiguration struct { + OpensearchServerlessConfiguration *KnowledgeBaseOpenSearchServerlessConfiguration `pulumi:"opensearchServerlessConfiguration"` + PineconeConfiguration *KnowledgeBasePineconeConfiguration `pulumi:"pineconeConfiguration"` + RdsConfiguration *KnowledgeBaseRdsConfiguration `pulumi:"rdsConfiguration"` + Type KnowledgeBaseStorageType `pulumi:"type"` +} + +// KnowledgeBaseStorageConfigurationInput is an input type that accepts KnowledgeBaseStorageConfigurationArgs and KnowledgeBaseStorageConfigurationOutput values. +// You can construct a concrete instance of `KnowledgeBaseStorageConfigurationInput` via: +// +// KnowledgeBaseStorageConfigurationArgs{...} +type KnowledgeBaseStorageConfigurationInput interface { + pulumi.Input + + ToKnowledgeBaseStorageConfigurationOutput() KnowledgeBaseStorageConfigurationOutput + ToKnowledgeBaseStorageConfigurationOutputWithContext(context.Context) KnowledgeBaseStorageConfigurationOutput +} + +// The vector store service in which the knowledge base is stored. +type KnowledgeBaseStorageConfigurationArgs struct { + OpensearchServerlessConfiguration KnowledgeBaseOpenSearchServerlessConfigurationPtrInput `pulumi:"opensearchServerlessConfiguration"` + PineconeConfiguration KnowledgeBasePineconeConfigurationPtrInput `pulumi:"pineconeConfiguration"` + RdsConfiguration KnowledgeBaseRdsConfigurationPtrInput `pulumi:"rdsConfiguration"` + Type KnowledgeBaseStorageTypeInput `pulumi:"type"` +} + +func (KnowledgeBaseStorageConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*KnowledgeBaseStorageConfiguration)(nil)).Elem() +} + +func (i KnowledgeBaseStorageConfigurationArgs) ToKnowledgeBaseStorageConfigurationOutput() KnowledgeBaseStorageConfigurationOutput { + return i.ToKnowledgeBaseStorageConfigurationOutputWithContext(context.Background()) +} + +func (i KnowledgeBaseStorageConfigurationArgs) ToKnowledgeBaseStorageConfigurationOutputWithContext(ctx context.Context) KnowledgeBaseStorageConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(KnowledgeBaseStorageConfigurationOutput) +} + +// The vector store service in which the knowledge base is stored. +type KnowledgeBaseStorageConfigurationOutput struct{ *pulumi.OutputState } + +func (KnowledgeBaseStorageConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*KnowledgeBaseStorageConfiguration)(nil)).Elem() +} + +func (o KnowledgeBaseStorageConfigurationOutput) ToKnowledgeBaseStorageConfigurationOutput() KnowledgeBaseStorageConfigurationOutput { + return o +} + +func (o KnowledgeBaseStorageConfigurationOutput) ToKnowledgeBaseStorageConfigurationOutputWithContext(ctx context.Context) KnowledgeBaseStorageConfigurationOutput { + return o +} + +func (o KnowledgeBaseStorageConfigurationOutput) OpensearchServerlessConfiguration() KnowledgeBaseOpenSearchServerlessConfigurationPtrOutput { + return o.ApplyT(func(v KnowledgeBaseStorageConfiguration) *KnowledgeBaseOpenSearchServerlessConfiguration { + return v.OpensearchServerlessConfiguration + }).(KnowledgeBaseOpenSearchServerlessConfigurationPtrOutput) +} + +func (o KnowledgeBaseStorageConfigurationOutput) PineconeConfiguration() KnowledgeBasePineconeConfigurationPtrOutput { + return o.ApplyT(func(v KnowledgeBaseStorageConfiguration) *KnowledgeBasePineconeConfiguration { + return v.PineconeConfiguration + }).(KnowledgeBasePineconeConfigurationPtrOutput) +} + +func (o KnowledgeBaseStorageConfigurationOutput) RdsConfiguration() KnowledgeBaseRdsConfigurationPtrOutput { + return o.ApplyT(func(v KnowledgeBaseStorageConfiguration) *KnowledgeBaseRdsConfiguration { return v.RdsConfiguration }).(KnowledgeBaseRdsConfigurationPtrOutput) +} + +func (o KnowledgeBaseStorageConfigurationOutput) Type() KnowledgeBaseStorageTypeOutput { + return o.ApplyT(func(v KnowledgeBaseStorageConfiguration) KnowledgeBaseStorageType { return v.Type }).(KnowledgeBaseStorageTypeOutput) +} + +// Contains details about the model used to create vector embeddings for the knowledge base. +type KnowledgeBaseVectorKnowledgeBaseConfiguration struct { + // The ARN of the model used to create vector embeddings for the knowledge base. + EmbeddingModelArn string `pulumi:"embeddingModelArn"` +} + +// KnowledgeBaseVectorKnowledgeBaseConfigurationInput is an input type that accepts KnowledgeBaseVectorKnowledgeBaseConfigurationArgs and KnowledgeBaseVectorKnowledgeBaseConfigurationOutput values. +// You can construct a concrete instance of `KnowledgeBaseVectorKnowledgeBaseConfigurationInput` via: +// +// KnowledgeBaseVectorKnowledgeBaseConfigurationArgs{...} +type KnowledgeBaseVectorKnowledgeBaseConfigurationInput interface { + pulumi.Input + + ToKnowledgeBaseVectorKnowledgeBaseConfigurationOutput() KnowledgeBaseVectorKnowledgeBaseConfigurationOutput + ToKnowledgeBaseVectorKnowledgeBaseConfigurationOutputWithContext(context.Context) KnowledgeBaseVectorKnowledgeBaseConfigurationOutput +} + +// Contains details about the model used to create vector embeddings for the knowledge base. +type KnowledgeBaseVectorKnowledgeBaseConfigurationArgs struct { + // The ARN of the model used to create vector embeddings for the knowledge base. + EmbeddingModelArn pulumi.StringInput `pulumi:"embeddingModelArn"` +} + +func (KnowledgeBaseVectorKnowledgeBaseConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*KnowledgeBaseVectorKnowledgeBaseConfiguration)(nil)).Elem() +} + +func (i KnowledgeBaseVectorKnowledgeBaseConfigurationArgs) ToKnowledgeBaseVectorKnowledgeBaseConfigurationOutput() KnowledgeBaseVectorKnowledgeBaseConfigurationOutput { + return i.ToKnowledgeBaseVectorKnowledgeBaseConfigurationOutputWithContext(context.Background()) +} + +func (i KnowledgeBaseVectorKnowledgeBaseConfigurationArgs) ToKnowledgeBaseVectorKnowledgeBaseConfigurationOutputWithContext(ctx context.Context) KnowledgeBaseVectorKnowledgeBaseConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(KnowledgeBaseVectorKnowledgeBaseConfigurationOutput) +} + +// Contains details about the model used to create vector embeddings for the knowledge base. +type KnowledgeBaseVectorKnowledgeBaseConfigurationOutput struct{ *pulumi.OutputState } + +func (KnowledgeBaseVectorKnowledgeBaseConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*KnowledgeBaseVectorKnowledgeBaseConfiguration)(nil)).Elem() +} + +func (o KnowledgeBaseVectorKnowledgeBaseConfigurationOutput) ToKnowledgeBaseVectorKnowledgeBaseConfigurationOutput() KnowledgeBaseVectorKnowledgeBaseConfigurationOutput { + return o +} + +func (o KnowledgeBaseVectorKnowledgeBaseConfigurationOutput) ToKnowledgeBaseVectorKnowledgeBaseConfigurationOutputWithContext(ctx context.Context) KnowledgeBaseVectorKnowledgeBaseConfigurationOutput { + return o +} + +// The ARN of the model used to create vector embeddings for the knowledge base. +func (o KnowledgeBaseVectorKnowledgeBaseConfigurationOutput) EmbeddingModelArn() pulumi.StringOutput { + return o.ApplyT(func(v KnowledgeBaseVectorKnowledgeBaseConfiguration) string { return v.EmbeddingModelArn }).(pulumi.StringOutput) +} + +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.RegisterInputType(reflect.TypeOf((*DataSourceChunkingConfigurationInput)(nil)).Elem(), DataSourceChunkingConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DataSourceChunkingConfigurationPtrInput)(nil)).Elem(), DataSourceChunkingConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DataSourceConfigurationInput)(nil)).Elem(), DataSourceConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DataSourceFixedSizeChunkingConfigurationInput)(nil)).Elem(), DataSourceFixedSizeChunkingConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DataSourceFixedSizeChunkingConfigurationPtrInput)(nil)).Elem(), DataSourceFixedSizeChunkingConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DataSourceS3DataSourceConfigurationInput)(nil)).Elem(), DataSourceS3DataSourceConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DataSourceServerSideEncryptionConfigurationInput)(nil)).Elem(), DataSourceServerSideEncryptionConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DataSourceServerSideEncryptionConfigurationPtrInput)(nil)).Elem(), DataSourceServerSideEncryptionConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DataSourceVectorIngestionConfigurationInput)(nil)).Elem(), DataSourceVectorIngestionConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DataSourceVectorIngestionConfigurationPtrInput)(nil)).Elem(), DataSourceVectorIngestionConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*KnowledgeBaseConfigurationInput)(nil)).Elem(), KnowledgeBaseConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*KnowledgeBaseOpenSearchServerlessConfigurationInput)(nil)).Elem(), KnowledgeBaseOpenSearchServerlessConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*KnowledgeBaseOpenSearchServerlessConfigurationPtrInput)(nil)).Elem(), KnowledgeBaseOpenSearchServerlessConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*KnowledgeBaseOpenSearchServerlessFieldMappingInput)(nil)).Elem(), KnowledgeBaseOpenSearchServerlessFieldMappingArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*KnowledgeBaseOpenSearchServerlessFieldMappingPtrInput)(nil)).Elem(), KnowledgeBaseOpenSearchServerlessFieldMappingArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*KnowledgeBasePineconeConfigurationInput)(nil)).Elem(), KnowledgeBasePineconeConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*KnowledgeBasePineconeConfigurationPtrInput)(nil)).Elem(), KnowledgeBasePineconeConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*KnowledgeBasePineconeFieldMappingInput)(nil)).Elem(), KnowledgeBasePineconeFieldMappingArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*KnowledgeBasePineconeFieldMappingPtrInput)(nil)).Elem(), KnowledgeBasePineconeFieldMappingArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*KnowledgeBaseRdsConfigurationInput)(nil)).Elem(), KnowledgeBaseRdsConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*KnowledgeBaseRdsConfigurationPtrInput)(nil)).Elem(), KnowledgeBaseRdsConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*KnowledgeBaseRdsFieldMappingInput)(nil)).Elem(), KnowledgeBaseRdsFieldMappingArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*KnowledgeBaseRdsFieldMappingPtrInput)(nil)).Elem(), KnowledgeBaseRdsFieldMappingArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*KnowledgeBaseStorageConfigurationInput)(nil)).Elem(), KnowledgeBaseStorageConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*KnowledgeBaseVectorKnowledgeBaseConfigurationInput)(nil)).Elem(), KnowledgeBaseVectorKnowledgeBaseConfigurationArgs{}) + 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{}) + pulumi.RegisterOutputType(DataSourceChunkingConfigurationOutput{}) + pulumi.RegisterOutputType(DataSourceChunkingConfigurationPtrOutput{}) + pulumi.RegisterOutputType(DataSourceConfigurationOutput{}) + pulumi.RegisterOutputType(DataSourceConfigurationPtrOutput{}) + pulumi.RegisterOutputType(DataSourceFixedSizeChunkingConfigurationOutput{}) + pulumi.RegisterOutputType(DataSourceFixedSizeChunkingConfigurationPtrOutput{}) + pulumi.RegisterOutputType(DataSourceS3DataSourceConfigurationOutput{}) + pulumi.RegisterOutputType(DataSourceS3DataSourceConfigurationPtrOutput{}) + pulumi.RegisterOutputType(DataSourceServerSideEncryptionConfigurationOutput{}) + pulumi.RegisterOutputType(DataSourceServerSideEncryptionConfigurationPtrOutput{}) + pulumi.RegisterOutputType(DataSourceVectorIngestionConfigurationOutput{}) + pulumi.RegisterOutputType(DataSourceVectorIngestionConfigurationPtrOutput{}) + pulumi.RegisterOutputType(KnowledgeBaseConfigurationOutput{}) + pulumi.RegisterOutputType(KnowledgeBaseOpenSearchServerlessConfigurationOutput{}) + pulumi.RegisterOutputType(KnowledgeBaseOpenSearchServerlessConfigurationPtrOutput{}) + pulumi.RegisterOutputType(KnowledgeBaseOpenSearchServerlessFieldMappingOutput{}) + pulumi.RegisterOutputType(KnowledgeBaseOpenSearchServerlessFieldMappingPtrOutput{}) + pulumi.RegisterOutputType(KnowledgeBasePineconeConfigurationOutput{}) + pulumi.RegisterOutputType(KnowledgeBasePineconeConfigurationPtrOutput{}) + pulumi.RegisterOutputType(KnowledgeBasePineconeFieldMappingOutput{}) + pulumi.RegisterOutputType(KnowledgeBasePineconeFieldMappingPtrOutput{}) + pulumi.RegisterOutputType(KnowledgeBaseRdsConfigurationOutput{}) + pulumi.RegisterOutputType(KnowledgeBaseRdsConfigurationPtrOutput{}) + pulumi.RegisterOutputType(KnowledgeBaseRdsFieldMappingOutput{}) + pulumi.RegisterOutputType(KnowledgeBaseRdsFieldMappingPtrOutput{}) + pulumi.RegisterOutputType(KnowledgeBaseStorageConfigurationOutput{}) + pulumi.RegisterOutputType(KnowledgeBaseVectorKnowledgeBaseConfigurationOutput{}) +} 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/cleanroomsml/getTrainingDataset.go b/sdk/go/aws/cleanroomsml/getTrainingDataset.go new file mode 100644 index 0000000000..69179f2233 --- /dev/null +++ b/sdk/go/aws/cleanroomsml/getTrainingDataset.go @@ -0,0 +1,87 @@ +// 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 cleanroomsml + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws" + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Definition of AWS::CleanRoomsML::TrainingDataset Resource Type +func LookupTrainingDataset(ctx *pulumi.Context, args *LookupTrainingDatasetArgs, opts ...pulumi.InvokeOption) (*LookupTrainingDatasetResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupTrainingDatasetResult + err := ctx.Invoke("aws-native:cleanroomsml:getTrainingDataset", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupTrainingDatasetArgs struct { + TrainingDatasetArn string `pulumi:"trainingDatasetArn"` +} + +type LookupTrainingDatasetResult struct { + Status *TrainingDatasetStatus `pulumi:"status"` + // An arbitrary set of tags (key-value pairs) for this cleanrooms-ml training dataset. + Tags []aws.Tag `pulumi:"tags"` + TrainingDatasetArn *string `pulumi:"trainingDatasetArn"` +} + +func LookupTrainingDatasetOutput(ctx *pulumi.Context, args LookupTrainingDatasetOutputArgs, opts ...pulumi.InvokeOption) LookupTrainingDatasetResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupTrainingDatasetResult, error) { + args := v.(LookupTrainingDatasetArgs) + r, err := LookupTrainingDataset(ctx, &args, opts...) + var s LookupTrainingDatasetResult + if r != nil { + s = *r + } + return s, err + }).(LookupTrainingDatasetResultOutput) +} + +type LookupTrainingDatasetOutputArgs struct { + TrainingDatasetArn pulumi.StringInput `pulumi:"trainingDatasetArn"` +} + +func (LookupTrainingDatasetOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupTrainingDatasetArgs)(nil)).Elem() +} + +type LookupTrainingDatasetResultOutput struct{ *pulumi.OutputState } + +func (LookupTrainingDatasetResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupTrainingDatasetResult)(nil)).Elem() +} + +func (o LookupTrainingDatasetResultOutput) ToLookupTrainingDatasetResultOutput() LookupTrainingDatasetResultOutput { + return o +} + +func (o LookupTrainingDatasetResultOutput) ToLookupTrainingDatasetResultOutputWithContext(ctx context.Context) LookupTrainingDatasetResultOutput { + return o +} + +func (o LookupTrainingDatasetResultOutput) Status() TrainingDatasetStatusPtrOutput { + return o.ApplyT(func(v LookupTrainingDatasetResult) *TrainingDatasetStatus { return v.Status }).(TrainingDatasetStatusPtrOutput) +} + +// An arbitrary set of tags (key-value pairs) for this cleanrooms-ml training dataset. +func (o LookupTrainingDatasetResultOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v LookupTrainingDatasetResult) []aws.Tag { return v.Tags }).(aws.TagArrayOutput) +} + +func (o LookupTrainingDatasetResultOutput) TrainingDatasetArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupTrainingDatasetResult) *string { return v.TrainingDatasetArn }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupTrainingDatasetResultOutput{}) +} diff --git a/sdk/go/aws/cleanroomsml/init.go b/sdk/go/aws/cleanroomsml/init.go new file mode 100644 index 0000000000..256ab67053 --- /dev/null +++ b/sdk/go/aws/cleanroomsml/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 cleanroomsml + +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:cleanroomsml:TrainingDataset": + r = &TrainingDataset{} + 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", + "cleanroomsml", + &module{version}, + ) +} diff --git a/sdk/go/aws/cleanroomsml/pulumiEnums.go b/sdk/go/aws/cleanroomsml/pulumiEnums.go new file mode 100644 index 0000000000..b7cef385be --- /dev/null +++ b/sdk/go/aws/cleanroomsml/pulumiEnums.go @@ -0,0 +1,494 @@ +// 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 cleanroomsml + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +type TrainingDatasetColumnType string + +const ( + TrainingDatasetColumnTypeUserId = TrainingDatasetColumnType("USER_ID") + TrainingDatasetColumnTypeItemId = TrainingDatasetColumnType("ITEM_ID") + TrainingDatasetColumnTypeTimestamp = TrainingDatasetColumnType("TIMESTAMP") + TrainingDatasetColumnTypeCategoricalFeature = TrainingDatasetColumnType("CATEGORICAL_FEATURE") + TrainingDatasetColumnTypeNumericalFeature = TrainingDatasetColumnType("NUMERICAL_FEATURE") +) + +func (TrainingDatasetColumnType) ElementType() reflect.Type { + return reflect.TypeOf((*TrainingDatasetColumnType)(nil)).Elem() +} + +func (e TrainingDatasetColumnType) ToTrainingDatasetColumnTypeOutput() TrainingDatasetColumnTypeOutput { + return pulumi.ToOutput(e).(TrainingDatasetColumnTypeOutput) +} + +func (e TrainingDatasetColumnType) ToTrainingDatasetColumnTypeOutputWithContext(ctx context.Context) TrainingDatasetColumnTypeOutput { + return pulumi.ToOutputWithContext(ctx, e).(TrainingDatasetColumnTypeOutput) +} + +func (e TrainingDatasetColumnType) ToTrainingDatasetColumnTypePtrOutput() TrainingDatasetColumnTypePtrOutput { + return e.ToTrainingDatasetColumnTypePtrOutputWithContext(context.Background()) +} + +func (e TrainingDatasetColumnType) ToTrainingDatasetColumnTypePtrOutputWithContext(ctx context.Context) TrainingDatasetColumnTypePtrOutput { + return TrainingDatasetColumnType(e).ToTrainingDatasetColumnTypeOutputWithContext(ctx).ToTrainingDatasetColumnTypePtrOutputWithContext(ctx) +} + +func (e TrainingDatasetColumnType) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e TrainingDatasetColumnType) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e TrainingDatasetColumnType) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e TrainingDatasetColumnType) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type TrainingDatasetColumnTypeOutput struct{ *pulumi.OutputState } + +func (TrainingDatasetColumnTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TrainingDatasetColumnType)(nil)).Elem() +} + +func (o TrainingDatasetColumnTypeOutput) ToTrainingDatasetColumnTypeOutput() TrainingDatasetColumnTypeOutput { + return o +} + +func (o TrainingDatasetColumnTypeOutput) ToTrainingDatasetColumnTypeOutputWithContext(ctx context.Context) TrainingDatasetColumnTypeOutput { + return o +} + +func (o TrainingDatasetColumnTypeOutput) ToTrainingDatasetColumnTypePtrOutput() TrainingDatasetColumnTypePtrOutput { + return o.ToTrainingDatasetColumnTypePtrOutputWithContext(context.Background()) +} + +func (o TrainingDatasetColumnTypeOutput) ToTrainingDatasetColumnTypePtrOutputWithContext(ctx context.Context) TrainingDatasetColumnTypePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TrainingDatasetColumnType) *TrainingDatasetColumnType { + return &v + }).(TrainingDatasetColumnTypePtrOutput) +} + +func (o TrainingDatasetColumnTypeOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o TrainingDatasetColumnTypeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e TrainingDatasetColumnType) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o TrainingDatasetColumnTypeOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o TrainingDatasetColumnTypeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e TrainingDatasetColumnType) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type TrainingDatasetColumnTypePtrOutput struct{ *pulumi.OutputState } + +func (TrainingDatasetColumnTypePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TrainingDatasetColumnType)(nil)).Elem() +} + +func (o TrainingDatasetColumnTypePtrOutput) ToTrainingDatasetColumnTypePtrOutput() TrainingDatasetColumnTypePtrOutput { + return o +} + +func (o TrainingDatasetColumnTypePtrOutput) ToTrainingDatasetColumnTypePtrOutputWithContext(ctx context.Context) TrainingDatasetColumnTypePtrOutput { + return o +} + +func (o TrainingDatasetColumnTypePtrOutput) Elem() TrainingDatasetColumnTypeOutput { + return o.ApplyT(func(v *TrainingDatasetColumnType) TrainingDatasetColumnType { + if v != nil { + return *v + } + var ret TrainingDatasetColumnType + return ret + }).(TrainingDatasetColumnTypeOutput) +} + +func (o TrainingDatasetColumnTypePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o TrainingDatasetColumnTypePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *TrainingDatasetColumnType) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// TrainingDatasetColumnTypeInput is an input type that accepts values of the TrainingDatasetColumnType enum +// A concrete instance of `TrainingDatasetColumnTypeInput` can be one of the following: +// +// TrainingDatasetColumnTypeUserId +// TrainingDatasetColumnTypeItemId +// TrainingDatasetColumnTypeTimestamp +// TrainingDatasetColumnTypeCategoricalFeature +// TrainingDatasetColumnTypeNumericalFeature +type TrainingDatasetColumnTypeInput interface { + pulumi.Input + + ToTrainingDatasetColumnTypeOutput() TrainingDatasetColumnTypeOutput + ToTrainingDatasetColumnTypeOutputWithContext(context.Context) TrainingDatasetColumnTypeOutput +} + +var trainingDatasetColumnTypePtrType = reflect.TypeOf((**TrainingDatasetColumnType)(nil)).Elem() + +type TrainingDatasetColumnTypePtrInput interface { + pulumi.Input + + ToTrainingDatasetColumnTypePtrOutput() TrainingDatasetColumnTypePtrOutput + ToTrainingDatasetColumnTypePtrOutputWithContext(context.Context) TrainingDatasetColumnTypePtrOutput +} + +type trainingDatasetColumnTypePtr string + +func TrainingDatasetColumnTypePtr(v string) TrainingDatasetColumnTypePtrInput { + return (*trainingDatasetColumnTypePtr)(&v) +} + +func (*trainingDatasetColumnTypePtr) ElementType() reflect.Type { + return trainingDatasetColumnTypePtrType +} + +func (in *trainingDatasetColumnTypePtr) ToTrainingDatasetColumnTypePtrOutput() TrainingDatasetColumnTypePtrOutput { + return pulumi.ToOutput(in).(TrainingDatasetColumnTypePtrOutput) +} + +func (in *trainingDatasetColumnTypePtr) ToTrainingDatasetColumnTypePtrOutputWithContext(ctx context.Context) TrainingDatasetColumnTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(TrainingDatasetColumnTypePtrOutput) +} + +// TrainingDatasetColumnTypeArrayInput is an input type that accepts TrainingDatasetColumnTypeArray and TrainingDatasetColumnTypeArrayOutput values. +// You can construct a concrete instance of `TrainingDatasetColumnTypeArrayInput` via: +// +// TrainingDatasetColumnTypeArray{ TrainingDatasetColumnTypeArgs{...} } +type TrainingDatasetColumnTypeArrayInput interface { + pulumi.Input + + ToTrainingDatasetColumnTypeArrayOutput() TrainingDatasetColumnTypeArrayOutput + ToTrainingDatasetColumnTypeArrayOutputWithContext(context.Context) TrainingDatasetColumnTypeArrayOutput +} + +type TrainingDatasetColumnTypeArray []TrainingDatasetColumnType + +func (TrainingDatasetColumnTypeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]TrainingDatasetColumnType)(nil)).Elem() +} + +func (i TrainingDatasetColumnTypeArray) ToTrainingDatasetColumnTypeArrayOutput() TrainingDatasetColumnTypeArrayOutput { + return i.ToTrainingDatasetColumnTypeArrayOutputWithContext(context.Background()) +} + +func (i TrainingDatasetColumnTypeArray) ToTrainingDatasetColumnTypeArrayOutputWithContext(ctx context.Context) TrainingDatasetColumnTypeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(TrainingDatasetColumnTypeArrayOutput) +} + +type TrainingDatasetColumnTypeArrayOutput struct{ *pulumi.OutputState } + +func (TrainingDatasetColumnTypeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]TrainingDatasetColumnType)(nil)).Elem() +} + +func (o TrainingDatasetColumnTypeArrayOutput) ToTrainingDatasetColumnTypeArrayOutput() TrainingDatasetColumnTypeArrayOutput { + return o +} + +func (o TrainingDatasetColumnTypeArrayOutput) ToTrainingDatasetColumnTypeArrayOutputWithContext(ctx context.Context) TrainingDatasetColumnTypeArrayOutput { + return o +} + +func (o TrainingDatasetColumnTypeArrayOutput) Index(i pulumi.IntInput) TrainingDatasetColumnTypeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) TrainingDatasetColumnType { + return vs[0].([]TrainingDatasetColumnType)[vs[1].(int)] + }).(TrainingDatasetColumnTypeOutput) +} + +type TrainingDatasetDatasetType string + +const ( + TrainingDatasetDatasetTypeInteractions = TrainingDatasetDatasetType("INTERACTIONS") +) + +func (TrainingDatasetDatasetType) ElementType() reflect.Type { + return reflect.TypeOf((*TrainingDatasetDatasetType)(nil)).Elem() +} + +func (e TrainingDatasetDatasetType) ToTrainingDatasetDatasetTypeOutput() TrainingDatasetDatasetTypeOutput { + return pulumi.ToOutput(e).(TrainingDatasetDatasetTypeOutput) +} + +func (e TrainingDatasetDatasetType) ToTrainingDatasetDatasetTypeOutputWithContext(ctx context.Context) TrainingDatasetDatasetTypeOutput { + return pulumi.ToOutputWithContext(ctx, e).(TrainingDatasetDatasetTypeOutput) +} + +func (e TrainingDatasetDatasetType) ToTrainingDatasetDatasetTypePtrOutput() TrainingDatasetDatasetTypePtrOutput { + return e.ToTrainingDatasetDatasetTypePtrOutputWithContext(context.Background()) +} + +func (e TrainingDatasetDatasetType) ToTrainingDatasetDatasetTypePtrOutputWithContext(ctx context.Context) TrainingDatasetDatasetTypePtrOutput { + return TrainingDatasetDatasetType(e).ToTrainingDatasetDatasetTypeOutputWithContext(ctx).ToTrainingDatasetDatasetTypePtrOutputWithContext(ctx) +} + +func (e TrainingDatasetDatasetType) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e TrainingDatasetDatasetType) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e TrainingDatasetDatasetType) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e TrainingDatasetDatasetType) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type TrainingDatasetDatasetTypeOutput struct{ *pulumi.OutputState } + +func (TrainingDatasetDatasetTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TrainingDatasetDatasetType)(nil)).Elem() +} + +func (o TrainingDatasetDatasetTypeOutput) ToTrainingDatasetDatasetTypeOutput() TrainingDatasetDatasetTypeOutput { + return o +} + +func (o TrainingDatasetDatasetTypeOutput) ToTrainingDatasetDatasetTypeOutputWithContext(ctx context.Context) TrainingDatasetDatasetTypeOutput { + return o +} + +func (o TrainingDatasetDatasetTypeOutput) ToTrainingDatasetDatasetTypePtrOutput() TrainingDatasetDatasetTypePtrOutput { + return o.ToTrainingDatasetDatasetTypePtrOutputWithContext(context.Background()) +} + +func (o TrainingDatasetDatasetTypeOutput) ToTrainingDatasetDatasetTypePtrOutputWithContext(ctx context.Context) TrainingDatasetDatasetTypePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TrainingDatasetDatasetType) *TrainingDatasetDatasetType { + return &v + }).(TrainingDatasetDatasetTypePtrOutput) +} + +func (o TrainingDatasetDatasetTypeOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o TrainingDatasetDatasetTypeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e TrainingDatasetDatasetType) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o TrainingDatasetDatasetTypeOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o TrainingDatasetDatasetTypeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e TrainingDatasetDatasetType) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type TrainingDatasetDatasetTypePtrOutput struct{ *pulumi.OutputState } + +func (TrainingDatasetDatasetTypePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TrainingDatasetDatasetType)(nil)).Elem() +} + +func (o TrainingDatasetDatasetTypePtrOutput) ToTrainingDatasetDatasetTypePtrOutput() TrainingDatasetDatasetTypePtrOutput { + return o +} + +func (o TrainingDatasetDatasetTypePtrOutput) ToTrainingDatasetDatasetTypePtrOutputWithContext(ctx context.Context) TrainingDatasetDatasetTypePtrOutput { + return o +} + +func (o TrainingDatasetDatasetTypePtrOutput) Elem() TrainingDatasetDatasetTypeOutput { + return o.ApplyT(func(v *TrainingDatasetDatasetType) TrainingDatasetDatasetType { + if v != nil { + return *v + } + var ret TrainingDatasetDatasetType + return ret + }).(TrainingDatasetDatasetTypeOutput) +} + +func (o TrainingDatasetDatasetTypePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o TrainingDatasetDatasetTypePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *TrainingDatasetDatasetType) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// TrainingDatasetDatasetTypeInput is an input type that accepts values of the TrainingDatasetDatasetType enum +// A concrete instance of `TrainingDatasetDatasetTypeInput` can be one of the following: +// +// TrainingDatasetDatasetTypeInteractions +type TrainingDatasetDatasetTypeInput interface { + pulumi.Input + + ToTrainingDatasetDatasetTypeOutput() TrainingDatasetDatasetTypeOutput + ToTrainingDatasetDatasetTypeOutputWithContext(context.Context) TrainingDatasetDatasetTypeOutput +} + +var trainingDatasetDatasetTypePtrType = reflect.TypeOf((**TrainingDatasetDatasetType)(nil)).Elem() + +type TrainingDatasetDatasetTypePtrInput interface { + pulumi.Input + + ToTrainingDatasetDatasetTypePtrOutput() TrainingDatasetDatasetTypePtrOutput + ToTrainingDatasetDatasetTypePtrOutputWithContext(context.Context) TrainingDatasetDatasetTypePtrOutput +} + +type trainingDatasetDatasetTypePtr string + +func TrainingDatasetDatasetTypePtr(v string) TrainingDatasetDatasetTypePtrInput { + return (*trainingDatasetDatasetTypePtr)(&v) +} + +func (*trainingDatasetDatasetTypePtr) ElementType() reflect.Type { + return trainingDatasetDatasetTypePtrType +} + +func (in *trainingDatasetDatasetTypePtr) ToTrainingDatasetDatasetTypePtrOutput() TrainingDatasetDatasetTypePtrOutput { + return pulumi.ToOutput(in).(TrainingDatasetDatasetTypePtrOutput) +} + +func (in *trainingDatasetDatasetTypePtr) ToTrainingDatasetDatasetTypePtrOutputWithContext(ctx context.Context) TrainingDatasetDatasetTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(TrainingDatasetDatasetTypePtrOutput) +} + +type TrainingDatasetStatus string + +const ( + TrainingDatasetStatusActive = TrainingDatasetStatus("ACTIVE") +) + +type TrainingDatasetStatusOutput struct{ *pulumi.OutputState } + +func (TrainingDatasetStatusOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TrainingDatasetStatus)(nil)).Elem() +} + +func (o TrainingDatasetStatusOutput) ToTrainingDatasetStatusOutput() TrainingDatasetStatusOutput { + return o +} + +func (o TrainingDatasetStatusOutput) ToTrainingDatasetStatusOutputWithContext(ctx context.Context) TrainingDatasetStatusOutput { + return o +} + +func (o TrainingDatasetStatusOutput) ToTrainingDatasetStatusPtrOutput() TrainingDatasetStatusPtrOutput { + return o.ToTrainingDatasetStatusPtrOutputWithContext(context.Background()) +} + +func (o TrainingDatasetStatusOutput) ToTrainingDatasetStatusPtrOutputWithContext(ctx context.Context) TrainingDatasetStatusPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TrainingDatasetStatus) *TrainingDatasetStatus { + return &v + }).(TrainingDatasetStatusPtrOutput) +} + +func (o TrainingDatasetStatusOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o TrainingDatasetStatusOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e TrainingDatasetStatus) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o TrainingDatasetStatusOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o TrainingDatasetStatusOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e TrainingDatasetStatus) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type TrainingDatasetStatusPtrOutput struct{ *pulumi.OutputState } + +func (TrainingDatasetStatusPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TrainingDatasetStatus)(nil)).Elem() +} + +func (o TrainingDatasetStatusPtrOutput) ToTrainingDatasetStatusPtrOutput() TrainingDatasetStatusPtrOutput { + return o +} + +func (o TrainingDatasetStatusPtrOutput) ToTrainingDatasetStatusPtrOutputWithContext(ctx context.Context) TrainingDatasetStatusPtrOutput { + return o +} + +func (o TrainingDatasetStatusPtrOutput) Elem() TrainingDatasetStatusOutput { + return o.ApplyT(func(v *TrainingDatasetStatus) TrainingDatasetStatus { + if v != nil { + return *v + } + var ret TrainingDatasetStatus + return ret + }).(TrainingDatasetStatusOutput) +} + +func (o TrainingDatasetStatusPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o TrainingDatasetStatusPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *TrainingDatasetStatus) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*TrainingDatasetColumnTypeInput)(nil)).Elem(), TrainingDatasetColumnType("USER_ID")) + pulumi.RegisterInputType(reflect.TypeOf((*TrainingDatasetColumnTypePtrInput)(nil)).Elem(), TrainingDatasetColumnType("USER_ID")) + pulumi.RegisterInputType(reflect.TypeOf((*TrainingDatasetColumnTypeArrayInput)(nil)).Elem(), TrainingDatasetColumnTypeArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*TrainingDatasetDatasetTypeInput)(nil)).Elem(), TrainingDatasetDatasetType("INTERACTIONS")) + pulumi.RegisterInputType(reflect.TypeOf((*TrainingDatasetDatasetTypePtrInput)(nil)).Elem(), TrainingDatasetDatasetType("INTERACTIONS")) + pulumi.RegisterOutputType(TrainingDatasetColumnTypeOutput{}) + pulumi.RegisterOutputType(TrainingDatasetColumnTypePtrOutput{}) + pulumi.RegisterOutputType(TrainingDatasetColumnTypeArrayOutput{}) + pulumi.RegisterOutputType(TrainingDatasetDatasetTypeOutput{}) + pulumi.RegisterOutputType(TrainingDatasetDatasetTypePtrOutput{}) + pulumi.RegisterOutputType(TrainingDatasetStatusOutput{}) + pulumi.RegisterOutputType(TrainingDatasetStatusPtrOutput{}) +} diff --git a/sdk/go/aws/cleanroomsml/pulumiTypes.go b/sdk/go/aws/cleanroomsml/pulumiTypes.go new file mode 100644 index 0000000000..ea2ebb9815 --- /dev/null +++ b/sdk/go/aws/cleanroomsml/pulumiTypes.go @@ -0,0 +1,401 @@ +// 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 cleanroomsml + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +var _ = internal.GetEnvOrDefault + +type TrainingDatasetColumnSchema struct { + ColumnName string `pulumi:"columnName"` + ColumnTypes []TrainingDatasetColumnType `pulumi:"columnTypes"` +} + +// TrainingDatasetColumnSchemaInput is an input type that accepts TrainingDatasetColumnSchemaArgs and TrainingDatasetColumnSchemaOutput values. +// You can construct a concrete instance of `TrainingDatasetColumnSchemaInput` via: +// +// TrainingDatasetColumnSchemaArgs{...} +type TrainingDatasetColumnSchemaInput interface { + pulumi.Input + + ToTrainingDatasetColumnSchemaOutput() TrainingDatasetColumnSchemaOutput + ToTrainingDatasetColumnSchemaOutputWithContext(context.Context) TrainingDatasetColumnSchemaOutput +} + +type TrainingDatasetColumnSchemaArgs struct { + ColumnName pulumi.StringInput `pulumi:"columnName"` + ColumnTypes TrainingDatasetColumnTypeArrayInput `pulumi:"columnTypes"` +} + +func (TrainingDatasetColumnSchemaArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TrainingDatasetColumnSchema)(nil)).Elem() +} + +func (i TrainingDatasetColumnSchemaArgs) ToTrainingDatasetColumnSchemaOutput() TrainingDatasetColumnSchemaOutput { + return i.ToTrainingDatasetColumnSchemaOutputWithContext(context.Background()) +} + +func (i TrainingDatasetColumnSchemaArgs) ToTrainingDatasetColumnSchemaOutputWithContext(ctx context.Context) TrainingDatasetColumnSchemaOutput { + return pulumi.ToOutputWithContext(ctx, i).(TrainingDatasetColumnSchemaOutput) +} + +// TrainingDatasetColumnSchemaArrayInput is an input type that accepts TrainingDatasetColumnSchemaArray and TrainingDatasetColumnSchemaArrayOutput values. +// You can construct a concrete instance of `TrainingDatasetColumnSchemaArrayInput` via: +// +// TrainingDatasetColumnSchemaArray{ TrainingDatasetColumnSchemaArgs{...} } +type TrainingDatasetColumnSchemaArrayInput interface { + pulumi.Input + + ToTrainingDatasetColumnSchemaArrayOutput() TrainingDatasetColumnSchemaArrayOutput + ToTrainingDatasetColumnSchemaArrayOutputWithContext(context.Context) TrainingDatasetColumnSchemaArrayOutput +} + +type TrainingDatasetColumnSchemaArray []TrainingDatasetColumnSchemaInput + +func (TrainingDatasetColumnSchemaArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]TrainingDatasetColumnSchema)(nil)).Elem() +} + +func (i TrainingDatasetColumnSchemaArray) ToTrainingDatasetColumnSchemaArrayOutput() TrainingDatasetColumnSchemaArrayOutput { + return i.ToTrainingDatasetColumnSchemaArrayOutputWithContext(context.Background()) +} + +func (i TrainingDatasetColumnSchemaArray) ToTrainingDatasetColumnSchemaArrayOutputWithContext(ctx context.Context) TrainingDatasetColumnSchemaArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(TrainingDatasetColumnSchemaArrayOutput) +} + +type TrainingDatasetColumnSchemaOutput struct{ *pulumi.OutputState } + +func (TrainingDatasetColumnSchemaOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TrainingDatasetColumnSchema)(nil)).Elem() +} + +func (o TrainingDatasetColumnSchemaOutput) ToTrainingDatasetColumnSchemaOutput() TrainingDatasetColumnSchemaOutput { + return o +} + +func (o TrainingDatasetColumnSchemaOutput) ToTrainingDatasetColumnSchemaOutputWithContext(ctx context.Context) TrainingDatasetColumnSchemaOutput { + return o +} + +func (o TrainingDatasetColumnSchemaOutput) ColumnName() pulumi.StringOutput { + return o.ApplyT(func(v TrainingDatasetColumnSchema) string { return v.ColumnName }).(pulumi.StringOutput) +} + +func (o TrainingDatasetColumnSchemaOutput) ColumnTypes() TrainingDatasetColumnTypeArrayOutput { + return o.ApplyT(func(v TrainingDatasetColumnSchema) []TrainingDatasetColumnType { return v.ColumnTypes }).(TrainingDatasetColumnTypeArrayOutput) +} + +type TrainingDatasetColumnSchemaArrayOutput struct{ *pulumi.OutputState } + +func (TrainingDatasetColumnSchemaArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]TrainingDatasetColumnSchema)(nil)).Elem() +} + +func (o TrainingDatasetColumnSchemaArrayOutput) ToTrainingDatasetColumnSchemaArrayOutput() TrainingDatasetColumnSchemaArrayOutput { + return o +} + +func (o TrainingDatasetColumnSchemaArrayOutput) ToTrainingDatasetColumnSchemaArrayOutputWithContext(ctx context.Context) TrainingDatasetColumnSchemaArrayOutput { + return o +} + +func (o TrainingDatasetColumnSchemaArrayOutput) Index(i pulumi.IntInput) TrainingDatasetColumnSchemaOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) TrainingDatasetColumnSchema { + return vs[0].([]TrainingDatasetColumnSchema)[vs[1].(int)] + }).(TrainingDatasetColumnSchemaOutput) +} + +type TrainingDatasetDataSource struct { + GlueDataSource TrainingDatasetGlueDataSource `pulumi:"glueDataSource"` +} + +// TrainingDatasetDataSourceInput is an input type that accepts TrainingDatasetDataSourceArgs and TrainingDatasetDataSourceOutput values. +// You can construct a concrete instance of `TrainingDatasetDataSourceInput` via: +// +// TrainingDatasetDataSourceArgs{...} +type TrainingDatasetDataSourceInput interface { + pulumi.Input + + ToTrainingDatasetDataSourceOutput() TrainingDatasetDataSourceOutput + ToTrainingDatasetDataSourceOutputWithContext(context.Context) TrainingDatasetDataSourceOutput +} + +type TrainingDatasetDataSourceArgs struct { + GlueDataSource TrainingDatasetGlueDataSourceInput `pulumi:"glueDataSource"` +} + +func (TrainingDatasetDataSourceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TrainingDatasetDataSource)(nil)).Elem() +} + +func (i TrainingDatasetDataSourceArgs) ToTrainingDatasetDataSourceOutput() TrainingDatasetDataSourceOutput { + return i.ToTrainingDatasetDataSourceOutputWithContext(context.Background()) +} + +func (i TrainingDatasetDataSourceArgs) ToTrainingDatasetDataSourceOutputWithContext(ctx context.Context) TrainingDatasetDataSourceOutput { + return pulumi.ToOutputWithContext(ctx, i).(TrainingDatasetDataSourceOutput) +} + +type TrainingDatasetDataSourceOutput struct{ *pulumi.OutputState } + +func (TrainingDatasetDataSourceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TrainingDatasetDataSource)(nil)).Elem() +} + +func (o TrainingDatasetDataSourceOutput) ToTrainingDatasetDataSourceOutput() TrainingDatasetDataSourceOutput { + return o +} + +func (o TrainingDatasetDataSourceOutput) ToTrainingDatasetDataSourceOutputWithContext(ctx context.Context) TrainingDatasetDataSourceOutput { + return o +} + +func (o TrainingDatasetDataSourceOutput) GlueDataSource() TrainingDatasetGlueDataSourceOutput { + return o.ApplyT(func(v TrainingDatasetDataSource) TrainingDatasetGlueDataSource { return v.GlueDataSource }).(TrainingDatasetGlueDataSourceOutput) +} + +type TrainingDatasetDataset struct { + InputConfig TrainingDatasetDatasetInputConfig `pulumi:"inputConfig"` + Type TrainingDatasetDatasetType `pulumi:"type"` +} + +// TrainingDatasetDatasetInput is an input type that accepts TrainingDatasetDatasetArgs and TrainingDatasetDatasetOutput values. +// You can construct a concrete instance of `TrainingDatasetDatasetInput` via: +// +// TrainingDatasetDatasetArgs{...} +type TrainingDatasetDatasetInput interface { + pulumi.Input + + ToTrainingDatasetDatasetOutput() TrainingDatasetDatasetOutput + ToTrainingDatasetDatasetOutputWithContext(context.Context) TrainingDatasetDatasetOutput +} + +type TrainingDatasetDatasetArgs struct { + InputConfig TrainingDatasetDatasetInputConfigInput `pulumi:"inputConfig"` + Type TrainingDatasetDatasetTypeInput `pulumi:"type"` +} + +func (TrainingDatasetDatasetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TrainingDatasetDataset)(nil)).Elem() +} + +func (i TrainingDatasetDatasetArgs) ToTrainingDatasetDatasetOutput() TrainingDatasetDatasetOutput { + return i.ToTrainingDatasetDatasetOutputWithContext(context.Background()) +} + +func (i TrainingDatasetDatasetArgs) ToTrainingDatasetDatasetOutputWithContext(ctx context.Context) TrainingDatasetDatasetOutput { + return pulumi.ToOutputWithContext(ctx, i).(TrainingDatasetDatasetOutput) +} + +// TrainingDatasetDatasetArrayInput is an input type that accepts TrainingDatasetDatasetArray and TrainingDatasetDatasetArrayOutput values. +// You can construct a concrete instance of `TrainingDatasetDatasetArrayInput` via: +// +// TrainingDatasetDatasetArray{ TrainingDatasetDatasetArgs{...} } +type TrainingDatasetDatasetArrayInput interface { + pulumi.Input + + ToTrainingDatasetDatasetArrayOutput() TrainingDatasetDatasetArrayOutput + ToTrainingDatasetDatasetArrayOutputWithContext(context.Context) TrainingDatasetDatasetArrayOutput +} + +type TrainingDatasetDatasetArray []TrainingDatasetDatasetInput + +func (TrainingDatasetDatasetArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]TrainingDatasetDataset)(nil)).Elem() +} + +func (i TrainingDatasetDatasetArray) ToTrainingDatasetDatasetArrayOutput() TrainingDatasetDatasetArrayOutput { + return i.ToTrainingDatasetDatasetArrayOutputWithContext(context.Background()) +} + +func (i TrainingDatasetDatasetArray) ToTrainingDatasetDatasetArrayOutputWithContext(ctx context.Context) TrainingDatasetDatasetArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(TrainingDatasetDatasetArrayOutput) +} + +type TrainingDatasetDatasetOutput struct{ *pulumi.OutputState } + +func (TrainingDatasetDatasetOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TrainingDatasetDataset)(nil)).Elem() +} + +func (o TrainingDatasetDatasetOutput) ToTrainingDatasetDatasetOutput() TrainingDatasetDatasetOutput { + return o +} + +func (o TrainingDatasetDatasetOutput) ToTrainingDatasetDatasetOutputWithContext(ctx context.Context) TrainingDatasetDatasetOutput { + return o +} + +func (o TrainingDatasetDatasetOutput) InputConfig() TrainingDatasetDatasetInputConfigOutput { + return o.ApplyT(func(v TrainingDatasetDataset) TrainingDatasetDatasetInputConfig { return v.InputConfig }).(TrainingDatasetDatasetInputConfigOutput) +} + +func (o TrainingDatasetDatasetOutput) Type() TrainingDatasetDatasetTypeOutput { + return o.ApplyT(func(v TrainingDatasetDataset) TrainingDatasetDatasetType { return v.Type }).(TrainingDatasetDatasetTypeOutput) +} + +type TrainingDatasetDatasetArrayOutput struct{ *pulumi.OutputState } + +func (TrainingDatasetDatasetArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]TrainingDatasetDataset)(nil)).Elem() +} + +func (o TrainingDatasetDatasetArrayOutput) ToTrainingDatasetDatasetArrayOutput() TrainingDatasetDatasetArrayOutput { + return o +} + +func (o TrainingDatasetDatasetArrayOutput) ToTrainingDatasetDatasetArrayOutputWithContext(ctx context.Context) TrainingDatasetDatasetArrayOutput { + return o +} + +func (o TrainingDatasetDatasetArrayOutput) Index(i pulumi.IntInput) TrainingDatasetDatasetOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) TrainingDatasetDataset { + return vs[0].([]TrainingDatasetDataset)[vs[1].(int)] + }).(TrainingDatasetDatasetOutput) +} + +type TrainingDatasetDatasetInputConfig struct { + DataSource TrainingDatasetDataSource `pulumi:"dataSource"` + Schema []TrainingDatasetColumnSchema `pulumi:"schema"` +} + +// TrainingDatasetDatasetInputConfigInput is an input type that accepts TrainingDatasetDatasetInputConfigArgs and TrainingDatasetDatasetInputConfigOutput values. +// You can construct a concrete instance of `TrainingDatasetDatasetInputConfigInput` via: +// +// TrainingDatasetDatasetInputConfigArgs{...} +type TrainingDatasetDatasetInputConfigInput interface { + pulumi.Input + + ToTrainingDatasetDatasetInputConfigOutput() TrainingDatasetDatasetInputConfigOutput + ToTrainingDatasetDatasetInputConfigOutputWithContext(context.Context) TrainingDatasetDatasetInputConfigOutput +} + +type TrainingDatasetDatasetInputConfigArgs struct { + DataSource TrainingDatasetDataSourceInput `pulumi:"dataSource"` + Schema TrainingDatasetColumnSchemaArrayInput `pulumi:"schema"` +} + +func (TrainingDatasetDatasetInputConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TrainingDatasetDatasetInputConfig)(nil)).Elem() +} + +func (i TrainingDatasetDatasetInputConfigArgs) ToTrainingDatasetDatasetInputConfigOutput() TrainingDatasetDatasetInputConfigOutput { + return i.ToTrainingDatasetDatasetInputConfigOutputWithContext(context.Background()) +} + +func (i TrainingDatasetDatasetInputConfigArgs) ToTrainingDatasetDatasetInputConfigOutputWithContext(ctx context.Context) TrainingDatasetDatasetInputConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(TrainingDatasetDatasetInputConfigOutput) +} + +type TrainingDatasetDatasetInputConfigOutput struct{ *pulumi.OutputState } + +func (TrainingDatasetDatasetInputConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TrainingDatasetDatasetInputConfig)(nil)).Elem() +} + +func (o TrainingDatasetDatasetInputConfigOutput) ToTrainingDatasetDatasetInputConfigOutput() TrainingDatasetDatasetInputConfigOutput { + return o +} + +func (o TrainingDatasetDatasetInputConfigOutput) ToTrainingDatasetDatasetInputConfigOutputWithContext(ctx context.Context) TrainingDatasetDatasetInputConfigOutput { + return o +} + +func (o TrainingDatasetDatasetInputConfigOutput) DataSource() TrainingDatasetDataSourceOutput { + return o.ApplyT(func(v TrainingDatasetDatasetInputConfig) TrainingDatasetDataSource { return v.DataSource }).(TrainingDatasetDataSourceOutput) +} + +func (o TrainingDatasetDatasetInputConfigOutput) Schema() TrainingDatasetColumnSchemaArrayOutput { + return o.ApplyT(func(v TrainingDatasetDatasetInputConfig) []TrainingDatasetColumnSchema { return v.Schema }).(TrainingDatasetColumnSchemaArrayOutput) +} + +type TrainingDatasetGlueDataSource struct { + CatalogId *string `pulumi:"catalogId"` + DatabaseName string `pulumi:"databaseName"` + TableName string `pulumi:"tableName"` +} + +// TrainingDatasetGlueDataSourceInput is an input type that accepts TrainingDatasetGlueDataSourceArgs and TrainingDatasetGlueDataSourceOutput values. +// You can construct a concrete instance of `TrainingDatasetGlueDataSourceInput` via: +// +// TrainingDatasetGlueDataSourceArgs{...} +type TrainingDatasetGlueDataSourceInput interface { + pulumi.Input + + ToTrainingDatasetGlueDataSourceOutput() TrainingDatasetGlueDataSourceOutput + ToTrainingDatasetGlueDataSourceOutputWithContext(context.Context) TrainingDatasetGlueDataSourceOutput +} + +type TrainingDatasetGlueDataSourceArgs struct { + CatalogId pulumi.StringPtrInput `pulumi:"catalogId"` + DatabaseName pulumi.StringInput `pulumi:"databaseName"` + TableName pulumi.StringInput `pulumi:"tableName"` +} + +func (TrainingDatasetGlueDataSourceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TrainingDatasetGlueDataSource)(nil)).Elem() +} + +func (i TrainingDatasetGlueDataSourceArgs) ToTrainingDatasetGlueDataSourceOutput() TrainingDatasetGlueDataSourceOutput { + return i.ToTrainingDatasetGlueDataSourceOutputWithContext(context.Background()) +} + +func (i TrainingDatasetGlueDataSourceArgs) ToTrainingDatasetGlueDataSourceOutputWithContext(ctx context.Context) TrainingDatasetGlueDataSourceOutput { + return pulumi.ToOutputWithContext(ctx, i).(TrainingDatasetGlueDataSourceOutput) +} + +type TrainingDatasetGlueDataSourceOutput struct{ *pulumi.OutputState } + +func (TrainingDatasetGlueDataSourceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TrainingDatasetGlueDataSource)(nil)).Elem() +} + +func (o TrainingDatasetGlueDataSourceOutput) ToTrainingDatasetGlueDataSourceOutput() TrainingDatasetGlueDataSourceOutput { + return o +} + +func (o TrainingDatasetGlueDataSourceOutput) ToTrainingDatasetGlueDataSourceOutputWithContext(ctx context.Context) TrainingDatasetGlueDataSourceOutput { + return o +} + +func (o TrainingDatasetGlueDataSourceOutput) CatalogId() pulumi.StringPtrOutput { + return o.ApplyT(func(v TrainingDatasetGlueDataSource) *string { return v.CatalogId }).(pulumi.StringPtrOutput) +} + +func (o TrainingDatasetGlueDataSourceOutput) DatabaseName() pulumi.StringOutput { + return o.ApplyT(func(v TrainingDatasetGlueDataSource) string { return v.DatabaseName }).(pulumi.StringOutput) +} + +func (o TrainingDatasetGlueDataSourceOutput) TableName() pulumi.StringOutput { + return o.ApplyT(func(v TrainingDatasetGlueDataSource) string { return v.TableName }).(pulumi.StringOutput) +} + +type TrainingDatasetTag struct { + Key string `pulumi:"key"` + Value string `pulumi:"value"` +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*TrainingDatasetColumnSchemaInput)(nil)).Elem(), TrainingDatasetColumnSchemaArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TrainingDatasetColumnSchemaArrayInput)(nil)).Elem(), TrainingDatasetColumnSchemaArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*TrainingDatasetDataSourceInput)(nil)).Elem(), TrainingDatasetDataSourceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TrainingDatasetDatasetInput)(nil)).Elem(), TrainingDatasetDatasetArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TrainingDatasetDatasetArrayInput)(nil)).Elem(), TrainingDatasetDatasetArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*TrainingDatasetDatasetInputConfigInput)(nil)).Elem(), TrainingDatasetDatasetInputConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TrainingDatasetGlueDataSourceInput)(nil)).Elem(), TrainingDatasetGlueDataSourceArgs{}) + pulumi.RegisterOutputType(TrainingDatasetColumnSchemaOutput{}) + pulumi.RegisterOutputType(TrainingDatasetColumnSchemaArrayOutput{}) + pulumi.RegisterOutputType(TrainingDatasetDataSourceOutput{}) + pulumi.RegisterOutputType(TrainingDatasetDatasetOutput{}) + pulumi.RegisterOutputType(TrainingDatasetDatasetArrayOutput{}) + pulumi.RegisterOutputType(TrainingDatasetDatasetInputConfigOutput{}) + pulumi.RegisterOutputType(TrainingDatasetGlueDataSourceOutput{}) +} diff --git a/sdk/go/aws/cleanroomsml/trainingDataset.go b/sdk/go/aws/cleanroomsml/trainingDataset.go new file mode 100644 index 0000000000..bb6f3368c8 --- /dev/null +++ b/sdk/go/aws/cleanroomsml/trainingDataset.go @@ -0,0 +1,170 @@ +// 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 cleanroomsml + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws-native/sdk/go/aws" + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Definition of AWS::CleanRoomsML::TrainingDataset Resource Type +type TrainingDataset struct { + pulumi.CustomResourceState + + Description pulumi.StringPtrOutput `pulumi:"description"` + Name pulumi.StringOutput `pulumi:"name"` + RoleArn pulumi.StringOutput `pulumi:"roleArn"` + Status TrainingDatasetStatusOutput `pulumi:"status"` + // An arbitrary set of tags (key-value pairs) for this cleanrooms-ml training dataset. + Tags aws.TagArrayOutput `pulumi:"tags"` + TrainingData TrainingDatasetDatasetArrayOutput `pulumi:"trainingData"` + TrainingDatasetArn pulumi.StringOutput `pulumi:"trainingDatasetArn"` +} + +// NewTrainingDataset registers a new resource with the given unique name, arguments, and options. +func NewTrainingDataset(ctx *pulumi.Context, + name string, args *TrainingDatasetArgs, opts ...pulumi.ResourceOption) (*TrainingDataset, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.RoleArn == nil { + return nil, errors.New("invalid value for required argument 'RoleArn'") + } + if args.TrainingData == nil { + return nil, errors.New("invalid value for required argument 'TrainingData'") + } + replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "description", + "name", + "roleArn", + "trainingData[*]", + }) + opts = append(opts, replaceOnChanges) + opts = internal.PkgResourceDefaultOpts(opts) + var resource TrainingDataset + err := ctx.RegisterResource("aws-native:cleanroomsml:TrainingDataset", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetTrainingDataset gets an existing TrainingDataset 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 GetTrainingDataset(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *TrainingDatasetState, opts ...pulumi.ResourceOption) (*TrainingDataset, error) { + var resource TrainingDataset + err := ctx.ReadResource("aws-native:cleanroomsml:TrainingDataset", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering TrainingDataset resources. +type trainingDatasetState struct { +} + +type TrainingDatasetState struct { +} + +func (TrainingDatasetState) ElementType() reflect.Type { + return reflect.TypeOf((*trainingDatasetState)(nil)).Elem() +} + +type trainingDatasetArgs struct { + Description *string `pulumi:"description"` + Name *string `pulumi:"name"` + RoleArn string `pulumi:"roleArn"` + // An arbitrary set of tags (key-value pairs) for this cleanrooms-ml training dataset. + Tags []aws.Tag `pulumi:"tags"` + TrainingData []TrainingDatasetDataset `pulumi:"trainingData"` +} + +// The set of arguments for constructing a TrainingDataset resource. +type TrainingDatasetArgs struct { + Description pulumi.StringPtrInput + Name pulumi.StringPtrInput + RoleArn pulumi.StringInput + // An arbitrary set of tags (key-value pairs) for this cleanrooms-ml training dataset. + Tags aws.TagArrayInput + TrainingData TrainingDatasetDatasetArrayInput +} + +func (TrainingDatasetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*trainingDatasetArgs)(nil)).Elem() +} + +type TrainingDatasetInput interface { + pulumi.Input + + ToTrainingDatasetOutput() TrainingDatasetOutput + ToTrainingDatasetOutputWithContext(ctx context.Context) TrainingDatasetOutput +} + +func (*TrainingDataset) ElementType() reflect.Type { + return reflect.TypeOf((**TrainingDataset)(nil)).Elem() +} + +func (i *TrainingDataset) ToTrainingDatasetOutput() TrainingDatasetOutput { + return i.ToTrainingDatasetOutputWithContext(context.Background()) +} + +func (i *TrainingDataset) ToTrainingDatasetOutputWithContext(ctx context.Context) TrainingDatasetOutput { + return pulumi.ToOutputWithContext(ctx, i).(TrainingDatasetOutput) +} + +type TrainingDatasetOutput struct{ *pulumi.OutputState } + +func (TrainingDatasetOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TrainingDataset)(nil)).Elem() +} + +func (o TrainingDatasetOutput) ToTrainingDatasetOutput() TrainingDatasetOutput { + return o +} + +func (o TrainingDatasetOutput) ToTrainingDatasetOutputWithContext(ctx context.Context) TrainingDatasetOutput { + return o +} + +func (o TrainingDatasetOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TrainingDataset) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +func (o TrainingDatasetOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *TrainingDataset) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +func (o TrainingDatasetOutput) RoleArn() pulumi.StringOutput { + return o.ApplyT(func(v *TrainingDataset) pulumi.StringOutput { return v.RoleArn }).(pulumi.StringOutput) +} + +func (o TrainingDatasetOutput) Status() TrainingDatasetStatusOutput { + return o.ApplyT(func(v *TrainingDataset) TrainingDatasetStatusOutput { return v.Status }).(TrainingDatasetStatusOutput) +} + +// An arbitrary set of tags (key-value pairs) for this cleanrooms-ml training dataset. +func (o TrainingDatasetOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v *TrainingDataset) aws.TagArrayOutput { return v.Tags }).(aws.TagArrayOutput) +} + +func (o TrainingDatasetOutput) TrainingData() TrainingDatasetDatasetArrayOutput { + return o.ApplyT(func(v *TrainingDataset) TrainingDatasetDatasetArrayOutput { return v.TrainingData }).(TrainingDatasetDatasetArrayOutput) +} + +func (o TrainingDatasetOutput) TrainingDatasetArn() pulumi.StringOutput { + return o.ApplyT(func(v *TrainingDataset) pulumi.StringOutput { return v.TrainingDatasetArn }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*TrainingDatasetInput)(nil)).Elem(), &TrainingDataset{}) + pulumi.RegisterOutputType(TrainingDatasetOutput{}) +} 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/cloudwatch/alarm.go b/sdk/go/aws/cloudwatch/alarm.go index d9ac02a0c1..4fa11ec459 100644 --- a/sdk/go/aws/cloudwatch/alarm.go +++ b/sdk/go/aws/cloudwatch/alarm.go @@ -8,57 +8,74 @@ import ( "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::CloudWatch::Alarm +// The “AWS::CloudWatch::Alarm“ type specifies an alarm and associates it with the specified metric or metric math expression. +// +// When this operation creates an alarm, the alarm state is immediately set to ``INSUFFICIENT_DATA``. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed. +// When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm. type Alarm struct { pulumi.CustomResourceState // Indicates whether actions should be executed during any changes to the alarm state. The default is TRUE. ActionsEnabled pulumi.BoolPtrOutput `pulumi:"actionsEnabled"` - // The list of actions to execute when this alarm transitions into an ALARM state from any other state. + // The list of actions to execute when this alarm transitions into an ALARM state from any other state. Specify each action as an Amazon Resource Name (ARN). For more information about creating alarms and the actions that you can specify, see [PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html) in the *API Reference*. AlarmActions pulumi.StringArrayOutput `pulumi:"alarmActions"` // The description of the alarm. AlarmDescription pulumi.StringPtrOutput `pulumi:"alarmDescription"` - // The name of the alarm. + // The name of the alarm. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the alarm name. + // 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. AlarmName pulumi.StringPtrOutput `pulumi:"alarmName"` - // Amazon Resource Name is a unique name for each resource. - Arn pulumi.StringOutput `pulumi:"arn"` - // The arithmetic operation to use when comparing the specified statistic and threshold. + Arn pulumi.StringOutput `pulumi:"arn"` + // The arithmetic operation to use when comparing the specified statistic and threshold. The specified statistic value is used as the first operand. ComparisonOperator pulumi.StringOutput `pulumi:"comparisonOperator"` - // The number of datapoints that must be breaching to trigger the alarm. + // The number of datapoints that must be breaching to trigger the alarm. This is used only if you are setting an "M out of N" alarm. In that case, this value is the M, and the value that you set for ``EvaluationPeriods`` is the N value. For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*. + // If you omit this parameter, CW uses the same value here that you set for ``EvaluationPeriods``, and the alarm goes to alarm state if that many consecutive periods are breaching. DatapointsToAlarm pulumi.IntPtrOutput `pulumi:"datapointsToAlarm"` - // The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify Dimensions. Instead, you use Metrics. + // The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify ``Dimensions``. Instead, you use ``Metrics``. Dimensions AlarmDimensionArrayOutput `pulumi:"dimensions"` - // Used only for alarms based on percentiles. + // Used only for alarms based on percentiles. If ``ignore``, the alarm state does not change during periods with too few data points to be statistically significant. If ``evaluate`` or this parameter is not used, the alarm is always evaluated and possibly changes state no matter how many data points are available. EvaluateLowSampleCountPercentile pulumi.StringPtrOutput `pulumi:"evaluateLowSampleCountPercentile"` - // The number of periods over which data is compared to the specified threshold. + // The number of periods over which data is compared to the specified threshold. If you are setting an alarm that requires that a number of consecutive data points be breaching to trigger the alarm, this value specifies that number. If you are setting an "M out of N" alarm, this value is the N, and ``DatapointsToAlarm`` is the M. + // For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*. EvaluationPeriods pulumi.IntOutput `pulumi:"evaluationPeriods"` // The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100. + // For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both. + // For an alarm based on a math expression, you can't specify ``ExtendedStatistic``. Instead, you use ``Metrics``. ExtendedStatistic pulumi.StringPtrOutput `pulumi:"extendedStatistic"` - // The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state. + // The actions to execute when this alarm transitions to the ``INSUFFICIENT_DATA`` state from any other state. Each action is specified as an Amazon Resource Name (ARN). InsufficientDataActions pulumi.StringArrayOutput `pulumi:"insufficientDataActions"` - // The name of the metric associated with the alarm. + // The name of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you use ``Metrics`` instead and you can't specify ``MetricName``. MetricName pulumi.StringPtrOutput `pulumi:"metricName"` - // An array that enables you to create an alarm based on the result of a metric math expression. + // An array that enables you to create an alarm based on the result of a metric math expression. Each item in the array either retrieves a metric or performs a math expression. + // If you specify the ``Metrics`` parameter, you cannot specify ``MetricName``, ``Dimensions``, ``Period``, ``Namespace``, ``Statistic``, ``ExtendedStatistic``, or ``Unit``. Metrics AlarmMetricDataQueryArrayOutput `pulumi:"metrics"` - // The namespace of the metric associated with the alarm. + // The namespace of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you can't specify ``Namespace`` and you use ``Metrics`` instead. + // For a list of namespaces for metrics from AWS services, see [Services That Publish Metrics.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) Namespace pulumi.StringPtrOutput `pulumi:"namespace"` - // The actions to execute when this alarm transitions to the OK state from any other state. + // The actions to execute when this alarm transitions to the ``OK`` state from any other state. Each action is specified as an Amazon Resource Name (ARN). OkActions pulumi.StringArrayOutput `pulumi:"okActions"` - // The period in seconds, over which the statistic is applied. + // The period, in seconds, over which the statistic is applied. This is required for an alarm based on a metric. Valid values are 10, 30, 60, and any multiple of 60. + // For an alarm based on a math expression, you can't specify ``Period``, and instead you use the ``Metrics`` parameter. + // *Minimum:* 10 Period pulumi.IntPtrOutput `pulumi:"period"` - // The statistic for the metric associated with the alarm, other than percentile. + // The statistic for the metric associated with the alarm, other than percentile. For percentile statistics, use ``ExtendedStatistic``. + // For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both. + // For an alarm based on a math expression, you can't specify ``Statistic``. Instead, you use ``Metrics``. Statistic pulumi.StringPtrOutput `pulumi:"statistic"` - // In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm. + Tags aws.TagArrayOutput `pulumi:"tags"` + // The value to compare with the specified statistic. Threshold pulumi.Float64PtrOutput `pulumi:"threshold"` - // In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm. + // In an alarm based on an anomaly detection model, this is the ID of the ``ANOMALY_DETECTION_BAND`` function used as the threshold for the alarm. ThresholdMetricId pulumi.StringPtrOutput `pulumi:"thresholdMetricId"` - // Sets how this alarm is to handle missing data points. Valid values are breaching, notBreaching, ignore, and missing. + // Sets how this alarm is to handle missing data points. Valid values are ``breaching``, ``notBreaching``, ``ignore``, and ``missing``. For more information, see [Configuring How Alarms Treat Missing Data](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data) in the *Amazon User Guide*. + // If you omit this parameter, the default behavior of ``missing`` is used. TreatMissingData pulumi.StringPtrOutput `pulumi:"treatMissingData"` - // The unit of the metric associated with the alarm. + // The unit of the metric associated with the alarm. Specify this only if you are creating an alarm based on a single metric. Do not specify this if you are specifying a ``Metrics`` array. + // You can specify the following values: 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, or None. Unit pulumi.StringPtrOutput `pulumi:"unit"` } @@ -114,45 +131,59 @@ func (AlarmState) ElementType() reflect.Type { type alarmArgs struct { // Indicates whether actions should be executed during any changes to the alarm state. The default is TRUE. ActionsEnabled *bool `pulumi:"actionsEnabled"` - // The list of actions to execute when this alarm transitions into an ALARM state from any other state. + // The list of actions to execute when this alarm transitions into an ALARM state from any other state. Specify each action as an Amazon Resource Name (ARN). For more information about creating alarms and the actions that you can specify, see [PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html) in the *API Reference*. AlarmActions []string `pulumi:"alarmActions"` // The description of the alarm. AlarmDescription *string `pulumi:"alarmDescription"` - // The name of the alarm. + // The name of the alarm. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the alarm name. + // 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. AlarmName *string `pulumi:"alarmName"` - // The arithmetic operation to use when comparing the specified statistic and threshold. + // The arithmetic operation to use when comparing the specified statistic and threshold. The specified statistic value is used as the first operand. ComparisonOperator string `pulumi:"comparisonOperator"` - // The number of datapoints that must be breaching to trigger the alarm. + // The number of datapoints that must be breaching to trigger the alarm. This is used only if you are setting an "M out of N" alarm. In that case, this value is the M, and the value that you set for ``EvaluationPeriods`` is the N value. For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*. + // If you omit this parameter, CW uses the same value here that you set for ``EvaluationPeriods``, and the alarm goes to alarm state if that many consecutive periods are breaching. DatapointsToAlarm *int `pulumi:"datapointsToAlarm"` - // The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify Dimensions. Instead, you use Metrics. + // The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify ``Dimensions``. Instead, you use ``Metrics``. Dimensions []AlarmDimension `pulumi:"dimensions"` - // Used only for alarms based on percentiles. + // Used only for alarms based on percentiles. If ``ignore``, the alarm state does not change during periods with too few data points to be statistically significant. If ``evaluate`` or this parameter is not used, the alarm is always evaluated and possibly changes state no matter how many data points are available. EvaluateLowSampleCountPercentile *string `pulumi:"evaluateLowSampleCountPercentile"` - // The number of periods over which data is compared to the specified threshold. + // The number of periods over which data is compared to the specified threshold. If you are setting an alarm that requires that a number of consecutive data points be breaching to trigger the alarm, this value specifies that number. If you are setting an "M out of N" alarm, this value is the N, and ``DatapointsToAlarm`` is the M. + // For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*. EvaluationPeriods int `pulumi:"evaluationPeriods"` // The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100. + // For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both. + // For an alarm based on a math expression, you can't specify ``ExtendedStatistic``. Instead, you use ``Metrics``. ExtendedStatistic *string `pulumi:"extendedStatistic"` - // The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state. + // The actions to execute when this alarm transitions to the ``INSUFFICIENT_DATA`` state from any other state. Each action is specified as an Amazon Resource Name (ARN). InsufficientDataActions []string `pulumi:"insufficientDataActions"` - // The name of the metric associated with the alarm. + // The name of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you use ``Metrics`` instead and you can't specify ``MetricName``. MetricName *string `pulumi:"metricName"` - // An array that enables you to create an alarm based on the result of a metric math expression. + // An array that enables you to create an alarm based on the result of a metric math expression. Each item in the array either retrieves a metric or performs a math expression. + // If you specify the ``Metrics`` parameter, you cannot specify ``MetricName``, ``Dimensions``, ``Period``, ``Namespace``, ``Statistic``, ``ExtendedStatistic``, or ``Unit``. Metrics []AlarmMetricDataQuery `pulumi:"metrics"` - // The namespace of the metric associated with the alarm. + // The namespace of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you can't specify ``Namespace`` and you use ``Metrics`` instead. + // For a list of namespaces for metrics from AWS services, see [Services That Publish Metrics.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) Namespace *string `pulumi:"namespace"` - // The actions to execute when this alarm transitions to the OK state from any other state. + // The actions to execute when this alarm transitions to the ``OK`` state from any other state. Each action is specified as an Amazon Resource Name (ARN). OkActions []string `pulumi:"okActions"` - // The period in seconds, over which the statistic is applied. + // The period, in seconds, over which the statistic is applied. This is required for an alarm based on a metric. Valid values are 10, 30, 60, and any multiple of 60. + // For an alarm based on a math expression, you can't specify ``Period``, and instead you use the ``Metrics`` parameter. + // *Minimum:* 10 Period *int `pulumi:"period"` - // The statistic for the metric associated with the alarm, other than percentile. - Statistic *string `pulumi:"statistic"` - // In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm. + // The statistic for the metric associated with the alarm, other than percentile. For percentile statistics, use ``ExtendedStatistic``. + // For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both. + // For an alarm based on a math expression, you can't specify ``Statistic``. Instead, you use ``Metrics``. + Statistic *string `pulumi:"statistic"` + Tags []aws.Tag `pulumi:"tags"` + // The value to compare with the specified statistic. Threshold *float64 `pulumi:"threshold"` - // In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm. + // In an alarm based on an anomaly detection model, this is the ID of the ``ANOMALY_DETECTION_BAND`` function used as the threshold for the alarm. ThresholdMetricId *string `pulumi:"thresholdMetricId"` - // Sets how this alarm is to handle missing data points. Valid values are breaching, notBreaching, ignore, and missing. + // Sets how this alarm is to handle missing data points. Valid values are ``breaching``, ``notBreaching``, ``ignore``, and ``missing``. For more information, see [Configuring How Alarms Treat Missing Data](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data) in the *Amazon User Guide*. + // If you omit this parameter, the default behavior of ``missing`` is used. TreatMissingData *string `pulumi:"treatMissingData"` - // The unit of the metric associated with the alarm. + // The unit of the metric associated with the alarm. Specify this only if you are creating an alarm based on a single metric. Do not specify this if you are specifying a ``Metrics`` array. + // You can specify the following values: 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, or None. Unit *string `pulumi:"unit"` } @@ -160,45 +191,59 @@ type alarmArgs struct { type AlarmArgs struct { // Indicates whether actions should be executed during any changes to the alarm state. The default is TRUE. ActionsEnabled pulumi.BoolPtrInput - // The list of actions to execute when this alarm transitions into an ALARM state from any other state. + // The list of actions to execute when this alarm transitions into an ALARM state from any other state. Specify each action as an Amazon Resource Name (ARN). For more information about creating alarms and the actions that you can specify, see [PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html) in the *API Reference*. AlarmActions pulumi.StringArrayInput // The description of the alarm. AlarmDescription pulumi.StringPtrInput - // The name of the alarm. + // The name of the alarm. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the alarm name. + // 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. AlarmName pulumi.StringPtrInput - // The arithmetic operation to use when comparing the specified statistic and threshold. + // The arithmetic operation to use when comparing the specified statistic and threshold. The specified statistic value is used as the first operand. ComparisonOperator pulumi.StringInput - // The number of datapoints that must be breaching to trigger the alarm. + // The number of datapoints that must be breaching to trigger the alarm. This is used only if you are setting an "M out of N" alarm. In that case, this value is the M, and the value that you set for ``EvaluationPeriods`` is the N value. For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*. + // If you omit this parameter, CW uses the same value here that you set for ``EvaluationPeriods``, and the alarm goes to alarm state if that many consecutive periods are breaching. DatapointsToAlarm pulumi.IntPtrInput - // The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify Dimensions. Instead, you use Metrics. + // The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify ``Dimensions``. Instead, you use ``Metrics``. Dimensions AlarmDimensionArrayInput - // Used only for alarms based on percentiles. + // Used only for alarms based on percentiles. If ``ignore``, the alarm state does not change during periods with too few data points to be statistically significant. If ``evaluate`` or this parameter is not used, the alarm is always evaluated and possibly changes state no matter how many data points are available. EvaluateLowSampleCountPercentile pulumi.StringPtrInput - // The number of periods over which data is compared to the specified threshold. + // The number of periods over which data is compared to the specified threshold. If you are setting an alarm that requires that a number of consecutive data points be breaching to trigger the alarm, this value specifies that number. If you are setting an "M out of N" alarm, this value is the N, and ``DatapointsToAlarm`` is the M. + // For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*. EvaluationPeriods pulumi.IntInput // The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100. + // For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both. + // For an alarm based on a math expression, you can't specify ``ExtendedStatistic``. Instead, you use ``Metrics``. ExtendedStatistic pulumi.StringPtrInput - // The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state. + // The actions to execute when this alarm transitions to the ``INSUFFICIENT_DATA`` state from any other state. Each action is specified as an Amazon Resource Name (ARN). InsufficientDataActions pulumi.StringArrayInput - // The name of the metric associated with the alarm. + // The name of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you use ``Metrics`` instead and you can't specify ``MetricName``. MetricName pulumi.StringPtrInput - // An array that enables you to create an alarm based on the result of a metric math expression. + // An array that enables you to create an alarm based on the result of a metric math expression. Each item in the array either retrieves a metric or performs a math expression. + // If you specify the ``Metrics`` parameter, you cannot specify ``MetricName``, ``Dimensions``, ``Period``, ``Namespace``, ``Statistic``, ``ExtendedStatistic``, or ``Unit``. Metrics AlarmMetricDataQueryArrayInput - // The namespace of the metric associated with the alarm. + // The namespace of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you can't specify ``Namespace`` and you use ``Metrics`` instead. + // For a list of namespaces for metrics from AWS services, see [Services That Publish Metrics.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) Namespace pulumi.StringPtrInput - // The actions to execute when this alarm transitions to the OK state from any other state. + // The actions to execute when this alarm transitions to the ``OK`` state from any other state. Each action is specified as an Amazon Resource Name (ARN). OkActions pulumi.StringArrayInput - // The period in seconds, over which the statistic is applied. + // The period, in seconds, over which the statistic is applied. This is required for an alarm based on a metric. Valid values are 10, 30, 60, and any multiple of 60. + // For an alarm based on a math expression, you can't specify ``Period``, and instead you use the ``Metrics`` parameter. + // *Minimum:* 10 Period pulumi.IntPtrInput - // The statistic for the metric associated with the alarm, other than percentile. + // The statistic for the metric associated with the alarm, other than percentile. For percentile statistics, use ``ExtendedStatistic``. + // For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both. + // For an alarm based on a math expression, you can't specify ``Statistic``. Instead, you use ``Metrics``. Statistic pulumi.StringPtrInput - // In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm. + Tags aws.TagArrayInput + // The value to compare with the specified statistic. Threshold pulumi.Float64PtrInput - // In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm. + // In an alarm based on an anomaly detection model, this is the ID of the ``ANOMALY_DETECTION_BAND`` function used as the threshold for the alarm. ThresholdMetricId pulumi.StringPtrInput - // Sets how this alarm is to handle missing data points. Valid values are breaching, notBreaching, ignore, and missing. + // Sets how this alarm is to handle missing data points. Valid values are ``breaching``, ``notBreaching``, ``ignore``, and ``missing``. For more information, see [Configuring How Alarms Treat Missing Data](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data) in the *Amazon User Guide*. + // If you omit this parameter, the default behavior of ``missing`` is used. TreatMissingData pulumi.StringPtrInput - // The unit of the metric associated with the alarm. + // The unit of the metric associated with the alarm. Specify this only if you are creating an alarm based on a single metric. Do not specify this if you are specifying a ``Metrics`` array. + // You can specify the following values: 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, or None. Unit pulumi.StringPtrInput } @@ -244,7 +289,7 @@ func (o AlarmOutput) ActionsEnabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v *Alarm) pulumi.BoolPtrOutput { return v.ActionsEnabled }).(pulumi.BoolPtrOutput) } -// The list of actions to execute when this alarm transitions into an ALARM state from any other state. +// The list of actions to execute when this alarm transitions into an ALARM state from any other state. Specify each action as an Amazon Resource Name (ARN). For more information about creating alarms and the actions that you can specify, see [PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html) in the *API Reference*. func (o AlarmOutput) AlarmActions() pulumi.StringArrayOutput { return o.ApplyT(func(v *Alarm) pulumi.StringArrayOutput { return v.AlarmActions }).(pulumi.StringArrayOutput) } @@ -254,97 +299,123 @@ func (o AlarmOutput) AlarmDescription() pulumi.StringPtrOutput { return o.ApplyT(func(v *Alarm) pulumi.StringPtrOutput { return v.AlarmDescription }).(pulumi.StringPtrOutput) } -// The name of the alarm. +// The name of the alarm. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the alarm name. +// +// 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. func (o AlarmOutput) AlarmName() pulumi.StringPtrOutput { return o.ApplyT(func(v *Alarm) pulumi.StringPtrOutput { return v.AlarmName }).(pulumi.StringPtrOutput) } -// Amazon Resource Name is a unique name for each resource. func (o AlarmOutput) Arn() pulumi.StringOutput { return o.ApplyT(func(v *Alarm) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) } -// The arithmetic operation to use when comparing the specified statistic and threshold. +// The arithmetic operation to use when comparing the specified statistic and threshold. The specified statistic value is used as the first operand. func (o AlarmOutput) ComparisonOperator() pulumi.StringOutput { return o.ApplyT(func(v *Alarm) pulumi.StringOutput { return v.ComparisonOperator }).(pulumi.StringOutput) } -// The number of datapoints that must be breaching to trigger the alarm. +// The number of datapoints that must be breaching to trigger the alarm. This is used only if you are setting an "M out of N" alarm. In that case, this value is the M, and the value that you set for “EvaluationPeriods“ is the N value. For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*. +// +// If you omit this parameter, CW uses the same value here that you set for ``EvaluationPeriods``, and the alarm goes to alarm state if that many consecutive periods are breaching. func (o AlarmOutput) DatapointsToAlarm() pulumi.IntPtrOutput { return o.ApplyT(func(v *Alarm) pulumi.IntPtrOutput { return v.DatapointsToAlarm }).(pulumi.IntPtrOutput) } -// The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify Dimensions. Instead, you use Metrics. +// The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify “Dimensions“. Instead, you use “Metrics“. func (o AlarmOutput) Dimensions() AlarmDimensionArrayOutput { return o.ApplyT(func(v *Alarm) AlarmDimensionArrayOutput { return v.Dimensions }).(AlarmDimensionArrayOutput) } -// Used only for alarms based on percentiles. +// Used only for alarms based on percentiles. If “ignore“, the alarm state does not change during periods with too few data points to be statistically significant. If “evaluate“ or this parameter is not used, the alarm is always evaluated and possibly changes state no matter how many data points are available. func (o AlarmOutput) EvaluateLowSampleCountPercentile() pulumi.StringPtrOutput { return o.ApplyT(func(v *Alarm) pulumi.StringPtrOutput { return v.EvaluateLowSampleCountPercentile }).(pulumi.StringPtrOutput) } -// The number of periods over which data is compared to the specified threshold. +// The number of periods over which data is compared to the specified threshold. If you are setting an alarm that requires that a number of consecutive data points be breaching to trigger the alarm, this value specifies that number. If you are setting an "M out of N" alarm, this value is the N, and “DatapointsToAlarm“ is the M. +// +// For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*. func (o AlarmOutput) EvaluationPeriods() pulumi.IntOutput { return o.ApplyT(func(v *Alarm) pulumi.IntOutput { return v.EvaluationPeriods }).(pulumi.IntOutput) } // The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100. +// +// For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both. +// For an alarm based on a math expression, you can't specify ``ExtendedStatistic``. Instead, you use ``Metrics``. func (o AlarmOutput) ExtendedStatistic() pulumi.StringPtrOutput { return o.ApplyT(func(v *Alarm) pulumi.StringPtrOutput { return v.ExtendedStatistic }).(pulumi.StringPtrOutput) } -// The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state. +// The actions to execute when this alarm transitions to the “INSUFFICIENT_DATA“ state from any other state. Each action is specified as an Amazon Resource Name (ARN). func (o AlarmOutput) InsufficientDataActions() pulumi.StringArrayOutput { return o.ApplyT(func(v *Alarm) pulumi.StringArrayOutput { return v.InsufficientDataActions }).(pulumi.StringArrayOutput) } -// The name of the metric associated with the alarm. +// The name of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you use “Metrics“ instead and you can't specify “MetricName“. func (o AlarmOutput) MetricName() pulumi.StringPtrOutput { return o.ApplyT(func(v *Alarm) pulumi.StringPtrOutput { return v.MetricName }).(pulumi.StringPtrOutput) } -// An array that enables you to create an alarm based on the result of a metric math expression. +// An array that enables you to create an alarm based on the result of a metric math expression. Each item in the array either retrieves a metric or performs a math expression. +// +// If you specify the ``Metrics`` parameter, you cannot specify ``MetricName``, ``Dimensions``, ``Period``, ``Namespace``, ``Statistic``, ``ExtendedStatistic``, or ``Unit``. func (o AlarmOutput) Metrics() AlarmMetricDataQueryArrayOutput { return o.ApplyT(func(v *Alarm) AlarmMetricDataQueryArrayOutput { return v.Metrics }).(AlarmMetricDataQueryArrayOutput) } -// The namespace of the metric associated with the alarm. +// The namespace of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you can't specify “Namespace“ and you use “Metrics“ instead. +// +// For a list of namespaces for metrics from AWS services, see [Services That Publish Metrics.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) func (o AlarmOutput) Namespace() pulumi.StringPtrOutput { return o.ApplyT(func(v *Alarm) pulumi.StringPtrOutput { return v.Namespace }).(pulumi.StringPtrOutput) } -// The actions to execute when this alarm transitions to the OK state from any other state. +// The actions to execute when this alarm transitions to the “OK“ state from any other state. Each action is specified as an Amazon Resource Name (ARN). func (o AlarmOutput) OkActions() pulumi.StringArrayOutput { return o.ApplyT(func(v *Alarm) pulumi.StringArrayOutput { return v.OkActions }).(pulumi.StringArrayOutput) } -// The period in seconds, over which the statistic is applied. +// The period, in seconds, over which the statistic is applied. This is required for an alarm based on a metric. Valid values are 10, 30, 60, and any multiple of 60. +// +// For an alarm based on a math expression, you can't specify ``Period``, and instead you use the ``Metrics`` parameter. +// *Minimum:* 10 func (o AlarmOutput) Period() pulumi.IntPtrOutput { return o.ApplyT(func(v *Alarm) pulumi.IntPtrOutput { return v.Period }).(pulumi.IntPtrOutput) } -// The statistic for the metric associated with the alarm, other than percentile. +// The statistic for the metric associated with the alarm, other than percentile. For percentile statistics, use “ExtendedStatistic“. +// +// For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both. +// For an alarm based on a math expression, you can't specify ``Statistic``. Instead, you use ``Metrics``. func (o AlarmOutput) Statistic() pulumi.StringPtrOutput { return o.ApplyT(func(v *Alarm) pulumi.StringPtrOutput { return v.Statistic }).(pulumi.StringPtrOutput) } -// In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm. +func (o AlarmOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v *Alarm) aws.TagArrayOutput { return v.Tags }).(aws.TagArrayOutput) +} + +// The value to compare with the specified statistic. func (o AlarmOutput) Threshold() pulumi.Float64PtrOutput { return o.ApplyT(func(v *Alarm) pulumi.Float64PtrOutput { return v.Threshold }).(pulumi.Float64PtrOutput) } -// In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm. +// In an alarm based on an anomaly detection model, this is the ID of the “ANOMALY_DETECTION_BAND“ function used as the threshold for the alarm. func (o AlarmOutput) ThresholdMetricId() pulumi.StringPtrOutput { return o.ApplyT(func(v *Alarm) pulumi.StringPtrOutput { return v.ThresholdMetricId }).(pulumi.StringPtrOutput) } -// Sets how this alarm is to handle missing data points. Valid values are breaching, notBreaching, ignore, and missing. +// Sets how this alarm is to handle missing data points. Valid values are “breaching“, “notBreaching“, “ignore“, and “missing“. For more information, see [Configuring How Alarms Treat Missing Data](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data) in the *Amazon User Guide*. +// +// If you omit this parameter, the default behavior of ``missing`` is used. func (o AlarmOutput) TreatMissingData() pulumi.StringPtrOutput { return o.ApplyT(func(v *Alarm) pulumi.StringPtrOutput { return v.TreatMissingData }).(pulumi.StringPtrOutput) } -// The unit of the metric associated with the alarm. +// The unit of the metric associated with the alarm. Specify this only if you are creating an alarm based on a single metric. Do not specify this if you are specifying a “Metrics“ array. +// +// You can specify the following values: 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, or None. func (o AlarmOutput) Unit() pulumi.StringPtrOutput { return o.ApplyT(func(v *Alarm) pulumi.StringPtrOutput { return v.Unit }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/aws/cloudwatch/compositeAlarm.go b/sdk/go/aws/cloudwatch/compositeAlarm.go index 16b24bfc91..a72568b1ae 100644 --- a/sdk/go/aws/cloudwatch/compositeAlarm.go +++ b/sdk/go/aws/cloudwatch/compositeAlarm.go @@ -8,6 +8,7 @@ import ( "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" ) @@ -38,6 +39,8 @@ type CompositeAlarm struct { InsufficientDataActions pulumi.StringArrayOutput `pulumi:"insufficientDataActions"` // The actions to execute when this alarm transitions to the OK state from any other state. Each action is specified as an Amazon Resource Name (ARN). OkActions pulumi.StringArrayOutput `pulumi:"okActions"` + // A list of key-value pairs to associate with the composite alarm. You can associate as many as 50 tags with an alarm. + Tags aws.TagArrayOutput `pulumi:"tags"` } // NewCompositeAlarm registers a new resource with the given unique name, arguments, and options. @@ -107,6 +110,8 @@ type compositeAlarmArgs struct { InsufficientDataActions []string `pulumi:"insufficientDataActions"` // The actions to execute when this alarm transitions to the OK state from any other state. Each action is specified as an Amazon Resource Name (ARN). OkActions []string `pulumi:"okActions"` + // A list of key-value pairs to associate with the composite alarm. You can associate as many as 50 tags with an alarm. + Tags []aws.Tag `pulumi:"tags"` } // The set of arguments for constructing a CompositeAlarm resource. @@ -131,6 +136,8 @@ type CompositeAlarmArgs struct { InsufficientDataActions pulumi.StringArrayInput // The actions to execute when this alarm transitions to the OK state from any other state. Each action is specified as an Amazon Resource Name (ARN). OkActions pulumi.StringArrayInput + // A list of key-value pairs to associate with the composite alarm. You can associate as many as 50 tags with an alarm. + Tags aws.TagArrayInput } func (CompositeAlarmArgs) ElementType() reflect.Type { @@ -225,6 +232,11 @@ func (o CompositeAlarmOutput) OkActions() pulumi.StringArrayOutput { return o.ApplyT(func(v *CompositeAlarm) pulumi.StringArrayOutput { return v.OkActions }).(pulumi.StringArrayOutput) } +// A list of key-value pairs to associate with the composite alarm. You can associate as many as 50 tags with an alarm. +func (o CompositeAlarmOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v *CompositeAlarm) aws.TagArrayOutput { return v.Tags }).(aws.TagArrayOutput) +} + func init() { pulumi.RegisterInputType(reflect.TypeOf((*CompositeAlarmInput)(nil)).Elem(), &CompositeAlarm{}) pulumi.RegisterOutputType(CompositeAlarmOutput{}) diff --git a/sdk/go/aws/cloudwatch/getAlarm.go b/sdk/go/aws/cloudwatch/getAlarm.go index 5472aed82f..976cdaf173 100644 --- a/sdk/go/aws/cloudwatch/getAlarm.go +++ b/sdk/go/aws/cloudwatch/getAlarm.go @@ -7,11 +7,15 @@ 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::CloudWatch::Alarm +// The “AWS::CloudWatch::Alarm“ type specifies an alarm and associates it with the specified metric or metric math expression. +// +// When this operation creates an alarm, the alarm state is immediately set to ``INSUFFICIENT_DATA``. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed. +// When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm. func LookupAlarm(ctx *pulumi.Context, args *LookupAlarmArgs, opts ...pulumi.InvokeOption) (*LookupAlarmResult, error) { opts = internal.PkgInvokeDefaultOpts(opts) var rv LookupAlarmResult @@ -23,52 +27,65 @@ func LookupAlarm(ctx *pulumi.Context, args *LookupAlarmArgs, opts ...pulumi.Invo } type LookupAlarmArgs struct { - // The name of the alarm. + // The name of the alarm. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the alarm name. + // 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. AlarmName string `pulumi:"alarmName"` } type LookupAlarmResult struct { // Indicates whether actions should be executed during any changes to the alarm state. The default is TRUE. ActionsEnabled *bool `pulumi:"actionsEnabled"` - // The list of actions to execute when this alarm transitions into an ALARM state from any other state. + // The list of actions to execute when this alarm transitions into an ALARM state from any other state. Specify each action as an Amazon Resource Name (ARN). For more information about creating alarms and the actions that you can specify, see [PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html) in the *API Reference*. AlarmActions []string `pulumi:"alarmActions"` // The description of the alarm. AlarmDescription *string `pulumi:"alarmDescription"` - // Amazon Resource Name is a unique name for each resource. - Arn *string `pulumi:"arn"` - // The arithmetic operation to use when comparing the specified statistic and threshold. + Arn *string `pulumi:"arn"` + // The arithmetic operation to use when comparing the specified statistic and threshold. The specified statistic value is used as the first operand. ComparisonOperator *string `pulumi:"comparisonOperator"` - // The number of datapoints that must be breaching to trigger the alarm. + // The number of datapoints that must be breaching to trigger the alarm. This is used only if you are setting an "M out of N" alarm. In that case, this value is the M, and the value that you set for ``EvaluationPeriods`` is the N value. For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*. + // If you omit this parameter, CW uses the same value here that you set for ``EvaluationPeriods``, and the alarm goes to alarm state if that many consecutive periods are breaching. DatapointsToAlarm *int `pulumi:"datapointsToAlarm"` - // The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify Dimensions. Instead, you use Metrics. + // The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify ``Dimensions``. Instead, you use ``Metrics``. Dimensions []AlarmDimension `pulumi:"dimensions"` - // Used only for alarms based on percentiles. + // Used only for alarms based on percentiles. If ``ignore``, the alarm state does not change during periods with too few data points to be statistically significant. If ``evaluate`` or this parameter is not used, the alarm is always evaluated and possibly changes state no matter how many data points are available. EvaluateLowSampleCountPercentile *string `pulumi:"evaluateLowSampleCountPercentile"` - // The number of periods over which data is compared to the specified threshold. + // The number of periods over which data is compared to the specified threshold. If you are setting an alarm that requires that a number of consecutive data points be breaching to trigger the alarm, this value specifies that number. If you are setting an "M out of N" alarm, this value is the N, and ``DatapointsToAlarm`` is the M. + // For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*. EvaluationPeriods *int `pulumi:"evaluationPeriods"` // The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100. + // For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both. + // For an alarm based on a math expression, you can't specify ``ExtendedStatistic``. Instead, you use ``Metrics``. ExtendedStatistic *string `pulumi:"extendedStatistic"` - // The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state. + // The actions to execute when this alarm transitions to the ``INSUFFICIENT_DATA`` state from any other state. Each action is specified as an Amazon Resource Name (ARN). InsufficientDataActions []string `pulumi:"insufficientDataActions"` - // The name of the metric associated with the alarm. + // The name of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you use ``Metrics`` instead and you can't specify ``MetricName``. MetricName *string `pulumi:"metricName"` - // An array that enables you to create an alarm based on the result of a metric math expression. + // An array that enables you to create an alarm based on the result of a metric math expression. Each item in the array either retrieves a metric or performs a math expression. + // If you specify the ``Metrics`` parameter, you cannot specify ``MetricName``, ``Dimensions``, ``Period``, ``Namespace``, ``Statistic``, ``ExtendedStatistic``, or ``Unit``. Metrics []AlarmMetricDataQuery `pulumi:"metrics"` - // The namespace of the metric associated with the alarm. + // The namespace of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you can't specify ``Namespace`` and you use ``Metrics`` instead. + // For a list of namespaces for metrics from AWS services, see [Services That Publish Metrics.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) Namespace *string `pulumi:"namespace"` - // The actions to execute when this alarm transitions to the OK state from any other state. + // The actions to execute when this alarm transitions to the ``OK`` state from any other state. Each action is specified as an Amazon Resource Name (ARN). OkActions []string `pulumi:"okActions"` - // The period in seconds, over which the statistic is applied. + // The period, in seconds, over which the statistic is applied. This is required for an alarm based on a metric. Valid values are 10, 30, 60, and any multiple of 60. + // For an alarm based on a math expression, you can't specify ``Period``, and instead you use the ``Metrics`` parameter. + // *Minimum:* 10 Period *int `pulumi:"period"` - // The statistic for the metric associated with the alarm, other than percentile. - Statistic *string `pulumi:"statistic"` - // In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm. + // The statistic for the metric associated with the alarm, other than percentile. For percentile statistics, use ``ExtendedStatistic``. + // For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both. + // For an alarm based on a math expression, you can't specify ``Statistic``. Instead, you use ``Metrics``. + Statistic *string `pulumi:"statistic"` + Tags []aws.Tag `pulumi:"tags"` + // The value to compare with the specified statistic. Threshold *float64 `pulumi:"threshold"` - // In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm. + // In an alarm based on an anomaly detection model, this is the ID of the ``ANOMALY_DETECTION_BAND`` function used as the threshold for the alarm. ThresholdMetricId *string `pulumi:"thresholdMetricId"` - // Sets how this alarm is to handle missing data points. Valid values are breaching, notBreaching, ignore, and missing. + // Sets how this alarm is to handle missing data points. Valid values are ``breaching``, ``notBreaching``, ``ignore``, and ``missing``. For more information, see [Configuring How Alarms Treat Missing Data](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data) in the *Amazon User Guide*. + // If you omit this parameter, the default behavior of ``missing`` is used. TreatMissingData *string `pulumi:"treatMissingData"` - // The unit of the metric associated with the alarm. + // The unit of the metric associated with the alarm. Specify this only if you are creating an alarm based on a single metric. Do not specify this if you are specifying a ``Metrics`` array. + // You can specify the following values: 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, or None. Unit *string `pulumi:"unit"` } @@ -86,7 +103,8 @@ func LookupAlarmOutput(ctx *pulumi.Context, args LookupAlarmOutputArgs, opts ... } type LookupAlarmOutputArgs struct { - // The name of the alarm. + // The name of the alarm. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the alarm name. + // 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. AlarmName pulumi.StringInput `pulumi:"alarmName"` } @@ -113,7 +131,7 @@ func (o LookupAlarmResultOutput) ActionsEnabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v LookupAlarmResult) *bool { return v.ActionsEnabled }).(pulumi.BoolPtrOutput) } -// The list of actions to execute when this alarm transitions into an ALARM state from any other state. +// The list of actions to execute when this alarm transitions into an ALARM state from any other state. Specify each action as an Amazon Resource Name (ARN). For more information about creating alarms and the actions that you can specify, see [PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html) in the *API Reference*. func (o LookupAlarmResultOutput) AlarmActions() pulumi.StringArrayOutput { return o.ApplyT(func(v LookupAlarmResult) []string { return v.AlarmActions }).(pulumi.StringArrayOutput) } @@ -123,92 +141,116 @@ func (o LookupAlarmResultOutput) AlarmDescription() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupAlarmResult) *string { return v.AlarmDescription }).(pulumi.StringPtrOutput) } -// Amazon Resource Name is a unique name for each resource. func (o LookupAlarmResultOutput) Arn() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupAlarmResult) *string { return v.Arn }).(pulumi.StringPtrOutput) } -// The arithmetic operation to use when comparing the specified statistic and threshold. +// The arithmetic operation to use when comparing the specified statistic and threshold. The specified statistic value is used as the first operand. func (o LookupAlarmResultOutput) ComparisonOperator() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupAlarmResult) *string { return v.ComparisonOperator }).(pulumi.StringPtrOutput) } -// The number of datapoints that must be breaching to trigger the alarm. +// The number of datapoints that must be breaching to trigger the alarm. This is used only if you are setting an "M out of N" alarm. In that case, this value is the M, and the value that you set for “EvaluationPeriods“ is the N value. For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*. +// +// If you omit this parameter, CW uses the same value here that you set for ``EvaluationPeriods``, and the alarm goes to alarm state if that many consecutive periods are breaching. func (o LookupAlarmResultOutput) DatapointsToAlarm() pulumi.IntPtrOutput { return o.ApplyT(func(v LookupAlarmResult) *int { return v.DatapointsToAlarm }).(pulumi.IntPtrOutput) } -// The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify Dimensions. Instead, you use Metrics. +// The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify “Dimensions“. Instead, you use “Metrics“. func (o LookupAlarmResultOutput) Dimensions() AlarmDimensionArrayOutput { return o.ApplyT(func(v LookupAlarmResult) []AlarmDimension { return v.Dimensions }).(AlarmDimensionArrayOutput) } -// Used only for alarms based on percentiles. +// Used only for alarms based on percentiles. If “ignore“, the alarm state does not change during periods with too few data points to be statistically significant. If “evaluate“ or this parameter is not used, the alarm is always evaluated and possibly changes state no matter how many data points are available. func (o LookupAlarmResultOutput) EvaluateLowSampleCountPercentile() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupAlarmResult) *string { return v.EvaluateLowSampleCountPercentile }).(pulumi.StringPtrOutput) } -// The number of periods over which data is compared to the specified threshold. +// The number of periods over which data is compared to the specified threshold. If you are setting an alarm that requires that a number of consecutive data points be breaching to trigger the alarm, this value specifies that number. If you are setting an "M out of N" alarm, this value is the N, and “DatapointsToAlarm“ is the M. +// +// For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*. func (o LookupAlarmResultOutput) EvaluationPeriods() pulumi.IntPtrOutput { return o.ApplyT(func(v LookupAlarmResult) *int { return v.EvaluationPeriods }).(pulumi.IntPtrOutput) } // The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100. +// +// For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both. +// For an alarm based on a math expression, you can't specify ``ExtendedStatistic``. Instead, you use ``Metrics``. func (o LookupAlarmResultOutput) ExtendedStatistic() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupAlarmResult) *string { return v.ExtendedStatistic }).(pulumi.StringPtrOutput) } -// The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state. +// The actions to execute when this alarm transitions to the “INSUFFICIENT_DATA“ state from any other state. Each action is specified as an Amazon Resource Name (ARN). func (o LookupAlarmResultOutput) InsufficientDataActions() pulumi.StringArrayOutput { return o.ApplyT(func(v LookupAlarmResult) []string { return v.InsufficientDataActions }).(pulumi.StringArrayOutput) } -// The name of the metric associated with the alarm. +// The name of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you use “Metrics“ instead and you can't specify “MetricName“. func (o LookupAlarmResultOutput) MetricName() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupAlarmResult) *string { return v.MetricName }).(pulumi.StringPtrOutput) } -// An array that enables you to create an alarm based on the result of a metric math expression. +// An array that enables you to create an alarm based on the result of a metric math expression. Each item in the array either retrieves a metric or performs a math expression. +// +// If you specify the ``Metrics`` parameter, you cannot specify ``MetricName``, ``Dimensions``, ``Period``, ``Namespace``, ``Statistic``, ``ExtendedStatistic``, or ``Unit``. func (o LookupAlarmResultOutput) Metrics() AlarmMetricDataQueryArrayOutput { return o.ApplyT(func(v LookupAlarmResult) []AlarmMetricDataQuery { return v.Metrics }).(AlarmMetricDataQueryArrayOutput) } -// The namespace of the metric associated with the alarm. +// The namespace of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you can't specify “Namespace“ and you use “Metrics“ instead. +// +// For a list of namespaces for metrics from AWS services, see [Services That Publish Metrics.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) func (o LookupAlarmResultOutput) Namespace() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupAlarmResult) *string { return v.Namespace }).(pulumi.StringPtrOutput) } -// The actions to execute when this alarm transitions to the OK state from any other state. +// The actions to execute when this alarm transitions to the “OK“ state from any other state. Each action is specified as an Amazon Resource Name (ARN). func (o LookupAlarmResultOutput) OkActions() pulumi.StringArrayOutput { return o.ApplyT(func(v LookupAlarmResult) []string { return v.OkActions }).(pulumi.StringArrayOutput) } -// The period in seconds, over which the statistic is applied. +// The period, in seconds, over which the statistic is applied. This is required for an alarm based on a metric. Valid values are 10, 30, 60, and any multiple of 60. +// +// For an alarm based on a math expression, you can't specify ``Period``, and instead you use the ``Metrics`` parameter. +// *Minimum:* 10 func (o LookupAlarmResultOutput) Period() pulumi.IntPtrOutput { return o.ApplyT(func(v LookupAlarmResult) *int { return v.Period }).(pulumi.IntPtrOutput) } -// The statistic for the metric associated with the alarm, other than percentile. +// The statistic for the metric associated with the alarm, other than percentile. For percentile statistics, use “ExtendedStatistic“. +// +// For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both. +// For an alarm based on a math expression, you can't specify ``Statistic``. Instead, you use ``Metrics``. func (o LookupAlarmResultOutput) Statistic() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupAlarmResult) *string { return v.Statistic }).(pulumi.StringPtrOutput) } -// In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm. +func (o LookupAlarmResultOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v LookupAlarmResult) []aws.Tag { return v.Tags }).(aws.TagArrayOutput) +} + +// The value to compare with the specified statistic. func (o LookupAlarmResultOutput) Threshold() pulumi.Float64PtrOutput { return o.ApplyT(func(v LookupAlarmResult) *float64 { return v.Threshold }).(pulumi.Float64PtrOutput) } -// In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm. +// In an alarm based on an anomaly detection model, this is the ID of the “ANOMALY_DETECTION_BAND“ function used as the threshold for the alarm. func (o LookupAlarmResultOutput) ThresholdMetricId() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupAlarmResult) *string { return v.ThresholdMetricId }).(pulumi.StringPtrOutput) } -// Sets how this alarm is to handle missing data points. Valid values are breaching, notBreaching, ignore, and missing. +// Sets how this alarm is to handle missing data points. Valid values are “breaching“, “notBreaching“, “ignore“, and “missing“. For more information, see [Configuring How Alarms Treat Missing Data](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data) in the *Amazon User Guide*. +// +// If you omit this parameter, the default behavior of ``missing`` is used. func (o LookupAlarmResultOutput) TreatMissingData() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupAlarmResult) *string { return v.TreatMissingData }).(pulumi.StringPtrOutput) } -// The unit of the metric associated with the alarm. +// The unit of the metric associated with the alarm. Specify this only if you are creating an alarm based on a single metric. Do not specify this if you are specifying a “Metrics“ array. +// +// You can specify the following values: 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, or None. func (o LookupAlarmResultOutput) Unit() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupAlarmResult) *string { return v.Unit }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/aws/cloudwatch/getCompositeAlarm.go b/sdk/go/aws/cloudwatch/getCompositeAlarm.go index 91e91ab4c4..98ff7fe605 100644 --- a/sdk/go/aws/cloudwatch/getCompositeAlarm.go +++ b/sdk/go/aws/cloudwatch/getCompositeAlarm.go @@ -7,6 +7,7 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-aws-native/sdk/go/aws" "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -48,6 +49,8 @@ type LookupCompositeAlarmResult struct { InsufficientDataActions []string `pulumi:"insufficientDataActions"` // The actions to execute when this alarm transitions to the OK state from any other state. Each action is specified as an Amazon Resource Name (ARN). OkActions []string `pulumi:"okActions"` + // A list of key-value pairs to associate with the composite alarm. You can associate as many as 50 tags with an alarm. + Tags []aws.Tag `pulumi:"tags"` } func LookupCompositeAlarmOutput(ctx *pulumi.Context, args LookupCompositeAlarmOutputArgs, opts ...pulumi.InvokeOption) LookupCompositeAlarmResultOutput { @@ -136,6 +139,11 @@ func (o LookupCompositeAlarmResultOutput) OkActions() pulumi.StringArrayOutput { return o.ApplyT(func(v LookupCompositeAlarmResult) []string { return v.OkActions }).(pulumi.StringArrayOutput) } +// A list of key-value pairs to associate with the composite alarm. You can associate as many as 50 tags with an alarm. +func (o LookupCompositeAlarmResultOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v LookupCompositeAlarmResult) []aws.Tag { return v.Tags }).(aws.TagArrayOutput) +} + func init() { pulumi.RegisterOutputType(LookupCompositeAlarmResultOutput{}) } diff --git a/sdk/go/aws/cloudwatch/pulumiTypes.go b/sdk/go/aws/cloudwatch/pulumiTypes.go index 34c55d2889..e7ad83baef 100644 --- a/sdk/go/aws/cloudwatch/pulumiTypes.go +++ b/sdk/go/aws/cloudwatch/pulumiTypes.go @@ -13,11 +13,11 @@ import ( var _ = internal.GetEnvOrDefault -// Dimensions are arbitrary name/value pairs that can be associated with a CloudWatch metric. +// Dimension is an embedded property of the “AWS::CloudWatch::Alarm“ type. Dimensions are name/value pairs that can be associated with a CW metric. You can specify a maximum of 10 dimensions for a given metric. type AlarmDimension struct { - // The name of the dimension. + // The name of the dimension, from 1–255 characters in length. This dimension name must have been included when the metric was published. Name string `pulumi:"name"` - // The value for the dimension. + // The value for the dimension, from 1–255 characters in length. Value string `pulumi:"value"` } @@ -32,11 +32,11 @@ type AlarmDimensionInput interface { ToAlarmDimensionOutputWithContext(context.Context) AlarmDimensionOutput } -// Dimensions are arbitrary name/value pairs that can be associated with a CloudWatch metric. +// Dimension is an embedded property of the “AWS::CloudWatch::Alarm“ type. Dimensions are name/value pairs that can be associated with a CW metric. You can specify a maximum of 10 dimensions for a given metric. type AlarmDimensionArgs struct { - // The name of the dimension. + // The name of the dimension, from 1–255 characters in length. This dimension name must have been included when the metric was published. Name pulumi.StringInput `pulumi:"name"` - // The value for the dimension. + // The value for the dimension, from 1–255 characters in length. Value pulumi.StringInput `pulumi:"value"` } @@ -77,7 +77,7 @@ func (i AlarmDimensionArray) ToAlarmDimensionArrayOutputWithContext(ctx context. return pulumi.ToOutputWithContext(ctx, i).(AlarmDimensionArrayOutput) } -// Dimensions are arbitrary name/value pairs that can be associated with a CloudWatch metric. +// Dimension is an embedded property of the “AWS::CloudWatch::Alarm“ type. Dimensions are name/value pairs that can be associated with a CW metric. You can specify a maximum of 10 dimensions for a given metric. type AlarmDimensionOutput struct{ *pulumi.OutputState } func (AlarmDimensionOutput) ElementType() reflect.Type { @@ -92,12 +92,12 @@ func (o AlarmDimensionOutput) ToAlarmDimensionOutputWithContext(ctx context.Cont return o } -// The name of the dimension. +// The name of the dimension, from 1–255 characters in length. This dimension name must have been included when the metric was published. func (o AlarmDimensionOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v AlarmDimension) string { return v.Name }).(pulumi.StringOutput) } -// The value for the dimension. +// The value for the dimension, from 1–255 characters in length. func (o AlarmDimensionOutput) Value() pulumi.StringOutput { return o.ApplyT(func(v AlarmDimension) string { return v.Value }).(pulumi.StringOutput) } @@ -122,13 +122,13 @@ func (o AlarmDimensionArrayOutput) Index(i pulumi.IntInput) AlarmDimensionOutput }).(AlarmDimensionOutput) } -// The Metric property type represents a specific metric. +// The “Metric“ property type represents a specific metric. “Metric“ is a property of the [MetricStat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricstat.html) property type. type AlarmMetric struct { - // The dimensions for the metric. + // The metric dimensions that you want to be used for the metric that the alarm will watch. Dimensions []AlarmDimension `pulumi:"dimensions"` - // The name of the metric. + // The name of the metric that you want the alarm to watch. This is a required field. MetricName *string `pulumi:"metricName"` - // The namespace of the metric. + // The namespace of the metric that the alarm will watch. Namespace *string `pulumi:"namespace"` } @@ -143,13 +143,13 @@ type AlarmMetricInput interface { ToAlarmMetricOutputWithContext(context.Context) AlarmMetricOutput } -// The Metric property type represents a specific metric. +// The “Metric“ property type represents a specific metric. “Metric“ is a property of the [MetricStat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricstat.html) property type. type AlarmMetricArgs struct { - // The dimensions for the metric. + // The metric dimensions that you want to be used for the metric that the alarm will watch. Dimensions AlarmDimensionArrayInput `pulumi:"dimensions"` - // The name of the metric. + // The name of the metric that you want the alarm to watch. This is a required field. MetricName pulumi.StringPtrInput `pulumi:"metricName"` - // The namespace of the metric. + // The namespace of the metric that the alarm will watch. Namespace pulumi.StringPtrInput `pulumi:"namespace"` } @@ -206,7 +206,7 @@ func (i *alarmMetricPtrType) ToAlarmMetricPtrOutputWithContext(ctx context.Conte return pulumi.ToOutputWithContext(ctx, i).(AlarmMetricPtrOutput) } -// The Metric property type represents a specific metric. +// The “Metric“ property type represents a specific metric. “Metric“ is a property of the [MetricStat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricstat.html) property type. type AlarmMetricOutput struct{ *pulumi.OutputState } func (AlarmMetricOutput) ElementType() reflect.Type { @@ -231,17 +231,17 @@ func (o AlarmMetricOutput) ToAlarmMetricPtrOutputWithContext(ctx context.Context }).(AlarmMetricPtrOutput) } -// The dimensions for the metric. +// The metric dimensions that you want to be used for the metric that the alarm will watch. func (o AlarmMetricOutput) Dimensions() AlarmDimensionArrayOutput { return o.ApplyT(func(v AlarmMetric) []AlarmDimension { return v.Dimensions }).(AlarmDimensionArrayOutput) } -// The name of the metric. +// The name of the metric that you want the alarm to watch. This is a required field. func (o AlarmMetricOutput) MetricName() pulumi.StringPtrOutput { return o.ApplyT(func(v AlarmMetric) *string { return v.MetricName }).(pulumi.StringPtrOutput) } -// The namespace of the metric. +// The namespace of the metric that the alarm will watch. func (o AlarmMetricOutput) Namespace() pulumi.StringPtrOutput { return o.ApplyT(func(v AlarmMetric) *string { return v.Namespace }).(pulumi.StringPtrOutput) } @@ -270,7 +270,7 @@ func (o AlarmMetricPtrOutput) Elem() AlarmMetricOutput { }).(AlarmMetricOutput) } -// The dimensions for the metric. +// The metric dimensions that you want to be used for the metric that the alarm will watch. func (o AlarmMetricPtrOutput) Dimensions() AlarmDimensionArrayOutput { return o.ApplyT(func(v *AlarmMetric) []AlarmDimension { if v == nil { @@ -280,7 +280,7 @@ func (o AlarmMetricPtrOutput) Dimensions() AlarmDimensionArrayOutput { }).(AlarmDimensionArrayOutput) } -// The name of the metric. +// The name of the metric that you want the alarm to watch. This is a required field. func (o AlarmMetricPtrOutput) MetricName() pulumi.StringPtrOutput { return o.ApplyT(func(v *AlarmMetric) *string { if v == nil { @@ -290,7 +290,7 @@ func (o AlarmMetricPtrOutput) MetricName() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// The namespace of the metric. +// The namespace of the metric that the alarm will watch. func (o AlarmMetricPtrOutput) Namespace() pulumi.StringPtrOutput { return o.ApplyT(func(v *AlarmMetric) *string { if v == nil { @@ -300,21 +300,27 @@ func (o AlarmMetricPtrOutput) Namespace() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// This property type specifies the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a math expression on metric data. +// The “MetricDataQuery“ property type specifies the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a math expression on metric data. +// +// Any expression used must return a single time series. For more information, see [Metric Math Syntax and Functions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) in the *User Guide*. type AlarmMetricDataQuery struct { // The ID of the account where the metrics are located, if this is a cross-account alarm. AccountId *string `pulumi:"accountId"` - // The math expression to be performed on the returned data. + // The math expression to be performed on the returned data, if this object is performing a math expression. This expression can use the ``Id`` of the other metrics to refer to those metrics, and can also use the ``Id`` of other expressions to use the result of those expressions. For more information about metric math expressions, see [Metric Math Syntax and Functions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) in the *User Guide*. + // Within each MetricDataQuery object, you must specify either ``Expression`` or ``MetricStat`` but not both. Expression *string `pulumi:"expression"` - // A short name used to tie this object to the results in the response. + // A short name used to tie this object to the results in the response. This name must be unique within a single call to ``GetMetricData``. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscore. The first character must be a lowercase letter. Id string `pulumi:"id"` - // A human-readable label for this metric or expression. + // A human-readable label for this metric or expression. This is especially useful if this is an expression, so that you know what the value represents. If the metric or expression is shown in a CW dashboard widget, the label is shown. If ``Label`` is omitted, CW generates a default. Label *string `pulumi:"label"` - // The metric to be returned, along with statistics, period, and units. + // The metric to be returned, along with statistics, period, and units. Use this parameter only if this object is retrieving a metric and not performing a math expression on returned data. + // Within one MetricDataQuery object, you must specify either ``Expression`` or ``MetricStat`` but not both. MetricStat *AlarmMetricStat `pulumi:"metricStat"` - // The period in seconds, over which the statistic is applied. + // The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a ``PutMetricData`` operation that includes a ``StorageResolution of 1 second``. Period *int `pulumi:"period"` // This option indicates whether to return the timestamps and raw data values of this metric. + // When you create an alarm based on a metric math expression, specify ``True`` for this value for only the one math expression that the alarm is based on. You must specify ``False`` for ``ReturnData`` for all the other metrics and expressions used in the alarm. + // This field is required. ReturnData *bool `pulumi:"returnData"` } @@ -329,21 +335,27 @@ type AlarmMetricDataQueryInput interface { ToAlarmMetricDataQueryOutputWithContext(context.Context) AlarmMetricDataQueryOutput } -// This property type specifies the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a math expression on metric data. +// The “MetricDataQuery“ property type specifies the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a math expression on metric data. +// +// Any expression used must return a single time series. For more information, see [Metric Math Syntax and Functions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) in the *User Guide*. type AlarmMetricDataQueryArgs struct { // The ID of the account where the metrics are located, if this is a cross-account alarm. AccountId pulumi.StringPtrInput `pulumi:"accountId"` - // The math expression to be performed on the returned data. + // The math expression to be performed on the returned data, if this object is performing a math expression. This expression can use the ``Id`` of the other metrics to refer to those metrics, and can also use the ``Id`` of other expressions to use the result of those expressions. For more information about metric math expressions, see [Metric Math Syntax and Functions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) in the *User Guide*. + // Within each MetricDataQuery object, you must specify either ``Expression`` or ``MetricStat`` but not both. Expression pulumi.StringPtrInput `pulumi:"expression"` - // A short name used to tie this object to the results in the response. + // A short name used to tie this object to the results in the response. This name must be unique within a single call to ``GetMetricData``. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscore. The first character must be a lowercase letter. Id pulumi.StringInput `pulumi:"id"` - // A human-readable label for this metric or expression. + // A human-readable label for this metric or expression. This is especially useful if this is an expression, so that you know what the value represents. If the metric or expression is shown in a CW dashboard widget, the label is shown. If ``Label`` is omitted, CW generates a default. Label pulumi.StringPtrInput `pulumi:"label"` - // The metric to be returned, along with statistics, period, and units. + // The metric to be returned, along with statistics, period, and units. Use this parameter only if this object is retrieving a metric and not performing a math expression on returned data. + // Within one MetricDataQuery object, you must specify either ``Expression`` or ``MetricStat`` but not both. MetricStat AlarmMetricStatPtrInput `pulumi:"metricStat"` - // The period in seconds, over which the statistic is applied. + // The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a ``PutMetricData`` operation that includes a ``StorageResolution of 1 second``. Period pulumi.IntPtrInput `pulumi:"period"` // This option indicates whether to return the timestamps and raw data values of this metric. + // When you create an alarm based on a metric math expression, specify ``True`` for this value for only the one math expression that the alarm is based on. You must specify ``False`` for ``ReturnData`` for all the other metrics and expressions used in the alarm. + // This field is required. ReturnData pulumi.BoolPtrInput `pulumi:"returnData"` } @@ -384,7 +396,9 @@ func (i AlarmMetricDataQueryArray) ToAlarmMetricDataQueryArrayOutputWithContext( return pulumi.ToOutputWithContext(ctx, i).(AlarmMetricDataQueryArrayOutput) } -// This property type specifies the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a math expression on metric data. +// The “MetricDataQuery“ property type specifies the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a math expression on metric data. +// +// Any expression used must return a single time series. For more information, see [Metric Math Syntax and Functions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) in the *User Guide*. type AlarmMetricDataQueryOutput struct{ *pulumi.OutputState } func (AlarmMetricDataQueryOutput) ElementType() reflect.Type { @@ -404,32 +418,39 @@ func (o AlarmMetricDataQueryOutput) AccountId() pulumi.StringPtrOutput { return o.ApplyT(func(v AlarmMetricDataQuery) *string { return v.AccountId }).(pulumi.StringPtrOutput) } -// The math expression to be performed on the returned data. +// The math expression to be performed on the returned data, if this object is performing a math expression. This expression can use the “Id“ of the other metrics to refer to those metrics, and can also use the “Id“ of other expressions to use the result of those expressions. For more information about metric math expressions, see [Metric Math Syntax and Functions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) in the *User Guide*. +// +// Within each MetricDataQuery object, you must specify either ``Expression`` or ``MetricStat`` but not both. func (o AlarmMetricDataQueryOutput) Expression() pulumi.StringPtrOutput { return o.ApplyT(func(v AlarmMetricDataQuery) *string { return v.Expression }).(pulumi.StringPtrOutput) } -// A short name used to tie this object to the results in the response. +// A short name used to tie this object to the results in the response. This name must be unique within a single call to “GetMetricData“. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscore. The first character must be a lowercase letter. func (o AlarmMetricDataQueryOutput) Id() pulumi.StringOutput { return o.ApplyT(func(v AlarmMetricDataQuery) string { return v.Id }).(pulumi.StringOutput) } -// A human-readable label for this metric or expression. +// A human-readable label for this metric or expression. This is especially useful if this is an expression, so that you know what the value represents. If the metric or expression is shown in a CW dashboard widget, the label is shown. If “Label“ is omitted, CW generates a default. func (o AlarmMetricDataQueryOutput) Label() pulumi.StringPtrOutput { return o.ApplyT(func(v AlarmMetricDataQuery) *string { return v.Label }).(pulumi.StringPtrOutput) } -// The metric to be returned, along with statistics, period, and units. +// The metric to be returned, along with statistics, period, and units. Use this parameter only if this object is retrieving a metric and not performing a math expression on returned data. +// +// Within one MetricDataQuery object, you must specify either ``Expression`` or ``MetricStat`` but not both. func (o AlarmMetricDataQueryOutput) MetricStat() AlarmMetricStatPtrOutput { return o.ApplyT(func(v AlarmMetricDataQuery) *AlarmMetricStat { return v.MetricStat }).(AlarmMetricStatPtrOutput) } -// The period in seconds, over which the statistic is applied. +// The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a “PutMetricData“ operation that includes a “StorageResolution of 1 second“. func (o AlarmMetricDataQueryOutput) Period() pulumi.IntPtrOutput { return o.ApplyT(func(v AlarmMetricDataQuery) *int { return v.Period }).(pulumi.IntPtrOutput) } // This option indicates whether to return the timestamps and raw data values of this metric. +// +// When you create an alarm based on a metric math expression, specify ``True`` for this value for only the one math expression that the alarm is based on. You must specify ``False`` for ``ReturnData`` for all the other metrics and expressions used in the alarm. +// This field is required. func (o AlarmMetricDataQueryOutput) ReturnData() pulumi.BoolPtrOutput { return o.ApplyT(func(v AlarmMetricDataQuery) *bool { return v.ReturnData }).(pulumi.BoolPtrOutput) } @@ -455,14 +476,21 @@ func (o AlarmMetricDataQueryArrayOutput) Index(i pulumi.IntInput) AlarmMetricDat } // This structure defines the metric to be returned, along with the statistics, period, and units. +// +// ``MetricStat`` is a property of the [MetricDataQuery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html) property type. type AlarmMetricStat struct { // The metric to return, including the metric name, namespace, and dimensions. Metric AlarmMetric `pulumi:"metric"` - // The granularity, in seconds, of the returned data points. + // The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a ``PutMetricData`` call that includes a ``StorageResolution`` of 1 second. + // If the ``StartTime`` parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned: + // + Start time between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute). + // + Start time between 15 and 63 days ago - Use a multiple of 300 seconds (5 minutes). + // + Start time greater than 63 days ago - Use a multiple of 3600 seconds (1 hour). Period int `pulumi:"period"` - // The statistic to return. + // The statistic to return. It can include any CW statistic or extended statistic. For a list of valid values, see the table in [Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the *User Guide*. Stat string `pulumi:"stat"` // The unit to use for the returned data points. + // Valid values are: 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, or None. Unit *string `pulumi:"unit"` } @@ -478,14 +506,21 @@ type AlarmMetricStatInput interface { } // This structure defines the metric to be returned, along with the statistics, period, and units. +// +// ``MetricStat`` is a property of the [MetricDataQuery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html) property type. type AlarmMetricStatArgs struct { // The metric to return, including the metric name, namespace, and dimensions. Metric AlarmMetricInput `pulumi:"metric"` - // The granularity, in seconds, of the returned data points. + // The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a ``PutMetricData`` call that includes a ``StorageResolution`` of 1 second. + // If the ``StartTime`` parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned: + // + Start time between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute). + // + Start time between 15 and 63 days ago - Use a multiple of 300 seconds (5 minutes). + // + Start time greater than 63 days ago - Use a multiple of 3600 seconds (1 hour). Period pulumi.IntInput `pulumi:"period"` - // The statistic to return. + // The statistic to return. It can include any CW statistic or extended statistic. For a list of valid values, see the table in [Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the *User Guide*. Stat pulumi.StringInput `pulumi:"stat"` // The unit to use for the returned data points. + // Valid values are: 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, or None. Unit pulumi.StringPtrInput `pulumi:"unit"` } @@ -543,6 +578,8 @@ func (i *alarmMetricStatPtrType) ToAlarmMetricStatPtrOutputWithContext(ctx conte } // This structure defines the metric to be returned, along with the statistics, period, and units. +// +// ``MetricStat`` is a property of the [MetricDataQuery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html) property type. type AlarmMetricStatOutput struct{ *pulumi.OutputState } func (AlarmMetricStatOutput) ElementType() reflect.Type { @@ -572,17 +609,24 @@ func (o AlarmMetricStatOutput) Metric() AlarmMetricOutput { return o.ApplyT(func(v AlarmMetricStat) AlarmMetric { return v.Metric }).(AlarmMetricOutput) } -// The granularity, in seconds, of the returned data points. +// The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a “PutMetricData“ call that includes a “StorageResolution“ of 1 second. +// +// If the ``StartTime`` parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned: +// + Start time between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute). +// + Start time between 15 and 63 days ago - Use a multiple of 300 seconds (5 minutes). +// + Start time greater than 63 days ago - Use a multiple of 3600 seconds (1 hour). func (o AlarmMetricStatOutput) Period() pulumi.IntOutput { return o.ApplyT(func(v AlarmMetricStat) int { return v.Period }).(pulumi.IntOutput) } -// The statistic to return. +// The statistic to return. It can include any CW statistic or extended statistic. For a list of valid values, see the table in [Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the *User Guide*. func (o AlarmMetricStatOutput) Stat() pulumi.StringOutput { return o.ApplyT(func(v AlarmMetricStat) string { return v.Stat }).(pulumi.StringOutput) } // The unit to use for the returned data points. +// +// Valid values are: 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, or None. func (o AlarmMetricStatOutput) Unit() pulumi.StringPtrOutput { return o.ApplyT(func(v AlarmMetricStat) *string { return v.Unit }).(pulumi.StringPtrOutput) } @@ -621,7 +665,12 @@ func (o AlarmMetricStatPtrOutput) Metric() AlarmMetricPtrOutput { }).(AlarmMetricPtrOutput) } -// The granularity, in seconds, of the returned data points. +// The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a “PutMetricData“ call that includes a “StorageResolution“ of 1 second. +// +// If the ``StartTime`` parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned: +// + Start time between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute). +// + Start time between 15 and 63 days ago - Use a multiple of 300 seconds (5 minutes). +// + Start time greater than 63 days ago - Use a multiple of 3600 seconds (1 hour). func (o AlarmMetricStatPtrOutput) Period() pulumi.IntPtrOutput { return o.ApplyT(func(v *AlarmMetricStat) *int { if v == nil { @@ -631,7 +680,7 @@ func (o AlarmMetricStatPtrOutput) Period() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } -// The statistic to return. +// The statistic to return. It can include any CW statistic or extended statistic. For a list of valid values, see the table in [Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the *User Guide*. func (o AlarmMetricStatPtrOutput) Stat() pulumi.StringPtrOutput { return o.ApplyT(func(v *AlarmMetricStat) *string { if v == nil { @@ -642,6 +691,8 @@ func (o AlarmMetricStatPtrOutput) Stat() pulumi.StringPtrOutput { } // The unit to use for the returned data points. +// +// Valid values are: 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, or None. func (o AlarmMetricStatPtrOutput) Unit() pulumi.StringPtrOutput { return o.ApplyT(func(v *AlarmMetricStat) *string { if v == nil { @@ -651,6 +702,21 @@ func (o AlarmMetricStatPtrOutput) Unit() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +type AlarmTag struct { + // A unique identifier for the tag. The combination of tag keys and values can help you organize and categorize your resources. + Key string `pulumi:"key"` + // The value for the specified tag key. + Value string `pulumi:"value"` +} + +// Metadata that you can assign to a composite alarm, Tags can help you organize and categorize your resources. +type CompositeAlarmTag struct { + // A unique identifier for the tag. The combination of tag keys and values can help you organize and categorize your resources. + Key string `pulumi:"key"` + // The value for the specified tag key. + Value string `pulumi:"value"` +} + // This structure defines the metrics that will be streamed. type MetricStreamFilter struct { // Only metrics with MetricNames matching these values will be streamed. Must be set together with Namespace. 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/deadline/farm.go b/sdk/go/aws/deadline/farm.go new file mode 100644 index 0000000000..2e81cb5a6a --- /dev/null +++ b/sdk/go/aws/deadline/farm.go @@ -0,0 +1,145 @@ +// 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 deadline + +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::Deadline::Farm Resource Type +type Farm struct { + pulumi.CustomResourceState + + Arn pulumi.StringOutput `pulumi:"arn"` + Description pulumi.StringPtrOutput `pulumi:"description"` + DisplayName pulumi.StringOutput `pulumi:"displayName"` + FarmId pulumi.StringOutput `pulumi:"farmId"` + KmsKeyArn pulumi.StringPtrOutput `pulumi:"kmsKeyArn"` +} + +// NewFarm registers a new resource with the given unique name, arguments, and options. +func NewFarm(ctx *pulumi.Context, + name string, args *FarmArgs, opts ...pulumi.ResourceOption) (*Farm, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.DisplayName == nil { + return nil, errors.New("invalid value for required argument 'DisplayName'") + } + replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "kmsKeyArn", + }) + opts = append(opts, replaceOnChanges) + opts = internal.PkgResourceDefaultOpts(opts) + var resource Farm + err := ctx.RegisterResource("aws-native:deadline:Farm", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetFarm gets an existing Farm 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 GetFarm(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *FarmState, opts ...pulumi.ResourceOption) (*Farm, error) { + var resource Farm + err := ctx.ReadResource("aws-native:deadline:Farm", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Farm resources. +type farmState struct { +} + +type FarmState struct { +} + +func (FarmState) ElementType() reflect.Type { + return reflect.TypeOf((*farmState)(nil)).Elem() +} + +type farmArgs struct { + Description *string `pulumi:"description"` + DisplayName string `pulumi:"displayName"` + KmsKeyArn *string `pulumi:"kmsKeyArn"` +} + +// The set of arguments for constructing a Farm resource. +type FarmArgs struct { + Description pulumi.StringPtrInput + DisplayName pulumi.StringInput + KmsKeyArn pulumi.StringPtrInput +} + +func (FarmArgs) ElementType() reflect.Type { + return reflect.TypeOf((*farmArgs)(nil)).Elem() +} + +type FarmInput interface { + pulumi.Input + + ToFarmOutput() FarmOutput + ToFarmOutputWithContext(ctx context.Context) FarmOutput +} + +func (*Farm) ElementType() reflect.Type { + return reflect.TypeOf((**Farm)(nil)).Elem() +} + +func (i *Farm) ToFarmOutput() FarmOutput { + return i.ToFarmOutputWithContext(context.Background()) +} + +func (i *Farm) ToFarmOutputWithContext(ctx context.Context) FarmOutput { + return pulumi.ToOutputWithContext(ctx, i).(FarmOutput) +} + +type FarmOutput struct{ *pulumi.OutputState } + +func (FarmOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Farm)(nil)).Elem() +} + +func (o FarmOutput) ToFarmOutput() FarmOutput { + return o +} + +func (o FarmOutput) ToFarmOutputWithContext(ctx context.Context) FarmOutput { + return o +} + +func (o FarmOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *Farm) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +func (o FarmOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Farm) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +func (o FarmOutput) DisplayName() pulumi.StringOutput { + return o.ApplyT(func(v *Farm) pulumi.StringOutput { return v.DisplayName }).(pulumi.StringOutput) +} + +func (o FarmOutput) FarmId() pulumi.StringOutput { + return o.ApplyT(func(v *Farm) pulumi.StringOutput { return v.FarmId }).(pulumi.StringOutput) +} + +func (o FarmOutput) KmsKeyArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Farm) pulumi.StringPtrOutput { return v.KmsKeyArn }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*FarmInput)(nil)).Elem(), &Farm{}) + pulumi.RegisterOutputType(FarmOutput{}) +} diff --git a/sdk/go/aws/deadline/fleet.go b/sdk/go/aws/deadline/fleet.go new file mode 100644 index 0000000000..c4451ac6f2 --- /dev/null +++ b/sdk/go/aws/deadline/fleet.go @@ -0,0 +1,197 @@ +// 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 deadline + +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::Deadline::Fleet Resource Type +type Fleet struct { + pulumi.CustomResourceState + + Arn pulumi.StringOutput `pulumi:"arn"` + Capabilities FleetCapabilitiesOutput `pulumi:"capabilities"` + Configuration pulumi.AnyOutput `pulumi:"configuration"` + Description pulumi.StringPtrOutput `pulumi:"description"` + DisplayName pulumi.StringOutput `pulumi:"displayName"` + FarmId pulumi.StringPtrOutput `pulumi:"farmId"` + FleetId pulumi.StringOutput `pulumi:"fleetId"` + MaxWorkerCount pulumi.IntOutput `pulumi:"maxWorkerCount"` + MinWorkerCount pulumi.IntPtrOutput `pulumi:"minWorkerCount"` + RoleArn pulumi.StringOutput `pulumi:"roleArn"` + Status FleetStatusOutput `pulumi:"status"` + WorkerCount pulumi.IntOutput `pulumi:"workerCount"` +} + +// NewFleet registers a new resource with the given unique name, arguments, and options. +func NewFleet(ctx *pulumi.Context, + name string, args *FleetArgs, opts ...pulumi.ResourceOption) (*Fleet, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Configuration == nil { + return nil, errors.New("invalid value for required argument 'Configuration'") + } + if args.DisplayName == nil { + return nil, errors.New("invalid value for required argument 'DisplayName'") + } + if args.MaxWorkerCount == nil { + return nil, errors.New("invalid value for required argument 'MaxWorkerCount'") + } + if args.RoleArn == nil { + return nil, errors.New("invalid value for required argument 'RoleArn'") + } + replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "farmId", + }) + opts = append(opts, replaceOnChanges) + opts = internal.PkgResourceDefaultOpts(opts) + var resource Fleet + err := ctx.RegisterResource("aws-native:deadline:Fleet", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetFleet gets an existing Fleet 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 GetFleet(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *FleetState, opts ...pulumi.ResourceOption) (*Fleet, error) { + var resource Fleet + err := ctx.ReadResource("aws-native:deadline:Fleet", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Fleet resources. +type fleetState struct { +} + +type FleetState struct { +} + +func (FleetState) ElementType() reflect.Type { + return reflect.TypeOf((*fleetState)(nil)).Elem() +} + +type fleetArgs struct { + Configuration interface{} `pulumi:"configuration"` + Description *string `pulumi:"description"` + DisplayName string `pulumi:"displayName"` + FarmId *string `pulumi:"farmId"` + MaxWorkerCount int `pulumi:"maxWorkerCount"` + MinWorkerCount *int `pulumi:"minWorkerCount"` + RoleArn string `pulumi:"roleArn"` +} + +// The set of arguments for constructing a Fleet resource. +type FleetArgs struct { + Configuration pulumi.Input + Description pulumi.StringPtrInput + DisplayName pulumi.StringInput + FarmId pulumi.StringPtrInput + MaxWorkerCount pulumi.IntInput + MinWorkerCount pulumi.IntPtrInput + RoleArn pulumi.StringInput +} + +func (FleetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*fleetArgs)(nil)).Elem() +} + +type FleetInput interface { + pulumi.Input + + ToFleetOutput() FleetOutput + ToFleetOutputWithContext(ctx context.Context) FleetOutput +} + +func (*Fleet) ElementType() reflect.Type { + return reflect.TypeOf((**Fleet)(nil)).Elem() +} + +func (i *Fleet) ToFleetOutput() FleetOutput { + return i.ToFleetOutputWithContext(context.Background()) +} + +func (i *Fleet) ToFleetOutputWithContext(ctx context.Context) FleetOutput { + return pulumi.ToOutputWithContext(ctx, i).(FleetOutput) +} + +type FleetOutput struct{ *pulumi.OutputState } + +func (FleetOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Fleet)(nil)).Elem() +} + +func (o FleetOutput) ToFleetOutput() FleetOutput { + return o +} + +func (o FleetOutput) ToFleetOutputWithContext(ctx context.Context) FleetOutput { + return o +} + +func (o FleetOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *Fleet) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +func (o FleetOutput) Capabilities() FleetCapabilitiesOutput { + return o.ApplyT(func(v *Fleet) FleetCapabilitiesOutput { return v.Capabilities }).(FleetCapabilitiesOutput) +} + +func (o FleetOutput) Configuration() pulumi.AnyOutput { + return o.ApplyT(func(v *Fleet) pulumi.AnyOutput { return v.Configuration }).(pulumi.AnyOutput) +} + +func (o FleetOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Fleet) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +func (o FleetOutput) DisplayName() pulumi.StringOutput { + return o.ApplyT(func(v *Fleet) pulumi.StringOutput { return v.DisplayName }).(pulumi.StringOutput) +} + +func (o FleetOutput) FarmId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Fleet) pulumi.StringPtrOutput { return v.FarmId }).(pulumi.StringPtrOutput) +} + +func (o FleetOutput) FleetId() pulumi.StringOutput { + return o.ApplyT(func(v *Fleet) pulumi.StringOutput { return v.FleetId }).(pulumi.StringOutput) +} + +func (o FleetOutput) MaxWorkerCount() pulumi.IntOutput { + return o.ApplyT(func(v *Fleet) pulumi.IntOutput { return v.MaxWorkerCount }).(pulumi.IntOutput) +} + +func (o FleetOutput) MinWorkerCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v *Fleet) pulumi.IntPtrOutput { return v.MinWorkerCount }).(pulumi.IntPtrOutput) +} + +func (o FleetOutput) RoleArn() pulumi.StringOutput { + return o.ApplyT(func(v *Fleet) pulumi.StringOutput { return v.RoleArn }).(pulumi.StringOutput) +} + +func (o FleetOutput) Status() FleetStatusOutput { + return o.ApplyT(func(v *Fleet) FleetStatusOutput { return v.Status }).(FleetStatusOutput) +} + +func (o FleetOutput) WorkerCount() pulumi.IntOutput { + return o.ApplyT(func(v *Fleet) pulumi.IntOutput { return v.WorkerCount }).(pulumi.IntOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*FleetInput)(nil)).Elem(), &Fleet{}) + pulumi.RegisterOutputType(FleetOutput{}) +} diff --git a/sdk/go/aws/deadline/getFarm.go b/sdk/go/aws/deadline/getFarm.go new file mode 100644 index 0000000000..9097bc4156 --- /dev/null +++ b/sdk/go/aws/deadline/getFarm.go @@ -0,0 +1,89 @@ +// 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 deadline + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Definition of AWS::Deadline::Farm Resource Type +func LookupFarm(ctx *pulumi.Context, args *LookupFarmArgs, opts ...pulumi.InvokeOption) (*LookupFarmResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupFarmResult + err := ctx.Invoke("aws-native:deadline:getFarm", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupFarmArgs struct { + Arn string `pulumi:"arn"` +} + +type LookupFarmResult struct { + Arn *string `pulumi:"arn"` + Description *string `pulumi:"description"` + DisplayName *string `pulumi:"displayName"` + FarmId *string `pulumi:"farmId"` +} + +func LookupFarmOutput(ctx *pulumi.Context, args LookupFarmOutputArgs, opts ...pulumi.InvokeOption) LookupFarmResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupFarmResult, error) { + args := v.(LookupFarmArgs) + r, err := LookupFarm(ctx, &args, opts...) + var s LookupFarmResult + if r != nil { + s = *r + } + return s, err + }).(LookupFarmResultOutput) +} + +type LookupFarmOutputArgs struct { + Arn pulumi.StringInput `pulumi:"arn"` +} + +func (LookupFarmOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupFarmArgs)(nil)).Elem() +} + +type LookupFarmResultOutput struct{ *pulumi.OutputState } + +func (LookupFarmResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupFarmResult)(nil)).Elem() +} + +func (o LookupFarmResultOutput) ToLookupFarmResultOutput() LookupFarmResultOutput { + return o +} + +func (o LookupFarmResultOutput) ToLookupFarmResultOutputWithContext(ctx context.Context) LookupFarmResultOutput { + return o +} + +func (o LookupFarmResultOutput) Arn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupFarmResult) *string { return v.Arn }).(pulumi.StringPtrOutput) +} + +func (o LookupFarmResultOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupFarmResult) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +func (o LookupFarmResultOutput) DisplayName() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupFarmResult) *string { return v.DisplayName }).(pulumi.StringPtrOutput) +} + +func (o LookupFarmResultOutput) FarmId() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupFarmResult) *string { return v.FarmId }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupFarmResultOutput{}) +} diff --git a/sdk/go/aws/deadline/getFleet.go b/sdk/go/aws/deadline/getFleet.go new file mode 100644 index 0000000000..6bc77749a4 --- /dev/null +++ b/sdk/go/aws/deadline/getFleet.go @@ -0,0 +1,124 @@ +// 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 deadline + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Definition of AWS::Deadline::Fleet Resource Type +func LookupFleet(ctx *pulumi.Context, args *LookupFleetArgs, opts ...pulumi.InvokeOption) (*LookupFleetResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupFleetResult + err := ctx.Invoke("aws-native:deadline:getFleet", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupFleetArgs struct { + Arn string `pulumi:"arn"` +} + +type LookupFleetResult struct { + Arn *string `pulumi:"arn"` + Capabilities *FleetCapabilities `pulumi:"capabilities"` + Configuration interface{} `pulumi:"configuration"` + Description *string `pulumi:"description"` + DisplayName *string `pulumi:"displayName"` + FleetId *string `pulumi:"fleetId"` + MaxWorkerCount *int `pulumi:"maxWorkerCount"` + MinWorkerCount *int `pulumi:"minWorkerCount"` + RoleArn *string `pulumi:"roleArn"` + Status *FleetStatus `pulumi:"status"` + WorkerCount *int `pulumi:"workerCount"` +} + +func LookupFleetOutput(ctx *pulumi.Context, args LookupFleetOutputArgs, opts ...pulumi.InvokeOption) LookupFleetResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupFleetResult, error) { + args := v.(LookupFleetArgs) + r, err := LookupFleet(ctx, &args, opts...) + var s LookupFleetResult + if r != nil { + s = *r + } + return s, err + }).(LookupFleetResultOutput) +} + +type LookupFleetOutputArgs struct { + Arn pulumi.StringInput `pulumi:"arn"` +} + +func (LookupFleetOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupFleetArgs)(nil)).Elem() +} + +type LookupFleetResultOutput struct{ *pulumi.OutputState } + +func (LookupFleetResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupFleetResult)(nil)).Elem() +} + +func (o LookupFleetResultOutput) ToLookupFleetResultOutput() LookupFleetResultOutput { + return o +} + +func (o LookupFleetResultOutput) ToLookupFleetResultOutputWithContext(ctx context.Context) LookupFleetResultOutput { + return o +} + +func (o LookupFleetResultOutput) Arn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupFleetResult) *string { return v.Arn }).(pulumi.StringPtrOutput) +} + +func (o LookupFleetResultOutput) Capabilities() FleetCapabilitiesPtrOutput { + return o.ApplyT(func(v LookupFleetResult) *FleetCapabilities { return v.Capabilities }).(FleetCapabilitiesPtrOutput) +} + +func (o LookupFleetResultOutput) Configuration() pulumi.AnyOutput { + return o.ApplyT(func(v LookupFleetResult) interface{} { return v.Configuration }).(pulumi.AnyOutput) +} + +func (o LookupFleetResultOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupFleetResult) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +func (o LookupFleetResultOutput) DisplayName() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupFleetResult) *string { return v.DisplayName }).(pulumi.StringPtrOutput) +} + +func (o LookupFleetResultOutput) FleetId() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupFleetResult) *string { return v.FleetId }).(pulumi.StringPtrOutput) +} + +func (o LookupFleetResultOutput) MaxWorkerCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v LookupFleetResult) *int { return v.MaxWorkerCount }).(pulumi.IntPtrOutput) +} + +func (o LookupFleetResultOutput) MinWorkerCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v LookupFleetResult) *int { return v.MinWorkerCount }).(pulumi.IntPtrOutput) +} + +func (o LookupFleetResultOutput) RoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupFleetResult) *string { return v.RoleArn }).(pulumi.StringPtrOutput) +} + +func (o LookupFleetResultOutput) Status() FleetStatusPtrOutput { + return o.ApplyT(func(v LookupFleetResult) *FleetStatus { return v.Status }).(FleetStatusPtrOutput) +} + +func (o LookupFleetResultOutput) WorkerCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v LookupFleetResult) *int { return v.WorkerCount }).(pulumi.IntPtrOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupFleetResultOutput{}) +} diff --git a/sdk/go/aws/deadline/getLicenseEndpoint.go b/sdk/go/aws/deadline/getLicenseEndpoint.go new file mode 100644 index 0000000000..305dd9d96c --- /dev/null +++ b/sdk/go/aws/deadline/getLicenseEndpoint.go @@ -0,0 +1,94 @@ +// 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 deadline + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Definition of AWS::Deadline::LicenseEndpoint Resource Type +func LookupLicenseEndpoint(ctx *pulumi.Context, args *LookupLicenseEndpointArgs, opts ...pulumi.InvokeOption) (*LookupLicenseEndpointResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupLicenseEndpointResult + err := ctx.Invoke("aws-native:deadline:getLicenseEndpoint", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupLicenseEndpointArgs struct { + Arn string `pulumi:"arn"` +} + +type LookupLicenseEndpointResult struct { + Arn *string `pulumi:"arn"` + DnsName *string `pulumi:"dnsName"` + LicenseEndpointId *string `pulumi:"licenseEndpointId"` + Status *LicenseEndpointStatus `pulumi:"status"` + StatusMessage *string `pulumi:"statusMessage"` +} + +func LookupLicenseEndpointOutput(ctx *pulumi.Context, args LookupLicenseEndpointOutputArgs, opts ...pulumi.InvokeOption) LookupLicenseEndpointResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupLicenseEndpointResult, error) { + args := v.(LookupLicenseEndpointArgs) + r, err := LookupLicenseEndpoint(ctx, &args, opts...) + var s LookupLicenseEndpointResult + if r != nil { + s = *r + } + return s, err + }).(LookupLicenseEndpointResultOutput) +} + +type LookupLicenseEndpointOutputArgs struct { + Arn pulumi.StringInput `pulumi:"arn"` +} + +func (LookupLicenseEndpointOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupLicenseEndpointArgs)(nil)).Elem() +} + +type LookupLicenseEndpointResultOutput struct{ *pulumi.OutputState } + +func (LookupLicenseEndpointResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupLicenseEndpointResult)(nil)).Elem() +} + +func (o LookupLicenseEndpointResultOutput) ToLookupLicenseEndpointResultOutput() LookupLicenseEndpointResultOutput { + return o +} + +func (o LookupLicenseEndpointResultOutput) ToLookupLicenseEndpointResultOutputWithContext(ctx context.Context) LookupLicenseEndpointResultOutput { + return o +} + +func (o LookupLicenseEndpointResultOutput) Arn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupLicenseEndpointResult) *string { return v.Arn }).(pulumi.StringPtrOutput) +} + +func (o LookupLicenseEndpointResultOutput) DnsName() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupLicenseEndpointResult) *string { return v.DnsName }).(pulumi.StringPtrOutput) +} + +func (o LookupLicenseEndpointResultOutput) LicenseEndpointId() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupLicenseEndpointResult) *string { return v.LicenseEndpointId }).(pulumi.StringPtrOutput) +} + +func (o LookupLicenseEndpointResultOutput) Status() LicenseEndpointStatusPtrOutput { + return o.ApplyT(func(v LookupLicenseEndpointResult) *LicenseEndpointStatus { return v.Status }).(LicenseEndpointStatusPtrOutput) +} + +func (o LookupLicenseEndpointResultOutput) StatusMessage() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupLicenseEndpointResult) *string { return v.StatusMessage }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupLicenseEndpointResultOutput{}) +} diff --git a/sdk/go/aws/deadline/getMeteredProduct.go b/sdk/go/aws/deadline/getMeteredProduct.go new file mode 100644 index 0000000000..96c36829f2 --- /dev/null +++ b/sdk/go/aws/deadline/getMeteredProduct.go @@ -0,0 +1,89 @@ +// 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 deadline + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Definition of AWS::Deadline::MeteredProduct Resource Type +func LookupMeteredProduct(ctx *pulumi.Context, args *LookupMeteredProductArgs, opts ...pulumi.InvokeOption) (*LookupMeteredProductResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupMeteredProductResult + err := ctx.Invoke("aws-native:deadline:getMeteredProduct", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupMeteredProductArgs struct { + Arn string `pulumi:"arn"` +} + +type LookupMeteredProductResult struct { + Arn *string `pulumi:"arn"` + Family *string `pulumi:"family"` + Port *int `pulumi:"port"` + Vendor *string `pulumi:"vendor"` +} + +func LookupMeteredProductOutput(ctx *pulumi.Context, args LookupMeteredProductOutputArgs, opts ...pulumi.InvokeOption) LookupMeteredProductResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupMeteredProductResult, error) { + args := v.(LookupMeteredProductArgs) + r, err := LookupMeteredProduct(ctx, &args, opts...) + var s LookupMeteredProductResult + if r != nil { + s = *r + } + return s, err + }).(LookupMeteredProductResultOutput) +} + +type LookupMeteredProductOutputArgs struct { + Arn pulumi.StringInput `pulumi:"arn"` +} + +func (LookupMeteredProductOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupMeteredProductArgs)(nil)).Elem() +} + +type LookupMeteredProductResultOutput struct{ *pulumi.OutputState } + +func (LookupMeteredProductResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupMeteredProductResult)(nil)).Elem() +} + +func (o LookupMeteredProductResultOutput) ToLookupMeteredProductResultOutput() LookupMeteredProductResultOutput { + return o +} + +func (o LookupMeteredProductResultOutput) ToLookupMeteredProductResultOutputWithContext(ctx context.Context) LookupMeteredProductResultOutput { + return o +} + +func (o LookupMeteredProductResultOutput) Arn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupMeteredProductResult) *string { return v.Arn }).(pulumi.StringPtrOutput) +} + +func (o LookupMeteredProductResultOutput) Family() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupMeteredProductResult) *string { return v.Family }).(pulumi.StringPtrOutput) +} + +func (o LookupMeteredProductResultOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v LookupMeteredProductResult) *int { return v.Port }).(pulumi.IntPtrOutput) +} + +func (o LookupMeteredProductResultOutput) Vendor() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupMeteredProductResult) *string { return v.Vendor }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupMeteredProductResultOutput{}) +} diff --git a/sdk/go/aws/deadline/getQueue.go b/sdk/go/aws/deadline/getQueue.go new file mode 100644 index 0000000000..66a0f92abf --- /dev/null +++ b/sdk/go/aws/deadline/getQueue.go @@ -0,0 +1,119 @@ +// 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 deadline + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Definition of AWS::Deadline::Queue Resource Type +func LookupQueue(ctx *pulumi.Context, args *LookupQueueArgs, opts ...pulumi.InvokeOption) (*LookupQueueResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupQueueResult + err := ctx.Invoke("aws-native:deadline:getQueue", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupQueueArgs struct { + Arn string `pulumi:"arn"` +} + +type LookupQueueResult struct { + AllowedStorageProfileIds []string `pulumi:"allowedStorageProfileIds"` + Arn *string `pulumi:"arn"` + DefaultBudgetAction *QueueDefaultQueueBudgetAction `pulumi:"defaultBudgetAction"` + Description *string `pulumi:"description"` + DisplayName *string `pulumi:"displayName"` + JobAttachmentSettings *QueueJobAttachmentSettings `pulumi:"jobAttachmentSettings"` + JobRunAsUser *QueueJobRunAsUser `pulumi:"jobRunAsUser"` + QueueId *string `pulumi:"queueId"` + RequiredFileSystemLocationNames []string `pulumi:"requiredFileSystemLocationNames"` + RoleArn *string `pulumi:"roleArn"` +} + +func LookupQueueOutput(ctx *pulumi.Context, args LookupQueueOutputArgs, opts ...pulumi.InvokeOption) LookupQueueResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupQueueResult, error) { + args := v.(LookupQueueArgs) + r, err := LookupQueue(ctx, &args, opts...) + var s LookupQueueResult + if r != nil { + s = *r + } + return s, err + }).(LookupQueueResultOutput) +} + +type LookupQueueOutputArgs struct { + Arn pulumi.StringInput `pulumi:"arn"` +} + +func (LookupQueueOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupQueueArgs)(nil)).Elem() +} + +type LookupQueueResultOutput struct{ *pulumi.OutputState } + +func (LookupQueueResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupQueueResult)(nil)).Elem() +} + +func (o LookupQueueResultOutput) ToLookupQueueResultOutput() LookupQueueResultOutput { + return o +} + +func (o LookupQueueResultOutput) ToLookupQueueResultOutputWithContext(ctx context.Context) LookupQueueResultOutput { + return o +} + +func (o LookupQueueResultOutput) AllowedStorageProfileIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupQueueResult) []string { return v.AllowedStorageProfileIds }).(pulumi.StringArrayOutput) +} + +func (o LookupQueueResultOutput) Arn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupQueueResult) *string { return v.Arn }).(pulumi.StringPtrOutput) +} + +func (o LookupQueueResultOutput) DefaultBudgetAction() QueueDefaultQueueBudgetActionPtrOutput { + return o.ApplyT(func(v LookupQueueResult) *QueueDefaultQueueBudgetAction { return v.DefaultBudgetAction }).(QueueDefaultQueueBudgetActionPtrOutput) +} + +func (o LookupQueueResultOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupQueueResult) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +func (o LookupQueueResultOutput) DisplayName() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupQueueResult) *string { return v.DisplayName }).(pulumi.StringPtrOutput) +} + +func (o LookupQueueResultOutput) JobAttachmentSettings() QueueJobAttachmentSettingsPtrOutput { + return o.ApplyT(func(v LookupQueueResult) *QueueJobAttachmentSettings { return v.JobAttachmentSettings }).(QueueJobAttachmentSettingsPtrOutput) +} + +func (o LookupQueueResultOutput) JobRunAsUser() QueueJobRunAsUserPtrOutput { + return o.ApplyT(func(v LookupQueueResult) *QueueJobRunAsUser { return v.JobRunAsUser }).(QueueJobRunAsUserPtrOutput) +} + +func (o LookupQueueResultOutput) QueueId() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupQueueResult) *string { return v.QueueId }).(pulumi.StringPtrOutput) +} + +func (o LookupQueueResultOutput) RequiredFileSystemLocationNames() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupQueueResult) []string { return v.RequiredFileSystemLocationNames }).(pulumi.StringArrayOutput) +} + +func (o LookupQueueResultOutput) RoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupQueueResult) *string { return v.RoleArn }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupQueueResultOutput{}) +} diff --git a/sdk/go/aws/deadline/getQueueEnvironment.go b/sdk/go/aws/deadline/getQueueEnvironment.go new file mode 100644 index 0000000000..cbe65116f2 --- /dev/null +++ b/sdk/go/aws/deadline/getQueueEnvironment.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 deadline + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Definition of AWS::Deadline::QueueEnvironment Resource Type +func LookupQueueEnvironment(ctx *pulumi.Context, args *LookupQueueEnvironmentArgs, opts ...pulumi.InvokeOption) (*LookupQueueEnvironmentResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupQueueEnvironmentResult + err := ctx.Invoke("aws-native:deadline:getQueueEnvironment", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupQueueEnvironmentArgs struct { + FarmId string `pulumi:"farmId"` + QueueEnvironmentId string `pulumi:"queueEnvironmentId"` + QueueId string `pulumi:"queueId"` +} + +type LookupQueueEnvironmentResult struct { + Name *string `pulumi:"name"` + Priority *int `pulumi:"priority"` + QueueEnvironmentId *string `pulumi:"queueEnvironmentId"` + Template *string `pulumi:"template"` + TemplateType *QueueEnvironmentEnvironmentTemplateType `pulumi:"templateType"` +} + +func LookupQueueEnvironmentOutput(ctx *pulumi.Context, args LookupQueueEnvironmentOutputArgs, opts ...pulumi.InvokeOption) LookupQueueEnvironmentResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupQueueEnvironmentResult, error) { + args := v.(LookupQueueEnvironmentArgs) + r, err := LookupQueueEnvironment(ctx, &args, opts...) + var s LookupQueueEnvironmentResult + if r != nil { + s = *r + } + return s, err + }).(LookupQueueEnvironmentResultOutput) +} + +type LookupQueueEnvironmentOutputArgs struct { + FarmId pulumi.StringInput `pulumi:"farmId"` + QueueEnvironmentId pulumi.StringInput `pulumi:"queueEnvironmentId"` + QueueId pulumi.StringInput `pulumi:"queueId"` +} + +func (LookupQueueEnvironmentOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupQueueEnvironmentArgs)(nil)).Elem() +} + +type LookupQueueEnvironmentResultOutput struct{ *pulumi.OutputState } + +func (LookupQueueEnvironmentResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupQueueEnvironmentResult)(nil)).Elem() +} + +func (o LookupQueueEnvironmentResultOutput) ToLookupQueueEnvironmentResultOutput() LookupQueueEnvironmentResultOutput { + return o +} + +func (o LookupQueueEnvironmentResultOutput) ToLookupQueueEnvironmentResultOutputWithContext(ctx context.Context) LookupQueueEnvironmentResultOutput { + return o +} + +func (o LookupQueueEnvironmentResultOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupQueueEnvironmentResult) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +func (o LookupQueueEnvironmentResultOutput) Priority() pulumi.IntPtrOutput { + return o.ApplyT(func(v LookupQueueEnvironmentResult) *int { return v.Priority }).(pulumi.IntPtrOutput) +} + +func (o LookupQueueEnvironmentResultOutput) QueueEnvironmentId() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupQueueEnvironmentResult) *string { return v.QueueEnvironmentId }).(pulumi.StringPtrOutput) +} + +func (o LookupQueueEnvironmentResultOutput) Template() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupQueueEnvironmentResult) *string { return v.Template }).(pulumi.StringPtrOutput) +} + +func (o LookupQueueEnvironmentResultOutput) TemplateType() QueueEnvironmentEnvironmentTemplateTypePtrOutput { + return o.ApplyT(func(v LookupQueueEnvironmentResult) *QueueEnvironmentEnvironmentTemplateType { return v.TemplateType }).(QueueEnvironmentEnvironmentTemplateTypePtrOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupQueueEnvironmentResultOutput{}) +} diff --git a/sdk/go/aws/deadline/getStorageProfile.go b/sdk/go/aws/deadline/getStorageProfile.go new file mode 100644 index 0000000000..a08ea4cc72 --- /dev/null +++ b/sdk/go/aws/deadline/getStorageProfile.go @@ -0,0 +1,91 @@ +// 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 deadline + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Definition of AWS::Deadline::StorageProfile Resource Type +func LookupStorageProfile(ctx *pulumi.Context, args *LookupStorageProfileArgs, opts ...pulumi.InvokeOption) (*LookupStorageProfileResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupStorageProfileResult + err := ctx.Invoke("aws-native:deadline:getStorageProfile", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupStorageProfileArgs struct { + FarmId string `pulumi:"farmId"` + StorageProfileId string `pulumi:"storageProfileId"` +} + +type LookupStorageProfileResult struct { + DisplayName *string `pulumi:"displayName"` + FileSystemLocations []StorageProfileFileSystemLocation `pulumi:"fileSystemLocations"` + OsFamily *StorageProfileOperatingSystemFamily `pulumi:"osFamily"` + StorageProfileId *string `pulumi:"storageProfileId"` +} + +func LookupStorageProfileOutput(ctx *pulumi.Context, args LookupStorageProfileOutputArgs, opts ...pulumi.InvokeOption) LookupStorageProfileResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupStorageProfileResult, error) { + args := v.(LookupStorageProfileArgs) + r, err := LookupStorageProfile(ctx, &args, opts...) + var s LookupStorageProfileResult + if r != nil { + s = *r + } + return s, err + }).(LookupStorageProfileResultOutput) +} + +type LookupStorageProfileOutputArgs struct { + FarmId pulumi.StringInput `pulumi:"farmId"` + StorageProfileId pulumi.StringInput `pulumi:"storageProfileId"` +} + +func (LookupStorageProfileOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupStorageProfileArgs)(nil)).Elem() +} + +type LookupStorageProfileResultOutput struct{ *pulumi.OutputState } + +func (LookupStorageProfileResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupStorageProfileResult)(nil)).Elem() +} + +func (o LookupStorageProfileResultOutput) ToLookupStorageProfileResultOutput() LookupStorageProfileResultOutput { + return o +} + +func (o LookupStorageProfileResultOutput) ToLookupStorageProfileResultOutputWithContext(ctx context.Context) LookupStorageProfileResultOutput { + return o +} + +func (o LookupStorageProfileResultOutput) DisplayName() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupStorageProfileResult) *string { return v.DisplayName }).(pulumi.StringPtrOutput) +} + +func (o LookupStorageProfileResultOutput) FileSystemLocations() StorageProfileFileSystemLocationArrayOutput { + return o.ApplyT(func(v LookupStorageProfileResult) []StorageProfileFileSystemLocation { return v.FileSystemLocations }).(StorageProfileFileSystemLocationArrayOutput) +} + +func (o LookupStorageProfileResultOutput) OsFamily() StorageProfileOperatingSystemFamilyPtrOutput { + return o.ApplyT(func(v LookupStorageProfileResult) *StorageProfileOperatingSystemFamily { return v.OsFamily }).(StorageProfileOperatingSystemFamilyPtrOutput) +} + +func (o LookupStorageProfileResultOutput) StorageProfileId() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupStorageProfileResult) *string { return v.StorageProfileId }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupStorageProfileResultOutput{}) +} diff --git a/sdk/go/aws/deadline/init.go b/sdk/go/aws/deadline/init.go new file mode 100644 index 0000000000..1d6f902a4b --- /dev/null +++ b/sdk/go/aws/deadline/init.go @@ -0,0 +1,58 @@ +// 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 deadline + +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:deadline:Farm": + r = &Farm{} + case "aws-native:deadline:Fleet": + r = &Fleet{} + case "aws-native:deadline:LicenseEndpoint": + r = &LicenseEndpoint{} + case "aws-native:deadline:MeteredProduct": + r = &MeteredProduct{} + case "aws-native:deadline:Queue": + r = &Queue{} + case "aws-native:deadline:QueueEnvironment": + r = &QueueEnvironment{} + case "aws-native:deadline:QueueFleetAssociation": + r = &QueueFleetAssociation{} + case "aws-native:deadline:StorageProfile": + r = &StorageProfile{} + 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", + "deadline", + &module{version}, + ) +} diff --git a/sdk/go/aws/deadline/licenseEndpoint.go b/sdk/go/aws/deadline/licenseEndpoint.go new file mode 100644 index 0000000000..5d1dd1ad01 --- /dev/null +++ b/sdk/go/aws/deadline/licenseEndpoint.go @@ -0,0 +1,168 @@ +// 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 deadline + +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::Deadline::LicenseEndpoint Resource Type +type LicenseEndpoint struct { + pulumi.CustomResourceState + + Arn pulumi.StringOutput `pulumi:"arn"` + DnsName pulumi.StringOutput `pulumi:"dnsName"` + LicenseEndpointId pulumi.StringOutput `pulumi:"licenseEndpointId"` + SecurityGroupIds pulumi.StringArrayOutput `pulumi:"securityGroupIds"` + Status LicenseEndpointStatusOutput `pulumi:"status"` + StatusMessage pulumi.StringOutput `pulumi:"statusMessage"` + SubnetIds pulumi.StringArrayOutput `pulumi:"subnetIds"` + VpcId pulumi.StringOutput `pulumi:"vpcId"` +} + +// NewLicenseEndpoint registers a new resource with the given unique name, arguments, and options. +func NewLicenseEndpoint(ctx *pulumi.Context, + name string, args *LicenseEndpointArgs, opts ...pulumi.ResourceOption) (*LicenseEndpoint, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.SecurityGroupIds == nil { + return nil, errors.New("invalid value for required argument 'SecurityGroupIds'") + } + if args.SubnetIds == nil { + return nil, errors.New("invalid value for required argument 'SubnetIds'") + } + if args.VpcId == nil { + return nil, errors.New("invalid value for required argument 'VpcId'") + } + replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "securityGroupIds[*]", + "subnetIds[*]", + "vpcId", + }) + opts = append(opts, replaceOnChanges) + opts = internal.PkgResourceDefaultOpts(opts) + var resource LicenseEndpoint + err := ctx.RegisterResource("aws-native:deadline:LicenseEndpoint", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetLicenseEndpoint gets an existing LicenseEndpoint 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 GetLicenseEndpoint(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *LicenseEndpointState, opts ...pulumi.ResourceOption) (*LicenseEndpoint, error) { + var resource LicenseEndpoint + err := ctx.ReadResource("aws-native:deadline:LicenseEndpoint", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering LicenseEndpoint resources. +type licenseEndpointState struct { +} + +type LicenseEndpointState struct { +} + +func (LicenseEndpointState) ElementType() reflect.Type { + return reflect.TypeOf((*licenseEndpointState)(nil)).Elem() +} + +type licenseEndpointArgs struct { + SecurityGroupIds []string `pulumi:"securityGroupIds"` + SubnetIds []string `pulumi:"subnetIds"` + VpcId string `pulumi:"vpcId"` +} + +// The set of arguments for constructing a LicenseEndpoint resource. +type LicenseEndpointArgs struct { + SecurityGroupIds pulumi.StringArrayInput + SubnetIds pulumi.StringArrayInput + VpcId pulumi.StringInput +} + +func (LicenseEndpointArgs) ElementType() reflect.Type { + return reflect.TypeOf((*licenseEndpointArgs)(nil)).Elem() +} + +type LicenseEndpointInput interface { + pulumi.Input + + ToLicenseEndpointOutput() LicenseEndpointOutput + ToLicenseEndpointOutputWithContext(ctx context.Context) LicenseEndpointOutput +} + +func (*LicenseEndpoint) ElementType() reflect.Type { + return reflect.TypeOf((**LicenseEndpoint)(nil)).Elem() +} + +func (i *LicenseEndpoint) ToLicenseEndpointOutput() LicenseEndpointOutput { + return i.ToLicenseEndpointOutputWithContext(context.Background()) +} + +func (i *LicenseEndpoint) ToLicenseEndpointOutputWithContext(ctx context.Context) LicenseEndpointOutput { + return pulumi.ToOutputWithContext(ctx, i).(LicenseEndpointOutput) +} + +type LicenseEndpointOutput struct{ *pulumi.OutputState } + +func (LicenseEndpointOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LicenseEndpoint)(nil)).Elem() +} + +func (o LicenseEndpointOutput) ToLicenseEndpointOutput() LicenseEndpointOutput { + return o +} + +func (o LicenseEndpointOutput) ToLicenseEndpointOutputWithContext(ctx context.Context) LicenseEndpointOutput { + return o +} + +func (o LicenseEndpointOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *LicenseEndpoint) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +func (o LicenseEndpointOutput) DnsName() pulumi.StringOutput { + return o.ApplyT(func(v *LicenseEndpoint) pulumi.StringOutput { return v.DnsName }).(pulumi.StringOutput) +} + +func (o LicenseEndpointOutput) LicenseEndpointId() pulumi.StringOutput { + return o.ApplyT(func(v *LicenseEndpoint) pulumi.StringOutput { return v.LicenseEndpointId }).(pulumi.StringOutput) +} + +func (o LicenseEndpointOutput) SecurityGroupIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v *LicenseEndpoint) pulumi.StringArrayOutput { return v.SecurityGroupIds }).(pulumi.StringArrayOutput) +} + +func (o LicenseEndpointOutput) Status() LicenseEndpointStatusOutput { + return o.ApplyT(func(v *LicenseEndpoint) LicenseEndpointStatusOutput { return v.Status }).(LicenseEndpointStatusOutput) +} + +func (o LicenseEndpointOutput) StatusMessage() pulumi.StringOutput { + return o.ApplyT(func(v *LicenseEndpoint) pulumi.StringOutput { return v.StatusMessage }).(pulumi.StringOutput) +} + +func (o LicenseEndpointOutput) SubnetIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v *LicenseEndpoint) pulumi.StringArrayOutput { return v.SubnetIds }).(pulumi.StringArrayOutput) +} + +func (o LicenseEndpointOutput) VpcId() pulumi.StringOutput { + return o.ApplyT(func(v *LicenseEndpoint) pulumi.StringOutput { return v.VpcId }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*LicenseEndpointInput)(nil)).Elem(), &LicenseEndpoint{}) + pulumi.RegisterOutputType(LicenseEndpointOutput{}) +} diff --git a/sdk/go/aws/deadline/meteredProduct.go b/sdk/go/aws/deadline/meteredProduct.go new file mode 100644 index 0000000000..e90b0a1e48 --- /dev/null +++ b/sdk/go/aws/deadline/meteredProduct.go @@ -0,0 +1,151 @@ +// 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 deadline + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Definition of AWS::Deadline::MeteredProduct Resource Type +type MeteredProduct struct { + pulumi.CustomResourceState + + Arn pulumi.StringOutput `pulumi:"arn"` + Family pulumi.StringPtrOutput `pulumi:"family"` + LicenseEndpointId pulumi.StringPtrOutput `pulumi:"licenseEndpointId"` + Port pulumi.IntPtrOutput `pulumi:"port"` + ProductId pulumi.StringPtrOutput `pulumi:"productId"` + Vendor pulumi.StringPtrOutput `pulumi:"vendor"` +} + +// NewMeteredProduct registers a new resource with the given unique name, arguments, and options. +func NewMeteredProduct(ctx *pulumi.Context, + name string, args *MeteredProductArgs, opts ...pulumi.ResourceOption) (*MeteredProduct, error) { + if args == nil { + args = &MeteredProductArgs{} + } + + replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "licenseEndpointId", + "productId", + }) + opts = append(opts, replaceOnChanges) + opts = internal.PkgResourceDefaultOpts(opts) + var resource MeteredProduct + err := ctx.RegisterResource("aws-native:deadline:MeteredProduct", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetMeteredProduct gets an existing MeteredProduct 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 GetMeteredProduct(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *MeteredProductState, opts ...pulumi.ResourceOption) (*MeteredProduct, error) { + var resource MeteredProduct + err := ctx.ReadResource("aws-native:deadline:MeteredProduct", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering MeteredProduct resources. +type meteredProductState struct { +} + +type MeteredProductState struct { +} + +func (MeteredProductState) ElementType() reflect.Type { + return reflect.TypeOf((*meteredProductState)(nil)).Elem() +} + +type meteredProductArgs struct { + Family *string `pulumi:"family"` + LicenseEndpointId *string `pulumi:"licenseEndpointId"` + Port *int `pulumi:"port"` + ProductId *string `pulumi:"productId"` + Vendor *string `pulumi:"vendor"` +} + +// The set of arguments for constructing a MeteredProduct resource. +type MeteredProductArgs struct { + Family pulumi.StringPtrInput + LicenseEndpointId pulumi.StringPtrInput + Port pulumi.IntPtrInput + ProductId pulumi.StringPtrInput + Vendor pulumi.StringPtrInput +} + +func (MeteredProductArgs) ElementType() reflect.Type { + return reflect.TypeOf((*meteredProductArgs)(nil)).Elem() +} + +type MeteredProductInput interface { + pulumi.Input + + ToMeteredProductOutput() MeteredProductOutput + ToMeteredProductOutputWithContext(ctx context.Context) MeteredProductOutput +} + +func (*MeteredProduct) ElementType() reflect.Type { + return reflect.TypeOf((**MeteredProduct)(nil)).Elem() +} + +func (i *MeteredProduct) ToMeteredProductOutput() MeteredProductOutput { + return i.ToMeteredProductOutputWithContext(context.Background()) +} + +func (i *MeteredProduct) ToMeteredProductOutputWithContext(ctx context.Context) MeteredProductOutput { + return pulumi.ToOutputWithContext(ctx, i).(MeteredProductOutput) +} + +type MeteredProductOutput struct{ *pulumi.OutputState } + +func (MeteredProductOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MeteredProduct)(nil)).Elem() +} + +func (o MeteredProductOutput) ToMeteredProductOutput() MeteredProductOutput { + return o +} + +func (o MeteredProductOutput) ToMeteredProductOutputWithContext(ctx context.Context) MeteredProductOutput { + return o +} + +func (o MeteredProductOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *MeteredProduct) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +func (o MeteredProductOutput) Family() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MeteredProduct) pulumi.StringPtrOutput { return v.Family }).(pulumi.StringPtrOutput) +} + +func (o MeteredProductOutput) LicenseEndpointId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MeteredProduct) pulumi.StringPtrOutput { return v.LicenseEndpointId }).(pulumi.StringPtrOutput) +} + +func (o MeteredProductOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v *MeteredProduct) pulumi.IntPtrOutput { return v.Port }).(pulumi.IntPtrOutput) +} + +func (o MeteredProductOutput) ProductId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MeteredProduct) pulumi.StringPtrOutput { return v.ProductId }).(pulumi.StringPtrOutput) +} + +func (o MeteredProductOutput) Vendor() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MeteredProduct) pulumi.StringPtrOutput { return v.Vendor }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*MeteredProductInput)(nil)).Elem(), &MeteredProduct{}) + pulumi.RegisterOutputType(MeteredProductOutput{}) +} diff --git a/sdk/go/aws/deadline/pulumiEnums.go b/sdk/go/aws/deadline/pulumiEnums.go new file mode 100644 index 0000000000..43f5429045 --- /dev/null +++ b/sdk/go/aws/deadline/pulumiEnums.go @@ -0,0 +1,2113 @@ +// 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 deadline + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +type FleetAcceleratorType string + +const ( + FleetAcceleratorTypeGpu = FleetAcceleratorType("gpu") +) + +func (FleetAcceleratorType) ElementType() reflect.Type { + return reflect.TypeOf((*FleetAcceleratorType)(nil)).Elem() +} + +func (e FleetAcceleratorType) ToFleetAcceleratorTypeOutput() FleetAcceleratorTypeOutput { + return pulumi.ToOutput(e).(FleetAcceleratorTypeOutput) +} + +func (e FleetAcceleratorType) ToFleetAcceleratorTypeOutputWithContext(ctx context.Context) FleetAcceleratorTypeOutput { + return pulumi.ToOutputWithContext(ctx, e).(FleetAcceleratorTypeOutput) +} + +func (e FleetAcceleratorType) ToFleetAcceleratorTypePtrOutput() FleetAcceleratorTypePtrOutput { + return e.ToFleetAcceleratorTypePtrOutputWithContext(context.Background()) +} + +func (e FleetAcceleratorType) ToFleetAcceleratorTypePtrOutputWithContext(ctx context.Context) FleetAcceleratorTypePtrOutput { + return FleetAcceleratorType(e).ToFleetAcceleratorTypeOutputWithContext(ctx).ToFleetAcceleratorTypePtrOutputWithContext(ctx) +} + +func (e FleetAcceleratorType) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e FleetAcceleratorType) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e FleetAcceleratorType) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e FleetAcceleratorType) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type FleetAcceleratorTypeOutput struct{ *pulumi.OutputState } + +func (FleetAcceleratorTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FleetAcceleratorType)(nil)).Elem() +} + +func (o FleetAcceleratorTypeOutput) ToFleetAcceleratorTypeOutput() FleetAcceleratorTypeOutput { + return o +} + +func (o FleetAcceleratorTypeOutput) ToFleetAcceleratorTypeOutputWithContext(ctx context.Context) FleetAcceleratorTypeOutput { + return o +} + +func (o FleetAcceleratorTypeOutput) ToFleetAcceleratorTypePtrOutput() FleetAcceleratorTypePtrOutput { + return o.ToFleetAcceleratorTypePtrOutputWithContext(context.Background()) +} + +func (o FleetAcceleratorTypeOutput) ToFleetAcceleratorTypePtrOutputWithContext(ctx context.Context) FleetAcceleratorTypePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FleetAcceleratorType) *FleetAcceleratorType { + return &v + }).(FleetAcceleratorTypePtrOutput) +} + +func (o FleetAcceleratorTypeOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o FleetAcceleratorTypeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e FleetAcceleratorType) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o FleetAcceleratorTypeOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o FleetAcceleratorTypeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e FleetAcceleratorType) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type FleetAcceleratorTypePtrOutput struct{ *pulumi.OutputState } + +func (FleetAcceleratorTypePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FleetAcceleratorType)(nil)).Elem() +} + +func (o FleetAcceleratorTypePtrOutput) ToFleetAcceleratorTypePtrOutput() FleetAcceleratorTypePtrOutput { + return o +} + +func (o FleetAcceleratorTypePtrOutput) ToFleetAcceleratorTypePtrOutputWithContext(ctx context.Context) FleetAcceleratorTypePtrOutput { + return o +} + +func (o FleetAcceleratorTypePtrOutput) Elem() FleetAcceleratorTypeOutput { + return o.ApplyT(func(v *FleetAcceleratorType) FleetAcceleratorType { + if v != nil { + return *v + } + var ret FleetAcceleratorType + return ret + }).(FleetAcceleratorTypeOutput) +} + +func (o FleetAcceleratorTypePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o FleetAcceleratorTypePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *FleetAcceleratorType) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// FleetAcceleratorTypeInput is an input type that accepts values of the FleetAcceleratorType enum +// A concrete instance of `FleetAcceleratorTypeInput` can be one of the following: +// +// FleetAcceleratorTypeGpu +type FleetAcceleratorTypeInput interface { + pulumi.Input + + ToFleetAcceleratorTypeOutput() FleetAcceleratorTypeOutput + ToFleetAcceleratorTypeOutputWithContext(context.Context) FleetAcceleratorTypeOutput +} + +var fleetAcceleratorTypePtrType = reflect.TypeOf((**FleetAcceleratorType)(nil)).Elem() + +type FleetAcceleratorTypePtrInput interface { + pulumi.Input + + ToFleetAcceleratorTypePtrOutput() FleetAcceleratorTypePtrOutput + ToFleetAcceleratorTypePtrOutputWithContext(context.Context) FleetAcceleratorTypePtrOutput +} + +type fleetAcceleratorTypePtr string + +func FleetAcceleratorTypePtr(v string) FleetAcceleratorTypePtrInput { + return (*fleetAcceleratorTypePtr)(&v) +} + +func (*fleetAcceleratorTypePtr) ElementType() reflect.Type { + return fleetAcceleratorTypePtrType +} + +func (in *fleetAcceleratorTypePtr) ToFleetAcceleratorTypePtrOutput() FleetAcceleratorTypePtrOutput { + return pulumi.ToOutput(in).(FleetAcceleratorTypePtrOutput) +} + +func (in *fleetAcceleratorTypePtr) ToFleetAcceleratorTypePtrOutputWithContext(ctx context.Context) FleetAcceleratorTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(FleetAcceleratorTypePtrOutput) +} + +// FleetAcceleratorTypeArrayInput is an input type that accepts FleetAcceleratorTypeArray and FleetAcceleratorTypeArrayOutput values. +// You can construct a concrete instance of `FleetAcceleratorTypeArrayInput` via: +// +// FleetAcceleratorTypeArray{ FleetAcceleratorTypeArgs{...} } +type FleetAcceleratorTypeArrayInput interface { + pulumi.Input + + ToFleetAcceleratorTypeArrayOutput() FleetAcceleratorTypeArrayOutput + ToFleetAcceleratorTypeArrayOutputWithContext(context.Context) FleetAcceleratorTypeArrayOutput +} + +type FleetAcceleratorTypeArray []FleetAcceleratorType + +func (FleetAcceleratorTypeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]FleetAcceleratorType)(nil)).Elem() +} + +func (i FleetAcceleratorTypeArray) ToFleetAcceleratorTypeArrayOutput() FleetAcceleratorTypeArrayOutput { + return i.ToFleetAcceleratorTypeArrayOutputWithContext(context.Background()) +} + +func (i FleetAcceleratorTypeArray) ToFleetAcceleratorTypeArrayOutputWithContext(ctx context.Context) FleetAcceleratorTypeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(FleetAcceleratorTypeArrayOutput) +} + +type FleetAcceleratorTypeArrayOutput struct{ *pulumi.OutputState } + +func (FleetAcceleratorTypeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]FleetAcceleratorType)(nil)).Elem() +} + +func (o FleetAcceleratorTypeArrayOutput) ToFleetAcceleratorTypeArrayOutput() FleetAcceleratorTypeArrayOutput { + return o +} + +func (o FleetAcceleratorTypeArrayOutput) ToFleetAcceleratorTypeArrayOutputWithContext(ctx context.Context) FleetAcceleratorTypeArrayOutput { + return o +} + +func (o FleetAcceleratorTypeArrayOutput) Index(i pulumi.IntInput) FleetAcceleratorTypeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) FleetAcceleratorType { + return vs[0].([]FleetAcceleratorType)[vs[1].(int)] + }).(FleetAcceleratorTypeOutput) +} + +type FleetAutoScalingMode string + +const ( + FleetAutoScalingModeNoScaling = FleetAutoScalingMode("NO_SCALING") + FleetAutoScalingModeEventBasedAutoScaling = FleetAutoScalingMode("EVENT_BASED_AUTO_SCALING") +) + +func (FleetAutoScalingMode) ElementType() reflect.Type { + return reflect.TypeOf((*FleetAutoScalingMode)(nil)).Elem() +} + +func (e FleetAutoScalingMode) ToFleetAutoScalingModeOutput() FleetAutoScalingModeOutput { + return pulumi.ToOutput(e).(FleetAutoScalingModeOutput) +} + +func (e FleetAutoScalingMode) ToFleetAutoScalingModeOutputWithContext(ctx context.Context) FleetAutoScalingModeOutput { + return pulumi.ToOutputWithContext(ctx, e).(FleetAutoScalingModeOutput) +} + +func (e FleetAutoScalingMode) ToFleetAutoScalingModePtrOutput() FleetAutoScalingModePtrOutput { + return e.ToFleetAutoScalingModePtrOutputWithContext(context.Background()) +} + +func (e FleetAutoScalingMode) ToFleetAutoScalingModePtrOutputWithContext(ctx context.Context) FleetAutoScalingModePtrOutput { + return FleetAutoScalingMode(e).ToFleetAutoScalingModeOutputWithContext(ctx).ToFleetAutoScalingModePtrOutputWithContext(ctx) +} + +func (e FleetAutoScalingMode) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e FleetAutoScalingMode) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e FleetAutoScalingMode) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e FleetAutoScalingMode) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type FleetAutoScalingModeOutput struct{ *pulumi.OutputState } + +func (FleetAutoScalingModeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FleetAutoScalingMode)(nil)).Elem() +} + +func (o FleetAutoScalingModeOutput) ToFleetAutoScalingModeOutput() FleetAutoScalingModeOutput { + return o +} + +func (o FleetAutoScalingModeOutput) ToFleetAutoScalingModeOutputWithContext(ctx context.Context) FleetAutoScalingModeOutput { + return o +} + +func (o FleetAutoScalingModeOutput) ToFleetAutoScalingModePtrOutput() FleetAutoScalingModePtrOutput { + return o.ToFleetAutoScalingModePtrOutputWithContext(context.Background()) +} + +func (o FleetAutoScalingModeOutput) ToFleetAutoScalingModePtrOutputWithContext(ctx context.Context) FleetAutoScalingModePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FleetAutoScalingMode) *FleetAutoScalingMode { + return &v + }).(FleetAutoScalingModePtrOutput) +} + +func (o FleetAutoScalingModeOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o FleetAutoScalingModeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e FleetAutoScalingMode) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o FleetAutoScalingModeOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o FleetAutoScalingModeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e FleetAutoScalingMode) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type FleetAutoScalingModePtrOutput struct{ *pulumi.OutputState } + +func (FleetAutoScalingModePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FleetAutoScalingMode)(nil)).Elem() +} + +func (o FleetAutoScalingModePtrOutput) ToFleetAutoScalingModePtrOutput() FleetAutoScalingModePtrOutput { + return o +} + +func (o FleetAutoScalingModePtrOutput) ToFleetAutoScalingModePtrOutputWithContext(ctx context.Context) FleetAutoScalingModePtrOutput { + return o +} + +func (o FleetAutoScalingModePtrOutput) Elem() FleetAutoScalingModeOutput { + return o.ApplyT(func(v *FleetAutoScalingMode) FleetAutoScalingMode { + if v != nil { + return *v + } + var ret FleetAutoScalingMode + return ret + }).(FleetAutoScalingModeOutput) +} + +func (o FleetAutoScalingModePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o FleetAutoScalingModePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *FleetAutoScalingMode) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// FleetAutoScalingModeInput is an input type that accepts values of the FleetAutoScalingMode enum +// A concrete instance of `FleetAutoScalingModeInput` can be one of the following: +// +// FleetAutoScalingModeNoScaling +// FleetAutoScalingModeEventBasedAutoScaling +type FleetAutoScalingModeInput interface { + pulumi.Input + + ToFleetAutoScalingModeOutput() FleetAutoScalingModeOutput + ToFleetAutoScalingModeOutputWithContext(context.Context) FleetAutoScalingModeOutput +} + +var fleetAutoScalingModePtrType = reflect.TypeOf((**FleetAutoScalingMode)(nil)).Elem() + +type FleetAutoScalingModePtrInput interface { + pulumi.Input + + ToFleetAutoScalingModePtrOutput() FleetAutoScalingModePtrOutput + ToFleetAutoScalingModePtrOutputWithContext(context.Context) FleetAutoScalingModePtrOutput +} + +type fleetAutoScalingModePtr string + +func FleetAutoScalingModePtr(v string) FleetAutoScalingModePtrInput { + return (*fleetAutoScalingModePtr)(&v) +} + +func (*fleetAutoScalingModePtr) ElementType() reflect.Type { + return fleetAutoScalingModePtrType +} + +func (in *fleetAutoScalingModePtr) ToFleetAutoScalingModePtrOutput() FleetAutoScalingModePtrOutput { + return pulumi.ToOutput(in).(FleetAutoScalingModePtrOutput) +} + +func (in *fleetAutoScalingModePtr) ToFleetAutoScalingModePtrOutputWithContext(ctx context.Context) FleetAutoScalingModePtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(FleetAutoScalingModePtrOutput) +} + +type FleetCpuArchitectureType string + +const ( + FleetCpuArchitectureTypeX8664 = FleetCpuArchitectureType("x86_64") + FleetCpuArchitectureTypeArm64 = FleetCpuArchitectureType("arm64") +) + +func (FleetCpuArchitectureType) ElementType() reflect.Type { + return reflect.TypeOf((*FleetCpuArchitectureType)(nil)).Elem() +} + +func (e FleetCpuArchitectureType) ToFleetCpuArchitectureTypeOutput() FleetCpuArchitectureTypeOutput { + return pulumi.ToOutput(e).(FleetCpuArchitectureTypeOutput) +} + +func (e FleetCpuArchitectureType) ToFleetCpuArchitectureTypeOutputWithContext(ctx context.Context) FleetCpuArchitectureTypeOutput { + return pulumi.ToOutputWithContext(ctx, e).(FleetCpuArchitectureTypeOutput) +} + +func (e FleetCpuArchitectureType) ToFleetCpuArchitectureTypePtrOutput() FleetCpuArchitectureTypePtrOutput { + return e.ToFleetCpuArchitectureTypePtrOutputWithContext(context.Background()) +} + +func (e FleetCpuArchitectureType) ToFleetCpuArchitectureTypePtrOutputWithContext(ctx context.Context) FleetCpuArchitectureTypePtrOutput { + return FleetCpuArchitectureType(e).ToFleetCpuArchitectureTypeOutputWithContext(ctx).ToFleetCpuArchitectureTypePtrOutputWithContext(ctx) +} + +func (e FleetCpuArchitectureType) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e FleetCpuArchitectureType) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e FleetCpuArchitectureType) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e FleetCpuArchitectureType) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type FleetCpuArchitectureTypeOutput struct{ *pulumi.OutputState } + +func (FleetCpuArchitectureTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FleetCpuArchitectureType)(nil)).Elem() +} + +func (o FleetCpuArchitectureTypeOutput) ToFleetCpuArchitectureTypeOutput() FleetCpuArchitectureTypeOutput { + return o +} + +func (o FleetCpuArchitectureTypeOutput) ToFleetCpuArchitectureTypeOutputWithContext(ctx context.Context) FleetCpuArchitectureTypeOutput { + return o +} + +func (o FleetCpuArchitectureTypeOutput) ToFleetCpuArchitectureTypePtrOutput() FleetCpuArchitectureTypePtrOutput { + return o.ToFleetCpuArchitectureTypePtrOutputWithContext(context.Background()) +} + +func (o FleetCpuArchitectureTypeOutput) ToFleetCpuArchitectureTypePtrOutputWithContext(ctx context.Context) FleetCpuArchitectureTypePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FleetCpuArchitectureType) *FleetCpuArchitectureType { + return &v + }).(FleetCpuArchitectureTypePtrOutput) +} + +func (o FleetCpuArchitectureTypeOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o FleetCpuArchitectureTypeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e FleetCpuArchitectureType) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o FleetCpuArchitectureTypeOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o FleetCpuArchitectureTypeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e FleetCpuArchitectureType) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type FleetCpuArchitectureTypePtrOutput struct{ *pulumi.OutputState } + +func (FleetCpuArchitectureTypePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FleetCpuArchitectureType)(nil)).Elem() +} + +func (o FleetCpuArchitectureTypePtrOutput) ToFleetCpuArchitectureTypePtrOutput() FleetCpuArchitectureTypePtrOutput { + return o +} + +func (o FleetCpuArchitectureTypePtrOutput) ToFleetCpuArchitectureTypePtrOutputWithContext(ctx context.Context) FleetCpuArchitectureTypePtrOutput { + return o +} + +func (o FleetCpuArchitectureTypePtrOutput) Elem() FleetCpuArchitectureTypeOutput { + return o.ApplyT(func(v *FleetCpuArchitectureType) FleetCpuArchitectureType { + if v != nil { + return *v + } + var ret FleetCpuArchitectureType + return ret + }).(FleetCpuArchitectureTypeOutput) +} + +func (o FleetCpuArchitectureTypePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o FleetCpuArchitectureTypePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *FleetCpuArchitectureType) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// FleetCpuArchitectureTypeInput is an input type that accepts values of the FleetCpuArchitectureType enum +// A concrete instance of `FleetCpuArchitectureTypeInput` can be one of the following: +// +// FleetCpuArchitectureTypeX8664 +// FleetCpuArchitectureTypeArm64 +type FleetCpuArchitectureTypeInput interface { + pulumi.Input + + ToFleetCpuArchitectureTypeOutput() FleetCpuArchitectureTypeOutput + ToFleetCpuArchitectureTypeOutputWithContext(context.Context) FleetCpuArchitectureTypeOutput +} + +var fleetCpuArchitectureTypePtrType = reflect.TypeOf((**FleetCpuArchitectureType)(nil)).Elem() + +type FleetCpuArchitectureTypePtrInput interface { + pulumi.Input + + ToFleetCpuArchitectureTypePtrOutput() FleetCpuArchitectureTypePtrOutput + ToFleetCpuArchitectureTypePtrOutputWithContext(context.Context) FleetCpuArchitectureTypePtrOutput +} + +type fleetCpuArchitectureTypePtr string + +func FleetCpuArchitectureTypePtr(v string) FleetCpuArchitectureTypePtrInput { + return (*fleetCpuArchitectureTypePtr)(&v) +} + +func (*fleetCpuArchitectureTypePtr) ElementType() reflect.Type { + return fleetCpuArchitectureTypePtrType +} + +func (in *fleetCpuArchitectureTypePtr) ToFleetCpuArchitectureTypePtrOutput() FleetCpuArchitectureTypePtrOutput { + return pulumi.ToOutput(in).(FleetCpuArchitectureTypePtrOutput) +} + +func (in *fleetCpuArchitectureTypePtr) ToFleetCpuArchitectureTypePtrOutputWithContext(ctx context.Context) FleetCpuArchitectureTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(FleetCpuArchitectureTypePtrOutput) +} + +type FleetCustomerManagedFleetOperatingSystemFamily string + +const ( + FleetCustomerManagedFleetOperatingSystemFamilyWindows = FleetCustomerManagedFleetOperatingSystemFamily("WINDOWS") + FleetCustomerManagedFleetOperatingSystemFamilyLinux = FleetCustomerManagedFleetOperatingSystemFamily("LINUX") + FleetCustomerManagedFleetOperatingSystemFamilyMacos = FleetCustomerManagedFleetOperatingSystemFamily("MACOS") +) + +func (FleetCustomerManagedFleetOperatingSystemFamily) ElementType() reflect.Type { + return reflect.TypeOf((*FleetCustomerManagedFleetOperatingSystemFamily)(nil)).Elem() +} + +func (e FleetCustomerManagedFleetOperatingSystemFamily) ToFleetCustomerManagedFleetOperatingSystemFamilyOutput() FleetCustomerManagedFleetOperatingSystemFamilyOutput { + return pulumi.ToOutput(e).(FleetCustomerManagedFleetOperatingSystemFamilyOutput) +} + +func (e FleetCustomerManagedFleetOperatingSystemFamily) ToFleetCustomerManagedFleetOperatingSystemFamilyOutputWithContext(ctx context.Context) FleetCustomerManagedFleetOperatingSystemFamilyOutput { + return pulumi.ToOutputWithContext(ctx, e).(FleetCustomerManagedFleetOperatingSystemFamilyOutput) +} + +func (e FleetCustomerManagedFleetOperatingSystemFamily) ToFleetCustomerManagedFleetOperatingSystemFamilyPtrOutput() FleetCustomerManagedFleetOperatingSystemFamilyPtrOutput { + return e.ToFleetCustomerManagedFleetOperatingSystemFamilyPtrOutputWithContext(context.Background()) +} + +func (e FleetCustomerManagedFleetOperatingSystemFamily) ToFleetCustomerManagedFleetOperatingSystemFamilyPtrOutputWithContext(ctx context.Context) FleetCustomerManagedFleetOperatingSystemFamilyPtrOutput { + return FleetCustomerManagedFleetOperatingSystemFamily(e).ToFleetCustomerManagedFleetOperatingSystemFamilyOutputWithContext(ctx).ToFleetCustomerManagedFleetOperatingSystemFamilyPtrOutputWithContext(ctx) +} + +func (e FleetCustomerManagedFleetOperatingSystemFamily) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e FleetCustomerManagedFleetOperatingSystemFamily) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e FleetCustomerManagedFleetOperatingSystemFamily) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e FleetCustomerManagedFleetOperatingSystemFamily) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type FleetCustomerManagedFleetOperatingSystemFamilyOutput struct{ *pulumi.OutputState } + +func (FleetCustomerManagedFleetOperatingSystemFamilyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FleetCustomerManagedFleetOperatingSystemFamily)(nil)).Elem() +} + +func (o FleetCustomerManagedFleetOperatingSystemFamilyOutput) ToFleetCustomerManagedFleetOperatingSystemFamilyOutput() FleetCustomerManagedFleetOperatingSystemFamilyOutput { + return o +} + +func (o FleetCustomerManagedFleetOperatingSystemFamilyOutput) ToFleetCustomerManagedFleetOperatingSystemFamilyOutputWithContext(ctx context.Context) FleetCustomerManagedFleetOperatingSystemFamilyOutput { + return o +} + +func (o FleetCustomerManagedFleetOperatingSystemFamilyOutput) ToFleetCustomerManagedFleetOperatingSystemFamilyPtrOutput() FleetCustomerManagedFleetOperatingSystemFamilyPtrOutput { + return o.ToFleetCustomerManagedFleetOperatingSystemFamilyPtrOutputWithContext(context.Background()) +} + +func (o FleetCustomerManagedFleetOperatingSystemFamilyOutput) ToFleetCustomerManagedFleetOperatingSystemFamilyPtrOutputWithContext(ctx context.Context) FleetCustomerManagedFleetOperatingSystemFamilyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FleetCustomerManagedFleetOperatingSystemFamily) *FleetCustomerManagedFleetOperatingSystemFamily { + return &v + }).(FleetCustomerManagedFleetOperatingSystemFamilyPtrOutput) +} + +func (o FleetCustomerManagedFleetOperatingSystemFamilyOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o FleetCustomerManagedFleetOperatingSystemFamilyOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e FleetCustomerManagedFleetOperatingSystemFamily) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o FleetCustomerManagedFleetOperatingSystemFamilyOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o FleetCustomerManagedFleetOperatingSystemFamilyOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e FleetCustomerManagedFleetOperatingSystemFamily) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type FleetCustomerManagedFleetOperatingSystemFamilyPtrOutput struct{ *pulumi.OutputState } + +func (FleetCustomerManagedFleetOperatingSystemFamilyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FleetCustomerManagedFleetOperatingSystemFamily)(nil)).Elem() +} + +func (o FleetCustomerManagedFleetOperatingSystemFamilyPtrOutput) ToFleetCustomerManagedFleetOperatingSystemFamilyPtrOutput() FleetCustomerManagedFleetOperatingSystemFamilyPtrOutput { + return o +} + +func (o FleetCustomerManagedFleetOperatingSystemFamilyPtrOutput) ToFleetCustomerManagedFleetOperatingSystemFamilyPtrOutputWithContext(ctx context.Context) FleetCustomerManagedFleetOperatingSystemFamilyPtrOutput { + return o +} + +func (o FleetCustomerManagedFleetOperatingSystemFamilyPtrOutput) Elem() FleetCustomerManagedFleetOperatingSystemFamilyOutput { + return o.ApplyT(func(v *FleetCustomerManagedFleetOperatingSystemFamily) FleetCustomerManagedFleetOperatingSystemFamily { + if v != nil { + return *v + } + var ret FleetCustomerManagedFleetOperatingSystemFamily + return ret + }).(FleetCustomerManagedFleetOperatingSystemFamilyOutput) +} + +func (o FleetCustomerManagedFleetOperatingSystemFamilyPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o FleetCustomerManagedFleetOperatingSystemFamilyPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *FleetCustomerManagedFleetOperatingSystemFamily) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// FleetCustomerManagedFleetOperatingSystemFamilyInput is an input type that accepts values of the FleetCustomerManagedFleetOperatingSystemFamily enum +// A concrete instance of `FleetCustomerManagedFleetOperatingSystemFamilyInput` can be one of the following: +// +// FleetCustomerManagedFleetOperatingSystemFamilyWindows +// FleetCustomerManagedFleetOperatingSystemFamilyLinux +// FleetCustomerManagedFleetOperatingSystemFamilyMacos +type FleetCustomerManagedFleetOperatingSystemFamilyInput interface { + pulumi.Input + + ToFleetCustomerManagedFleetOperatingSystemFamilyOutput() FleetCustomerManagedFleetOperatingSystemFamilyOutput + ToFleetCustomerManagedFleetOperatingSystemFamilyOutputWithContext(context.Context) FleetCustomerManagedFleetOperatingSystemFamilyOutput +} + +var fleetCustomerManagedFleetOperatingSystemFamilyPtrType = reflect.TypeOf((**FleetCustomerManagedFleetOperatingSystemFamily)(nil)).Elem() + +type FleetCustomerManagedFleetOperatingSystemFamilyPtrInput interface { + pulumi.Input + + ToFleetCustomerManagedFleetOperatingSystemFamilyPtrOutput() FleetCustomerManagedFleetOperatingSystemFamilyPtrOutput + ToFleetCustomerManagedFleetOperatingSystemFamilyPtrOutputWithContext(context.Context) FleetCustomerManagedFleetOperatingSystemFamilyPtrOutput +} + +type fleetCustomerManagedFleetOperatingSystemFamilyPtr string + +func FleetCustomerManagedFleetOperatingSystemFamilyPtr(v string) FleetCustomerManagedFleetOperatingSystemFamilyPtrInput { + return (*fleetCustomerManagedFleetOperatingSystemFamilyPtr)(&v) +} + +func (*fleetCustomerManagedFleetOperatingSystemFamilyPtr) ElementType() reflect.Type { + return fleetCustomerManagedFleetOperatingSystemFamilyPtrType +} + +func (in *fleetCustomerManagedFleetOperatingSystemFamilyPtr) ToFleetCustomerManagedFleetOperatingSystemFamilyPtrOutput() FleetCustomerManagedFleetOperatingSystemFamilyPtrOutput { + return pulumi.ToOutput(in).(FleetCustomerManagedFleetOperatingSystemFamilyPtrOutput) +} + +func (in *fleetCustomerManagedFleetOperatingSystemFamilyPtr) ToFleetCustomerManagedFleetOperatingSystemFamilyPtrOutputWithContext(ctx context.Context) FleetCustomerManagedFleetOperatingSystemFamilyPtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(FleetCustomerManagedFleetOperatingSystemFamilyPtrOutput) +} + +type FleetEc2MarketType string + +const ( + FleetEc2MarketTypeOnDemand = FleetEc2MarketType("on-demand") + FleetEc2MarketTypeSpot = FleetEc2MarketType("spot") +) + +func (FleetEc2MarketType) ElementType() reflect.Type { + return reflect.TypeOf((*FleetEc2MarketType)(nil)).Elem() +} + +func (e FleetEc2MarketType) ToFleetEc2MarketTypeOutput() FleetEc2MarketTypeOutput { + return pulumi.ToOutput(e).(FleetEc2MarketTypeOutput) +} + +func (e FleetEc2MarketType) ToFleetEc2MarketTypeOutputWithContext(ctx context.Context) FleetEc2MarketTypeOutput { + return pulumi.ToOutputWithContext(ctx, e).(FleetEc2MarketTypeOutput) +} + +func (e FleetEc2MarketType) ToFleetEc2MarketTypePtrOutput() FleetEc2MarketTypePtrOutput { + return e.ToFleetEc2MarketTypePtrOutputWithContext(context.Background()) +} + +func (e FleetEc2MarketType) ToFleetEc2MarketTypePtrOutputWithContext(ctx context.Context) FleetEc2MarketTypePtrOutput { + return FleetEc2MarketType(e).ToFleetEc2MarketTypeOutputWithContext(ctx).ToFleetEc2MarketTypePtrOutputWithContext(ctx) +} + +func (e FleetEc2MarketType) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e FleetEc2MarketType) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e FleetEc2MarketType) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e FleetEc2MarketType) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type FleetEc2MarketTypeOutput struct{ *pulumi.OutputState } + +func (FleetEc2MarketTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FleetEc2MarketType)(nil)).Elem() +} + +func (o FleetEc2MarketTypeOutput) ToFleetEc2MarketTypeOutput() FleetEc2MarketTypeOutput { + return o +} + +func (o FleetEc2MarketTypeOutput) ToFleetEc2MarketTypeOutputWithContext(ctx context.Context) FleetEc2MarketTypeOutput { + return o +} + +func (o FleetEc2MarketTypeOutput) ToFleetEc2MarketTypePtrOutput() FleetEc2MarketTypePtrOutput { + return o.ToFleetEc2MarketTypePtrOutputWithContext(context.Background()) +} + +func (o FleetEc2MarketTypeOutput) ToFleetEc2MarketTypePtrOutputWithContext(ctx context.Context) FleetEc2MarketTypePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FleetEc2MarketType) *FleetEc2MarketType { + return &v + }).(FleetEc2MarketTypePtrOutput) +} + +func (o FleetEc2MarketTypeOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o FleetEc2MarketTypeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e FleetEc2MarketType) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o FleetEc2MarketTypeOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o FleetEc2MarketTypeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e FleetEc2MarketType) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type FleetEc2MarketTypePtrOutput struct{ *pulumi.OutputState } + +func (FleetEc2MarketTypePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FleetEc2MarketType)(nil)).Elem() +} + +func (o FleetEc2MarketTypePtrOutput) ToFleetEc2MarketTypePtrOutput() FleetEc2MarketTypePtrOutput { + return o +} + +func (o FleetEc2MarketTypePtrOutput) ToFleetEc2MarketTypePtrOutputWithContext(ctx context.Context) FleetEc2MarketTypePtrOutput { + return o +} + +func (o FleetEc2MarketTypePtrOutput) Elem() FleetEc2MarketTypeOutput { + return o.ApplyT(func(v *FleetEc2MarketType) FleetEc2MarketType { + if v != nil { + return *v + } + var ret FleetEc2MarketType + return ret + }).(FleetEc2MarketTypeOutput) +} + +func (o FleetEc2MarketTypePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o FleetEc2MarketTypePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *FleetEc2MarketType) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// FleetEc2MarketTypeInput is an input type that accepts values of the FleetEc2MarketType enum +// A concrete instance of `FleetEc2MarketTypeInput` can be one of the following: +// +// FleetEc2MarketTypeOnDemand +// FleetEc2MarketTypeSpot +type FleetEc2MarketTypeInput interface { + pulumi.Input + + ToFleetEc2MarketTypeOutput() FleetEc2MarketTypeOutput + ToFleetEc2MarketTypeOutputWithContext(context.Context) FleetEc2MarketTypeOutput +} + +var fleetEc2MarketTypePtrType = reflect.TypeOf((**FleetEc2MarketType)(nil)).Elem() + +type FleetEc2MarketTypePtrInput interface { + pulumi.Input + + ToFleetEc2MarketTypePtrOutput() FleetEc2MarketTypePtrOutput + ToFleetEc2MarketTypePtrOutputWithContext(context.Context) FleetEc2MarketTypePtrOutput +} + +type fleetEc2MarketTypePtr string + +func FleetEc2MarketTypePtr(v string) FleetEc2MarketTypePtrInput { + return (*fleetEc2MarketTypePtr)(&v) +} + +func (*fleetEc2MarketTypePtr) ElementType() reflect.Type { + return fleetEc2MarketTypePtrType +} + +func (in *fleetEc2MarketTypePtr) ToFleetEc2MarketTypePtrOutput() FleetEc2MarketTypePtrOutput { + return pulumi.ToOutput(in).(FleetEc2MarketTypePtrOutput) +} + +func (in *fleetEc2MarketTypePtr) ToFleetEc2MarketTypePtrOutputWithContext(ctx context.Context) FleetEc2MarketTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(FleetEc2MarketTypePtrOutput) +} + +type FleetServiceManagedFleetOperatingSystemFamily string + +const ( + FleetServiceManagedFleetOperatingSystemFamilyWindows = FleetServiceManagedFleetOperatingSystemFamily("WINDOWS") + FleetServiceManagedFleetOperatingSystemFamilyLinux = FleetServiceManagedFleetOperatingSystemFamily("LINUX") +) + +func (FleetServiceManagedFleetOperatingSystemFamily) ElementType() reflect.Type { + return reflect.TypeOf((*FleetServiceManagedFleetOperatingSystemFamily)(nil)).Elem() +} + +func (e FleetServiceManagedFleetOperatingSystemFamily) ToFleetServiceManagedFleetOperatingSystemFamilyOutput() FleetServiceManagedFleetOperatingSystemFamilyOutput { + return pulumi.ToOutput(e).(FleetServiceManagedFleetOperatingSystemFamilyOutput) +} + +func (e FleetServiceManagedFleetOperatingSystemFamily) ToFleetServiceManagedFleetOperatingSystemFamilyOutputWithContext(ctx context.Context) FleetServiceManagedFleetOperatingSystemFamilyOutput { + return pulumi.ToOutputWithContext(ctx, e).(FleetServiceManagedFleetOperatingSystemFamilyOutput) +} + +func (e FleetServiceManagedFleetOperatingSystemFamily) ToFleetServiceManagedFleetOperatingSystemFamilyPtrOutput() FleetServiceManagedFleetOperatingSystemFamilyPtrOutput { + return e.ToFleetServiceManagedFleetOperatingSystemFamilyPtrOutputWithContext(context.Background()) +} + +func (e FleetServiceManagedFleetOperatingSystemFamily) ToFleetServiceManagedFleetOperatingSystemFamilyPtrOutputWithContext(ctx context.Context) FleetServiceManagedFleetOperatingSystemFamilyPtrOutput { + return FleetServiceManagedFleetOperatingSystemFamily(e).ToFleetServiceManagedFleetOperatingSystemFamilyOutputWithContext(ctx).ToFleetServiceManagedFleetOperatingSystemFamilyPtrOutputWithContext(ctx) +} + +func (e FleetServiceManagedFleetOperatingSystemFamily) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e FleetServiceManagedFleetOperatingSystemFamily) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e FleetServiceManagedFleetOperatingSystemFamily) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e FleetServiceManagedFleetOperatingSystemFamily) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type FleetServiceManagedFleetOperatingSystemFamilyOutput struct{ *pulumi.OutputState } + +func (FleetServiceManagedFleetOperatingSystemFamilyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FleetServiceManagedFleetOperatingSystemFamily)(nil)).Elem() +} + +func (o FleetServiceManagedFleetOperatingSystemFamilyOutput) ToFleetServiceManagedFleetOperatingSystemFamilyOutput() FleetServiceManagedFleetOperatingSystemFamilyOutput { + return o +} + +func (o FleetServiceManagedFleetOperatingSystemFamilyOutput) ToFleetServiceManagedFleetOperatingSystemFamilyOutputWithContext(ctx context.Context) FleetServiceManagedFleetOperatingSystemFamilyOutput { + return o +} + +func (o FleetServiceManagedFleetOperatingSystemFamilyOutput) ToFleetServiceManagedFleetOperatingSystemFamilyPtrOutput() FleetServiceManagedFleetOperatingSystemFamilyPtrOutput { + return o.ToFleetServiceManagedFleetOperatingSystemFamilyPtrOutputWithContext(context.Background()) +} + +func (o FleetServiceManagedFleetOperatingSystemFamilyOutput) ToFleetServiceManagedFleetOperatingSystemFamilyPtrOutputWithContext(ctx context.Context) FleetServiceManagedFleetOperatingSystemFamilyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FleetServiceManagedFleetOperatingSystemFamily) *FleetServiceManagedFleetOperatingSystemFamily { + return &v + }).(FleetServiceManagedFleetOperatingSystemFamilyPtrOutput) +} + +func (o FleetServiceManagedFleetOperatingSystemFamilyOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o FleetServiceManagedFleetOperatingSystemFamilyOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e FleetServiceManagedFleetOperatingSystemFamily) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o FleetServiceManagedFleetOperatingSystemFamilyOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o FleetServiceManagedFleetOperatingSystemFamilyOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e FleetServiceManagedFleetOperatingSystemFamily) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type FleetServiceManagedFleetOperatingSystemFamilyPtrOutput struct{ *pulumi.OutputState } + +func (FleetServiceManagedFleetOperatingSystemFamilyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FleetServiceManagedFleetOperatingSystemFamily)(nil)).Elem() +} + +func (o FleetServiceManagedFleetOperatingSystemFamilyPtrOutput) ToFleetServiceManagedFleetOperatingSystemFamilyPtrOutput() FleetServiceManagedFleetOperatingSystemFamilyPtrOutput { + return o +} + +func (o FleetServiceManagedFleetOperatingSystemFamilyPtrOutput) ToFleetServiceManagedFleetOperatingSystemFamilyPtrOutputWithContext(ctx context.Context) FleetServiceManagedFleetOperatingSystemFamilyPtrOutput { + return o +} + +func (o FleetServiceManagedFleetOperatingSystemFamilyPtrOutput) Elem() FleetServiceManagedFleetOperatingSystemFamilyOutput { + return o.ApplyT(func(v *FleetServiceManagedFleetOperatingSystemFamily) FleetServiceManagedFleetOperatingSystemFamily { + if v != nil { + return *v + } + var ret FleetServiceManagedFleetOperatingSystemFamily + return ret + }).(FleetServiceManagedFleetOperatingSystemFamilyOutput) +} + +func (o FleetServiceManagedFleetOperatingSystemFamilyPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o FleetServiceManagedFleetOperatingSystemFamilyPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *FleetServiceManagedFleetOperatingSystemFamily) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// FleetServiceManagedFleetOperatingSystemFamilyInput is an input type that accepts values of the FleetServiceManagedFleetOperatingSystemFamily enum +// A concrete instance of `FleetServiceManagedFleetOperatingSystemFamilyInput` can be one of the following: +// +// FleetServiceManagedFleetOperatingSystemFamilyWindows +// FleetServiceManagedFleetOperatingSystemFamilyLinux +type FleetServiceManagedFleetOperatingSystemFamilyInput interface { + pulumi.Input + + ToFleetServiceManagedFleetOperatingSystemFamilyOutput() FleetServiceManagedFleetOperatingSystemFamilyOutput + ToFleetServiceManagedFleetOperatingSystemFamilyOutputWithContext(context.Context) FleetServiceManagedFleetOperatingSystemFamilyOutput +} + +var fleetServiceManagedFleetOperatingSystemFamilyPtrType = reflect.TypeOf((**FleetServiceManagedFleetOperatingSystemFamily)(nil)).Elem() + +type FleetServiceManagedFleetOperatingSystemFamilyPtrInput interface { + pulumi.Input + + ToFleetServiceManagedFleetOperatingSystemFamilyPtrOutput() FleetServiceManagedFleetOperatingSystemFamilyPtrOutput + ToFleetServiceManagedFleetOperatingSystemFamilyPtrOutputWithContext(context.Context) FleetServiceManagedFleetOperatingSystemFamilyPtrOutput +} + +type fleetServiceManagedFleetOperatingSystemFamilyPtr string + +func FleetServiceManagedFleetOperatingSystemFamilyPtr(v string) FleetServiceManagedFleetOperatingSystemFamilyPtrInput { + return (*fleetServiceManagedFleetOperatingSystemFamilyPtr)(&v) +} + +func (*fleetServiceManagedFleetOperatingSystemFamilyPtr) ElementType() reflect.Type { + return fleetServiceManagedFleetOperatingSystemFamilyPtrType +} + +func (in *fleetServiceManagedFleetOperatingSystemFamilyPtr) ToFleetServiceManagedFleetOperatingSystemFamilyPtrOutput() FleetServiceManagedFleetOperatingSystemFamilyPtrOutput { + return pulumi.ToOutput(in).(FleetServiceManagedFleetOperatingSystemFamilyPtrOutput) +} + +func (in *fleetServiceManagedFleetOperatingSystemFamilyPtr) ToFleetServiceManagedFleetOperatingSystemFamilyPtrOutputWithContext(ctx context.Context) FleetServiceManagedFleetOperatingSystemFamilyPtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(FleetServiceManagedFleetOperatingSystemFamilyPtrOutput) +} + +type FleetStatus string + +const ( + FleetStatusActive = FleetStatus("ACTIVE") + FleetStatusCreateInProgress = FleetStatus("CREATE_IN_PROGRESS") + FleetStatusUpdateInProgress = FleetStatus("UPDATE_IN_PROGRESS") + FleetStatusCreateFailed = FleetStatus("CREATE_FAILED") + FleetStatusUpdateFailed = FleetStatus("UPDATE_FAILED") +) + +type FleetStatusOutput struct{ *pulumi.OutputState } + +func (FleetStatusOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FleetStatus)(nil)).Elem() +} + +func (o FleetStatusOutput) ToFleetStatusOutput() FleetStatusOutput { + return o +} + +func (o FleetStatusOutput) ToFleetStatusOutputWithContext(ctx context.Context) FleetStatusOutput { + return o +} + +func (o FleetStatusOutput) ToFleetStatusPtrOutput() FleetStatusPtrOutput { + return o.ToFleetStatusPtrOutputWithContext(context.Background()) +} + +func (o FleetStatusOutput) ToFleetStatusPtrOutputWithContext(ctx context.Context) FleetStatusPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FleetStatus) *FleetStatus { + return &v + }).(FleetStatusPtrOutput) +} + +func (o FleetStatusOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o FleetStatusOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e FleetStatus) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o FleetStatusOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o FleetStatusOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e FleetStatus) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type FleetStatusPtrOutput struct{ *pulumi.OutputState } + +func (FleetStatusPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FleetStatus)(nil)).Elem() +} + +func (o FleetStatusPtrOutput) ToFleetStatusPtrOutput() FleetStatusPtrOutput { + return o +} + +func (o FleetStatusPtrOutput) ToFleetStatusPtrOutputWithContext(ctx context.Context) FleetStatusPtrOutput { + return o +} + +func (o FleetStatusPtrOutput) Elem() FleetStatusOutput { + return o.ApplyT(func(v *FleetStatus) FleetStatus { + if v != nil { + return *v + } + var ret FleetStatus + return ret + }).(FleetStatusOutput) +} + +func (o FleetStatusPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o FleetStatusPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *FleetStatus) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +type LicenseEndpointStatus string + +const ( + LicenseEndpointStatusCreateInProgress = LicenseEndpointStatus("CREATE_IN_PROGRESS") + LicenseEndpointStatusDeleteInProgress = LicenseEndpointStatus("DELETE_IN_PROGRESS") + LicenseEndpointStatusReady = LicenseEndpointStatus("READY") + LicenseEndpointStatusNotReady = LicenseEndpointStatus("NOT_READY") +) + +type LicenseEndpointStatusOutput struct{ *pulumi.OutputState } + +func (LicenseEndpointStatusOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LicenseEndpointStatus)(nil)).Elem() +} + +func (o LicenseEndpointStatusOutput) ToLicenseEndpointStatusOutput() LicenseEndpointStatusOutput { + return o +} + +func (o LicenseEndpointStatusOutput) ToLicenseEndpointStatusOutputWithContext(ctx context.Context) LicenseEndpointStatusOutput { + return o +} + +func (o LicenseEndpointStatusOutput) ToLicenseEndpointStatusPtrOutput() LicenseEndpointStatusPtrOutput { + return o.ToLicenseEndpointStatusPtrOutputWithContext(context.Background()) +} + +func (o LicenseEndpointStatusOutput) ToLicenseEndpointStatusPtrOutputWithContext(ctx context.Context) LicenseEndpointStatusPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v LicenseEndpointStatus) *LicenseEndpointStatus { + return &v + }).(LicenseEndpointStatusPtrOutput) +} + +func (o LicenseEndpointStatusOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o LicenseEndpointStatusOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e LicenseEndpointStatus) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o LicenseEndpointStatusOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o LicenseEndpointStatusOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e LicenseEndpointStatus) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type LicenseEndpointStatusPtrOutput struct{ *pulumi.OutputState } + +func (LicenseEndpointStatusPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LicenseEndpointStatus)(nil)).Elem() +} + +func (o LicenseEndpointStatusPtrOutput) ToLicenseEndpointStatusPtrOutput() LicenseEndpointStatusPtrOutput { + return o +} + +func (o LicenseEndpointStatusPtrOutput) ToLicenseEndpointStatusPtrOutputWithContext(ctx context.Context) LicenseEndpointStatusPtrOutput { + return o +} + +func (o LicenseEndpointStatusPtrOutput) Elem() LicenseEndpointStatusOutput { + return o.ApplyT(func(v *LicenseEndpointStatus) LicenseEndpointStatus { + if v != nil { + return *v + } + var ret LicenseEndpointStatus + return ret + }).(LicenseEndpointStatusOutput) +} + +func (o LicenseEndpointStatusPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o LicenseEndpointStatusPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *LicenseEndpointStatus) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +type QueueDefaultQueueBudgetAction string + +const ( + QueueDefaultQueueBudgetActionNone = QueueDefaultQueueBudgetAction("NONE") + QueueDefaultQueueBudgetActionStopSchedulingAndCompleteTasks = QueueDefaultQueueBudgetAction("STOP_SCHEDULING_AND_COMPLETE_TASKS") + QueueDefaultQueueBudgetActionStopSchedulingAndCancelTasks = QueueDefaultQueueBudgetAction("STOP_SCHEDULING_AND_CANCEL_TASKS") +) + +func (QueueDefaultQueueBudgetAction) ElementType() reflect.Type { + return reflect.TypeOf((*QueueDefaultQueueBudgetAction)(nil)).Elem() +} + +func (e QueueDefaultQueueBudgetAction) ToQueueDefaultQueueBudgetActionOutput() QueueDefaultQueueBudgetActionOutput { + return pulumi.ToOutput(e).(QueueDefaultQueueBudgetActionOutput) +} + +func (e QueueDefaultQueueBudgetAction) ToQueueDefaultQueueBudgetActionOutputWithContext(ctx context.Context) QueueDefaultQueueBudgetActionOutput { + return pulumi.ToOutputWithContext(ctx, e).(QueueDefaultQueueBudgetActionOutput) +} + +func (e QueueDefaultQueueBudgetAction) ToQueueDefaultQueueBudgetActionPtrOutput() QueueDefaultQueueBudgetActionPtrOutput { + return e.ToQueueDefaultQueueBudgetActionPtrOutputWithContext(context.Background()) +} + +func (e QueueDefaultQueueBudgetAction) ToQueueDefaultQueueBudgetActionPtrOutputWithContext(ctx context.Context) QueueDefaultQueueBudgetActionPtrOutput { + return QueueDefaultQueueBudgetAction(e).ToQueueDefaultQueueBudgetActionOutputWithContext(ctx).ToQueueDefaultQueueBudgetActionPtrOutputWithContext(ctx) +} + +func (e QueueDefaultQueueBudgetAction) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e QueueDefaultQueueBudgetAction) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e QueueDefaultQueueBudgetAction) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e QueueDefaultQueueBudgetAction) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type QueueDefaultQueueBudgetActionOutput struct{ *pulumi.OutputState } + +func (QueueDefaultQueueBudgetActionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*QueueDefaultQueueBudgetAction)(nil)).Elem() +} + +func (o QueueDefaultQueueBudgetActionOutput) ToQueueDefaultQueueBudgetActionOutput() QueueDefaultQueueBudgetActionOutput { + return o +} + +func (o QueueDefaultQueueBudgetActionOutput) ToQueueDefaultQueueBudgetActionOutputWithContext(ctx context.Context) QueueDefaultQueueBudgetActionOutput { + return o +} + +func (o QueueDefaultQueueBudgetActionOutput) ToQueueDefaultQueueBudgetActionPtrOutput() QueueDefaultQueueBudgetActionPtrOutput { + return o.ToQueueDefaultQueueBudgetActionPtrOutputWithContext(context.Background()) +} + +func (o QueueDefaultQueueBudgetActionOutput) ToQueueDefaultQueueBudgetActionPtrOutputWithContext(ctx context.Context) QueueDefaultQueueBudgetActionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v QueueDefaultQueueBudgetAction) *QueueDefaultQueueBudgetAction { + return &v + }).(QueueDefaultQueueBudgetActionPtrOutput) +} + +func (o QueueDefaultQueueBudgetActionOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o QueueDefaultQueueBudgetActionOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e QueueDefaultQueueBudgetAction) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o QueueDefaultQueueBudgetActionOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o QueueDefaultQueueBudgetActionOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e QueueDefaultQueueBudgetAction) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type QueueDefaultQueueBudgetActionPtrOutput struct{ *pulumi.OutputState } + +func (QueueDefaultQueueBudgetActionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**QueueDefaultQueueBudgetAction)(nil)).Elem() +} + +func (o QueueDefaultQueueBudgetActionPtrOutput) ToQueueDefaultQueueBudgetActionPtrOutput() QueueDefaultQueueBudgetActionPtrOutput { + return o +} + +func (o QueueDefaultQueueBudgetActionPtrOutput) ToQueueDefaultQueueBudgetActionPtrOutputWithContext(ctx context.Context) QueueDefaultQueueBudgetActionPtrOutput { + return o +} + +func (o QueueDefaultQueueBudgetActionPtrOutput) Elem() QueueDefaultQueueBudgetActionOutput { + return o.ApplyT(func(v *QueueDefaultQueueBudgetAction) QueueDefaultQueueBudgetAction { + if v != nil { + return *v + } + var ret QueueDefaultQueueBudgetAction + return ret + }).(QueueDefaultQueueBudgetActionOutput) +} + +func (o QueueDefaultQueueBudgetActionPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o QueueDefaultQueueBudgetActionPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *QueueDefaultQueueBudgetAction) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// QueueDefaultQueueBudgetActionInput is an input type that accepts values of the QueueDefaultQueueBudgetAction enum +// A concrete instance of `QueueDefaultQueueBudgetActionInput` can be one of the following: +// +// QueueDefaultQueueBudgetActionNone +// QueueDefaultQueueBudgetActionStopSchedulingAndCompleteTasks +// QueueDefaultQueueBudgetActionStopSchedulingAndCancelTasks +type QueueDefaultQueueBudgetActionInput interface { + pulumi.Input + + ToQueueDefaultQueueBudgetActionOutput() QueueDefaultQueueBudgetActionOutput + ToQueueDefaultQueueBudgetActionOutputWithContext(context.Context) QueueDefaultQueueBudgetActionOutput +} + +var queueDefaultQueueBudgetActionPtrType = reflect.TypeOf((**QueueDefaultQueueBudgetAction)(nil)).Elem() + +type QueueDefaultQueueBudgetActionPtrInput interface { + pulumi.Input + + ToQueueDefaultQueueBudgetActionPtrOutput() QueueDefaultQueueBudgetActionPtrOutput + ToQueueDefaultQueueBudgetActionPtrOutputWithContext(context.Context) QueueDefaultQueueBudgetActionPtrOutput +} + +type queueDefaultQueueBudgetActionPtr string + +func QueueDefaultQueueBudgetActionPtr(v string) QueueDefaultQueueBudgetActionPtrInput { + return (*queueDefaultQueueBudgetActionPtr)(&v) +} + +func (*queueDefaultQueueBudgetActionPtr) ElementType() reflect.Type { + return queueDefaultQueueBudgetActionPtrType +} + +func (in *queueDefaultQueueBudgetActionPtr) ToQueueDefaultQueueBudgetActionPtrOutput() QueueDefaultQueueBudgetActionPtrOutput { + return pulumi.ToOutput(in).(QueueDefaultQueueBudgetActionPtrOutput) +} + +func (in *queueDefaultQueueBudgetActionPtr) ToQueueDefaultQueueBudgetActionPtrOutputWithContext(ctx context.Context) QueueDefaultQueueBudgetActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(QueueDefaultQueueBudgetActionPtrOutput) +} + +type QueueEnvironmentEnvironmentTemplateType string + +const ( + QueueEnvironmentEnvironmentTemplateTypeJson = QueueEnvironmentEnvironmentTemplateType("JSON") + QueueEnvironmentEnvironmentTemplateTypeYaml = QueueEnvironmentEnvironmentTemplateType("YAML") +) + +func (QueueEnvironmentEnvironmentTemplateType) ElementType() reflect.Type { + return reflect.TypeOf((*QueueEnvironmentEnvironmentTemplateType)(nil)).Elem() +} + +func (e QueueEnvironmentEnvironmentTemplateType) ToQueueEnvironmentEnvironmentTemplateTypeOutput() QueueEnvironmentEnvironmentTemplateTypeOutput { + return pulumi.ToOutput(e).(QueueEnvironmentEnvironmentTemplateTypeOutput) +} + +func (e QueueEnvironmentEnvironmentTemplateType) ToQueueEnvironmentEnvironmentTemplateTypeOutputWithContext(ctx context.Context) QueueEnvironmentEnvironmentTemplateTypeOutput { + return pulumi.ToOutputWithContext(ctx, e).(QueueEnvironmentEnvironmentTemplateTypeOutput) +} + +func (e QueueEnvironmentEnvironmentTemplateType) ToQueueEnvironmentEnvironmentTemplateTypePtrOutput() QueueEnvironmentEnvironmentTemplateTypePtrOutput { + return e.ToQueueEnvironmentEnvironmentTemplateTypePtrOutputWithContext(context.Background()) +} + +func (e QueueEnvironmentEnvironmentTemplateType) ToQueueEnvironmentEnvironmentTemplateTypePtrOutputWithContext(ctx context.Context) QueueEnvironmentEnvironmentTemplateTypePtrOutput { + return QueueEnvironmentEnvironmentTemplateType(e).ToQueueEnvironmentEnvironmentTemplateTypeOutputWithContext(ctx).ToQueueEnvironmentEnvironmentTemplateTypePtrOutputWithContext(ctx) +} + +func (e QueueEnvironmentEnvironmentTemplateType) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e QueueEnvironmentEnvironmentTemplateType) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e QueueEnvironmentEnvironmentTemplateType) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e QueueEnvironmentEnvironmentTemplateType) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type QueueEnvironmentEnvironmentTemplateTypeOutput struct{ *pulumi.OutputState } + +func (QueueEnvironmentEnvironmentTemplateTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*QueueEnvironmentEnvironmentTemplateType)(nil)).Elem() +} + +func (o QueueEnvironmentEnvironmentTemplateTypeOutput) ToQueueEnvironmentEnvironmentTemplateTypeOutput() QueueEnvironmentEnvironmentTemplateTypeOutput { + return o +} + +func (o QueueEnvironmentEnvironmentTemplateTypeOutput) ToQueueEnvironmentEnvironmentTemplateTypeOutputWithContext(ctx context.Context) QueueEnvironmentEnvironmentTemplateTypeOutput { + return o +} + +func (o QueueEnvironmentEnvironmentTemplateTypeOutput) ToQueueEnvironmentEnvironmentTemplateTypePtrOutput() QueueEnvironmentEnvironmentTemplateTypePtrOutput { + return o.ToQueueEnvironmentEnvironmentTemplateTypePtrOutputWithContext(context.Background()) +} + +func (o QueueEnvironmentEnvironmentTemplateTypeOutput) ToQueueEnvironmentEnvironmentTemplateTypePtrOutputWithContext(ctx context.Context) QueueEnvironmentEnvironmentTemplateTypePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v QueueEnvironmentEnvironmentTemplateType) *QueueEnvironmentEnvironmentTemplateType { + return &v + }).(QueueEnvironmentEnvironmentTemplateTypePtrOutput) +} + +func (o QueueEnvironmentEnvironmentTemplateTypeOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o QueueEnvironmentEnvironmentTemplateTypeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e QueueEnvironmentEnvironmentTemplateType) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o QueueEnvironmentEnvironmentTemplateTypeOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o QueueEnvironmentEnvironmentTemplateTypeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e QueueEnvironmentEnvironmentTemplateType) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type QueueEnvironmentEnvironmentTemplateTypePtrOutput struct{ *pulumi.OutputState } + +func (QueueEnvironmentEnvironmentTemplateTypePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**QueueEnvironmentEnvironmentTemplateType)(nil)).Elem() +} + +func (o QueueEnvironmentEnvironmentTemplateTypePtrOutput) ToQueueEnvironmentEnvironmentTemplateTypePtrOutput() QueueEnvironmentEnvironmentTemplateTypePtrOutput { + return o +} + +func (o QueueEnvironmentEnvironmentTemplateTypePtrOutput) ToQueueEnvironmentEnvironmentTemplateTypePtrOutputWithContext(ctx context.Context) QueueEnvironmentEnvironmentTemplateTypePtrOutput { + return o +} + +func (o QueueEnvironmentEnvironmentTemplateTypePtrOutput) Elem() QueueEnvironmentEnvironmentTemplateTypeOutput { + return o.ApplyT(func(v *QueueEnvironmentEnvironmentTemplateType) QueueEnvironmentEnvironmentTemplateType { + if v != nil { + return *v + } + var ret QueueEnvironmentEnvironmentTemplateType + return ret + }).(QueueEnvironmentEnvironmentTemplateTypeOutput) +} + +func (o QueueEnvironmentEnvironmentTemplateTypePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o QueueEnvironmentEnvironmentTemplateTypePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *QueueEnvironmentEnvironmentTemplateType) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// QueueEnvironmentEnvironmentTemplateTypeInput is an input type that accepts values of the QueueEnvironmentEnvironmentTemplateType enum +// A concrete instance of `QueueEnvironmentEnvironmentTemplateTypeInput` can be one of the following: +// +// QueueEnvironmentEnvironmentTemplateTypeJson +// QueueEnvironmentEnvironmentTemplateTypeYaml +type QueueEnvironmentEnvironmentTemplateTypeInput interface { + pulumi.Input + + ToQueueEnvironmentEnvironmentTemplateTypeOutput() QueueEnvironmentEnvironmentTemplateTypeOutput + ToQueueEnvironmentEnvironmentTemplateTypeOutputWithContext(context.Context) QueueEnvironmentEnvironmentTemplateTypeOutput +} + +var queueEnvironmentEnvironmentTemplateTypePtrType = reflect.TypeOf((**QueueEnvironmentEnvironmentTemplateType)(nil)).Elem() + +type QueueEnvironmentEnvironmentTemplateTypePtrInput interface { + pulumi.Input + + ToQueueEnvironmentEnvironmentTemplateTypePtrOutput() QueueEnvironmentEnvironmentTemplateTypePtrOutput + ToQueueEnvironmentEnvironmentTemplateTypePtrOutputWithContext(context.Context) QueueEnvironmentEnvironmentTemplateTypePtrOutput +} + +type queueEnvironmentEnvironmentTemplateTypePtr string + +func QueueEnvironmentEnvironmentTemplateTypePtr(v string) QueueEnvironmentEnvironmentTemplateTypePtrInput { + return (*queueEnvironmentEnvironmentTemplateTypePtr)(&v) +} + +func (*queueEnvironmentEnvironmentTemplateTypePtr) ElementType() reflect.Type { + return queueEnvironmentEnvironmentTemplateTypePtrType +} + +func (in *queueEnvironmentEnvironmentTemplateTypePtr) ToQueueEnvironmentEnvironmentTemplateTypePtrOutput() QueueEnvironmentEnvironmentTemplateTypePtrOutput { + return pulumi.ToOutput(in).(QueueEnvironmentEnvironmentTemplateTypePtrOutput) +} + +func (in *queueEnvironmentEnvironmentTemplateTypePtr) ToQueueEnvironmentEnvironmentTemplateTypePtrOutputWithContext(ctx context.Context) QueueEnvironmentEnvironmentTemplateTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(QueueEnvironmentEnvironmentTemplateTypePtrOutput) +} + +type QueueRunAs string + +const ( + QueueRunAsQueueConfiguredUser = QueueRunAs("QUEUE_CONFIGURED_USER") + QueueRunAsWorkerAgentUser = QueueRunAs("WORKER_AGENT_USER") +) + +func (QueueRunAs) ElementType() reflect.Type { + return reflect.TypeOf((*QueueRunAs)(nil)).Elem() +} + +func (e QueueRunAs) ToQueueRunAsOutput() QueueRunAsOutput { + return pulumi.ToOutput(e).(QueueRunAsOutput) +} + +func (e QueueRunAs) ToQueueRunAsOutputWithContext(ctx context.Context) QueueRunAsOutput { + return pulumi.ToOutputWithContext(ctx, e).(QueueRunAsOutput) +} + +func (e QueueRunAs) ToQueueRunAsPtrOutput() QueueRunAsPtrOutput { + return e.ToQueueRunAsPtrOutputWithContext(context.Background()) +} + +func (e QueueRunAs) ToQueueRunAsPtrOutputWithContext(ctx context.Context) QueueRunAsPtrOutput { + return QueueRunAs(e).ToQueueRunAsOutputWithContext(ctx).ToQueueRunAsPtrOutputWithContext(ctx) +} + +func (e QueueRunAs) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e QueueRunAs) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e QueueRunAs) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e QueueRunAs) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type QueueRunAsOutput struct{ *pulumi.OutputState } + +func (QueueRunAsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*QueueRunAs)(nil)).Elem() +} + +func (o QueueRunAsOutput) ToQueueRunAsOutput() QueueRunAsOutput { + return o +} + +func (o QueueRunAsOutput) ToQueueRunAsOutputWithContext(ctx context.Context) QueueRunAsOutput { + return o +} + +func (o QueueRunAsOutput) ToQueueRunAsPtrOutput() QueueRunAsPtrOutput { + return o.ToQueueRunAsPtrOutputWithContext(context.Background()) +} + +func (o QueueRunAsOutput) ToQueueRunAsPtrOutputWithContext(ctx context.Context) QueueRunAsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v QueueRunAs) *QueueRunAs { + return &v + }).(QueueRunAsPtrOutput) +} + +func (o QueueRunAsOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o QueueRunAsOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e QueueRunAs) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o QueueRunAsOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o QueueRunAsOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e QueueRunAs) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type QueueRunAsPtrOutput struct{ *pulumi.OutputState } + +func (QueueRunAsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**QueueRunAs)(nil)).Elem() +} + +func (o QueueRunAsPtrOutput) ToQueueRunAsPtrOutput() QueueRunAsPtrOutput { + return o +} + +func (o QueueRunAsPtrOutput) ToQueueRunAsPtrOutputWithContext(ctx context.Context) QueueRunAsPtrOutput { + return o +} + +func (o QueueRunAsPtrOutput) Elem() QueueRunAsOutput { + return o.ApplyT(func(v *QueueRunAs) QueueRunAs { + if v != nil { + return *v + } + var ret QueueRunAs + return ret + }).(QueueRunAsOutput) +} + +func (o QueueRunAsPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o QueueRunAsPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *QueueRunAs) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// QueueRunAsInput is an input type that accepts values of the QueueRunAs enum +// A concrete instance of `QueueRunAsInput` can be one of the following: +// +// QueueRunAsQueueConfiguredUser +// QueueRunAsWorkerAgentUser +type QueueRunAsInput interface { + pulumi.Input + + ToQueueRunAsOutput() QueueRunAsOutput + ToQueueRunAsOutputWithContext(context.Context) QueueRunAsOutput +} + +var queueRunAsPtrType = reflect.TypeOf((**QueueRunAs)(nil)).Elem() + +type QueueRunAsPtrInput interface { + pulumi.Input + + ToQueueRunAsPtrOutput() QueueRunAsPtrOutput + ToQueueRunAsPtrOutputWithContext(context.Context) QueueRunAsPtrOutput +} + +type queueRunAsPtr string + +func QueueRunAsPtr(v string) QueueRunAsPtrInput { + return (*queueRunAsPtr)(&v) +} + +func (*queueRunAsPtr) ElementType() reflect.Type { + return queueRunAsPtrType +} + +func (in *queueRunAsPtr) ToQueueRunAsPtrOutput() QueueRunAsPtrOutput { + return pulumi.ToOutput(in).(QueueRunAsPtrOutput) +} + +func (in *queueRunAsPtr) ToQueueRunAsPtrOutputWithContext(ctx context.Context) QueueRunAsPtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(QueueRunAsPtrOutput) +} + +type StorageProfileFileSystemLocationType string + +const ( + StorageProfileFileSystemLocationTypeShared = StorageProfileFileSystemLocationType("SHARED") + StorageProfileFileSystemLocationTypeLocal = StorageProfileFileSystemLocationType("LOCAL") +) + +func (StorageProfileFileSystemLocationType) ElementType() reflect.Type { + return reflect.TypeOf((*StorageProfileFileSystemLocationType)(nil)).Elem() +} + +func (e StorageProfileFileSystemLocationType) ToStorageProfileFileSystemLocationTypeOutput() StorageProfileFileSystemLocationTypeOutput { + return pulumi.ToOutput(e).(StorageProfileFileSystemLocationTypeOutput) +} + +func (e StorageProfileFileSystemLocationType) ToStorageProfileFileSystemLocationTypeOutputWithContext(ctx context.Context) StorageProfileFileSystemLocationTypeOutput { + return pulumi.ToOutputWithContext(ctx, e).(StorageProfileFileSystemLocationTypeOutput) +} + +func (e StorageProfileFileSystemLocationType) ToStorageProfileFileSystemLocationTypePtrOutput() StorageProfileFileSystemLocationTypePtrOutput { + return e.ToStorageProfileFileSystemLocationTypePtrOutputWithContext(context.Background()) +} + +func (e StorageProfileFileSystemLocationType) ToStorageProfileFileSystemLocationTypePtrOutputWithContext(ctx context.Context) StorageProfileFileSystemLocationTypePtrOutput { + return StorageProfileFileSystemLocationType(e).ToStorageProfileFileSystemLocationTypeOutputWithContext(ctx).ToStorageProfileFileSystemLocationTypePtrOutputWithContext(ctx) +} + +func (e StorageProfileFileSystemLocationType) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e StorageProfileFileSystemLocationType) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e StorageProfileFileSystemLocationType) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e StorageProfileFileSystemLocationType) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type StorageProfileFileSystemLocationTypeOutput struct{ *pulumi.OutputState } + +func (StorageProfileFileSystemLocationTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StorageProfileFileSystemLocationType)(nil)).Elem() +} + +func (o StorageProfileFileSystemLocationTypeOutput) ToStorageProfileFileSystemLocationTypeOutput() StorageProfileFileSystemLocationTypeOutput { + return o +} + +func (o StorageProfileFileSystemLocationTypeOutput) ToStorageProfileFileSystemLocationTypeOutputWithContext(ctx context.Context) StorageProfileFileSystemLocationTypeOutput { + return o +} + +func (o StorageProfileFileSystemLocationTypeOutput) ToStorageProfileFileSystemLocationTypePtrOutput() StorageProfileFileSystemLocationTypePtrOutput { + return o.ToStorageProfileFileSystemLocationTypePtrOutputWithContext(context.Background()) +} + +func (o StorageProfileFileSystemLocationTypeOutput) ToStorageProfileFileSystemLocationTypePtrOutputWithContext(ctx context.Context) StorageProfileFileSystemLocationTypePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StorageProfileFileSystemLocationType) *StorageProfileFileSystemLocationType { + return &v + }).(StorageProfileFileSystemLocationTypePtrOutput) +} + +func (o StorageProfileFileSystemLocationTypeOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o StorageProfileFileSystemLocationTypeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e StorageProfileFileSystemLocationType) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o StorageProfileFileSystemLocationTypeOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o StorageProfileFileSystemLocationTypeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e StorageProfileFileSystemLocationType) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type StorageProfileFileSystemLocationTypePtrOutput struct{ *pulumi.OutputState } + +func (StorageProfileFileSystemLocationTypePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StorageProfileFileSystemLocationType)(nil)).Elem() +} + +func (o StorageProfileFileSystemLocationTypePtrOutput) ToStorageProfileFileSystemLocationTypePtrOutput() StorageProfileFileSystemLocationTypePtrOutput { + return o +} + +func (o StorageProfileFileSystemLocationTypePtrOutput) ToStorageProfileFileSystemLocationTypePtrOutputWithContext(ctx context.Context) StorageProfileFileSystemLocationTypePtrOutput { + return o +} + +func (o StorageProfileFileSystemLocationTypePtrOutput) Elem() StorageProfileFileSystemLocationTypeOutput { + return o.ApplyT(func(v *StorageProfileFileSystemLocationType) StorageProfileFileSystemLocationType { + if v != nil { + return *v + } + var ret StorageProfileFileSystemLocationType + return ret + }).(StorageProfileFileSystemLocationTypeOutput) +} + +func (o StorageProfileFileSystemLocationTypePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o StorageProfileFileSystemLocationTypePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *StorageProfileFileSystemLocationType) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// StorageProfileFileSystemLocationTypeInput is an input type that accepts values of the StorageProfileFileSystemLocationType enum +// A concrete instance of `StorageProfileFileSystemLocationTypeInput` can be one of the following: +// +// StorageProfileFileSystemLocationTypeShared +// StorageProfileFileSystemLocationTypeLocal +type StorageProfileFileSystemLocationTypeInput interface { + pulumi.Input + + ToStorageProfileFileSystemLocationTypeOutput() StorageProfileFileSystemLocationTypeOutput + ToStorageProfileFileSystemLocationTypeOutputWithContext(context.Context) StorageProfileFileSystemLocationTypeOutput +} + +var storageProfileFileSystemLocationTypePtrType = reflect.TypeOf((**StorageProfileFileSystemLocationType)(nil)).Elem() + +type StorageProfileFileSystemLocationTypePtrInput interface { + pulumi.Input + + ToStorageProfileFileSystemLocationTypePtrOutput() StorageProfileFileSystemLocationTypePtrOutput + ToStorageProfileFileSystemLocationTypePtrOutputWithContext(context.Context) StorageProfileFileSystemLocationTypePtrOutput +} + +type storageProfileFileSystemLocationTypePtr string + +func StorageProfileFileSystemLocationTypePtr(v string) StorageProfileFileSystemLocationTypePtrInput { + return (*storageProfileFileSystemLocationTypePtr)(&v) +} + +func (*storageProfileFileSystemLocationTypePtr) ElementType() reflect.Type { + return storageProfileFileSystemLocationTypePtrType +} + +func (in *storageProfileFileSystemLocationTypePtr) ToStorageProfileFileSystemLocationTypePtrOutput() StorageProfileFileSystemLocationTypePtrOutput { + return pulumi.ToOutput(in).(StorageProfileFileSystemLocationTypePtrOutput) +} + +func (in *storageProfileFileSystemLocationTypePtr) ToStorageProfileFileSystemLocationTypePtrOutputWithContext(ctx context.Context) StorageProfileFileSystemLocationTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(StorageProfileFileSystemLocationTypePtrOutput) +} + +type StorageProfileOperatingSystemFamily string + +const ( + StorageProfileOperatingSystemFamilyWindows = StorageProfileOperatingSystemFamily("WINDOWS") + StorageProfileOperatingSystemFamilyLinux = StorageProfileOperatingSystemFamily("LINUX") + StorageProfileOperatingSystemFamilyMacos = StorageProfileOperatingSystemFamily("MACOS") +) + +func (StorageProfileOperatingSystemFamily) ElementType() reflect.Type { + return reflect.TypeOf((*StorageProfileOperatingSystemFamily)(nil)).Elem() +} + +func (e StorageProfileOperatingSystemFamily) ToStorageProfileOperatingSystemFamilyOutput() StorageProfileOperatingSystemFamilyOutput { + return pulumi.ToOutput(e).(StorageProfileOperatingSystemFamilyOutput) +} + +func (e StorageProfileOperatingSystemFamily) ToStorageProfileOperatingSystemFamilyOutputWithContext(ctx context.Context) StorageProfileOperatingSystemFamilyOutput { + return pulumi.ToOutputWithContext(ctx, e).(StorageProfileOperatingSystemFamilyOutput) +} + +func (e StorageProfileOperatingSystemFamily) ToStorageProfileOperatingSystemFamilyPtrOutput() StorageProfileOperatingSystemFamilyPtrOutput { + return e.ToStorageProfileOperatingSystemFamilyPtrOutputWithContext(context.Background()) +} + +func (e StorageProfileOperatingSystemFamily) ToStorageProfileOperatingSystemFamilyPtrOutputWithContext(ctx context.Context) StorageProfileOperatingSystemFamilyPtrOutput { + return StorageProfileOperatingSystemFamily(e).ToStorageProfileOperatingSystemFamilyOutputWithContext(ctx).ToStorageProfileOperatingSystemFamilyPtrOutputWithContext(ctx) +} + +func (e StorageProfileOperatingSystemFamily) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e StorageProfileOperatingSystemFamily) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e StorageProfileOperatingSystemFamily) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e StorageProfileOperatingSystemFamily) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type StorageProfileOperatingSystemFamilyOutput struct{ *pulumi.OutputState } + +func (StorageProfileOperatingSystemFamilyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StorageProfileOperatingSystemFamily)(nil)).Elem() +} + +func (o StorageProfileOperatingSystemFamilyOutput) ToStorageProfileOperatingSystemFamilyOutput() StorageProfileOperatingSystemFamilyOutput { + return o +} + +func (o StorageProfileOperatingSystemFamilyOutput) ToStorageProfileOperatingSystemFamilyOutputWithContext(ctx context.Context) StorageProfileOperatingSystemFamilyOutput { + return o +} + +func (o StorageProfileOperatingSystemFamilyOutput) ToStorageProfileOperatingSystemFamilyPtrOutput() StorageProfileOperatingSystemFamilyPtrOutput { + return o.ToStorageProfileOperatingSystemFamilyPtrOutputWithContext(context.Background()) +} + +func (o StorageProfileOperatingSystemFamilyOutput) ToStorageProfileOperatingSystemFamilyPtrOutputWithContext(ctx context.Context) StorageProfileOperatingSystemFamilyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StorageProfileOperatingSystemFamily) *StorageProfileOperatingSystemFamily { + return &v + }).(StorageProfileOperatingSystemFamilyPtrOutput) +} + +func (o StorageProfileOperatingSystemFamilyOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o StorageProfileOperatingSystemFamilyOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e StorageProfileOperatingSystemFamily) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o StorageProfileOperatingSystemFamilyOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o StorageProfileOperatingSystemFamilyOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e StorageProfileOperatingSystemFamily) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type StorageProfileOperatingSystemFamilyPtrOutput struct{ *pulumi.OutputState } + +func (StorageProfileOperatingSystemFamilyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StorageProfileOperatingSystemFamily)(nil)).Elem() +} + +func (o StorageProfileOperatingSystemFamilyPtrOutput) ToStorageProfileOperatingSystemFamilyPtrOutput() StorageProfileOperatingSystemFamilyPtrOutput { + return o +} + +func (o StorageProfileOperatingSystemFamilyPtrOutput) ToStorageProfileOperatingSystemFamilyPtrOutputWithContext(ctx context.Context) StorageProfileOperatingSystemFamilyPtrOutput { + return o +} + +func (o StorageProfileOperatingSystemFamilyPtrOutput) Elem() StorageProfileOperatingSystemFamilyOutput { + return o.ApplyT(func(v *StorageProfileOperatingSystemFamily) StorageProfileOperatingSystemFamily { + if v != nil { + return *v + } + var ret StorageProfileOperatingSystemFamily + return ret + }).(StorageProfileOperatingSystemFamilyOutput) +} + +func (o StorageProfileOperatingSystemFamilyPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o StorageProfileOperatingSystemFamilyPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *StorageProfileOperatingSystemFamily) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// StorageProfileOperatingSystemFamilyInput is an input type that accepts values of the StorageProfileOperatingSystemFamily enum +// A concrete instance of `StorageProfileOperatingSystemFamilyInput` can be one of the following: +// +// StorageProfileOperatingSystemFamilyWindows +// StorageProfileOperatingSystemFamilyLinux +// StorageProfileOperatingSystemFamilyMacos +type StorageProfileOperatingSystemFamilyInput interface { + pulumi.Input + + ToStorageProfileOperatingSystemFamilyOutput() StorageProfileOperatingSystemFamilyOutput + ToStorageProfileOperatingSystemFamilyOutputWithContext(context.Context) StorageProfileOperatingSystemFamilyOutput +} + +var storageProfileOperatingSystemFamilyPtrType = reflect.TypeOf((**StorageProfileOperatingSystemFamily)(nil)).Elem() + +type StorageProfileOperatingSystemFamilyPtrInput interface { + pulumi.Input + + ToStorageProfileOperatingSystemFamilyPtrOutput() StorageProfileOperatingSystemFamilyPtrOutput + ToStorageProfileOperatingSystemFamilyPtrOutputWithContext(context.Context) StorageProfileOperatingSystemFamilyPtrOutput +} + +type storageProfileOperatingSystemFamilyPtr string + +func StorageProfileOperatingSystemFamilyPtr(v string) StorageProfileOperatingSystemFamilyPtrInput { + return (*storageProfileOperatingSystemFamilyPtr)(&v) +} + +func (*storageProfileOperatingSystemFamilyPtr) ElementType() reflect.Type { + return storageProfileOperatingSystemFamilyPtrType +} + +func (in *storageProfileOperatingSystemFamilyPtr) ToStorageProfileOperatingSystemFamilyPtrOutput() StorageProfileOperatingSystemFamilyPtrOutput { + return pulumi.ToOutput(in).(StorageProfileOperatingSystemFamilyPtrOutput) +} + +func (in *storageProfileOperatingSystemFamilyPtr) ToStorageProfileOperatingSystemFamilyPtrOutputWithContext(ctx context.Context) StorageProfileOperatingSystemFamilyPtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(StorageProfileOperatingSystemFamilyPtrOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*FleetAcceleratorTypeInput)(nil)).Elem(), FleetAcceleratorType("gpu")) + pulumi.RegisterInputType(reflect.TypeOf((*FleetAcceleratorTypePtrInput)(nil)).Elem(), FleetAcceleratorType("gpu")) + pulumi.RegisterInputType(reflect.TypeOf((*FleetAcceleratorTypeArrayInput)(nil)).Elem(), FleetAcceleratorTypeArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*FleetAutoScalingModeInput)(nil)).Elem(), FleetAutoScalingMode("NO_SCALING")) + pulumi.RegisterInputType(reflect.TypeOf((*FleetAutoScalingModePtrInput)(nil)).Elem(), FleetAutoScalingMode("NO_SCALING")) + pulumi.RegisterInputType(reflect.TypeOf((*FleetCpuArchitectureTypeInput)(nil)).Elem(), FleetCpuArchitectureType("x86_64")) + pulumi.RegisterInputType(reflect.TypeOf((*FleetCpuArchitectureTypePtrInput)(nil)).Elem(), FleetCpuArchitectureType("x86_64")) + pulumi.RegisterInputType(reflect.TypeOf((*FleetCustomerManagedFleetOperatingSystemFamilyInput)(nil)).Elem(), FleetCustomerManagedFleetOperatingSystemFamily("WINDOWS")) + pulumi.RegisterInputType(reflect.TypeOf((*FleetCustomerManagedFleetOperatingSystemFamilyPtrInput)(nil)).Elem(), FleetCustomerManagedFleetOperatingSystemFamily("WINDOWS")) + pulumi.RegisterInputType(reflect.TypeOf((*FleetEc2MarketTypeInput)(nil)).Elem(), FleetEc2MarketType("on-demand")) + pulumi.RegisterInputType(reflect.TypeOf((*FleetEc2MarketTypePtrInput)(nil)).Elem(), FleetEc2MarketType("on-demand")) + pulumi.RegisterInputType(reflect.TypeOf((*FleetServiceManagedFleetOperatingSystemFamilyInput)(nil)).Elem(), FleetServiceManagedFleetOperatingSystemFamily("WINDOWS")) + pulumi.RegisterInputType(reflect.TypeOf((*FleetServiceManagedFleetOperatingSystemFamilyPtrInput)(nil)).Elem(), FleetServiceManagedFleetOperatingSystemFamily("WINDOWS")) + pulumi.RegisterInputType(reflect.TypeOf((*QueueDefaultQueueBudgetActionInput)(nil)).Elem(), QueueDefaultQueueBudgetAction("NONE")) + pulumi.RegisterInputType(reflect.TypeOf((*QueueDefaultQueueBudgetActionPtrInput)(nil)).Elem(), QueueDefaultQueueBudgetAction("NONE")) + pulumi.RegisterInputType(reflect.TypeOf((*QueueEnvironmentEnvironmentTemplateTypeInput)(nil)).Elem(), QueueEnvironmentEnvironmentTemplateType("JSON")) + pulumi.RegisterInputType(reflect.TypeOf((*QueueEnvironmentEnvironmentTemplateTypePtrInput)(nil)).Elem(), QueueEnvironmentEnvironmentTemplateType("JSON")) + pulumi.RegisterInputType(reflect.TypeOf((*QueueRunAsInput)(nil)).Elem(), QueueRunAs("QUEUE_CONFIGURED_USER")) + pulumi.RegisterInputType(reflect.TypeOf((*QueueRunAsPtrInput)(nil)).Elem(), QueueRunAs("QUEUE_CONFIGURED_USER")) + pulumi.RegisterInputType(reflect.TypeOf((*StorageProfileFileSystemLocationTypeInput)(nil)).Elem(), StorageProfileFileSystemLocationType("SHARED")) + pulumi.RegisterInputType(reflect.TypeOf((*StorageProfileFileSystemLocationTypePtrInput)(nil)).Elem(), StorageProfileFileSystemLocationType("SHARED")) + pulumi.RegisterInputType(reflect.TypeOf((*StorageProfileOperatingSystemFamilyInput)(nil)).Elem(), StorageProfileOperatingSystemFamily("WINDOWS")) + pulumi.RegisterInputType(reflect.TypeOf((*StorageProfileOperatingSystemFamilyPtrInput)(nil)).Elem(), StorageProfileOperatingSystemFamily("WINDOWS")) + pulumi.RegisterOutputType(FleetAcceleratorTypeOutput{}) + pulumi.RegisterOutputType(FleetAcceleratorTypePtrOutput{}) + pulumi.RegisterOutputType(FleetAcceleratorTypeArrayOutput{}) + pulumi.RegisterOutputType(FleetAutoScalingModeOutput{}) + pulumi.RegisterOutputType(FleetAutoScalingModePtrOutput{}) + pulumi.RegisterOutputType(FleetCpuArchitectureTypeOutput{}) + pulumi.RegisterOutputType(FleetCpuArchitectureTypePtrOutput{}) + pulumi.RegisterOutputType(FleetCustomerManagedFleetOperatingSystemFamilyOutput{}) + pulumi.RegisterOutputType(FleetCustomerManagedFleetOperatingSystemFamilyPtrOutput{}) + pulumi.RegisterOutputType(FleetEc2MarketTypeOutput{}) + pulumi.RegisterOutputType(FleetEc2MarketTypePtrOutput{}) + pulumi.RegisterOutputType(FleetServiceManagedFleetOperatingSystemFamilyOutput{}) + pulumi.RegisterOutputType(FleetServiceManagedFleetOperatingSystemFamilyPtrOutput{}) + pulumi.RegisterOutputType(FleetStatusOutput{}) + pulumi.RegisterOutputType(FleetStatusPtrOutput{}) + pulumi.RegisterOutputType(LicenseEndpointStatusOutput{}) + pulumi.RegisterOutputType(LicenseEndpointStatusPtrOutput{}) + pulumi.RegisterOutputType(QueueDefaultQueueBudgetActionOutput{}) + pulumi.RegisterOutputType(QueueDefaultQueueBudgetActionPtrOutput{}) + pulumi.RegisterOutputType(QueueEnvironmentEnvironmentTemplateTypeOutput{}) + pulumi.RegisterOutputType(QueueEnvironmentEnvironmentTemplateTypePtrOutput{}) + pulumi.RegisterOutputType(QueueRunAsOutput{}) + pulumi.RegisterOutputType(QueueRunAsPtrOutput{}) + pulumi.RegisterOutputType(StorageProfileFileSystemLocationTypeOutput{}) + pulumi.RegisterOutputType(StorageProfileFileSystemLocationTypePtrOutput{}) + pulumi.RegisterOutputType(StorageProfileOperatingSystemFamilyOutput{}) + pulumi.RegisterOutputType(StorageProfileOperatingSystemFamilyPtrOutput{}) +} diff --git a/sdk/go/aws/deadline/pulumiTypes.go b/sdk/go/aws/deadline/pulumiTypes.go new file mode 100644 index 0000000000..ae7a9afd69 --- /dev/null +++ b/sdk/go/aws/deadline/pulumiTypes.go @@ -0,0 +1,2604 @@ +// 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 deadline + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +var _ = internal.GetEnvOrDefault + +type FleetAcceleratorCountRange struct { + Max *int `pulumi:"max"` + Min int `pulumi:"min"` +} + +// FleetAcceleratorCountRangeInput is an input type that accepts FleetAcceleratorCountRangeArgs and FleetAcceleratorCountRangeOutput values. +// You can construct a concrete instance of `FleetAcceleratorCountRangeInput` via: +// +// FleetAcceleratorCountRangeArgs{...} +type FleetAcceleratorCountRangeInput interface { + pulumi.Input + + ToFleetAcceleratorCountRangeOutput() FleetAcceleratorCountRangeOutput + ToFleetAcceleratorCountRangeOutputWithContext(context.Context) FleetAcceleratorCountRangeOutput +} + +type FleetAcceleratorCountRangeArgs struct { + Max pulumi.IntPtrInput `pulumi:"max"` + Min pulumi.IntInput `pulumi:"min"` +} + +func (FleetAcceleratorCountRangeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FleetAcceleratorCountRange)(nil)).Elem() +} + +func (i FleetAcceleratorCountRangeArgs) ToFleetAcceleratorCountRangeOutput() FleetAcceleratorCountRangeOutput { + return i.ToFleetAcceleratorCountRangeOutputWithContext(context.Background()) +} + +func (i FleetAcceleratorCountRangeArgs) ToFleetAcceleratorCountRangeOutputWithContext(ctx context.Context) FleetAcceleratorCountRangeOutput { + return pulumi.ToOutputWithContext(ctx, i).(FleetAcceleratorCountRangeOutput) +} + +func (i FleetAcceleratorCountRangeArgs) ToFleetAcceleratorCountRangePtrOutput() FleetAcceleratorCountRangePtrOutput { + return i.ToFleetAcceleratorCountRangePtrOutputWithContext(context.Background()) +} + +func (i FleetAcceleratorCountRangeArgs) ToFleetAcceleratorCountRangePtrOutputWithContext(ctx context.Context) FleetAcceleratorCountRangePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FleetAcceleratorCountRangeOutput).ToFleetAcceleratorCountRangePtrOutputWithContext(ctx) +} + +// FleetAcceleratorCountRangePtrInput is an input type that accepts FleetAcceleratorCountRangeArgs, FleetAcceleratorCountRangePtr and FleetAcceleratorCountRangePtrOutput values. +// You can construct a concrete instance of `FleetAcceleratorCountRangePtrInput` via: +// +// FleetAcceleratorCountRangeArgs{...} +// +// or: +// +// nil +type FleetAcceleratorCountRangePtrInput interface { + pulumi.Input + + ToFleetAcceleratorCountRangePtrOutput() FleetAcceleratorCountRangePtrOutput + ToFleetAcceleratorCountRangePtrOutputWithContext(context.Context) FleetAcceleratorCountRangePtrOutput +} + +type fleetAcceleratorCountRangePtrType FleetAcceleratorCountRangeArgs + +func FleetAcceleratorCountRangePtr(v *FleetAcceleratorCountRangeArgs) FleetAcceleratorCountRangePtrInput { + return (*fleetAcceleratorCountRangePtrType)(v) +} + +func (*fleetAcceleratorCountRangePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**FleetAcceleratorCountRange)(nil)).Elem() +} + +func (i *fleetAcceleratorCountRangePtrType) ToFleetAcceleratorCountRangePtrOutput() FleetAcceleratorCountRangePtrOutput { + return i.ToFleetAcceleratorCountRangePtrOutputWithContext(context.Background()) +} + +func (i *fleetAcceleratorCountRangePtrType) ToFleetAcceleratorCountRangePtrOutputWithContext(ctx context.Context) FleetAcceleratorCountRangePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FleetAcceleratorCountRangePtrOutput) +} + +type FleetAcceleratorCountRangeOutput struct{ *pulumi.OutputState } + +func (FleetAcceleratorCountRangeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FleetAcceleratorCountRange)(nil)).Elem() +} + +func (o FleetAcceleratorCountRangeOutput) ToFleetAcceleratorCountRangeOutput() FleetAcceleratorCountRangeOutput { + return o +} + +func (o FleetAcceleratorCountRangeOutput) ToFleetAcceleratorCountRangeOutputWithContext(ctx context.Context) FleetAcceleratorCountRangeOutput { + return o +} + +func (o FleetAcceleratorCountRangeOutput) ToFleetAcceleratorCountRangePtrOutput() FleetAcceleratorCountRangePtrOutput { + return o.ToFleetAcceleratorCountRangePtrOutputWithContext(context.Background()) +} + +func (o FleetAcceleratorCountRangeOutput) ToFleetAcceleratorCountRangePtrOutputWithContext(ctx context.Context) FleetAcceleratorCountRangePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FleetAcceleratorCountRange) *FleetAcceleratorCountRange { + return &v + }).(FleetAcceleratorCountRangePtrOutput) +} + +func (o FleetAcceleratorCountRangeOutput) Max() pulumi.IntPtrOutput { + return o.ApplyT(func(v FleetAcceleratorCountRange) *int { return v.Max }).(pulumi.IntPtrOutput) +} + +func (o FleetAcceleratorCountRangeOutput) Min() pulumi.IntOutput { + return o.ApplyT(func(v FleetAcceleratorCountRange) int { return v.Min }).(pulumi.IntOutput) +} + +type FleetAcceleratorCountRangePtrOutput struct{ *pulumi.OutputState } + +func (FleetAcceleratorCountRangePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FleetAcceleratorCountRange)(nil)).Elem() +} + +func (o FleetAcceleratorCountRangePtrOutput) ToFleetAcceleratorCountRangePtrOutput() FleetAcceleratorCountRangePtrOutput { + return o +} + +func (o FleetAcceleratorCountRangePtrOutput) ToFleetAcceleratorCountRangePtrOutputWithContext(ctx context.Context) FleetAcceleratorCountRangePtrOutput { + return o +} + +func (o FleetAcceleratorCountRangePtrOutput) Elem() FleetAcceleratorCountRangeOutput { + return o.ApplyT(func(v *FleetAcceleratorCountRange) FleetAcceleratorCountRange { + if v != nil { + return *v + } + var ret FleetAcceleratorCountRange + return ret + }).(FleetAcceleratorCountRangeOutput) +} + +func (o FleetAcceleratorCountRangePtrOutput) Max() pulumi.IntPtrOutput { + return o.ApplyT(func(v *FleetAcceleratorCountRange) *int { + if v == nil { + return nil + } + return v.Max + }).(pulumi.IntPtrOutput) +} + +func (o FleetAcceleratorCountRangePtrOutput) Min() pulumi.IntPtrOutput { + return o.ApplyT(func(v *FleetAcceleratorCountRange) *int { + if v == nil { + return nil + } + return &v.Min + }).(pulumi.IntPtrOutput) +} + +type FleetAcceleratorTotalMemoryMiBRange struct { + Max *int `pulumi:"max"` + Min int `pulumi:"min"` +} + +// FleetAcceleratorTotalMemoryMiBRangeInput is an input type that accepts FleetAcceleratorTotalMemoryMiBRangeArgs and FleetAcceleratorTotalMemoryMiBRangeOutput values. +// You can construct a concrete instance of `FleetAcceleratorTotalMemoryMiBRangeInput` via: +// +// FleetAcceleratorTotalMemoryMiBRangeArgs{...} +type FleetAcceleratorTotalMemoryMiBRangeInput interface { + pulumi.Input + + ToFleetAcceleratorTotalMemoryMiBRangeOutput() FleetAcceleratorTotalMemoryMiBRangeOutput + ToFleetAcceleratorTotalMemoryMiBRangeOutputWithContext(context.Context) FleetAcceleratorTotalMemoryMiBRangeOutput +} + +type FleetAcceleratorTotalMemoryMiBRangeArgs struct { + Max pulumi.IntPtrInput `pulumi:"max"` + Min pulumi.IntInput `pulumi:"min"` +} + +func (FleetAcceleratorTotalMemoryMiBRangeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FleetAcceleratorTotalMemoryMiBRange)(nil)).Elem() +} + +func (i FleetAcceleratorTotalMemoryMiBRangeArgs) ToFleetAcceleratorTotalMemoryMiBRangeOutput() FleetAcceleratorTotalMemoryMiBRangeOutput { + return i.ToFleetAcceleratorTotalMemoryMiBRangeOutputWithContext(context.Background()) +} + +func (i FleetAcceleratorTotalMemoryMiBRangeArgs) ToFleetAcceleratorTotalMemoryMiBRangeOutputWithContext(ctx context.Context) FleetAcceleratorTotalMemoryMiBRangeOutput { + return pulumi.ToOutputWithContext(ctx, i).(FleetAcceleratorTotalMemoryMiBRangeOutput) +} + +func (i FleetAcceleratorTotalMemoryMiBRangeArgs) ToFleetAcceleratorTotalMemoryMiBRangePtrOutput() FleetAcceleratorTotalMemoryMiBRangePtrOutput { + return i.ToFleetAcceleratorTotalMemoryMiBRangePtrOutputWithContext(context.Background()) +} + +func (i FleetAcceleratorTotalMemoryMiBRangeArgs) ToFleetAcceleratorTotalMemoryMiBRangePtrOutputWithContext(ctx context.Context) FleetAcceleratorTotalMemoryMiBRangePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FleetAcceleratorTotalMemoryMiBRangeOutput).ToFleetAcceleratorTotalMemoryMiBRangePtrOutputWithContext(ctx) +} + +// FleetAcceleratorTotalMemoryMiBRangePtrInput is an input type that accepts FleetAcceleratorTotalMemoryMiBRangeArgs, FleetAcceleratorTotalMemoryMiBRangePtr and FleetAcceleratorTotalMemoryMiBRangePtrOutput values. +// You can construct a concrete instance of `FleetAcceleratorTotalMemoryMiBRangePtrInput` via: +// +// FleetAcceleratorTotalMemoryMiBRangeArgs{...} +// +// or: +// +// nil +type FleetAcceleratorTotalMemoryMiBRangePtrInput interface { + pulumi.Input + + ToFleetAcceleratorTotalMemoryMiBRangePtrOutput() FleetAcceleratorTotalMemoryMiBRangePtrOutput + ToFleetAcceleratorTotalMemoryMiBRangePtrOutputWithContext(context.Context) FleetAcceleratorTotalMemoryMiBRangePtrOutput +} + +type fleetAcceleratorTotalMemoryMiBRangePtrType FleetAcceleratorTotalMemoryMiBRangeArgs + +func FleetAcceleratorTotalMemoryMiBRangePtr(v *FleetAcceleratorTotalMemoryMiBRangeArgs) FleetAcceleratorTotalMemoryMiBRangePtrInput { + return (*fleetAcceleratorTotalMemoryMiBRangePtrType)(v) +} + +func (*fleetAcceleratorTotalMemoryMiBRangePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**FleetAcceleratorTotalMemoryMiBRange)(nil)).Elem() +} + +func (i *fleetAcceleratorTotalMemoryMiBRangePtrType) ToFleetAcceleratorTotalMemoryMiBRangePtrOutput() FleetAcceleratorTotalMemoryMiBRangePtrOutput { + return i.ToFleetAcceleratorTotalMemoryMiBRangePtrOutputWithContext(context.Background()) +} + +func (i *fleetAcceleratorTotalMemoryMiBRangePtrType) ToFleetAcceleratorTotalMemoryMiBRangePtrOutputWithContext(ctx context.Context) FleetAcceleratorTotalMemoryMiBRangePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FleetAcceleratorTotalMemoryMiBRangePtrOutput) +} + +type FleetAcceleratorTotalMemoryMiBRangeOutput struct{ *pulumi.OutputState } + +func (FleetAcceleratorTotalMemoryMiBRangeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FleetAcceleratorTotalMemoryMiBRange)(nil)).Elem() +} + +func (o FleetAcceleratorTotalMemoryMiBRangeOutput) ToFleetAcceleratorTotalMemoryMiBRangeOutput() FleetAcceleratorTotalMemoryMiBRangeOutput { + return o +} + +func (o FleetAcceleratorTotalMemoryMiBRangeOutput) ToFleetAcceleratorTotalMemoryMiBRangeOutputWithContext(ctx context.Context) FleetAcceleratorTotalMemoryMiBRangeOutput { + return o +} + +func (o FleetAcceleratorTotalMemoryMiBRangeOutput) ToFleetAcceleratorTotalMemoryMiBRangePtrOutput() FleetAcceleratorTotalMemoryMiBRangePtrOutput { + return o.ToFleetAcceleratorTotalMemoryMiBRangePtrOutputWithContext(context.Background()) +} + +func (o FleetAcceleratorTotalMemoryMiBRangeOutput) ToFleetAcceleratorTotalMemoryMiBRangePtrOutputWithContext(ctx context.Context) FleetAcceleratorTotalMemoryMiBRangePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FleetAcceleratorTotalMemoryMiBRange) *FleetAcceleratorTotalMemoryMiBRange { + return &v + }).(FleetAcceleratorTotalMemoryMiBRangePtrOutput) +} + +func (o FleetAcceleratorTotalMemoryMiBRangeOutput) Max() pulumi.IntPtrOutput { + return o.ApplyT(func(v FleetAcceleratorTotalMemoryMiBRange) *int { return v.Max }).(pulumi.IntPtrOutput) +} + +func (o FleetAcceleratorTotalMemoryMiBRangeOutput) Min() pulumi.IntOutput { + return o.ApplyT(func(v FleetAcceleratorTotalMemoryMiBRange) int { return v.Min }).(pulumi.IntOutput) +} + +type FleetAcceleratorTotalMemoryMiBRangePtrOutput struct{ *pulumi.OutputState } + +func (FleetAcceleratorTotalMemoryMiBRangePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FleetAcceleratorTotalMemoryMiBRange)(nil)).Elem() +} + +func (o FleetAcceleratorTotalMemoryMiBRangePtrOutput) ToFleetAcceleratorTotalMemoryMiBRangePtrOutput() FleetAcceleratorTotalMemoryMiBRangePtrOutput { + return o +} + +func (o FleetAcceleratorTotalMemoryMiBRangePtrOutput) ToFleetAcceleratorTotalMemoryMiBRangePtrOutputWithContext(ctx context.Context) FleetAcceleratorTotalMemoryMiBRangePtrOutput { + return o +} + +func (o FleetAcceleratorTotalMemoryMiBRangePtrOutput) Elem() FleetAcceleratorTotalMemoryMiBRangeOutput { + return o.ApplyT(func(v *FleetAcceleratorTotalMemoryMiBRange) FleetAcceleratorTotalMemoryMiBRange { + if v != nil { + return *v + } + var ret FleetAcceleratorTotalMemoryMiBRange + return ret + }).(FleetAcceleratorTotalMemoryMiBRangeOutput) +} + +func (o FleetAcceleratorTotalMemoryMiBRangePtrOutput) Max() pulumi.IntPtrOutput { + return o.ApplyT(func(v *FleetAcceleratorTotalMemoryMiBRange) *int { + if v == nil { + return nil + } + return v.Max + }).(pulumi.IntPtrOutput) +} + +func (o FleetAcceleratorTotalMemoryMiBRangePtrOutput) Min() pulumi.IntPtrOutput { + return o.ApplyT(func(v *FleetAcceleratorTotalMemoryMiBRange) *int { + if v == nil { + return nil + } + return &v.Min + }).(pulumi.IntPtrOutput) +} + +type FleetAmountCapability struct { + Max *float64 `pulumi:"max"` + Min float64 `pulumi:"min"` + Name string `pulumi:"name"` +} + +// FleetAmountCapabilityInput is an input type that accepts FleetAmountCapabilityArgs and FleetAmountCapabilityOutput values. +// You can construct a concrete instance of `FleetAmountCapabilityInput` via: +// +// FleetAmountCapabilityArgs{...} +type FleetAmountCapabilityInput interface { + pulumi.Input + + ToFleetAmountCapabilityOutput() FleetAmountCapabilityOutput + ToFleetAmountCapabilityOutputWithContext(context.Context) FleetAmountCapabilityOutput +} + +type FleetAmountCapabilityArgs struct { + Max pulumi.Float64PtrInput `pulumi:"max"` + Min pulumi.Float64Input `pulumi:"min"` + Name pulumi.StringInput `pulumi:"name"` +} + +func (FleetAmountCapabilityArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FleetAmountCapability)(nil)).Elem() +} + +func (i FleetAmountCapabilityArgs) ToFleetAmountCapabilityOutput() FleetAmountCapabilityOutput { + return i.ToFleetAmountCapabilityOutputWithContext(context.Background()) +} + +func (i FleetAmountCapabilityArgs) ToFleetAmountCapabilityOutputWithContext(ctx context.Context) FleetAmountCapabilityOutput { + return pulumi.ToOutputWithContext(ctx, i).(FleetAmountCapabilityOutput) +} + +// FleetAmountCapabilityArrayInput is an input type that accepts FleetAmountCapabilityArray and FleetAmountCapabilityArrayOutput values. +// You can construct a concrete instance of `FleetAmountCapabilityArrayInput` via: +// +// FleetAmountCapabilityArray{ FleetAmountCapabilityArgs{...} } +type FleetAmountCapabilityArrayInput interface { + pulumi.Input + + ToFleetAmountCapabilityArrayOutput() FleetAmountCapabilityArrayOutput + ToFleetAmountCapabilityArrayOutputWithContext(context.Context) FleetAmountCapabilityArrayOutput +} + +type FleetAmountCapabilityArray []FleetAmountCapabilityInput + +func (FleetAmountCapabilityArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]FleetAmountCapability)(nil)).Elem() +} + +func (i FleetAmountCapabilityArray) ToFleetAmountCapabilityArrayOutput() FleetAmountCapabilityArrayOutput { + return i.ToFleetAmountCapabilityArrayOutputWithContext(context.Background()) +} + +func (i FleetAmountCapabilityArray) ToFleetAmountCapabilityArrayOutputWithContext(ctx context.Context) FleetAmountCapabilityArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(FleetAmountCapabilityArrayOutput) +} + +type FleetAmountCapabilityOutput struct{ *pulumi.OutputState } + +func (FleetAmountCapabilityOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FleetAmountCapability)(nil)).Elem() +} + +func (o FleetAmountCapabilityOutput) ToFleetAmountCapabilityOutput() FleetAmountCapabilityOutput { + return o +} + +func (o FleetAmountCapabilityOutput) ToFleetAmountCapabilityOutputWithContext(ctx context.Context) FleetAmountCapabilityOutput { + return o +} + +func (o FleetAmountCapabilityOutput) Max() pulumi.Float64PtrOutput { + return o.ApplyT(func(v FleetAmountCapability) *float64 { return v.Max }).(pulumi.Float64PtrOutput) +} + +func (o FleetAmountCapabilityOutput) Min() pulumi.Float64Output { + return o.ApplyT(func(v FleetAmountCapability) float64 { return v.Min }).(pulumi.Float64Output) +} + +func (o FleetAmountCapabilityOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v FleetAmountCapability) string { return v.Name }).(pulumi.StringOutput) +} + +type FleetAmountCapabilityArrayOutput struct{ *pulumi.OutputState } + +func (FleetAmountCapabilityArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]FleetAmountCapability)(nil)).Elem() +} + +func (o FleetAmountCapabilityArrayOutput) ToFleetAmountCapabilityArrayOutput() FleetAmountCapabilityArrayOutput { + return o +} + +func (o FleetAmountCapabilityArrayOutput) ToFleetAmountCapabilityArrayOutputWithContext(ctx context.Context) FleetAmountCapabilityArrayOutput { + return o +} + +func (o FleetAmountCapabilityArrayOutput) Index(i pulumi.IntInput) FleetAmountCapabilityOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) FleetAmountCapability { + return vs[0].([]FleetAmountCapability)[vs[1].(int)] + }).(FleetAmountCapabilityOutput) +} + +type FleetAttributeCapability struct { + Name string `pulumi:"name"` + Values []string `pulumi:"values"` +} + +// FleetAttributeCapabilityInput is an input type that accepts FleetAttributeCapabilityArgs and FleetAttributeCapabilityOutput values. +// You can construct a concrete instance of `FleetAttributeCapabilityInput` via: +// +// FleetAttributeCapabilityArgs{...} +type FleetAttributeCapabilityInput interface { + pulumi.Input + + ToFleetAttributeCapabilityOutput() FleetAttributeCapabilityOutput + ToFleetAttributeCapabilityOutputWithContext(context.Context) FleetAttributeCapabilityOutput +} + +type FleetAttributeCapabilityArgs struct { + Name pulumi.StringInput `pulumi:"name"` + Values pulumi.StringArrayInput `pulumi:"values"` +} + +func (FleetAttributeCapabilityArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FleetAttributeCapability)(nil)).Elem() +} + +func (i FleetAttributeCapabilityArgs) ToFleetAttributeCapabilityOutput() FleetAttributeCapabilityOutput { + return i.ToFleetAttributeCapabilityOutputWithContext(context.Background()) +} + +func (i FleetAttributeCapabilityArgs) ToFleetAttributeCapabilityOutputWithContext(ctx context.Context) FleetAttributeCapabilityOutput { + return pulumi.ToOutputWithContext(ctx, i).(FleetAttributeCapabilityOutput) +} + +// FleetAttributeCapabilityArrayInput is an input type that accepts FleetAttributeCapabilityArray and FleetAttributeCapabilityArrayOutput values. +// You can construct a concrete instance of `FleetAttributeCapabilityArrayInput` via: +// +// FleetAttributeCapabilityArray{ FleetAttributeCapabilityArgs{...} } +type FleetAttributeCapabilityArrayInput interface { + pulumi.Input + + ToFleetAttributeCapabilityArrayOutput() FleetAttributeCapabilityArrayOutput + ToFleetAttributeCapabilityArrayOutputWithContext(context.Context) FleetAttributeCapabilityArrayOutput +} + +type FleetAttributeCapabilityArray []FleetAttributeCapabilityInput + +func (FleetAttributeCapabilityArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]FleetAttributeCapability)(nil)).Elem() +} + +func (i FleetAttributeCapabilityArray) ToFleetAttributeCapabilityArrayOutput() FleetAttributeCapabilityArrayOutput { + return i.ToFleetAttributeCapabilityArrayOutputWithContext(context.Background()) +} + +func (i FleetAttributeCapabilityArray) ToFleetAttributeCapabilityArrayOutputWithContext(ctx context.Context) FleetAttributeCapabilityArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(FleetAttributeCapabilityArrayOutput) +} + +type FleetAttributeCapabilityOutput struct{ *pulumi.OutputState } + +func (FleetAttributeCapabilityOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FleetAttributeCapability)(nil)).Elem() +} + +func (o FleetAttributeCapabilityOutput) ToFleetAttributeCapabilityOutput() FleetAttributeCapabilityOutput { + return o +} + +func (o FleetAttributeCapabilityOutput) ToFleetAttributeCapabilityOutputWithContext(ctx context.Context) FleetAttributeCapabilityOutput { + return o +} + +func (o FleetAttributeCapabilityOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v FleetAttributeCapability) string { return v.Name }).(pulumi.StringOutput) +} + +func (o FleetAttributeCapabilityOutput) Values() pulumi.StringArrayOutput { + return o.ApplyT(func(v FleetAttributeCapability) []string { return v.Values }).(pulumi.StringArrayOutput) +} + +type FleetAttributeCapabilityArrayOutput struct{ *pulumi.OutputState } + +func (FleetAttributeCapabilityArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]FleetAttributeCapability)(nil)).Elem() +} + +func (o FleetAttributeCapabilityArrayOutput) ToFleetAttributeCapabilityArrayOutput() FleetAttributeCapabilityArrayOutput { + return o +} + +func (o FleetAttributeCapabilityArrayOutput) ToFleetAttributeCapabilityArrayOutputWithContext(ctx context.Context) FleetAttributeCapabilityArrayOutput { + return o +} + +func (o FleetAttributeCapabilityArrayOutput) Index(i pulumi.IntInput) FleetAttributeCapabilityOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) FleetAttributeCapability { + return vs[0].([]FleetAttributeCapability)[vs[1].(int)] + }).(FleetAttributeCapabilityOutput) +} + +type FleetCapabilities struct { + Amounts []FleetAmountCapability `pulumi:"amounts"` + Attributes []FleetAttributeCapability `pulumi:"attributes"` +} + +type FleetCapabilitiesOutput struct{ *pulumi.OutputState } + +func (FleetCapabilitiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FleetCapabilities)(nil)).Elem() +} + +func (o FleetCapabilitiesOutput) ToFleetCapabilitiesOutput() FleetCapabilitiesOutput { + return o +} + +func (o FleetCapabilitiesOutput) ToFleetCapabilitiesOutputWithContext(ctx context.Context) FleetCapabilitiesOutput { + return o +} + +func (o FleetCapabilitiesOutput) Amounts() FleetAmountCapabilityArrayOutput { + return o.ApplyT(func(v FleetCapabilities) []FleetAmountCapability { return v.Amounts }).(FleetAmountCapabilityArrayOutput) +} + +func (o FleetCapabilitiesOutput) Attributes() FleetAttributeCapabilityArrayOutput { + return o.ApplyT(func(v FleetCapabilities) []FleetAttributeCapability { return v.Attributes }).(FleetAttributeCapabilityArrayOutput) +} + +type FleetCapabilitiesPtrOutput struct{ *pulumi.OutputState } + +func (FleetCapabilitiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FleetCapabilities)(nil)).Elem() +} + +func (o FleetCapabilitiesPtrOutput) ToFleetCapabilitiesPtrOutput() FleetCapabilitiesPtrOutput { + return o +} + +func (o FleetCapabilitiesPtrOutput) ToFleetCapabilitiesPtrOutputWithContext(ctx context.Context) FleetCapabilitiesPtrOutput { + return o +} + +func (o FleetCapabilitiesPtrOutput) Elem() FleetCapabilitiesOutput { + return o.ApplyT(func(v *FleetCapabilities) FleetCapabilities { + if v != nil { + return *v + } + var ret FleetCapabilities + return ret + }).(FleetCapabilitiesOutput) +} + +func (o FleetCapabilitiesPtrOutput) Amounts() FleetAmountCapabilityArrayOutput { + return o.ApplyT(func(v *FleetCapabilities) []FleetAmountCapability { + if v == nil { + return nil + } + return v.Amounts + }).(FleetAmountCapabilityArrayOutput) +} + +func (o FleetCapabilitiesPtrOutput) Attributes() FleetAttributeCapabilityArrayOutput { + return o.ApplyT(func(v *FleetCapabilities) []FleetAttributeCapability { + if v == nil { + return nil + } + return v.Attributes + }).(FleetAttributeCapabilityArrayOutput) +} + +type FleetConfiguration0Properties struct { + CustomerManaged FleetCustomerManagedFleetConfiguration `pulumi:"customerManaged"` +} + +// FleetConfiguration0PropertiesInput is an input type that accepts FleetConfiguration0PropertiesArgs and FleetConfiguration0PropertiesOutput values. +// You can construct a concrete instance of `FleetConfiguration0PropertiesInput` via: +// +// FleetConfiguration0PropertiesArgs{...} +type FleetConfiguration0PropertiesInput interface { + pulumi.Input + + ToFleetConfiguration0PropertiesOutput() FleetConfiguration0PropertiesOutput + ToFleetConfiguration0PropertiesOutputWithContext(context.Context) FleetConfiguration0PropertiesOutput +} + +type FleetConfiguration0PropertiesArgs struct { + CustomerManaged FleetCustomerManagedFleetConfigurationInput `pulumi:"customerManaged"` +} + +func (FleetConfiguration0PropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FleetConfiguration0Properties)(nil)).Elem() +} + +func (i FleetConfiguration0PropertiesArgs) ToFleetConfiguration0PropertiesOutput() FleetConfiguration0PropertiesOutput { + return i.ToFleetConfiguration0PropertiesOutputWithContext(context.Background()) +} + +func (i FleetConfiguration0PropertiesArgs) ToFleetConfiguration0PropertiesOutputWithContext(ctx context.Context) FleetConfiguration0PropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(FleetConfiguration0PropertiesOutput) +} + +type FleetConfiguration0PropertiesOutput struct{ *pulumi.OutputState } + +func (FleetConfiguration0PropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FleetConfiguration0Properties)(nil)).Elem() +} + +func (o FleetConfiguration0PropertiesOutput) ToFleetConfiguration0PropertiesOutput() FleetConfiguration0PropertiesOutput { + return o +} + +func (o FleetConfiguration0PropertiesOutput) ToFleetConfiguration0PropertiesOutputWithContext(ctx context.Context) FleetConfiguration0PropertiesOutput { + return o +} + +func (o FleetConfiguration0PropertiesOutput) CustomerManaged() FleetCustomerManagedFleetConfigurationOutput { + return o.ApplyT(func(v FleetConfiguration0Properties) FleetCustomerManagedFleetConfiguration { return v.CustomerManaged }).(FleetCustomerManagedFleetConfigurationOutput) +} + +type FleetConfiguration0PropertiesPtrOutput struct{ *pulumi.OutputState } + +func (FleetConfiguration0PropertiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FleetConfiguration0Properties)(nil)).Elem() +} + +func (o FleetConfiguration0PropertiesPtrOutput) ToFleetConfiguration0PropertiesPtrOutput() FleetConfiguration0PropertiesPtrOutput { + return o +} + +func (o FleetConfiguration0PropertiesPtrOutput) ToFleetConfiguration0PropertiesPtrOutputWithContext(ctx context.Context) FleetConfiguration0PropertiesPtrOutput { + return o +} + +func (o FleetConfiguration0PropertiesPtrOutput) Elem() FleetConfiguration0PropertiesOutput { + return o.ApplyT(func(v *FleetConfiguration0Properties) FleetConfiguration0Properties { + if v != nil { + return *v + } + var ret FleetConfiguration0Properties + return ret + }).(FleetConfiguration0PropertiesOutput) +} + +func (o FleetConfiguration0PropertiesPtrOutput) CustomerManaged() FleetCustomerManagedFleetConfigurationPtrOutput { + return o.ApplyT(func(v *FleetConfiguration0Properties) *FleetCustomerManagedFleetConfiguration { + if v == nil { + return nil + } + return &v.CustomerManaged + }).(FleetCustomerManagedFleetConfigurationPtrOutput) +} + +type FleetConfiguration1Properties struct { + ServiceManagedEc2 FleetServiceManagedEc2FleetConfiguration `pulumi:"serviceManagedEc2"` +} + +// FleetConfiguration1PropertiesInput is an input type that accepts FleetConfiguration1PropertiesArgs and FleetConfiguration1PropertiesOutput values. +// You can construct a concrete instance of `FleetConfiguration1PropertiesInput` via: +// +// FleetConfiguration1PropertiesArgs{...} +type FleetConfiguration1PropertiesInput interface { + pulumi.Input + + ToFleetConfiguration1PropertiesOutput() FleetConfiguration1PropertiesOutput + ToFleetConfiguration1PropertiesOutputWithContext(context.Context) FleetConfiguration1PropertiesOutput +} + +type FleetConfiguration1PropertiesArgs struct { + ServiceManagedEc2 FleetServiceManagedEc2FleetConfigurationInput `pulumi:"serviceManagedEc2"` +} + +func (FleetConfiguration1PropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FleetConfiguration1Properties)(nil)).Elem() +} + +func (i FleetConfiguration1PropertiesArgs) ToFleetConfiguration1PropertiesOutput() FleetConfiguration1PropertiesOutput { + return i.ToFleetConfiguration1PropertiesOutputWithContext(context.Background()) +} + +func (i FleetConfiguration1PropertiesArgs) ToFleetConfiguration1PropertiesOutputWithContext(ctx context.Context) FleetConfiguration1PropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(FleetConfiguration1PropertiesOutput) +} + +type FleetConfiguration1PropertiesOutput struct{ *pulumi.OutputState } + +func (FleetConfiguration1PropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FleetConfiguration1Properties)(nil)).Elem() +} + +func (o FleetConfiguration1PropertiesOutput) ToFleetConfiguration1PropertiesOutput() FleetConfiguration1PropertiesOutput { + return o +} + +func (o FleetConfiguration1PropertiesOutput) ToFleetConfiguration1PropertiesOutputWithContext(ctx context.Context) FleetConfiguration1PropertiesOutput { + return o +} + +func (o FleetConfiguration1PropertiesOutput) ServiceManagedEc2() FleetServiceManagedEc2FleetConfigurationOutput { + return o.ApplyT(func(v FleetConfiguration1Properties) FleetServiceManagedEc2FleetConfiguration { + return v.ServiceManagedEc2 + }).(FleetServiceManagedEc2FleetConfigurationOutput) +} + +type FleetConfiguration1PropertiesPtrOutput struct{ *pulumi.OutputState } + +func (FleetConfiguration1PropertiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FleetConfiguration1Properties)(nil)).Elem() +} + +func (o FleetConfiguration1PropertiesPtrOutput) ToFleetConfiguration1PropertiesPtrOutput() FleetConfiguration1PropertiesPtrOutput { + return o +} + +func (o FleetConfiguration1PropertiesPtrOutput) ToFleetConfiguration1PropertiesPtrOutputWithContext(ctx context.Context) FleetConfiguration1PropertiesPtrOutput { + return o +} + +func (o FleetConfiguration1PropertiesPtrOutput) Elem() FleetConfiguration1PropertiesOutput { + return o.ApplyT(func(v *FleetConfiguration1Properties) FleetConfiguration1Properties { + if v != nil { + return *v + } + var ret FleetConfiguration1Properties + return ret + }).(FleetConfiguration1PropertiesOutput) +} + +func (o FleetConfiguration1PropertiesPtrOutput) ServiceManagedEc2() FleetServiceManagedEc2FleetConfigurationPtrOutput { + return o.ApplyT(func(v *FleetConfiguration1Properties) *FleetServiceManagedEc2FleetConfiguration { + if v == nil { + return nil + } + return &v.ServiceManagedEc2 + }).(FleetServiceManagedEc2FleetConfigurationPtrOutput) +} + +type FleetCustomerManagedFleetConfiguration struct { + Mode FleetAutoScalingMode `pulumi:"mode"` + StorageProfileId *string `pulumi:"storageProfileId"` + WorkerCapabilities FleetCustomerManagedWorkerCapabilities `pulumi:"workerCapabilities"` +} + +// FleetCustomerManagedFleetConfigurationInput is an input type that accepts FleetCustomerManagedFleetConfigurationArgs and FleetCustomerManagedFleetConfigurationOutput values. +// You can construct a concrete instance of `FleetCustomerManagedFleetConfigurationInput` via: +// +// FleetCustomerManagedFleetConfigurationArgs{...} +type FleetCustomerManagedFleetConfigurationInput interface { + pulumi.Input + + ToFleetCustomerManagedFleetConfigurationOutput() FleetCustomerManagedFleetConfigurationOutput + ToFleetCustomerManagedFleetConfigurationOutputWithContext(context.Context) FleetCustomerManagedFleetConfigurationOutput +} + +type FleetCustomerManagedFleetConfigurationArgs struct { + Mode FleetAutoScalingModeInput `pulumi:"mode"` + StorageProfileId pulumi.StringPtrInput `pulumi:"storageProfileId"` + WorkerCapabilities FleetCustomerManagedWorkerCapabilitiesInput `pulumi:"workerCapabilities"` +} + +func (FleetCustomerManagedFleetConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FleetCustomerManagedFleetConfiguration)(nil)).Elem() +} + +func (i FleetCustomerManagedFleetConfigurationArgs) ToFleetCustomerManagedFleetConfigurationOutput() FleetCustomerManagedFleetConfigurationOutput { + return i.ToFleetCustomerManagedFleetConfigurationOutputWithContext(context.Background()) +} + +func (i FleetCustomerManagedFleetConfigurationArgs) ToFleetCustomerManagedFleetConfigurationOutputWithContext(ctx context.Context) FleetCustomerManagedFleetConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(FleetCustomerManagedFleetConfigurationOutput) +} + +type FleetCustomerManagedFleetConfigurationOutput struct{ *pulumi.OutputState } + +func (FleetCustomerManagedFleetConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FleetCustomerManagedFleetConfiguration)(nil)).Elem() +} + +func (o FleetCustomerManagedFleetConfigurationOutput) ToFleetCustomerManagedFleetConfigurationOutput() FleetCustomerManagedFleetConfigurationOutput { + return o +} + +func (o FleetCustomerManagedFleetConfigurationOutput) ToFleetCustomerManagedFleetConfigurationOutputWithContext(ctx context.Context) FleetCustomerManagedFleetConfigurationOutput { + return o +} + +func (o FleetCustomerManagedFleetConfigurationOutput) Mode() FleetAutoScalingModeOutput { + return o.ApplyT(func(v FleetCustomerManagedFleetConfiguration) FleetAutoScalingMode { return v.Mode }).(FleetAutoScalingModeOutput) +} + +func (o FleetCustomerManagedFleetConfigurationOutput) StorageProfileId() pulumi.StringPtrOutput { + return o.ApplyT(func(v FleetCustomerManagedFleetConfiguration) *string { return v.StorageProfileId }).(pulumi.StringPtrOutput) +} + +func (o FleetCustomerManagedFleetConfigurationOutput) WorkerCapabilities() FleetCustomerManagedWorkerCapabilitiesOutput { + return o.ApplyT(func(v FleetCustomerManagedFleetConfiguration) FleetCustomerManagedWorkerCapabilities { + return v.WorkerCapabilities + }).(FleetCustomerManagedWorkerCapabilitiesOutput) +} + +type FleetCustomerManagedFleetConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (FleetCustomerManagedFleetConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FleetCustomerManagedFleetConfiguration)(nil)).Elem() +} + +func (o FleetCustomerManagedFleetConfigurationPtrOutput) ToFleetCustomerManagedFleetConfigurationPtrOutput() FleetCustomerManagedFleetConfigurationPtrOutput { + return o +} + +func (o FleetCustomerManagedFleetConfigurationPtrOutput) ToFleetCustomerManagedFleetConfigurationPtrOutputWithContext(ctx context.Context) FleetCustomerManagedFleetConfigurationPtrOutput { + return o +} + +func (o FleetCustomerManagedFleetConfigurationPtrOutput) Elem() FleetCustomerManagedFleetConfigurationOutput { + return o.ApplyT(func(v *FleetCustomerManagedFleetConfiguration) FleetCustomerManagedFleetConfiguration { + if v != nil { + return *v + } + var ret FleetCustomerManagedFleetConfiguration + return ret + }).(FleetCustomerManagedFleetConfigurationOutput) +} + +func (o FleetCustomerManagedFleetConfigurationPtrOutput) Mode() FleetAutoScalingModePtrOutput { + return o.ApplyT(func(v *FleetCustomerManagedFleetConfiguration) *FleetAutoScalingMode { + if v == nil { + return nil + } + return &v.Mode + }).(FleetAutoScalingModePtrOutput) +} + +func (o FleetCustomerManagedFleetConfigurationPtrOutput) StorageProfileId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FleetCustomerManagedFleetConfiguration) *string { + if v == nil { + return nil + } + return v.StorageProfileId + }).(pulumi.StringPtrOutput) +} + +func (o FleetCustomerManagedFleetConfigurationPtrOutput) WorkerCapabilities() FleetCustomerManagedWorkerCapabilitiesPtrOutput { + return o.ApplyT(func(v *FleetCustomerManagedFleetConfiguration) *FleetCustomerManagedWorkerCapabilities { + if v == nil { + return nil + } + return &v.WorkerCapabilities + }).(FleetCustomerManagedWorkerCapabilitiesPtrOutput) +} + +type FleetCustomerManagedWorkerCapabilities struct { + AcceleratorCount *FleetAcceleratorCountRange `pulumi:"acceleratorCount"` + AcceleratorTotalMemoryMiB *FleetAcceleratorTotalMemoryMiBRange `pulumi:"acceleratorTotalMemoryMiB"` + AcceleratorTypes []FleetAcceleratorType `pulumi:"acceleratorTypes"` + CpuArchitectureType FleetCpuArchitectureType `pulumi:"cpuArchitectureType"` + CustomAmounts []FleetAmountCapability `pulumi:"customAmounts"` + CustomAttributes []FleetAttributeCapability `pulumi:"customAttributes"` + MemoryMiB FleetMemoryMiBRange `pulumi:"memoryMiB"` + OsFamily FleetCustomerManagedFleetOperatingSystemFamily `pulumi:"osFamily"` + VCpuCount FleetVCpuCountRange `pulumi:"vCpuCount"` +} + +// FleetCustomerManagedWorkerCapabilitiesInput is an input type that accepts FleetCustomerManagedWorkerCapabilitiesArgs and FleetCustomerManagedWorkerCapabilitiesOutput values. +// You can construct a concrete instance of `FleetCustomerManagedWorkerCapabilitiesInput` via: +// +// FleetCustomerManagedWorkerCapabilitiesArgs{...} +type FleetCustomerManagedWorkerCapabilitiesInput interface { + pulumi.Input + + ToFleetCustomerManagedWorkerCapabilitiesOutput() FleetCustomerManagedWorkerCapabilitiesOutput + ToFleetCustomerManagedWorkerCapabilitiesOutputWithContext(context.Context) FleetCustomerManagedWorkerCapabilitiesOutput +} + +type FleetCustomerManagedWorkerCapabilitiesArgs struct { + AcceleratorCount FleetAcceleratorCountRangePtrInput `pulumi:"acceleratorCount"` + AcceleratorTotalMemoryMiB FleetAcceleratorTotalMemoryMiBRangePtrInput `pulumi:"acceleratorTotalMemoryMiB"` + AcceleratorTypes FleetAcceleratorTypeArrayInput `pulumi:"acceleratorTypes"` + CpuArchitectureType FleetCpuArchitectureTypeInput `pulumi:"cpuArchitectureType"` + CustomAmounts FleetAmountCapabilityArrayInput `pulumi:"customAmounts"` + CustomAttributes FleetAttributeCapabilityArrayInput `pulumi:"customAttributes"` + MemoryMiB FleetMemoryMiBRangeInput `pulumi:"memoryMiB"` + OsFamily FleetCustomerManagedFleetOperatingSystemFamilyInput `pulumi:"osFamily"` + VCpuCount FleetVCpuCountRangeInput `pulumi:"vCpuCount"` +} + +func (FleetCustomerManagedWorkerCapabilitiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FleetCustomerManagedWorkerCapabilities)(nil)).Elem() +} + +func (i FleetCustomerManagedWorkerCapabilitiesArgs) ToFleetCustomerManagedWorkerCapabilitiesOutput() FleetCustomerManagedWorkerCapabilitiesOutput { + return i.ToFleetCustomerManagedWorkerCapabilitiesOutputWithContext(context.Background()) +} + +func (i FleetCustomerManagedWorkerCapabilitiesArgs) ToFleetCustomerManagedWorkerCapabilitiesOutputWithContext(ctx context.Context) FleetCustomerManagedWorkerCapabilitiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(FleetCustomerManagedWorkerCapabilitiesOutput) +} + +type FleetCustomerManagedWorkerCapabilitiesOutput struct{ *pulumi.OutputState } + +func (FleetCustomerManagedWorkerCapabilitiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FleetCustomerManagedWorkerCapabilities)(nil)).Elem() +} + +func (o FleetCustomerManagedWorkerCapabilitiesOutput) ToFleetCustomerManagedWorkerCapabilitiesOutput() FleetCustomerManagedWorkerCapabilitiesOutput { + return o +} + +func (o FleetCustomerManagedWorkerCapabilitiesOutput) ToFleetCustomerManagedWorkerCapabilitiesOutputWithContext(ctx context.Context) FleetCustomerManagedWorkerCapabilitiesOutput { + return o +} + +func (o FleetCustomerManagedWorkerCapabilitiesOutput) AcceleratorCount() FleetAcceleratorCountRangePtrOutput { + return o.ApplyT(func(v FleetCustomerManagedWorkerCapabilities) *FleetAcceleratorCountRange { return v.AcceleratorCount }).(FleetAcceleratorCountRangePtrOutput) +} + +func (o FleetCustomerManagedWorkerCapabilitiesOutput) AcceleratorTotalMemoryMiB() FleetAcceleratorTotalMemoryMiBRangePtrOutput { + return o.ApplyT(func(v FleetCustomerManagedWorkerCapabilities) *FleetAcceleratorTotalMemoryMiBRange { + return v.AcceleratorTotalMemoryMiB + }).(FleetAcceleratorTotalMemoryMiBRangePtrOutput) +} + +func (o FleetCustomerManagedWorkerCapabilitiesOutput) AcceleratorTypes() FleetAcceleratorTypeArrayOutput { + return o.ApplyT(func(v FleetCustomerManagedWorkerCapabilities) []FleetAcceleratorType { return v.AcceleratorTypes }).(FleetAcceleratorTypeArrayOutput) +} + +func (o FleetCustomerManagedWorkerCapabilitiesOutput) CpuArchitectureType() FleetCpuArchitectureTypeOutput { + return o.ApplyT(func(v FleetCustomerManagedWorkerCapabilities) FleetCpuArchitectureType { return v.CpuArchitectureType }).(FleetCpuArchitectureTypeOutput) +} + +func (o FleetCustomerManagedWorkerCapabilitiesOutput) CustomAmounts() FleetAmountCapabilityArrayOutput { + return o.ApplyT(func(v FleetCustomerManagedWorkerCapabilities) []FleetAmountCapability { return v.CustomAmounts }).(FleetAmountCapabilityArrayOutput) +} + +func (o FleetCustomerManagedWorkerCapabilitiesOutput) CustomAttributes() FleetAttributeCapabilityArrayOutput { + return o.ApplyT(func(v FleetCustomerManagedWorkerCapabilities) []FleetAttributeCapability { return v.CustomAttributes }).(FleetAttributeCapabilityArrayOutput) +} + +func (o FleetCustomerManagedWorkerCapabilitiesOutput) MemoryMiB() FleetMemoryMiBRangeOutput { + return o.ApplyT(func(v FleetCustomerManagedWorkerCapabilities) FleetMemoryMiBRange { return v.MemoryMiB }).(FleetMemoryMiBRangeOutput) +} + +func (o FleetCustomerManagedWorkerCapabilitiesOutput) OsFamily() FleetCustomerManagedFleetOperatingSystemFamilyOutput { + return o.ApplyT(func(v FleetCustomerManagedWorkerCapabilities) FleetCustomerManagedFleetOperatingSystemFamily { + return v.OsFamily + }).(FleetCustomerManagedFleetOperatingSystemFamilyOutput) +} + +func (o FleetCustomerManagedWorkerCapabilitiesOutput) VCpuCount() FleetVCpuCountRangeOutput { + return o.ApplyT(func(v FleetCustomerManagedWorkerCapabilities) FleetVCpuCountRange { return v.VCpuCount }).(FleetVCpuCountRangeOutput) +} + +type FleetCustomerManagedWorkerCapabilitiesPtrOutput struct{ *pulumi.OutputState } + +func (FleetCustomerManagedWorkerCapabilitiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FleetCustomerManagedWorkerCapabilities)(nil)).Elem() +} + +func (o FleetCustomerManagedWorkerCapabilitiesPtrOutput) ToFleetCustomerManagedWorkerCapabilitiesPtrOutput() FleetCustomerManagedWorkerCapabilitiesPtrOutput { + return o +} + +func (o FleetCustomerManagedWorkerCapabilitiesPtrOutput) ToFleetCustomerManagedWorkerCapabilitiesPtrOutputWithContext(ctx context.Context) FleetCustomerManagedWorkerCapabilitiesPtrOutput { + return o +} + +func (o FleetCustomerManagedWorkerCapabilitiesPtrOutput) Elem() FleetCustomerManagedWorkerCapabilitiesOutput { + return o.ApplyT(func(v *FleetCustomerManagedWorkerCapabilities) FleetCustomerManagedWorkerCapabilities { + if v != nil { + return *v + } + var ret FleetCustomerManagedWorkerCapabilities + return ret + }).(FleetCustomerManagedWorkerCapabilitiesOutput) +} + +func (o FleetCustomerManagedWorkerCapabilitiesPtrOutput) AcceleratorCount() FleetAcceleratorCountRangePtrOutput { + return o.ApplyT(func(v *FleetCustomerManagedWorkerCapabilities) *FleetAcceleratorCountRange { + if v == nil { + return nil + } + return v.AcceleratorCount + }).(FleetAcceleratorCountRangePtrOutput) +} + +func (o FleetCustomerManagedWorkerCapabilitiesPtrOutput) AcceleratorTotalMemoryMiB() FleetAcceleratorTotalMemoryMiBRangePtrOutput { + return o.ApplyT(func(v *FleetCustomerManagedWorkerCapabilities) *FleetAcceleratorTotalMemoryMiBRange { + if v == nil { + return nil + } + return v.AcceleratorTotalMemoryMiB + }).(FleetAcceleratorTotalMemoryMiBRangePtrOutput) +} + +func (o FleetCustomerManagedWorkerCapabilitiesPtrOutput) AcceleratorTypes() FleetAcceleratorTypeArrayOutput { + return o.ApplyT(func(v *FleetCustomerManagedWorkerCapabilities) []FleetAcceleratorType { + if v == nil { + return nil + } + return v.AcceleratorTypes + }).(FleetAcceleratorTypeArrayOutput) +} + +func (o FleetCustomerManagedWorkerCapabilitiesPtrOutput) CpuArchitectureType() FleetCpuArchitectureTypePtrOutput { + return o.ApplyT(func(v *FleetCustomerManagedWorkerCapabilities) *FleetCpuArchitectureType { + if v == nil { + return nil + } + return &v.CpuArchitectureType + }).(FleetCpuArchitectureTypePtrOutput) +} + +func (o FleetCustomerManagedWorkerCapabilitiesPtrOutput) CustomAmounts() FleetAmountCapabilityArrayOutput { + return o.ApplyT(func(v *FleetCustomerManagedWorkerCapabilities) []FleetAmountCapability { + if v == nil { + return nil + } + return v.CustomAmounts + }).(FleetAmountCapabilityArrayOutput) +} + +func (o FleetCustomerManagedWorkerCapabilitiesPtrOutput) CustomAttributes() FleetAttributeCapabilityArrayOutput { + return o.ApplyT(func(v *FleetCustomerManagedWorkerCapabilities) []FleetAttributeCapability { + if v == nil { + return nil + } + return v.CustomAttributes + }).(FleetAttributeCapabilityArrayOutput) +} + +func (o FleetCustomerManagedWorkerCapabilitiesPtrOutput) MemoryMiB() FleetMemoryMiBRangePtrOutput { + return o.ApplyT(func(v *FleetCustomerManagedWorkerCapabilities) *FleetMemoryMiBRange { + if v == nil { + return nil + } + return &v.MemoryMiB + }).(FleetMemoryMiBRangePtrOutput) +} + +func (o FleetCustomerManagedWorkerCapabilitiesPtrOutput) OsFamily() FleetCustomerManagedFleetOperatingSystemFamilyPtrOutput { + return o.ApplyT(func(v *FleetCustomerManagedWorkerCapabilities) *FleetCustomerManagedFleetOperatingSystemFamily { + if v == nil { + return nil + } + return &v.OsFamily + }).(FleetCustomerManagedFleetOperatingSystemFamilyPtrOutput) +} + +func (o FleetCustomerManagedWorkerCapabilitiesPtrOutput) VCpuCount() FleetVCpuCountRangePtrOutput { + return o.ApplyT(func(v *FleetCustomerManagedWorkerCapabilities) *FleetVCpuCountRange { + if v == nil { + return nil + } + return &v.VCpuCount + }).(FleetVCpuCountRangePtrOutput) +} + +type FleetEc2EbsVolume struct { + Iops *int `pulumi:"iops"` + SizeGiB *int `pulumi:"sizeGiB"` + ThroughputMiB *int `pulumi:"throughputMiB"` +} + +// FleetEc2EbsVolumeInput is an input type that accepts FleetEc2EbsVolumeArgs and FleetEc2EbsVolumeOutput values. +// You can construct a concrete instance of `FleetEc2EbsVolumeInput` via: +// +// FleetEc2EbsVolumeArgs{...} +type FleetEc2EbsVolumeInput interface { + pulumi.Input + + ToFleetEc2EbsVolumeOutput() FleetEc2EbsVolumeOutput + ToFleetEc2EbsVolumeOutputWithContext(context.Context) FleetEc2EbsVolumeOutput +} + +type FleetEc2EbsVolumeArgs struct { + Iops pulumi.IntPtrInput `pulumi:"iops"` + SizeGiB pulumi.IntPtrInput `pulumi:"sizeGiB"` + ThroughputMiB pulumi.IntPtrInput `pulumi:"throughputMiB"` +} + +func (FleetEc2EbsVolumeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FleetEc2EbsVolume)(nil)).Elem() +} + +func (i FleetEc2EbsVolumeArgs) ToFleetEc2EbsVolumeOutput() FleetEc2EbsVolumeOutput { + return i.ToFleetEc2EbsVolumeOutputWithContext(context.Background()) +} + +func (i FleetEc2EbsVolumeArgs) ToFleetEc2EbsVolumeOutputWithContext(ctx context.Context) FleetEc2EbsVolumeOutput { + return pulumi.ToOutputWithContext(ctx, i).(FleetEc2EbsVolumeOutput) +} + +func (i FleetEc2EbsVolumeArgs) ToFleetEc2EbsVolumePtrOutput() FleetEc2EbsVolumePtrOutput { + return i.ToFleetEc2EbsVolumePtrOutputWithContext(context.Background()) +} + +func (i FleetEc2EbsVolumeArgs) ToFleetEc2EbsVolumePtrOutputWithContext(ctx context.Context) FleetEc2EbsVolumePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FleetEc2EbsVolumeOutput).ToFleetEc2EbsVolumePtrOutputWithContext(ctx) +} + +// FleetEc2EbsVolumePtrInput is an input type that accepts FleetEc2EbsVolumeArgs, FleetEc2EbsVolumePtr and FleetEc2EbsVolumePtrOutput values. +// You can construct a concrete instance of `FleetEc2EbsVolumePtrInput` via: +// +// FleetEc2EbsVolumeArgs{...} +// +// or: +// +// nil +type FleetEc2EbsVolumePtrInput interface { + pulumi.Input + + ToFleetEc2EbsVolumePtrOutput() FleetEc2EbsVolumePtrOutput + ToFleetEc2EbsVolumePtrOutputWithContext(context.Context) FleetEc2EbsVolumePtrOutput +} + +type fleetEc2EbsVolumePtrType FleetEc2EbsVolumeArgs + +func FleetEc2EbsVolumePtr(v *FleetEc2EbsVolumeArgs) FleetEc2EbsVolumePtrInput { + return (*fleetEc2EbsVolumePtrType)(v) +} + +func (*fleetEc2EbsVolumePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**FleetEc2EbsVolume)(nil)).Elem() +} + +func (i *fleetEc2EbsVolumePtrType) ToFleetEc2EbsVolumePtrOutput() FleetEc2EbsVolumePtrOutput { + return i.ToFleetEc2EbsVolumePtrOutputWithContext(context.Background()) +} + +func (i *fleetEc2EbsVolumePtrType) ToFleetEc2EbsVolumePtrOutputWithContext(ctx context.Context) FleetEc2EbsVolumePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FleetEc2EbsVolumePtrOutput) +} + +type FleetEc2EbsVolumeOutput struct{ *pulumi.OutputState } + +func (FleetEc2EbsVolumeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FleetEc2EbsVolume)(nil)).Elem() +} + +func (o FleetEc2EbsVolumeOutput) ToFleetEc2EbsVolumeOutput() FleetEc2EbsVolumeOutput { + return o +} + +func (o FleetEc2EbsVolumeOutput) ToFleetEc2EbsVolumeOutputWithContext(ctx context.Context) FleetEc2EbsVolumeOutput { + return o +} + +func (o FleetEc2EbsVolumeOutput) ToFleetEc2EbsVolumePtrOutput() FleetEc2EbsVolumePtrOutput { + return o.ToFleetEc2EbsVolumePtrOutputWithContext(context.Background()) +} + +func (o FleetEc2EbsVolumeOutput) ToFleetEc2EbsVolumePtrOutputWithContext(ctx context.Context) FleetEc2EbsVolumePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FleetEc2EbsVolume) *FleetEc2EbsVolume { + return &v + }).(FleetEc2EbsVolumePtrOutput) +} + +func (o FleetEc2EbsVolumeOutput) Iops() pulumi.IntPtrOutput { + return o.ApplyT(func(v FleetEc2EbsVolume) *int { return v.Iops }).(pulumi.IntPtrOutput) +} + +func (o FleetEc2EbsVolumeOutput) SizeGiB() pulumi.IntPtrOutput { + return o.ApplyT(func(v FleetEc2EbsVolume) *int { return v.SizeGiB }).(pulumi.IntPtrOutput) +} + +func (o FleetEc2EbsVolumeOutput) ThroughputMiB() pulumi.IntPtrOutput { + return o.ApplyT(func(v FleetEc2EbsVolume) *int { return v.ThroughputMiB }).(pulumi.IntPtrOutput) +} + +type FleetEc2EbsVolumePtrOutput struct{ *pulumi.OutputState } + +func (FleetEc2EbsVolumePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FleetEc2EbsVolume)(nil)).Elem() +} + +func (o FleetEc2EbsVolumePtrOutput) ToFleetEc2EbsVolumePtrOutput() FleetEc2EbsVolumePtrOutput { + return o +} + +func (o FleetEc2EbsVolumePtrOutput) ToFleetEc2EbsVolumePtrOutputWithContext(ctx context.Context) FleetEc2EbsVolumePtrOutput { + return o +} + +func (o FleetEc2EbsVolumePtrOutput) Elem() FleetEc2EbsVolumeOutput { + return o.ApplyT(func(v *FleetEc2EbsVolume) FleetEc2EbsVolume { + if v != nil { + return *v + } + var ret FleetEc2EbsVolume + return ret + }).(FleetEc2EbsVolumeOutput) +} + +func (o FleetEc2EbsVolumePtrOutput) Iops() pulumi.IntPtrOutput { + return o.ApplyT(func(v *FleetEc2EbsVolume) *int { + if v == nil { + return nil + } + return v.Iops + }).(pulumi.IntPtrOutput) +} + +func (o FleetEc2EbsVolumePtrOutput) SizeGiB() pulumi.IntPtrOutput { + return o.ApplyT(func(v *FleetEc2EbsVolume) *int { + if v == nil { + return nil + } + return v.SizeGiB + }).(pulumi.IntPtrOutput) +} + +func (o FleetEc2EbsVolumePtrOutput) ThroughputMiB() pulumi.IntPtrOutput { + return o.ApplyT(func(v *FleetEc2EbsVolume) *int { + if v == nil { + return nil + } + return v.ThroughputMiB + }).(pulumi.IntPtrOutput) +} + +type FleetMemoryMiBRange struct { + Max *int `pulumi:"max"` + Min int `pulumi:"min"` +} + +// FleetMemoryMiBRangeInput is an input type that accepts FleetMemoryMiBRangeArgs and FleetMemoryMiBRangeOutput values. +// You can construct a concrete instance of `FleetMemoryMiBRangeInput` via: +// +// FleetMemoryMiBRangeArgs{...} +type FleetMemoryMiBRangeInput interface { + pulumi.Input + + ToFleetMemoryMiBRangeOutput() FleetMemoryMiBRangeOutput + ToFleetMemoryMiBRangeOutputWithContext(context.Context) FleetMemoryMiBRangeOutput +} + +type FleetMemoryMiBRangeArgs struct { + Max pulumi.IntPtrInput `pulumi:"max"` + Min pulumi.IntInput `pulumi:"min"` +} + +func (FleetMemoryMiBRangeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FleetMemoryMiBRange)(nil)).Elem() +} + +func (i FleetMemoryMiBRangeArgs) ToFleetMemoryMiBRangeOutput() FleetMemoryMiBRangeOutput { + return i.ToFleetMemoryMiBRangeOutputWithContext(context.Background()) +} + +func (i FleetMemoryMiBRangeArgs) ToFleetMemoryMiBRangeOutputWithContext(ctx context.Context) FleetMemoryMiBRangeOutput { + return pulumi.ToOutputWithContext(ctx, i).(FleetMemoryMiBRangeOutput) +} + +type FleetMemoryMiBRangeOutput struct{ *pulumi.OutputState } + +func (FleetMemoryMiBRangeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FleetMemoryMiBRange)(nil)).Elem() +} + +func (o FleetMemoryMiBRangeOutput) ToFleetMemoryMiBRangeOutput() FleetMemoryMiBRangeOutput { + return o +} + +func (o FleetMemoryMiBRangeOutput) ToFleetMemoryMiBRangeOutputWithContext(ctx context.Context) FleetMemoryMiBRangeOutput { + return o +} + +func (o FleetMemoryMiBRangeOutput) Max() pulumi.IntPtrOutput { + return o.ApplyT(func(v FleetMemoryMiBRange) *int { return v.Max }).(pulumi.IntPtrOutput) +} + +func (o FleetMemoryMiBRangeOutput) Min() pulumi.IntOutput { + return o.ApplyT(func(v FleetMemoryMiBRange) int { return v.Min }).(pulumi.IntOutput) +} + +type FleetMemoryMiBRangePtrOutput struct{ *pulumi.OutputState } + +func (FleetMemoryMiBRangePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FleetMemoryMiBRange)(nil)).Elem() +} + +func (o FleetMemoryMiBRangePtrOutput) ToFleetMemoryMiBRangePtrOutput() FleetMemoryMiBRangePtrOutput { + return o +} + +func (o FleetMemoryMiBRangePtrOutput) ToFleetMemoryMiBRangePtrOutputWithContext(ctx context.Context) FleetMemoryMiBRangePtrOutput { + return o +} + +func (o FleetMemoryMiBRangePtrOutput) Elem() FleetMemoryMiBRangeOutput { + return o.ApplyT(func(v *FleetMemoryMiBRange) FleetMemoryMiBRange { + if v != nil { + return *v + } + var ret FleetMemoryMiBRange + return ret + }).(FleetMemoryMiBRangeOutput) +} + +func (o FleetMemoryMiBRangePtrOutput) Max() pulumi.IntPtrOutput { + return o.ApplyT(func(v *FleetMemoryMiBRange) *int { + if v == nil { + return nil + } + return v.Max + }).(pulumi.IntPtrOutput) +} + +func (o FleetMemoryMiBRangePtrOutput) Min() pulumi.IntPtrOutput { + return o.ApplyT(func(v *FleetMemoryMiBRange) *int { + if v == nil { + return nil + } + return &v.Min + }).(pulumi.IntPtrOutput) +} + +type FleetServiceManagedEc2FleetConfiguration struct { + InstanceCapabilities FleetServiceManagedEc2InstanceCapabilities `pulumi:"instanceCapabilities"` + InstanceMarketOptions FleetServiceManagedEc2InstanceMarketOptions `pulumi:"instanceMarketOptions"` +} + +// FleetServiceManagedEc2FleetConfigurationInput is an input type that accepts FleetServiceManagedEc2FleetConfigurationArgs and FleetServiceManagedEc2FleetConfigurationOutput values. +// You can construct a concrete instance of `FleetServiceManagedEc2FleetConfigurationInput` via: +// +// FleetServiceManagedEc2FleetConfigurationArgs{...} +type FleetServiceManagedEc2FleetConfigurationInput interface { + pulumi.Input + + ToFleetServiceManagedEc2FleetConfigurationOutput() FleetServiceManagedEc2FleetConfigurationOutput + ToFleetServiceManagedEc2FleetConfigurationOutputWithContext(context.Context) FleetServiceManagedEc2FleetConfigurationOutput +} + +type FleetServiceManagedEc2FleetConfigurationArgs struct { + InstanceCapabilities FleetServiceManagedEc2InstanceCapabilitiesInput `pulumi:"instanceCapabilities"` + InstanceMarketOptions FleetServiceManagedEc2InstanceMarketOptionsInput `pulumi:"instanceMarketOptions"` +} + +func (FleetServiceManagedEc2FleetConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FleetServiceManagedEc2FleetConfiguration)(nil)).Elem() +} + +func (i FleetServiceManagedEc2FleetConfigurationArgs) ToFleetServiceManagedEc2FleetConfigurationOutput() FleetServiceManagedEc2FleetConfigurationOutput { + return i.ToFleetServiceManagedEc2FleetConfigurationOutputWithContext(context.Background()) +} + +func (i FleetServiceManagedEc2FleetConfigurationArgs) ToFleetServiceManagedEc2FleetConfigurationOutputWithContext(ctx context.Context) FleetServiceManagedEc2FleetConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(FleetServiceManagedEc2FleetConfigurationOutput) +} + +type FleetServiceManagedEc2FleetConfigurationOutput struct{ *pulumi.OutputState } + +func (FleetServiceManagedEc2FleetConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FleetServiceManagedEc2FleetConfiguration)(nil)).Elem() +} + +func (o FleetServiceManagedEc2FleetConfigurationOutput) ToFleetServiceManagedEc2FleetConfigurationOutput() FleetServiceManagedEc2FleetConfigurationOutput { + return o +} + +func (o FleetServiceManagedEc2FleetConfigurationOutput) ToFleetServiceManagedEc2FleetConfigurationOutputWithContext(ctx context.Context) FleetServiceManagedEc2FleetConfigurationOutput { + return o +} + +func (o FleetServiceManagedEc2FleetConfigurationOutput) InstanceCapabilities() FleetServiceManagedEc2InstanceCapabilitiesOutput { + return o.ApplyT(func(v FleetServiceManagedEc2FleetConfiguration) FleetServiceManagedEc2InstanceCapabilities { + return v.InstanceCapabilities + }).(FleetServiceManagedEc2InstanceCapabilitiesOutput) +} + +func (o FleetServiceManagedEc2FleetConfigurationOutput) InstanceMarketOptions() FleetServiceManagedEc2InstanceMarketOptionsOutput { + return o.ApplyT(func(v FleetServiceManagedEc2FleetConfiguration) FleetServiceManagedEc2InstanceMarketOptions { + return v.InstanceMarketOptions + }).(FleetServiceManagedEc2InstanceMarketOptionsOutput) +} + +type FleetServiceManagedEc2FleetConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (FleetServiceManagedEc2FleetConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FleetServiceManagedEc2FleetConfiguration)(nil)).Elem() +} + +func (o FleetServiceManagedEc2FleetConfigurationPtrOutput) ToFleetServiceManagedEc2FleetConfigurationPtrOutput() FleetServiceManagedEc2FleetConfigurationPtrOutput { + return o +} + +func (o FleetServiceManagedEc2FleetConfigurationPtrOutput) ToFleetServiceManagedEc2FleetConfigurationPtrOutputWithContext(ctx context.Context) FleetServiceManagedEc2FleetConfigurationPtrOutput { + return o +} + +func (o FleetServiceManagedEc2FleetConfigurationPtrOutput) Elem() FleetServiceManagedEc2FleetConfigurationOutput { + return o.ApplyT(func(v *FleetServiceManagedEc2FleetConfiguration) FleetServiceManagedEc2FleetConfiguration { + if v != nil { + return *v + } + var ret FleetServiceManagedEc2FleetConfiguration + return ret + }).(FleetServiceManagedEc2FleetConfigurationOutput) +} + +func (o FleetServiceManagedEc2FleetConfigurationPtrOutput) InstanceCapabilities() FleetServiceManagedEc2InstanceCapabilitiesPtrOutput { + return o.ApplyT(func(v *FleetServiceManagedEc2FleetConfiguration) *FleetServiceManagedEc2InstanceCapabilities { + if v == nil { + return nil + } + return &v.InstanceCapabilities + }).(FleetServiceManagedEc2InstanceCapabilitiesPtrOutput) +} + +func (o FleetServiceManagedEc2FleetConfigurationPtrOutput) InstanceMarketOptions() FleetServiceManagedEc2InstanceMarketOptionsPtrOutput { + return o.ApplyT(func(v *FleetServiceManagedEc2FleetConfiguration) *FleetServiceManagedEc2InstanceMarketOptions { + if v == nil { + return nil + } + return &v.InstanceMarketOptions + }).(FleetServiceManagedEc2InstanceMarketOptionsPtrOutput) +} + +type FleetServiceManagedEc2InstanceCapabilities struct { + AllowedInstanceTypes []string `pulumi:"allowedInstanceTypes"` + CpuArchitectureType FleetCpuArchitectureType `pulumi:"cpuArchitectureType"` + CustomAmounts []FleetAmountCapability `pulumi:"customAmounts"` + CustomAttributes []FleetAttributeCapability `pulumi:"customAttributes"` + ExcludedInstanceTypes []string `pulumi:"excludedInstanceTypes"` + MemoryMiB FleetMemoryMiBRange `pulumi:"memoryMiB"` + OsFamily FleetServiceManagedFleetOperatingSystemFamily `pulumi:"osFamily"` + RootEbsVolume *FleetEc2EbsVolume `pulumi:"rootEbsVolume"` + VCpuCount FleetVCpuCountRange `pulumi:"vCpuCount"` +} + +// FleetServiceManagedEc2InstanceCapabilitiesInput is an input type that accepts FleetServiceManagedEc2InstanceCapabilitiesArgs and FleetServiceManagedEc2InstanceCapabilitiesOutput values. +// You can construct a concrete instance of `FleetServiceManagedEc2InstanceCapabilitiesInput` via: +// +// FleetServiceManagedEc2InstanceCapabilitiesArgs{...} +type FleetServiceManagedEc2InstanceCapabilitiesInput interface { + pulumi.Input + + ToFleetServiceManagedEc2InstanceCapabilitiesOutput() FleetServiceManagedEc2InstanceCapabilitiesOutput + ToFleetServiceManagedEc2InstanceCapabilitiesOutputWithContext(context.Context) FleetServiceManagedEc2InstanceCapabilitiesOutput +} + +type FleetServiceManagedEc2InstanceCapabilitiesArgs struct { + AllowedInstanceTypes pulumi.StringArrayInput `pulumi:"allowedInstanceTypes"` + CpuArchitectureType FleetCpuArchitectureTypeInput `pulumi:"cpuArchitectureType"` + CustomAmounts FleetAmountCapabilityArrayInput `pulumi:"customAmounts"` + CustomAttributes FleetAttributeCapabilityArrayInput `pulumi:"customAttributes"` + ExcludedInstanceTypes pulumi.StringArrayInput `pulumi:"excludedInstanceTypes"` + MemoryMiB FleetMemoryMiBRangeInput `pulumi:"memoryMiB"` + OsFamily FleetServiceManagedFleetOperatingSystemFamilyInput `pulumi:"osFamily"` + RootEbsVolume FleetEc2EbsVolumePtrInput `pulumi:"rootEbsVolume"` + VCpuCount FleetVCpuCountRangeInput `pulumi:"vCpuCount"` +} + +func (FleetServiceManagedEc2InstanceCapabilitiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FleetServiceManagedEc2InstanceCapabilities)(nil)).Elem() +} + +func (i FleetServiceManagedEc2InstanceCapabilitiesArgs) ToFleetServiceManagedEc2InstanceCapabilitiesOutput() FleetServiceManagedEc2InstanceCapabilitiesOutput { + return i.ToFleetServiceManagedEc2InstanceCapabilitiesOutputWithContext(context.Background()) +} + +func (i FleetServiceManagedEc2InstanceCapabilitiesArgs) ToFleetServiceManagedEc2InstanceCapabilitiesOutputWithContext(ctx context.Context) FleetServiceManagedEc2InstanceCapabilitiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(FleetServiceManagedEc2InstanceCapabilitiesOutput) +} + +type FleetServiceManagedEc2InstanceCapabilitiesOutput struct{ *pulumi.OutputState } + +func (FleetServiceManagedEc2InstanceCapabilitiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FleetServiceManagedEc2InstanceCapabilities)(nil)).Elem() +} + +func (o FleetServiceManagedEc2InstanceCapabilitiesOutput) ToFleetServiceManagedEc2InstanceCapabilitiesOutput() FleetServiceManagedEc2InstanceCapabilitiesOutput { + return o +} + +func (o FleetServiceManagedEc2InstanceCapabilitiesOutput) ToFleetServiceManagedEc2InstanceCapabilitiesOutputWithContext(ctx context.Context) FleetServiceManagedEc2InstanceCapabilitiesOutput { + return o +} + +func (o FleetServiceManagedEc2InstanceCapabilitiesOutput) AllowedInstanceTypes() pulumi.StringArrayOutput { + return o.ApplyT(func(v FleetServiceManagedEc2InstanceCapabilities) []string { return v.AllowedInstanceTypes }).(pulumi.StringArrayOutput) +} + +func (o FleetServiceManagedEc2InstanceCapabilitiesOutput) CpuArchitectureType() FleetCpuArchitectureTypeOutput { + return o.ApplyT(func(v FleetServiceManagedEc2InstanceCapabilities) FleetCpuArchitectureType { + return v.CpuArchitectureType + }).(FleetCpuArchitectureTypeOutput) +} + +func (o FleetServiceManagedEc2InstanceCapabilitiesOutput) CustomAmounts() FleetAmountCapabilityArrayOutput { + return o.ApplyT(func(v FleetServiceManagedEc2InstanceCapabilities) []FleetAmountCapability { return v.CustomAmounts }).(FleetAmountCapabilityArrayOutput) +} + +func (o FleetServiceManagedEc2InstanceCapabilitiesOutput) CustomAttributes() FleetAttributeCapabilityArrayOutput { + return o.ApplyT(func(v FleetServiceManagedEc2InstanceCapabilities) []FleetAttributeCapability { + return v.CustomAttributes + }).(FleetAttributeCapabilityArrayOutput) +} + +func (o FleetServiceManagedEc2InstanceCapabilitiesOutput) ExcludedInstanceTypes() pulumi.StringArrayOutput { + return o.ApplyT(func(v FleetServiceManagedEc2InstanceCapabilities) []string { return v.ExcludedInstanceTypes }).(pulumi.StringArrayOutput) +} + +func (o FleetServiceManagedEc2InstanceCapabilitiesOutput) MemoryMiB() FleetMemoryMiBRangeOutput { + return o.ApplyT(func(v FleetServiceManagedEc2InstanceCapabilities) FleetMemoryMiBRange { return v.MemoryMiB }).(FleetMemoryMiBRangeOutput) +} + +func (o FleetServiceManagedEc2InstanceCapabilitiesOutput) OsFamily() FleetServiceManagedFleetOperatingSystemFamilyOutput { + return o.ApplyT(func(v FleetServiceManagedEc2InstanceCapabilities) FleetServiceManagedFleetOperatingSystemFamily { + return v.OsFamily + }).(FleetServiceManagedFleetOperatingSystemFamilyOutput) +} + +func (o FleetServiceManagedEc2InstanceCapabilitiesOutput) RootEbsVolume() FleetEc2EbsVolumePtrOutput { + return o.ApplyT(func(v FleetServiceManagedEc2InstanceCapabilities) *FleetEc2EbsVolume { return v.RootEbsVolume }).(FleetEc2EbsVolumePtrOutput) +} + +func (o FleetServiceManagedEc2InstanceCapabilitiesOutput) VCpuCount() FleetVCpuCountRangeOutput { + return o.ApplyT(func(v FleetServiceManagedEc2InstanceCapabilities) FleetVCpuCountRange { return v.VCpuCount }).(FleetVCpuCountRangeOutput) +} + +type FleetServiceManagedEc2InstanceCapabilitiesPtrOutput struct{ *pulumi.OutputState } + +func (FleetServiceManagedEc2InstanceCapabilitiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FleetServiceManagedEc2InstanceCapabilities)(nil)).Elem() +} + +func (o FleetServiceManagedEc2InstanceCapabilitiesPtrOutput) ToFleetServiceManagedEc2InstanceCapabilitiesPtrOutput() FleetServiceManagedEc2InstanceCapabilitiesPtrOutput { + return o +} + +func (o FleetServiceManagedEc2InstanceCapabilitiesPtrOutput) ToFleetServiceManagedEc2InstanceCapabilitiesPtrOutputWithContext(ctx context.Context) FleetServiceManagedEc2InstanceCapabilitiesPtrOutput { + return o +} + +func (o FleetServiceManagedEc2InstanceCapabilitiesPtrOutput) Elem() FleetServiceManagedEc2InstanceCapabilitiesOutput { + return o.ApplyT(func(v *FleetServiceManagedEc2InstanceCapabilities) FleetServiceManagedEc2InstanceCapabilities { + if v != nil { + return *v + } + var ret FleetServiceManagedEc2InstanceCapabilities + return ret + }).(FleetServiceManagedEc2InstanceCapabilitiesOutput) +} + +func (o FleetServiceManagedEc2InstanceCapabilitiesPtrOutput) AllowedInstanceTypes() pulumi.StringArrayOutput { + return o.ApplyT(func(v *FleetServiceManagedEc2InstanceCapabilities) []string { + if v == nil { + return nil + } + return v.AllowedInstanceTypes + }).(pulumi.StringArrayOutput) +} + +func (o FleetServiceManagedEc2InstanceCapabilitiesPtrOutput) CpuArchitectureType() FleetCpuArchitectureTypePtrOutput { + return o.ApplyT(func(v *FleetServiceManagedEc2InstanceCapabilities) *FleetCpuArchitectureType { + if v == nil { + return nil + } + return &v.CpuArchitectureType + }).(FleetCpuArchitectureTypePtrOutput) +} + +func (o FleetServiceManagedEc2InstanceCapabilitiesPtrOutput) CustomAmounts() FleetAmountCapabilityArrayOutput { + return o.ApplyT(func(v *FleetServiceManagedEc2InstanceCapabilities) []FleetAmountCapability { + if v == nil { + return nil + } + return v.CustomAmounts + }).(FleetAmountCapabilityArrayOutput) +} + +func (o FleetServiceManagedEc2InstanceCapabilitiesPtrOutput) CustomAttributes() FleetAttributeCapabilityArrayOutput { + return o.ApplyT(func(v *FleetServiceManagedEc2InstanceCapabilities) []FleetAttributeCapability { + if v == nil { + return nil + } + return v.CustomAttributes + }).(FleetAttributeCapabilityArrayOutput) +} + +func (o FleetServiceManagedEc2InstanceCapabilitiesPtrOutput) ExcludedInstanceTypes() pulumi.StringArrayOutput { + return o.ApplyT(func(v *FleetServiceManagedEc2InstanceCapabilities) []string { + if v == nil { + return nil + } + return v.ExcludedInstanceTypes + }).(pulumi.StringArrayOutput) +} + +func (o FleetServiceManagedEc2InstanceCapabilitiesPtrOutput) MemoryMiB() FleetMemoryMiBRangePtrOutput { + return o.ApplyT(func(v *FleetServiceManagedEc2InstanceCapabilities) *FleetMemoryMiBRange { + if v == nil { + return nil + } + return &v.MemoryMiB + }).(FleetMemoryMiBRangePtrOutput) +} + +func (o FleetServiceManagedEc2InstanceCapabilitiesPtrOutput) OsFamily() FleetServiceManagedFleetOperatingSystemFamilyPtrOutput { + return o.ApplyT(func(v *FleetServiceManagedEc2InstanceCapabilities) *FleetServiceManagedFleetOperatingSystemFamily { + if v == nil { + return nil + } + return &v.OsFamily + }).(FleetServiceManagedFleetOperatingSystemFamilyPtrOutput) +} + +func (o FleetServiceManagedEc2InstanceCapabilitiesPtrOutput) RootEbsVolume() FleetEc2EbsVolumePtrOutput { + return o.ApplyT(func(v *FleetServiceManagedEc2InstanceCapabilities) *FleetEc2EbsVolume { + if v == nil { + return nil + } + return v.RootEbsVolume + }).(FleetEc2EbsVolumePtrOutput) +} + +func (o FleetServiceManagedEc2InstanceCapabilitiesPtrOutput) VCpuCount() FleetVCpuCountRangePtrOutput { + return o.ApplyT(func(v *FleetServiceManagedEc2InstanceCapabilities) *FleetVCpuCountRange { + if v == nil { + return nil + } + return &v.VCpuCount + }).(FleetVCpuCountRangePtrOutput) +} + +type FleetServiceManagedEc2InstanceMarketOptions struct { + Type FleetEc2MarketType `pulumi:"type"` +} + +// FleetServiceManagedEc2InstanceMarketOptionsInput is an input type that accepts FleetServiceManagedEc2InstanceMarketOptionsArgs and FleetServiceManagedEc2InstanceMarketOptionsOutput values. +// You can construct a concrete instance of `FleetServiceManagedEc2InstanceMarketOptionsInput` via: +// +// FleetServiceManagedEc2InstanceMarketOptionsArgs{...} +type FleetServiceManagedEc2InstanceMarketOptionsInput interface { + pulumi.Input + + ToFleetServiceManagedEc2InstanceMarketOptionsOutput() FleetServiceManagedEc2InstanceMarketOptionsOutput + ToFleetServiceManagedEc2InstanceMarketOptionsOutputWithContext(context.Context) FleetServiceManagedEc2InstanceMarketOptionsOutput +} + +type FleetServiceManagedEc2InstanceMarketOptionsArgs struct { + Type FleetEc2MarketTypeInput `pulumi:"type"` +} + +func (FleetServiceManagedEc2InstanceMarketOptionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FleetServiceManagedEc2InstanceMarketOptions)(nil)).Elem() +} + +func (i FleetServiceManagedEc2InstanceMarketOptionsArgs) ToFleetServiceManagedEc2InstanceMarketOptionsOutput() FleetServiceManagedEc2InstanceMarketOptionsOutput { + return i.ToFleetServiceManagedEc2InstanceMarketOptionsOutputWithContext(context.Background()) +} + +func (i FleetServiceManagedEc2InstanceMarketOptionsArgs) ToFleetServiceManagedEc2InstanceMarketOptionsOutputWithContext(ctx context.Context) FleetServiceManagedEc2InstanceMarketOptionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(FleetServiceManagedEc2InstanceMarketOptionsOutput) +} + +type FleetServiceManagedEc2InstanceMarketOptionsOutput struct{ *pulumi.OutputState } + +func (FleetServiceManagedEc2InstanceMarketOptionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FleetServiceManagedEc2InstanceMarketOptions)(nil)).Elem() +} + +func (o FleetServiceManagedEc2InstanceMarketOptionsOutput) ToFleetServiceManagedEc2InstanceMarketOptionsOutput() FleetServiceManagedEc2InstanceMarketOptionsOutput { + return o +} + +func (o FleetServiceManagedEc2InstanceMarketOptionsOutput) ToFleetServiceManagedEc2InstanceMarketOptionsOutputWithContext(ctx context.Context) FleetServiceManagedEc2InstanceMarketOptionsOutput { + return o +} + +func (o FleetServiceManagedEc2InstanceMarketOptionsOutput) Type() FleetEc2MarketTypeOutput { + return o.ApplyT(func(v FleetServiceManagedEc2InstanceMarketOptions) FleetEc2MarketType { return v.Type }).(FleetEc2MarketTypeOutput) +} + +type FleetServiceManagedEc2InstanceMarketOptionsPtrOutput struct{ *pulumi.OutputState } + +func (FleetServiceManagedEc2InstanceMarketOptionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FleetServiceManagedEc2InstanceMarketOptions)(nil)).Elem() +} + +func (o FleetServiceManagedEc2InstanceMarketOptionsPtrOutput) ToFleetServiceManagedEc2InstanceMarketOptionsPtrOutput() FleetServiceManagedEc2InstanceMarketOptionsPtrOutput { + return o +} + +func (o FleetServiceManagedEc2InstanceMarketOptionsPtrOutput) ToFleetServiceManagedEc2InstanceMarketOptionsPtrOutputWithContext(ctx context.Context) FleetServiceManagedEc2InstanceMarketOptionsPtrOutput { + return o +} + +func (o FleetServiceManagedEc2InstanceMarketOptionsPtrOutput) Elem() FleetServiceManagedEc2InstanceMarketOptionsOutput { + return o.ApplyT(func(v *FleetServiceManagedEc2InstanceMarketOptions) FleetServiceManagedEc2InstanceMarketOptions { + if v != nil { + return *v + } + var ret FleetServiceManagedEc2InstanceMarketOptions + return ret + }).(FleetServiceManagedEc2InstanceMarketOptionsOutput) +} + +func (o FleetServiceManagedEc2InstanceMarketOptionsPtrOutput) Type() FleetEc2MarketTypePtrOutput { + return o.ApplyT(func(v *FleetServiceManagedEc2InstanceMarketOptions) *FleetEc2MarketType { + if v == nil { + return nil + } + return &v.Type + }).(FleetEc2MarketTypePtrOutput) +} + +type FleetVCpuCountRange struct { + Max *int `pulumi:"max"` + Min int `pulumi:"min"` +} + +// FleetVCpuCountRangeInput is an input type that accepts FleetVCpuCountRangeArgs and FleetVCpuCountRangeOutput values. +// You can construct a concrete instance of `FleetVCpuCountRangeInput` via: +// +// FleetVCpuCountRangeArgs{...} +type FleetVCpuCountRangeInput interface { + pulumi.Input + + ToFleetVCpuCountRangeOutput() FleetVCpuCountRangeOutput + ToFleetVCpuCountRangeOutputWithContext(context.Context) FleetVCpuCountRangeOutput +} + +type FleetVCpuCountRangeArgs struct { + Max pulumi.IntPtrInput `pulumi:"max"` + Min pulumi.IntInput `pulumi:"min"` +} + +func (FleetVCpuCountRangeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FleetVCpuCountRange)(nil)).Elem() +} + +func (i FleetVCpuCountRangeArgs) ToFleetVCpuCountRangeOutput() FleetVCpuCountRangeOutput { + return i.ToFleetVCpuCountRangeOutputWithContext(context.Background()) +} + +func (i FleetVCpuCountRangeArgs) ToFleetVCpuCountRangeOutputWithContext(ctx context.Context) FleetVCpuCountRangeOutput { + return pulumi.ToOutputWithContext(ctx, i).(FleetVCpuCountRangeOutput) +} + +type FleetVCpuCountRangeOutput struct{ *pulumi.OutputState } + +func (FleetVCpuCountRangeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FleetVCpuCountRange)(nil)).Elem() +} + +func (o FleetVCpuCountRangeOutput) ToFleetVCpuCountRangeOutput() FleetVCpuCountRangeOutput { + return o +} + +func (o FleetVCpuCountRangeOutput) ToFleetVCpuCountRangeOutputWithContext(ctx context.Context) FleetVCpuCountRangeOutput { + return o +} + +func (o FleetVCpuCountRangeOutput) Max() pulumi.IntPtrOutput { + return o.ApplyT(func(v FleetVCpuCountRange) *int { return v.Max }).(pulumi.IntPtrOutput) +} + +func (o FleetVCpuCountRangeOutput) Min() pulumi.IntOutput { + return o.ApplyT(func(v FleetVCpuCountRange) int { return v.Min }).(pulumi.IntOutput) +} + +type FleetVCpuCountRangePtrOutput struct{ *pulumi.OutputState } + +func (FleetVCpuCountRangePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FleetVCpuCountRange)(nil)).Elem() +} + +func (o FleetVCpuCountRangePtrOutput) ToFleetVCpuCountRangePtrOutput() FleetVCpuCountRangePtrOutput { + return o +} + +func (o FleetVCpuCountRangePtrOutput) ToFleetVCpuCountRangePtrOutputWithContext(ctx context.Context) FleetVCpuCountRangePtrOutput { + return o +} + +func (o FleetVCpuCountRangePtrOutput) Elem() FleetVCpuCountRangeOutput { + return o.ApplyT(func(v *FleetVCpuCountRange) FleetVCpuCountRange { + if v != nil { + return *v + } + var ret FleetVCpuCountRange + return ret + }).(FleetVCpuCountRangeOutput) +} + +func (o FleetVCpuCountRangePtrOutput) Max() pulumi.IntPtrOutput { + return o.ApplyT(func(v *FleetVCpuCountRange) *int { + if v == nil { + return nil + } + return v.Max + }).(pulumi.IntPtrOutput) +} + +func (o FleetVCpuCountRangePtrOutput) Min() pulumi.IntPtrOutput { + return o.ApplyT(func(v *FleetVCpuCountRange) *int { + if v == nil { + return nil + } + return &v.Min + }).(pulumi.IntPtrOutput) +} + +type QueueJobAttachmentSettings struct { + RootPrefix string `pulumi:"rootPrefix"` + S3BucketName string `pulumi:"s3BucketName"` +} + +// QueueJobAttachmentSettingsInput is an input type that accepts QueueJobAttachmentSettingsArgs and QueueJobAttachmentSettingsOutput values. +// You can construct a concrete instance of `QueueJobAttachmentSettingsInput` via: +// +// QueueJobAttachmentSettingsArgs{...} +type QueueJobAttachmentSettingsInput interface { + pulumi.Input + + ToQueueJobAttachmentSettingsOutput() QueueJobAttachmentSettingsOutput + ToQueueJobAttachmentSettingsOutputWithContext(context.Context) QueueJobAttachmentSettingsOutput +} + +type QueueJobAttachmentSettingsArgs struct { + RootPrefix pulumi.StringInput `pulumi:"rootPrefix"` + S3BucketName pulumi.StringInput `pulumi:"s3BucketName"` +} + +func (QueueJobAttachmentSettingsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*QueueJobAttachmentSettings)(nil)).Elem() +} + +func (i QueueJobAttachmentSettingsArgs) ToQueueJobAttachmentSettingsOutput() QueueJobAttachmentSettingsOutput { + return i.ToQueueJobAttachmentSettingsOutputWithContext(context.Background()) +} + +func (i QueueJobAttachmentSettingsArgs) ToQueueJobAttachmentSettingsOutputWithContext(ctx context.Context) QueueJobAttachmentSettingsOutput { + return pulumi.ToOutputWithContext(ctx, i).(QueueJobAttachmentSettingsOutput) +} + +func (i QueueJobAttachmentSettingsArgs) ToQueueJobAttachmentSettingsPtrOutput() QueueJobAttachmentSettingsPtrOutput { + return i.ToQueueJobAttachmentSettingsPtrOutputWithContext(context.Background()) +} + +func (i QueueJobAttachmentSettingsArgs) ToQueueJobAttachmentSettingsPtrOutputWithContext(ctx context.Context) QueueJobAttachmentSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(QueueJobAttachmentSettingsOutput).ToQueueJobAttachmentSettingsPtrOutputWithContext(ctx) +} + +// QueueJobAttachmentSettingsPtrInput is an input type that accepts QueueJobAttachmentSettingsArgs, QueueJobAttachmentSettingsPtr and QueueJobAttachmentSettingsPtrOutput values. +// You can construct a concrete instance of `QueueJobAttachmentSettingsPtrInput` via: +// +// QueueJobAttachmentSettingsArgs{...} +// +// or: +// +// nil +type QueueJobAttachmentSettingsPtrInput interface { + pulumi.Input + + ToQueueJobAttachmentSettingsPtrOutput() QueueJobAttachmentSettingsPtrOutput + ToQueueJobAttachmentSettingsPtrOutputWithContext(context.Context) QueueJobAttachmentSettingsPtrOutput +} + +type queueJobAttachmentSettingsPtrType QueueJobAttachmentSettingsArgs + +func QueueJobAttachmentSettingsPtr(v *QueueJobAttachmentSettingsArgs) QueueJobAttachmentSettingsPtrInput { + return (*queueJobAttachmentSettingsPtrType)(v) +} + +func (*queueJobAttachmentSettingsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**QueueJobAttachmentSettings)(nil)).Elem() +} + +func (i *queueJobAttachmentSettingsPtrType) ToQueueJobAttachmentSettingsPtrOutput() QueueJobAttachmentSettingsPtrOutput { + return i.ToQueueJobAttachmentSettingsPtrOutputWithContext(context.Background()) +} + +func (i *queueJobAttachmentSettingsPtrType) ToQueueJobAttachmentSettingsPtrOutputWithContext(ctx context.Context) QueueJobAttachmentSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(QueueJobAttachmentSettingsPtrOutput) +} + +type QueueJobAttachmentSettingsOutput struct{ *pulumi.OutputState } + +func (QueueJobAttachmentSettingsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*QueueJobAttachmentSettings)(nil)).Elem() +} + +func (o QueueJobAttachmentSettingsOutput) ToQueueJobAttachmentSettingsOutput() QueueJobAttachmentSettingsOutput { + return o +} + +func (o QueueJobAttachmentSettingsOutput) ToQueueJobAttachmentSettingsOutputWithContext(ctx context.Context) QueueJobAttachmentSettingsOutput { + return o +} + +func (o QueueJobAttachmentSettingsOutput) ToQueueJobAttachmentSettingsPtrOutput() QueueJobAttachmentSettingsPtrOutput { + return o.ToQueueJobAttachmentSettingsPtrOutputWithContext(context.Background()) +} + +func (o QueueJobAttachmentSettingsOutput) ToQueueJobAttachmentSettingsPtrOutputWithContext(ctx context.Context) QueueJobAttachmentSettingsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v QueueJobAttachmentSettings) *QueueJobAttachmentSettings { + return &v + }).(QueueJobAttachmentSettingsPtrOutput) +} + +func (o QueueJobAttachmentSettingsOutput) RootPrefix() pulumi.StringOutput { + return o.ApplyT(func(v QueueJobAttachmentSettings) string { return v.RootPrefix }).(pulumi.StringOutput) +} + +func (o QueueJobAttachmentSettingsOutput) S3BucketName() pulumi.StringOutput { + return o.ApplyT(func(v QueueJobAttachmentSettings) string { return v.S3BucketName }).(pulumi.StringOutput) +} + +type QueueJobAttachmentSettingsPtrOutput struct{ *pulumi.OutputState } + +func (QueueJobAttachmentSettingsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**QueueJobAttachmentSettings)(nil)).Elem() +} + +func (o QueueJobAttachmentSettingsPtrOutput) ToQueueJobAttachmentSettingsPtrOutput() QueueJobAttachmentSettingsPtrOutput { + return o +} + +func (o QueueJobAttachmentSettingsPtrOutput) ToQueueJobAttachmentSettingsPtrOutputWithContext(ctx context.Context) QueueJobAttachmentSettingsPtrOutput { + return o +} + +func (o QueueJobAttachmentSettingsPtrOutput) Elem() QueueJobAttachmentSettingsOutput { + return o.ApplyT(func(v *QueueJobAttachmentSettings) QueueJobAttachmentSettings { + if v != nil { + return *v + } + var ret QueueJobAttachmentSettings + return ret + }).(QueueJobAttachmentSettingsOutput) +} + +func (o QueueJobAttachmentSettingsPtrOutput) RootPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *QueueJobAttachmentSettings) *string { + if v == nil { + return nil + } + return &v.RootPrefix + }).(pulumi.StringPtrOutput) +} + +func (o QueueJobAttachmentSettingsPtrOutput) S3BucketName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *QueueJobAttachmentSettings) *string { + if v == nil { + return nil + } + return &v.S3BucketName + }).(pulumi.StringPtrOutput) +} + +type QueueJobRunAsUser struct { + Posix *QueuePosixUser `pulumi:"posix"` + RunAs QueueRunAs `pulumi:"runAs"` + Windows *QueueWindowsUser `pulumi:"windows"` +} + +// QueueJobRunAsUserInput is an input type that accepts QueueJobRunAsUserArgs and QueueJobRunAsUserOutput values. +// You can construct a concrete instance of `QueueJobRunAsUserInput` via: +// +// QueueJobRunAsUserArgs{...} +type QueueJobRunAsUserInput interface { + pulumi.Input + + ToQueueJobRunAsUserOutput() QueueJobRunAsUserOutput + ToQueueJobRunAsUserOutputWithContext(context.Context) QueueJobRunAsUserOutput +} + +type QueueJobRunAsUserArgs struct { + Posix QueuePosixUserPtrInput `pulumi:"posix"` + RunAs QueueRunAsInput `pulumi:"runAs"` + Windows QueueWindowsUserPtrInput `pulumi:"windows"` +} + +func (QueueJobRunAsUserArgs) ElementType() reflect.Type { + return reflect.TypeOf((*QueueJobRunAsUser)(nil)).Elem() +} + +func (i QueueJobRunAsUserArgs) ToQueueJobRunAsUserOutput() QueueJobRunAsUserOutput { + return i.ToQueueJobRunAsUserOutputWithContext(context.Background()) +} + +func (i QueueJobRunAsUserArgs) ToQueueJobRunAsUserOutputWithContext(ctx context.Context) QueueJobRunAsUserOutput { + return pulumi.ToOutputWithContext(ctx, i).(QueueJobRunAsUserOutput) +} + +func (i QueueJobRunAsUserArgs) ToQueueJobRunAsUserPtrOutput() QueueJobRunAsUserPtrOutput { + return i.ToQueueJobRunAsUserPtrOutputWithContext(context.Background()) +} + +func (i QueueJobRunAsUserArgs) ToQueueJobRunAsUserPtrOutputWithContext(ctx context.Context) QueueJobRunAsUserPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(QueueJobRunAsUserOutput).ToQueueJobRunAsUserPtrOutputWithContext(ctx) +} + +// QueueJobRunAsUserPtrInput is an input type that accepts QueueJobRunAsUserArgs, QueueJobRunAsUserPtr and QueueJobRunAsUserPtrOutput values. +// You can construct a concrete instance of `QueueJobRunAsUserPtrInput` via: +// +// QueueJobRunAsUserArgs{...} +// +// or: +// +// nil +type QueueJobRunAsUserPtrInput interface { + pulumi.Input + + ToQueueJobRunAsUserPtrOutput() QueueJobRunAsUserPtrOutput + ToQueueJobRunAsUserPtrOutputWithContext(context.Context) QueueJobRunAsUserPtrOutput +} + +type queueJobRunAsUserPtrType QueueJobRunAsUserArgs + +func QueueJobRunAsUserPtr(v *QueueJobRunAsUserArgs) QueueJobRunAsUserPtrInput { + return (*queueJobRunAsUserPtrType)(v) +} + +func (*queueJobRunAsUserPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**QueueJobRunAsUser)(nil)).Elem() +} + +func (i *queueJobRunAsUserPtrType) ToQueueJobRunAsUserPtrOutput() QueueJobRunAsUserPtrOutput { + return i.ToQueueJobRunAsUserPtrOutputWithContext(context.Background()) +} + +func (i *queueJobRunAsUserPtrType) ToQueueJobRunAsUserPtrOutputWithContext(ctx context.Context) QueueJobRunAsUserPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(QueueJobRunAsUserPtrOutput) +} + +type QueueJobRunAsUserOutput struct{ *pulumi.OutputState } + +func (QueueJobRunAsUserOutput) ElementType() reflect.Type { + return reflect.TypeOf((*QueueJobRunAsUser)(nil)).Elem() +} + +func (o QueueJobRunAsUserOutput) ToQueueJobRunAsUserOutput() QueueJobRunAsUserOutput { + return o +} + +func (o QueueJobRunAsUserOutput) ToQueueJobRunAsUserOutputWithContext(ctx context.Context) QueueJobRunAsUserOutput { + return o +} + +func (o QueueJobRunAsUserOutput) ToQueueJobRunAsUserPtrOutput() QueueJobRunAsUserPtrOutput { + return o.ToQueueJobRunAsUserPtrOutputWithContext(context.Background()) +} + +func (o QueueJobRunAsUserOutput) ToQueueJobRunAsUserPtrOutputWithContext(ctx context.Context) QueueJobRunAsUserPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v QueueJobRunAsUser) *QueueJobRunAsUser { + return &v + }).(QueueJobRunAsUserPtrOutput) +} + +func (o QueueJobRunAsUserOutput) Posix() QueuePosixUserPtrOutput { + return o.ApplyT(func(v QueueJobRunAsUser) *QueuePosixUser { return v.Posix }).(QueuePosixUserPtrOutput) +} + +func (o QueueJobRunAsUserOutput) RunAs() QueueRunAsOutput { + return o.ApplyT(func(v QueueJobRunAsUser) QueueRunAs { return v.RunAs }).(QueueRunAsOutput) +} + +func (o QueueJobRunAsUserOutput) Windows() QueueWindowsUserPtrOutput { + return o.ApplyT(func(v QueueJobRunAsUser) *QueueWindowsUser { return v.Windows }).(QueueWindowsUserPtrOutput) +} + +type QueueJobRunAsUserPtrOutput struct{ *pulumi.OutputState } + +func (QueueJobRunAsUserPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**QueueJobRunAsUser)(nil)).Elem() +} + +func (o QueueJobRunAsUserPtrOutput) ToQueueJobRunAsUserPtrOutput() QueueJobRunAsUserPtrOutput { + return o +} + +func (o QueueJobRunAsUserPtrOutput) ToQueueJobRunAsUserPtrOutputWithContext(ctx context.Context) QueueJobRunAsUserPtrOutput { + return o +} + +func (o QueueJobRunAsUserPtrOutput) Elem() QueueJobRunAsUserOutput { + return o.ApplyT(func(v *QueueJobRunAsUser) QueueJobRunAsUser { + if v != nil { + return *v + } + var ret QueueJobRunAsUser + return ret + }).(QueueJobRunAsUserOutput) +} + +func (o QueueJobRunAsUserPtrOutput) Posix() QueuePosixUserPtrOutput { + return o.ApplyT(func(v *QueueJobRunAsUser) *QueuePosixUser { + if v == nil { + return nil + } + return v.Posix + }).(QueuePosixUserPtrOutput) +} + +func (o QueueJobRunAsUserPtrOutput) RunAs() QueueRunAsPtrOutput { + return o.ApplyT(func(v *QueueJobRunAsUser) *QueueRunAs { + if v == nil { + return nil + } + return &v.RunAs + }).(QueueRunAsPtrOutput) +} + +func (o QueueJobRunAsUserPtrOutput) Windows() QueueWindowsUserPtrOutput { + return o.ApplyT(func(v *QueueJobRunAsUser) *QueueWindowsUser { + if v == nil { + return nil + } + return v.Windows + }).(QueueWindowsUserPtrOutput) +} + +type QueuePosixUser struct { + Group string `pulumi:"group"` + User string `pulumi:"user"` +} + +// QueuePosixUserInput is an input type that accepts QueuePosixUserArgs and QueuePosixUserOutput values. +// You can construct a concrete instance of `QueuePosixUserInput` via: +// +// QueuePosixUserArgs{...} +type QueuePosixUserInput interface { + pulumi.Input + + ToQueuePosixUserOutput() QueuePosixUserOutput + ToQueuePosixUserOutputWithContext(context.Context) QueuePosixUserOutput +} + +type QueuePosixUserArgs struct { + Group pulumi.StringInput `pulumi:"group"` + User pulumi.StringInput `pulumi:"user"` +} + +func (QueuePosixUserArgs) ElementType() reflect.Type { + return reflect.TypeOf((*QueuePosixUser)(nil)).Elem() +} + +func (i QueuePosixUserArgs) ToQueuePosixUserOutput() QueuePosixUserOutput { + return i.ToQueuePosixUserOutputWithContext(context.Background()) +} + +func (i QueuePosixUserArgs) ToQueuePosixUserOutputWithContext(ctx context.Context) QueuePosixUserOutput { + return pulumi.ToOutputWithContext(ctx, i).(QueuePosixUserOutput) +} + +func (i QueuePosixUserArgs) ToQueuePosixUserPtrOutput() QueuePosixUserPtrOutput { + return i.ToQueuePosixUserPtrOutputWithContext(context.Background()) +} + +func (i QueuePosixUserArgs) ToQueuePosixUserPtrOutputWithContext(ctx context.Context) QueuePosixUserPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(QueuePosixUserOutput).ToQueuePosixUserPtrOutputWithContext(ctx) +} + +// QueuePosixUserPtrInput is an input type that accepts QueuePosixUserArgs, QueuePosixUserPtr and QueuePosixUserPtrOutput values. +// You can construct a concrete instance of `QueuePosixUserPtrInput` via: +// +// QueuePosixUserArgs{...} +// +// or: +// +// nil +type QueuePosixUserPtrInput interface { + pulumi.Input + + ToQueuePosixUserPtrOutput() QueuePosixUserPtrOutput + ToQueuePosixUserPtrOutputWithContext(context.Context) QueuePosixUserPtrOutput +} + +type queuePosixUserPtrType QueuePosixUserArgs + +func QueuePosixUserPtr(v *QueuePosixUserArgs) QueuePosixUserPtrInput { + return (*queuePosixUserPtrType)(v) +} + +func (*queuePosixUserPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**QueuePosixUser)(nil)).Elem() +} + +func (i *queuePosixUserPtrType) ToQueuePosixUserPtrOutput() QueuePosixUserPtrOutput { + return i.ToQueuePosixUserPtrOutputWithContext(context.Background()) +} + +func (i *queuePosixUserPtrType) ToQueuePosixUserPtrOutputWithContext(ctx context.Context) QueuePosixUserPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(QueuePosixUserPtrOutput) +} + +type QueuePosixUserOutput struct{ *pulumi.OutputState } + +func (QueuePosixUserOutput) ElementType() reflect.Type { + return reflect.TypeOf((*QueuePosixUser)(nil)).Elem() +} + +func (o QueuePosixUserOutput) ToQueuePosixUserOutput() QueuePosixUserOutput { + return o +} + +func (o QueuePosixUserOutput) ToQueuePosixUserOutputWithContext(ctx context.Context) QueuePosixUserOutput { + return o +} + +func (o QueuePosixUserOutput) ToQueuePosixUserPtrOutput() QueuePosixUserPtrOutput { + return o.ToQueuePosixUserPtrOutputWithContext(context.Background()) +} + +func (o QueuePosixUserOutput) ToQueuePosixUserPtrOutputWithContext(ctx context.Context) QueuePosixUserPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v QueuePosixUser) *QueuePosixUser { + return &v + }).(QueuePosixUserPtrOutput) +} + +func (o QueuePosixUserOutput) Group() pulumi.StringOutput { + return o.ApplyT(func(v QueuePosixUser) string { return v.Group }).(pulumi.StringOutput) +} + +func (o QueuePosixUserOutput) User() pulumi.StringOutput { + return o.ApplyT(func(v QueuePosixUser) string { return v.User }).(pulumi.StringOutput) +} + +type QueuePosixUserPtrOutput struct{ *pulumi.OutputState } + +func (QueuePosixUserPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**QueuePosixUser)(nil)).Elem() +} + +func (o QueuePosixUserPtrOutput) ToQueuePosixUserPtrOutput() QueuePosixUserPtrOutput { + return o +} + +func (o QueuePosixUserPtrOutput) ToQueuePosixUserPtrOutputWithContext(ctx context.Context) QueuePosixUserPtrOutput { + return o +} + +func (o QueuePosixUserPtrOutput) Elem() QueuePosixUserOutput { + return o.ApplyT(func(v *QueuePosixUser) QueuePosixUser { + if v != nil { + return *v + } + var ret QueuePosixUser + return ret + }).(QueuePosixUserOutput) +} + +func (o QueuePosixUserPtrOutput) Group() pulumi.StringPtrOutput { + return o.ApplyT(func(v *QueuePosixUser) *string { + if v == nil { + return nil + } + return &v.Group + }).(pulumi.StringPtrOutput) +} + +func (o QueuePosixUserPtrOutput) User() pulumi.StringPtrOutput { + return o.ApplyT(func(v *QueuePosixUser) *string { + if v == nil { + return nil + } + return &v.User + }).(pulumi.StringPtrOutput) +} + +type QueueWindowsUser struct { + PasswordArn string `pulumi:"passwordArn"` + User string `pulumi:"user"` +} + +// QueueWindowsUserInput is an input type that accepts QueueWindowsUserArgs and QueueWindowsUserOutput values. +// You can construct a concrete instance of `QueueWindowsUserInput` via: +// +// QueueWindowsUserArgs{...} +type QueueWindowsUserInput interface { + pulumi.Input + + ToQueueWindowsUserOutput() QueueWindowsUserOutput + ToQueueWindowsUserOutputWithContext(context.Context) QueueWindowsUserOutput +} + +type QueueWindowsUserArgs struct { + PasswordArn pulumi.StringInput `pulumi:"passwordArn"` + User pulumi.StringInput `pulumi:"user"` +} + +func (QueueWindowsUserArgs) ElementType() reflect.Type { + return reflect.TypeOf((*QueueWindowsUser)(nil)).Elem() +} + +func (i QueueWindowsUserArgs) ToQueueWindowsUserOutput() QueueWindowsUserOutput { + return i.ToQueueWindowsUserOutputWithContext(context.Background()) +} + +func (i QueueWindowsUserArgs) ToQueueWindowsUserOutputWithContext(ctx context.Context) QueueWindowsUserOutput { + return pulumi.ToOutputWithContext(ctx, i).(QueueWindowsUserOutput) +} + +func (i QueueWindowsUserArgs) ToQueueWindowsUserPtrOutput() QueueWindowsUserPtrOutput { + return i.ToQueueWindowsUserPtrOutputWithContext(context.Background()) +} + +func (i QueueWindowsUserArgs) ToQueueWindowsUserPtrOutputWithContext(ctx context.Context) QueueWindowsUserPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(QueueWindowsUserOutput).ToQueueWindowsUserPtrOutputWithContext(ctx) +} + +// QueueWindowsUserPtrInput is an input type that accepts QueueWindowsUserArgs, QueueWindowsUserPtr and QueueWindowsUserPtrOutput values. +// You can construct a concrete instance of `QueueWindowsUserPtrInput` via: +// +// QueueWindowsUserArgs{...} +// +// or: +// +// nil +type QueueWindowsUserPtrInput interface { + pulumi.Input + + ToQueueWindowsUserPtrOutput() QueueWindowsUserPtrOutput + ToQueueWindowsUserPtrOutputWithContext(context.Context) QueueWindowsUserPtrOutput +} + +type queueWindowsUserPtrType QueueWindowsUserArgs + +func QueueWindowsUserPtr(v *QueueWindowsUserArgs) QueueWindowsUserPtrInput { + return (*queueWindowsUserPtrType)(v) +} + +func (*queueWindowsUserPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**QueueWindowsUser)(nil)).Elem() +} + +func (i *queueWindowsUserPtrType) ToQueueWindowsUserPtrOutput() QueueWindowsUserPtrOutput { + return i.ToQueueWindowsUserPtrOutputWithContext(context.Background()) +} + +func (i *queueWindowsUserPtrType) ToQueueWindowsUserPtrOutputWithContext(ctx context.Context) QueueWindowsUserPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(QueueWindowsUserPtrOutput) +} + +type QueueWindowsUserOutput struct{ *pulumi.OutputState } + +func (QueueWindowsUserOutput) ElementType() reflect.Type { + return reflect.TypeOf((*QueueWindowsUser)(nil)).Elem() +} + +func (o QueueWindowsUserOutput) ToQueueWindowsUserOutput() QueueWindowsUserOutput { + return o +} + +func (o QueueWindowsUserOutput) ToQueueWindowsUserOutputWithContext(ctx context.Context) QueueWindowsUserOutput { + return o +} + +func (o QueueWindowsUserOutput) ToQueueWindowsUserPtrOutput() QueueWindowsUserPtrOutput { + return o.ToQueueWindowsUserPtrOutputWithContext(context.Background()) +} + +func (o QueueWindowsUserOutput) ToQueueWindowsUserPtrOutputWithContext(ctx context.Context) QueueWindowsUserPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v QueueWindowsUser) *QueueWindowsUser { + return &v + }).(QueueWindowsUserPtrOutput) +} + +func (o QueueWindowsUserOutput) PasswordArn() pulumi.StringOutput { + return o.ApplyT(func(v QueueWindowsUser) string { return v.PasswordArn }).(pulumi.StringOutput) +} + +func (o QueueWindowsUserOutput) User() pulumi.StringOutput { + return o.ApplyT(func(v QueueWindowsUser) string { return v.User }).(pulumi.StringOutput) +} + +type QueueWindowsUserPtrOutput struct{ *pulumi.OutputState } + +func (QueueWindowsUserPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**QueueWindowsUser)(nil)).Elem() +} + +func (o QueueWindowsUserPtrOutput) ToQueueWindowsUserPtrOutput() QueueWindowsUserPtrOutput { + return o +} + +func (o QueueWindowsUserPtrOutput) ToQueueWindowsUserPtrOutputWithContext(ctx context.Context) QueueWindowsUserPtrOutput { + return o +} + +func (o QueueWindowsUserPtrOutput) Elem() QueueWindowsUserOutput { + return o.ApplyT(func(v *QueueWindowsUser) QueueWindowsUser { + if v != nil { + return *v + } + var ret QueueWindowsUser + return ret + }).(QueueWindowsUserOutput) +} + +func (o QueueWindowsUserPtrOutput) PasswordArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *QueueWindowsUser) *string { + if v == nil { + return nil + } + return &v.PasswordArn + }).(pulumi.StringPtrOutput) +} + +func (o QueueWindowsUserPtrOutput) User() pulumi.StringPtrOutput { + return o.ApplyT(func(v *QueueWindowsUser) *string { + if v == nil { + return nil + } + return &v.User + }).(pulumi.StringPtrOutput) +} + +type StorageProfileFileSystemLocation struct { + Name string `pulumi:"name"` + Path string `pulumi:"path"` + Type StorageProfileFileSystemLocationType `pulumi:"type"` +} + +// StorageProfileFileSystemLocationInput is an input type that accepts StorageProfileFileSystemLocationArgs and StorageProfileFileSystemLocationOutput values. +// You can construct a concrete instance of `StorageProfileFileSystemLocationInput` via: +// +// StorageProfileFileSystemLocationArgs{...} +type StorageProfileFileSystemLocationInput interface { + pulumi.Input + + ToStorageProfileFileSystemLocationOutput() StorageProfileFileSystemLocationOutput + ToStorageProfileFileSystemLocationOutputWithContext(context.Context) StorageProfileFileSystemLocationOutput +} + +type StorageProfileFileSystemLocationArgs struct { + Name pulumi.StringInput `pulumi:"name"` + Path pulumi.StringInput `pulumi:"path"` + Type StorageProfileFileSystemLocationTypeInput `pulumi:"type"` +} + +func (StorageProfileFileSystemLocationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StorageProfileFileSystemLocation)(nil)).Elem() +} + +func (i StorageProfileFileSystemLocationArgs) ToStorageProfileFileSystemLocationOutput() StorageProfileFileSystemLocationOutput { + return i.ToStorageProfileFileSystemLocationOutputWithContext(context.Background()) +} + +func (i StorageProfileFileSystemLocationArgs) ToStorageProfileFileSystemLocationOutputWithContext(ctx context.Context) StorageProfileFileSystemLocationOutput { + return pulumi.ToOutputWithContext(ctx, i).(StorageProfileFileSystemLocationOutput) +} + +// StorageProfileFileSystemLocationArrayInput is an input type that accepts StorageProfileFileSystemLocationArray and StorageProfileFileSystemLocationArrayOutput values. +// You can construct a concrete instance of `StorageProfileFileSystemLocationArrayInput` via: +// +// StorageProfileFileSystemLocationArray{ StorageProfileFileSystemLocationArgs{...} } +type StorageProfileFileSystemLocationArrayInput interface { + pulumi.Input + + ToStorageProfileFileSystemLocationArrayOutput() StorageProfileFileSystemLocationArrayOutput + ToStorageProfileFileSystemLocationArrayOutputWithContext(context.Context) StorageProfileFileSystemLocationArrayOutput +} + +type StorageProfileFileSystemLocationArray []StorageProfileFileSystemLocationInput + +func (StorageProfileFileSystemLocationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]StorageProfileFileSystemLocation)(nil)).Elem() +} + +func (i StorageProfileFileSystemLocationArray) ToStorageProfileFileSystemLocationArrayOutput() StorageProfileFileSystemLocationArrayOutput { + return i.ToStorageProfileFileSystemLocationArrayOutputWithContext(context.Background()) +} + +func (i StorageProfileFileSystemLocationArray) ToStorageProfileFileSystemLocationArrayOutputWithContext(ctx context.Context) StorageProfileFileSystemLocationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(StorageProfileFileSystemLocationArrayOutput) +} + +type StorageProfileFileSystemLocationOutput struct{ *pulumi.OutputState } + +func (StorageProfileFileSystemLocationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StorageProfileFileSystemLocation)(nil)).Elem() +} + +func (o StorageProfileFileSystemLocationOutput) ToStorageProfileFileSystemLocationOutput() StorageProfileFileSystemLocationOutput { + return o +} + +func (o StorageProfileFileSystemLocationOutput) ToStorageProfileFileSystemLocationOutputWithContext(ctx context.Context) StorageProfileFileSystemLocationOutput { + return o +} + +func (o StorageProfileFileSystemLocationOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v StorageProfileFileSystemLocation) string { return v.Name }).(pulumi.StringOutput) +} + +func (o StorageProfileFileSystemLocationOutput) Path() pulumi.StringOutput { + return o.ApplyT(func(v StorageProfileFileSystemLocation) string { return v.Path }).(pulumi.StringOutput) +} + +func (o StorageProfileFileSystemLocationOutput) Type() StorageProfileFileSystemLocationTypeOutput { + return o.ApplyT(func(v StorageProfileFileSystemLocation) StorageProfileFileSystemLocationType { return v.Type }).(StorageProfileFileSystemLocationTypeOutput) +} + +type StorageProfileFileSystemLocationArrayOutput struct{ *pulumi.OutputState } + +func (StorageProfileFileSystemLocationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]StorageProfileFileSystemLocation)(nil)).Elem() +} + +func (o StorageProfileFileSystemLocationArrayOutput) ToStorageProfileFileSystemLocationArrayOutput() StorageProfileFileSystemLocationArrayOutput { + return o +} + +func (o StorageProfileFileSystemLocationArrayOutput) ToStorageProfileFileSystemLocationArrayOutputWithContext(ctx context.Context) StorageProfileFileSystemLocationArrayOutput { + return o +} + +func (o StorageProfileFileSystemLocationArrayOutput) Index(i pulumi.IntInput) StorageProfileFileSystemLocationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) StorageProfileFileSystemLocation { + return vs[0].([]StorageProfileFileSystemLocation)[vs[1].(int)] + }).(StorageProfileFileSystemLocationOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*FleetAcceleratorCountRangeInput)(nil)).Elem(), FleetAcceleratorCountRangeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FleetAcceleratorCountRangePtrInput)(nil)).Elem(), FleetAcceleratorCountRangeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FleetAcceleratorTotalMemoryMiBRangeInput)(nil)).Elem(), FleetAcceleratorTotalMemoryMiBRangeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FleetAcceleratorTotalMemoryMiBRangePtrInput)(nil)).Elem(), FleetAcceleratorTotalMemoryMiBRangeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FleetAmountCapabilityInput)(nil)).Elem(), FleetAmountCapabilityArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FleetAmountCapabilityArrayInput)(nil)).Elem(), FleetAmountCapabilityArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*FleetAttributeCapabilityInput)(nil)).Elem(), FleetAttributeCapabilityArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FleetAttributeCapabilityArrayInput)(nil)).Elem(), FleetAttributeCapabilityArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*FleetConfiguration0PropertiesInput)(nil)).Elem(), FleetConfiguration0PropertiesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FleetConfiguration1PropertiesInput)(nil)).Elem(), FleetConfiguration1PropertiesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FleetCustomerManagedFleetConfigurationInput)(nil)).Elem(), FleetCustomerManagedFleetConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FleetCustomerManagedWorkerCapabilitiesInput)(nil)).Elem(), FleetCustomerManagedWorkerCapabilitiesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FleetEc2EbsVolumeInput)(nil)).Elem(), FleetEc2EbsVolumeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FleetEc2EbsVolumePtrInput)(nil)).Elem(), FleetEc2EbsVolumeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FleetMemoryMiBRangeInput)(nil)).Elem(), FleetMemoryMiBRangeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FleetServiceManagedEc2FleetConfigurationInput)(nil)).Elem(), FleetServiceManagedEc2FleetConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FleetServiceManagedEc2InstanceCapabilitiesInput)(nil)).Elem(), FleetServiceManagedEc2InstanceCapabilitiesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FleetServiceManagedEc2InstanceMarketOptionsInput)(nil)).Elem(), FleetServiceManagedEc2InstanceMarketOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FleetVCpuCountRangeInput)(nil)).Elem(), FleetVCpuCountRangeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*QueueJobAttachmentSettingsInput)(nil)).Elem(), QueueJobAttachmentSettingsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*QueueJobAttachmentSettingsPtrInput)(nil)).Elem(), QueueJobAttachmentSettingsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*QueueJobRunAsUserInput)(nil)).Elem(), QueueJobRunAsUserArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*QueueJobRunAsUserPtrInput)(nil)).Elem(), QueueJobRunAsUserArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*QueuePosixUserInput)(nil)).Elem(), QueuePosixUserArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*QueuePosixUserPtrInput)(nil)).Elem(), QueuePosixUserArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*QueueWindowsUserInput)(nil)).Elem(), QueueWindowsUserArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*QueueWindowsUserPtrInput)(nil)).Elem(), QueueWindowsUserArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StorageProfileFileSystemLocationInput)(nil)).Elem(), StorageProfileFileSystemLocationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StorageProfileFileSystemLocationArrayInput)(nil)).Elem(), StorageProfileFileSystemLocationArray{}) + pulumi.RegisterOutputType(FleetAcceleratorCountRangeOutput{}) + pulumi.RegisterOutputType(FleetAcceleratorCountRangePtrOutput{}) + pulumi.RegisterOutputType(FleetAcceleratorTotalMemoryMiBRangeOutput{}) + pulumi.RegisterOutputType(FleetAcceleratorTotalMemoryMiBRangePtrOutput{}) + pulumi.RegisterOutputType(FleetAmountCapabilityOutput{}) + pulumi.RegisterOutputType(FleetAmountCapabilityArrayOutput{}) + pulumi.RegisterOutputType(FleetAttributeCapabilityOutput{}) + pulumi.RegisterOutputType(FleetAttributeCapabilityArrayOutput{}) + pulumi.RegisterOutputType(FleetCapabilitiesOutput{}) + pulumi.RegisterOutputType(FleetCapabilitiesPtrOutput{}) + pulumi.RegisterOutputType(FleetConfiguration0PropertiesOutput{}) + pulumi.RegisterOutputType(FleetConfiguration0PropertiesPtrOutput{}) + pulumi.RegisterOutputType(FleetConfiguration1PropertiesOutput{}) + pulumi.RegisterOutputType(FleetConfiguration1PropertiesPtrOutput{}) + pulumi.RegisterOutputType(FleetCustomerManagedFleetConfigurationOutput{}) + pulumi.RegisterOutputType(FleetCustomerManagedFleetConfigurationPtrOutput{}) + pulumi.RegisterOutputType(FleetCustomerManagedWorkerCapabilitiesOutput{}) + pulumi.RegisterOutputType(FleetCustomerManagedWorkerCapabilitiesPtrOutput{}) + pulumi.RegisterOutputType(FleetEc2EbsVolumeOutput{}) + pulumi.RegisterOutputType(FleetEc2EbsVolumePtrOutput{}) + pulumi.RegisterOutputType(FleetMemoryMiBRangeOutput{}) + pulumi.RegisterOutputType(FleetMemoryMiBRangePtrOutput{}) + pulumi.RegisterOutputType(FleetServiceManagedEc2FleetConfigurationOutput{}) + pulumi.RegisterOutputType(FleetServiceManagedEc2FleetConfigurationPtrOutput{}) + pulumi.RegisterOutputType(FleetServiceManagedEc2InstanceCapabilitiesOutput{}) + pulumi.RegisterOutputType(FleetServiceManagedEc2InstanceCapabilitiesPtrOutput{}) + pulumi.RegisterOutputType(FleetServiceManagedEc2InstanceMarketOptionsOutput{}) + pulumi.RegisterOutputType(FleetServiceManagedEc2InstanceMarketOptionsPtrOutput{}) + pulumi.RegisterOutputType(FleetVCpuCountRangeOutput{}) + pulumi.RegisterOutputType(FleetVCpuCountRangePtrOutput{}) + pulumi.RegisterOutputType(QueueJobAttachmentSettingsOutput{}) + pulumi.RegisterOutputType(QueueJobAttachmentSettingsPtrOutput{}) + pulumi.RegisterOutputType(QueueJobRunAsUserOutput{}) + pulumi.RegisterOutputType(QueueJobRunAsUserPtrOutput{}) + pulumi.RegisterOutputType(QueuePosixUserOutput{}) + pulumi.RegisterOutputType(QueuePosixUserPtrOutput{}) + pulumi.RegisterOutputType(QueueWindowsUserOutput{}) + pulumi.RegisterOutputType(QueueWindowsUserPtrOutput{}) + pulumi.RegisterOutputType(StorageProfileFileSystemLocationOutput{}) + pulumi.RegisterOutputType(StorageProfileFileSystemLocationArrayOutput{}) +} diff --git a/sdk/go/aws/deadline/queue.go b/sdk/go/aws/deadline/queue.go new file mode 100644 index 0000000000..af3f4bc0cf --- /dev/null +++ b/sdk/go/aws/deadline/queue.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 deadline + +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::Deadline::Queue Resource Type +type Queue struct { + pulumi.CustomResourceState + + AllowedStorageProfileIds pulumi.StringArrayOutput `pulumi:"allowedStorageProfileIds"` + Arn pulumi.StringOutput `pulumi:"arn"` + DefaultBudgetAction QueueDefaultQueueBudgetActionPtrOutput `pulumi:"defaultBudgetAction"` + Description pulumi.StringPtrOutput `pulumi:"description"` + DisplayName pulumi.StringOutput `pulumi:"displayName"` + FarmId pulumi.StringPtrOutput `pulumi:"farmId"` + JobAttachmentSettings QueueJobAttachmentSettingsPtrOutput `pulumi:"jobAttachmentSettings"` + JobRunAsUser QueueJobRunAsUserPtrOutput `pulumi:"jobRunAsUser"` + QueueId pulumi.StringOutput `pulumi:"queueId"` + RequiredFileSystemLocationNames pulumi.StringArrayOutput `pulumi:"requiredFileSystemLocationNames"` + RoleArn pulumi.StringPtrOutput `pulumi:"roleArn"` +} + +// NewQueue registers a new resource with the given unique name, arguments, and options. +func NewQueue(ctx *pulumi.Context, + name string, args *QueueArgs, opts ...pulumi.ResourceOption) (*Queue, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.DisplayName == nil { + return nil, errors.New("invalid value for required argument 'DisplayName'") + } + replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "farmId", + }) + opts = append(opts, replaceOnChanges) + opts = internal.PkgResourceDefaultOpts(opts) + var resource Queue + err := ctx.RegisterResource("aws-native:deadline:Queue", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetQueue gets an existing Queue 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 GetQueue(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *QueueState, opts ...pulumi.ResourceOption) (*Queue, error) { + var resource Queue + err := ctx.ReadResource("aws-native:deadline:Queue", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Queue resources. +type queueState struct { +} + +type QueueState struct { +} + +func (QueueState) ElementType() reflect.Type { + return reflect.TypeOf((*queueState)(nil)).Elem() +} + +type queueArgs struct { + AllowedStorageProfileIds []string `pulumi:"allowedStorageProfileIds"` + DefaultBudgetAction *QueueDefaultQueueBudgetAction `pulumi:"defaultBudgetAction"` + Description *string `pulumi:"description"` + DisplayName string `pulumi:"displayName"` + FarmId *string `pulumi:"farmId"` + JobAttachmentSettings *QueueJobAttachmentSettings `pulumi:"jobAttachmentSettings"` + JobRunAsUser *QueueJobRunAsUser `pulumi:"jobRunAsUser"` + RequiredFileSystemLocationNames []string `pulumi:"requiredFileSystemLocationNames"` + RoleArn *string `pulumi:"roleArn"` +} + +// The set of arguments for constructing a Queue resource. +type QueueArgs struct { + AllowedStorageProfileIds pulumi.StringArrayInput + DefaultBudgetAction QueueDefaultQueueBudgetActionPtrInput + Description pulumi.StringPtrInput + DisplayName pulumi.StringInput + FarmId pulumi.StringPtrInput + JobAttachmentSettings QueueJobAttachmentSettingsPtrInput + JobRunAsUser QueueJobRunAsUserPtrInput + RequiredFileSystemLocationNames pulumi.StringArrayInput + RoleArn pulumi.StringPtrInput +} + +func (QueueArgs) ElementType() reflect.Type { + return reflect.TypeOf((*queueArgs)(nil)).Elem() +} + +type QueueInput interface { + pulumi.Input + + ToQueueOutput() QueueOutput + ToQueueOutputWithContext(ctx context.Context) QueueOutput +} + +func (*Queue) ElementType() reflect.Type { + return reflect.TypeOf((**Queue)(nil)).Elem() +} + +func (i *Queue) ToQueueOutput() QueueOutput { + return i.ToQueueOutputWithContext(context.Background()) +} + +func (i *Queue) ToQueueOutputWithContext(ctx context.Context) QueueOutput { + return pulumi.ToOutputWithContext(ctx, i).(QueueOutput) +} + +type QueueOutput struct{ *pulumi.OutputState } + +func (QueueOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Queue)(nil)).Elem() +} + +func (o QueueOutput) ToQueueOutput() QueueOutput { + return o +} + +func (o QueueOutput) ToQueueOutputWithContext(ctx context.Context) QueueOutput { + return o +} + +func (o QueueOutput) AllowedStorageProfileIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v *Queue) pulumi.StringArrayOutput { return v.AllowedStorageProfileIds }).(pulumi.StringArrayOutput) +} + +func (o QueueOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *Queue) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +func (o QueueOutput) DefaultBudgetAction() QueueDefaultQueueBudgetActionPtrOutput { + return o.ApplyT(func(v *Queue) QueueDefaultQueueBudgetActionPtrOutput { return v.DefaultBudgetAction }).(QueueDefaultQueueBudgetActionPtrOutput) +} + +func (o QueueOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Queue) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +func (o QueueOutput) DisplayName() pulumi.StringOutput { + return o.ApplyT(func(v *Queue) pulumi.StringOutput { return v.DisplayName }).(pulumi.StringOutput) +} + +func (o QueueOutput) FarmId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Queue) pulumi.StringPtrOutput { return v.FarmId }).(pulumi.StringPtrOutput) +} + +func (o QueueOutput) JobAttachmentSettings() QueueJobAttachmentSettingsPtrOutput { + return o.ApplyT(func(v *Queue) QueueJobAttachmentSettingsPtrOutput { return v.JobAttachmentSettings }).(QueueJobAttachmentSettingsPtrOutput) +} + +func (o QueueOutput) JobRunAsUser() QueueJobRunAsUserPtrOutput { + return o.ApplyT(func(v *Queue) QueueJobRunAsUserPtrOutput { return v.JobRunAsUser }).(QueueJobRunAsUserPtrOutput) +} + +func (o QueueOutput) QueueId() pulumi.StringOutput { + return o.ApplyT(func(v *Queue) pulumi.StringOutput { return v.QueueId }).(pulumi.StringOutput) +} + +func (o QueueOutput) RequiredFileSystemLocationNames() pulumi.StringArrayOutput { + return o.ApplyT(func(v *Queue) pulumi.StringArrayOutput { return v.RequiredFileSystemLocationNames }).(pulumi.StringArrayOutput) +} + +func (o QueueOutput) RoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Queue) pulumi.StringPtrOutput { return v.RoleArn }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*QueueInput)(nil)).Elem(), &Queue{}) + pulumi.RegisterOutputType(QueueOutput{}) +} diff --git a/sdk/go/aws/deadline/queueEnvironment.go b/sdk/go/aws/deadline/queueEnvironment.go new file mode 100644 index 0000000000..b9a12d28f5 --- /dev/null +++ b/sdk/go/aws/deadline/queueEnvironment.go @@ -0,0 +1,172 @@ +// 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 deadline + +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::Deadline::QueueEnvironment Resource Type +type QueueEnvironment struct { + pulumi.CustomResourceState + + FarmId pulumi.StringOutput `pulumi:"farmId"` + Name pulumi.StringOutput `pulumi:"name"` + Priority pulumi.IntOutput `pulumi:"priority"` + QueueEnvironmentId pulumi.StringOutput `pulumi:"queueEnvironmentId"` + QueueId pulumi.StringOutput `pulumi:"queueId"` + Template pulumi.StringOutput `pulumi:"template"` + TemplateType QueueEnvironmentEnvironmentTemplateTypeOutput `pulumi:"templateType"` +} + +// NewQueueEnvironment registers a new resource with the given unique name, arguments, and options. +func NewQueueEnvironment(ctx *pulumi.Context, + name string, args *QueueEnvironmentArgs, opts ...pulumi.ResourceOption) (*QueueEnvironment, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.FarmId == nil { + return nil, errors.New("invalid value for required argument 'FarmId'") + } + if args.Priority == nil { + return nil, errors.New("invalid value for required argument 'Priority'") + } + if args.QueueId == nil { + return nil, errors.New("invalid value for required argument 'QueueId'") + } + if args.Template == nil { + return nil, errors.New("invalid value for required argument 'Template'") + } + if args.TemplateType == nil { + return nil, errors.New("invalid value for required argument 'TemplateType'") + } + replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "farmId", + "queueId", + }) + opts = append(opts, replaceOnChanges) + opts = internal.PkgResourceDefaultOpts(opts) + var resource QueueEnvironment + err := ctx.RegisterResource("aws-native:deadline:QueueEnvironment", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetQueueEnvironment gets an existing QueueEnvironment 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 GetQueueEnvironment(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *QueueEnvironmentState, opts ...pulumi.ResourceOption) (*QueueEnvironment, error) { + var resource QueueEnvironment + err := ctx.ReadResource("aws-native:deadline:QueueEnvironment", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering QueueEnvironment resources. +type queueEnvironmentState struct { +} + +type QueueEnvironmentState struct { +} + +func (QueueEnvironmentState) ElementType() reflect.Type { + return reflect.TypeOf((*queueEnvironmentState)(nil)).Elem() +} + +type queueEnvironmentArgs struct { + FarmId string `pulumi:"farmId"` + Priority int `pulumi:"priority"` + QueueId string `pulumi:"queueId"` + Template string `pulumi:"template"` + TemplateType QueueEnvironmentEnvironmentTemplateType `pulumi:"templateType"` +} + +// The set of arguments for constructing a QueueEnvironment resource. +type QueueEnvironmentArgs struct { + FarmId pulumi.StringInput + Priority pulumi.IntInput + QueueId pulumi.StringInput + Template pulumi.StringInput + TemplateType QueueEnvironmentEnvironmentTemplateTypeInput +} + +func (QueueEnvironmentArgs) ElementType() reflect.Type { + return reflect.TypeOf((*queueEnvironmentArgs)(nil)).Elem() +} + +type QueueEnvironmentInput interface { + pulumi.Input + + ToQueueEnvironmentOutput() QueueEnvironmentOutput + ToQueueEnvironmentOutputWithContext(ctx context.Context) QueueEnvironmentOutput +} + +func (*QueueEnvironment) ElementType() reflect.Type { + return reflect.TypeOf((**QueueEnvironment)(nil)).Elem() +} + +func (i *QueueEnvironment) ToQueueEnvironmentOutput() QueueEnvironmentOutput { + return i.ToQueueEnvironmentOutputWithContext(context.Background()) +} + +func (i *QueueEnvironment) ToQueueEnvironmentOutputWithContext(ctx context.Context) QueueEnvironmentOutput { + return pulumi.ToOutputWithContext(ctx, i).(QueueEnvironmentOutput) +} + +type QueueEnvironmentOutput struct{ *pulumi.OutputState } + +func (QueueEnvironmentOutput) ElementType() reflect.Type { + return reflect.TypeOf((**QueueEnvironment)(nil)).Elem() +} + +func (o QueueEnvironmentOutput) ToQueueEnvironmentOutput() QueueEnvironmentOutput { + return o +} + +func (o QueueEnvironmentOutput) ToQueueEnvironmentOutputWithContext(ctx context.Context) QueueEnvironmentOutput { + return o +} + +func (o QueueEnvironmentOutput) FarmId() pulumi.StringOutput { + return o.ApplyT(func(v *QueueEnvironment) pulumi.StringOutput { return v.FarmId }).(pulumi.StringOutput) +} + +func (o QueueEnvironmentOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *QueueEnvironment) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +func (o QueueEnvironmentOutput) Priority() pulumi.IntOutput { + return o.ApplyT(func(v *QueueEnvironment) pulumi.IntOutput { return v.Priority }).(pulumi.IntOutput) +} + +func (o QueueEnvironmentOutput) QueueEnvironmentId() pulumi.StringOutput { + return o.ApplyT(func(v *QueueEnvironment) pulumi.StringOutput { return v.QueueEnvironmentId }).(pulumi.StringOutput) +} + +func (o QueueEnvironmentOutput) QueueId() pulumi.StringOutput { + return o.ApplyT(func(v *QueueEnvironment) pulumi.StringOutput { return v.QueueId }).(pulumi.StringOutput) +} + +func (o QueueEnvironmentOutput) Template() pulumi.StringOutput { + return o.ApplyT(func(v *QueueEnvironment) pulumi.StringOutput { return v.Template }).(pulumi.StringOutput) +} + +func (o QueueEnvironmentOutput) TemplateType() QueueEnvironmentEnvironmentTemplateTypeOutput { + return o.ApplyT(func(v *QueueEnvironment) QueueEnvironmentEnvironmentTemplateTypeOutput { return v.TemplateType }).(QueueEnvironmentEnvironmentTemplateTypeOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*QueueEnvironmentInput)(nil)).Elem(), &QueueEnvironment{}) + pulumi.RegisterOutputType(QueueEnvironmentOutput{}) +} diff --git a/sdk/go/aws/deadline/queueFleetAssociation.go b/sdk/go/aws/deadline/queueFleetAssociation.go new file mode 100644 index 0000000000..d01f9b9d1f --- /dev/null +++ b/sdk/go/aws/deadline/queueFleetAssociation.go @@ -0,0 +1,143 @@ +// 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 deadline + +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::Deadline::QueueFleetAssociation Resource Type +type QueueFleetAssociation struct { + pulumi.CustomResourceState + + FarmId pulumi.StringOutput `pulumi:"farmId"` + FleetId pulumi.StringOutput `pulumi:"fleetId"` + QueueId pulumi.StringOutput `pulumi:"queueId"` +} + +// NewQueueFleetAssociation registers a new resource with the given unique name, arguments, and options. +func NewQueueFleetAssociation(ctx *pulumi.Context, + name string, args *QueueFleetAssociationArgs, opts ...pulumi.ResourceOption) (*QueueFleetAssociation, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.FarmId == nil { + return nil, errors.New("invalid value for required argument 'FarmId'") + } + if args.FleetId == nil { + return nil, errors.New("invalid value for required argument 'FleetId'") + } + if args.QueueId == nil { + return nil, errors.New("invalid value for required argument 'QueueId'") + } + replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "farmId", + "fleetId", + "queueId", + }) + opts = append(opts, replaceOnChanges) + opts = internal.PkgResourceDefaultOpts(opts) + var resource QueueFleetAssociation + err := ctx.RegisterResource("aws-native:deadline:QueueFleetAssociation", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetQueueFleetAssociation gets an existing QueueFleetAssociation 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 GetQueueFleetAssociation(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *QueueFleetAssociationState, opts ...pulumi.ResourceOption) (*QueueFleetAssociation, error) { + var resource QueueFleetAssociation + err := ctx.ReadResource("aws-native:deadline:QueueFleetAssociation", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering QueueFleetAssociation resources. +type queueFleetAssociationState struct { +} + +type QueueFleetAssociationState struct { +} + +func (QueueFleetAssociationState) ElementType() reflect.Type { + return reflect.TypeOf((*queueFleetAssociationState)(nil)).Elem() +} + +type queueFleetAssociationArgs struct { + FarmId string `pulumi:"farmId"` + FleetId string `pulumi:"fleetId"` + QueueId string `pulumi:"queueId"` +} + +// The set of arguments for constructing a QueueFleetAssociation resource. +type QueueFleetAssociationArgs struct { + FarmId pulumi.StringInput + FleetId pulumi.StringInput + QueueId pulumi.StringInput +} + +func (QueueFleetAssociationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*queueFleetAssociationArgs)(nil)).Elem() +} + +type QueueFleetAssociationInput interface { + pulumi.Input + + ToQueueFleetAssociationOutput() QueueFleetAssociationOutput + ToQueueFleetAssociationOutputWithContext(ctx context.Context) QueueFleetAssociationOutput +} + +func (*QueueFleetAssociation) ElementType() reflect.Type { + return reflect.TypeOf((**QueueFleetAssociation)(nil)).Elem() +} + +func (i *QueueFleetAssociation) ToQueueFleetAssociationOutput() QueueFleetAssociationOutput { + return i.ToQueueFleetAssociationOutputWithContext(context.Background()) +} + +func (i *QueueFleetAssociation) ToQueueFleetAssociationOutputWithContext(ctx context.Context) QueueFleetAssociationOutput { + return pulumi.ToOutputWithContext(ctx, i).(QueueFleetAssociationOutput) +} + +type QueueFleetAssociationOutput struct{ *pulumi.OutputState } + +func (QueueFleetAssociationOutput) ElementType() reflect.Type { + return reflect.TypeOf((**QueueFleetAssociation)(nil)).Elem() +} + +func (o QueueFleetAssociationOutput) ToQueueFleetAssociationOutput() QueueFleetAssociationOutput { + return o +} + +func (o QueueFleetAssociationOutput) ToQueueFleetAssociationOutputWithContext(ctx context.Context) QueueFleetAssociationOutput { + return o +} + +func (o QueueFleetAssociationOutput) FarmId() pulumi.StringOutput { + return o.ApplyT(func(v *QueueFleetAssociation) pulumi.StringOutput { return v.FarmId }).(pulumi.StringOutput) +} + +func (o QueueFleetAssociationOutput) FleetId() pulumi.StringOutput { + return o.ApplyT(func(v *QueueFleetAssociation) pulumi.StringOutput { return v.FleetId }).(pulumi.StringOutput) +} + +func (o QueueFleetAssociationOutput) QueueId() pulumi.StringOutput { + return o.ApplyT(func(v *QueueFleetAssociation) pulumi.StringOutput { return v.QueueId }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*QueueFleetAssociationInput)(nil)).Elem(), &QueueFleetAssociation{}) + pulumi.RegisterOutputType(QueueFleetAssociationOutput{}) +} diff --git a/sdk/go/aws/deadline/storageProfile.go b/sdk/go/aws/deadline/storageProfile.go new file mode 100644 index 0000000000..1566053dff --- /dev/null +++ b/sdk/go/aws/deadline/storageProfile.go @@ -0,0 +1,150 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package deadline + +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::Deadline::StorageProfile Resource Type +type StorageProfile struct { + pulumi.CustomResourceState + + DisplayName pulumi.StringOutput `pulumi:"displayName"` + FarmId pulumi.StringPtrOutput `pulumi:"farmId"` + FileSystemLocations StorageProfileFileSystemLocationArrayOutput `pulumi:"fileSystemLocations"` + OsFamily StorageProfileOperatingSystemFamilyOutput `pulumi:"osFamily"` + StorageProfileId pulumi.StringOutput `pulumi:"storageProfileId"` +} + +// NewStorageProfile registers a new resource with the given unique name, arguments, and options. +func NewStorageProfile(ctx *pulumi.Context, + name string, args *StorageProfileArgs, opts ...pulumi.ResourceOption) (*StorageProfile, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.DisplayName == nil { + return nil, errors.New("invalid value for required argument 'DisplayName'") + } + if args.OsFamily == nil { + return nil, errors.New("invalid value for required argument 'OsFamily'") + } + replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "farmId", + }) + opts = append(opts, replaceOnChanges) + opts = internal.PkgResourceDefaultOpts(opts) + var resource StorageProfile + err := ctx.RegisterResource("aws-native:deadline:StorageProfile", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetStorageProfile gets an existing StorageProfile 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 GetStorageProfile(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *StorageProfileState, opts ...pulumi.ResourceOption) (*StorageProfile, error) { + var resource StorageProfile + err := ctx.ReadResource("aws-native:deadline:StorageProfile", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering StorageProfile resources. +type storageProfileState struct { +} + +type StorageProfileState struct { +} + +func (StorageProfileState) ElementType() reflect.Type { + return reflect.TypeOf((*storageProfileState)(nil)).Elem() +} + +type storageProfileArgs struct { + DisplayName string `pulumi:"displayName"` + FarmId *string `pulumi:"farmId"` + FileSystemLocations []StorageProfileFileSystemLocation `pulumi:"fileSystemLocations"` + OsFamily StorageProfileOperatingSystemFamily `pulumi:"osFamily"` +} + +// The set of arguments for constructing a StorageProfile resource. +type StorageProfileArgs struct { + DisplayName pulumi.StringInput + FarmId pulumi.StringPtrInput + FileSystemLocations StorageProfileFileSystemLocationArrayInput + OsFamily StorageProfileOperatingSystemFamilyInput +} + +func (StorageProfileArgs) ElementType() reflect.Type { + return reflect.TypeOf((*storageProfileArgs)(nil)).Elem() +} + +type StorageProfileInput interface { + pulumi.Input + + ToStorageProfileOutput() StorageProfileOutput + ToStorageProfileOutputWithContext(ctx context.Context) StorageProfileOutput +} + +func (*StorageProfile) ElementType() reflect.Type { + return reflect.TypeOf((**StorageProfile)(nil)).Elem() +} + +func (i *StorageProfile) ToStorageProfileOutput() StorageProfileOutput { + return i.ToStorageProfileOutputWithContext(context.Background()) +} + +func (i *StorageProfile) ToStorageProfileOutputWithContext(ctx context.Context) StorageProfileOutput { + return pulumi.ToOutputWithContext(ctx, i).(StorageProfileOutput) +} + +type StorageProfileOutput struct{ *pulumi.OutputState } + +func (StorageProfileOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StorageProfile)(nil)).Elem() +} + +func (o StorageProfileOutput) ToStorageProfileOutput() StorageProfileOutput { + return o +} + +func (o StorageProfileOutput) ToStorageProfileOutputWithContext(ctx context.Context) StorageProfileOutput { + return o +} + +func (o StorageProfileOutput) DisplayName() pulumi.StringOutput { + return o.ApplyT(func(v *StorageProfile) pulumi.StringOutput { return v.DisplayName }).(pulumi.StringOutput) +} + +func (o StorageProfileOutput) FarmId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StorageProfile) pulumi.StringPtrOutput { return v.FarmId }).(pulumi.StringPtrOutput) +} + +func (o StorageProfileOutput) FileSystemLocations() StorageProfileFileSystemLocationArrayOutput { + return o.ApplyT(func(v *StorageProfile) StorageProfileFileSystemLocationArrayOutput { return v.FileSystemLocations }).(StorageProfileFileSystemLocationArrayOutput) +} + +func (o StorageProfileOutput) OsFamily() StorageProfileOperatingSystemFamilyOutput { + return o.ApplyT(func(v *StorageProfile) StorageProfileOperatingSystemFamilyOutput { return v.OsFamily }).(StorageProfileOperatingSystemFamilyOutput) +} + +func (o StorageProfileOutput) StorageProfileId() pulumi.StringOutput { + return o.ApplyT(func(v *StorageProfile) pulumi.StringOutput { return v.StorageProfileId }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*StorageProfileInput)(nil)).Elem(), &StorageProfile{}) + pulumi.RegisterOutputType(StorageProfileOutput{}) +} 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..2910150d0d 100644 --- a/sdk/go/aws/dynamodb/getTable.go +++ b/sdk/go/aws/dynamodb/getTable.go @@ -15,7 +15,7 @@ import ( // The “AWS::DynamoDB::Table“ resource creates a DDB table. For more information, see [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) in the *API Reference*. // // You should be aware of the following behaviors when working with DDB tables: -// + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). +// + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). // // Our guidance is to use the latest schema documented here for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. func LookupTable(ctx *pulumi.Context, args *LookupTableArgs, opts ...pulumi.InvokeOption) (*LookupTableResult, error) { @@ -69,6 +69,9 @@ 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"` + // A resource-based policy document that contains permissions to add to the specified table. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + // When you attach a resource-based policy while creating a table, the policy creation is *strongly consistent*. For information about the considerations that you should keep in mind while attaching a resource-based policy, see [Resource-based policy considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html). + ResourcePolicy *TableResourcePolicy `pulumi:"resourcePolicy"` // Specifies the settings to enable server-side encryption. SseSpecification *TableSseSpecification `pulumi:"sseSpecification"` StreamArn *string `pulumi:"streamArn"` @@ -196,6 +199,13 @@ func (o LookupTableResultOutput) ProvisionedThroughput() TableProvisionedThrough return o.ApplyT(func(v LookupTableResult) *TableProvisionedThroughput { return v.ProvisionedThroughput }).(TableProvisionedThroughputPtrOutput) } +// A resource-based policy document that contains permissions to add to the specified table. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). +// +// When you attach a resource-based policy while creating a table, the policy creation is *strongly consistent*. For information about the considerations that you should keep in mind while attaching a resource-based policy, see [Resource-based policy considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html). +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..ea5b759f80 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,176 @@ func (o TableProvisionedThroughputPtrOutput) WriteCapacityUnits() pulumi.IntPtrO }).(pulumi.IntPtrOutput) } +// Creates or updates a resource-based policy document that contains the permissions for DDB resources, such as a table, its indexes, and stream. Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource. +// +// In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). +// While defining resource-based policies in your CFNshort templates, the following considerations apply: +// + The maximum size supported for a resource-based policy document in JSON format is 20 KB. DDB counts whitespaces when calculating the size of a policy against this limit. +// + Resource-based policies don't support [drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html#). If you update a policy outside of the CFNshort stack template, you'll need to update the CFNshort stack with the changes. +// + Resource-based policies don't support out-of-band changes. If you add, update, or delete a policy outside of the CFNshort template, the change won't be overwritten if there are no changes to the policy within the template. +// For example, say that your template contains a resource-based policy, which you later update outside of the template. If you don't make any changes to the policy in the template, the updated policy in DDB won’t be synced with the policy in the template. +// Conversely, say that your template doesn’t contain a resource-based policy, but you add a policy outside of the template. This policy won’t be removed from DDB as long as you don’t add it to the template. When you add a policy to the template and update the stack, the existing policy in DDB will be updated to match the one defined in the template. +// +// For a full list of all considerations, see [Resource-based policy considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html). +type TableResourcePolicy struct { + // A resource-based policy document that contains permissions to add to the specified DDB table, index, or both. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + 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 +} + +// Creates or updates a resource-based policy document that contains the permissions for DDB resources, such as a table, its indexes, and stream. Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource. +// +// In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). +// While defining resource-based policies in your CFNshort templates, the following considerations apply: +// + The maximum size supported for a resource-based policy document in JSON format is 20 KB. DDB counts whitespaces when calculating the size of a policy against this limit. +// + Resource-based policies don't support [drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html#). If you update a policy outside of the CFNshort stack template, you'll need to update the CFNshort stack with the changes. +// + Resource-based policies don't support out-of-band changes. If you add, update, or delete a policy outside of the CFNshort template, the change won't be overwritten if there are no changes to the policy within the template. +// For example, say that your template contains a resource-based policy, which you later update outside of the template. If you don't make any changes to the policy in the template, the updated policy in DDB won’t be synced with the policy in the template. +// Conversely, say that your template doesn’t contain a resource-based policy, but you add a policy outside of the template. This policy won’t be removed from DDB as long as you don’t add it to the template. When you add a policy to the template and update the stack, the existing policy in DDB will be updated to match the one defined in the template. +// +// For a full list of all considerations, see [Resource-based policy considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html). +type TableResourcePolicyArgs struct { + // A resource-based policy document that contains permissions to add to the specified DDB table, index, or both. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + 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) +} + +// Creates or updates a resource-based policy document that contains the permissions for DDB resources, such as a table, its indexes, and stream. Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource. +// +// In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). +// While defining resource-based policies in your CFNshort templates, the following considerations apply: +// + The maximum size supported for a resource-based policy document in JSON format is 20 KB. DDB counts whitespaces when calculating the size of a policy against this limit. +// + Resource-based policies don't support [drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html#). If you update a policy outside of the CFNshort stack template, you'll need to update the CFNshort stack with the changes. +// + Resource-based policies don't support out-of-band changes. If you add, update, or delete a policy outside of the CFNshort template, the change won't be overwritten if there are no changes to the policy within the template. +// For example, say that your template contains a resource-based policy, which you later update outside of the template. If you don't make any changes to the policy in the template, the updated policy in DDB won’t be synced with the policy in the template. +// Conversely, say that your template doesn’t contain a resource-based policy, but you add a policy outside of the template. This policy won’t be removed from DDB as long as you don’t add it to the template. When you add a policy to the template and update the stack, the existing policy in DDB will be updated to match the one defined in the template. +// +// For a full list of all considerations, see [Resource-based policy considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html). +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) +} + +// A resource-based policy document that contains permissions to add to the specified DDB table, index, or both. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). +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) +} + +// A resource-based policy document that contains permissions to add to the specified DDB table, index, or both. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). +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 +5036,9 @@ func (o TableSseSpecificationPtrOutput) SseType() pulumi.StringPtrOutput { // Represents the DynamoDB Streams configuration for a table in DynamoDB. type TableStreamSpecification struct { + // Creates or updates a resource-based policy document that contains the permissions for DDB resources, such as a table's streams. Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource. + // In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + 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 +5060,9 @@ type TableStreamSpecificationInput interface { // Represents the DynamoDB Streams configuration for a table in DynamoDB. type TableStreamSpecificationArgs struct { + // Creates or updates a resource-based policy document that contains the permissions for DDB resources, such as a table's streams. Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource. + // In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + 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 +5149,13 @@ func (o TableStreamSpecificationOutput) ToTableStreamSpecificationPtrOutputWithC }).(TableStreamSpecificationPtrOutput) } +// Creates or updates a resource-based policy document that contains the permissions for DDB resources, such as a table's streams. Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource. +// +// In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). +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 +5189,18 @@ func (o TableStreamSpecificationPtrOutput) Elem() TableStreamSpecificationOutput }).(TableStreamSpecificationOutput) } +// Creates or updates a resource-based policy document that contains the permissions for DDB resources, such as a table's streams. Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource. +// +// In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). +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. @@ -4754,7 +5229,7 @@ type TableTag struct { // Represents the settings used to enable or disable Time to Live (TTL) for the specified table. type TableTimeToLiveSpecification struct { // The name of the TTL attribute used to store the expiration time for items in the table. - // + The ``AttributeName`` property is required when enabling the TTL, or when TTL is already enabled. + // + The ``AttributeName`` property is required when enabling the TTL, or when TTL is already enabled. // + To update this property, you must first disable TTL and then enable TTL with the new attribute name. AttributeName *string `pulumi:"attributeName"` // Indicates whether TTL is to be enabled (true) or disabled (false) on the table. @@ -4775,7 +5250,7 @@ type TableTimeToLiveSpecificationInput interface { // Represents the settings used to enable or disable Time to Live (TTL) for the specified table. type TableTimeToLiveSpecificationArgs struct { // The name of the TTL attribute used to store the expiration time for items in the table. - // + The ``AttributeName`` property is required when enabling the TTL, or when TTL is already enabled. + // + The ``AttributeName`` property is required when enabling the TTL, or when TTL is already enabled. // + To update this property, you must first disable TTL and then enable TTL with the new attribute name. AttributeName pulumi.StringPtrInput `pulumi:"attributeName"` // Indicates whether TTL is to be enabled (true) or disabled (false) on the table. @@ -4944,6 +5419,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 +5458,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 +5493,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 +5532,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..b7ecbd6fa8 100644 --- a/sdk/go/aws/dynamodb/table.go +++ b/sdk/go/aws/dynamodb/table.go @@ -16,7 +16,7 @@ import ( // The “AWS::DynamoDB::Table“ resource creates a DDB table. For more information, see [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) in the *API Reference*. // // You should be aware of the following behaviors when working with DDB tables: -// + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). +// + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). // // Our guidance is to use the latest schema documented here for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. // @@ -319,6 +319,9 @@ 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"` + // A resource-based policy document that contains permissions to add to the specified table. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + // When you attach a resource-based policy while creating a table, the policy creation is *strongly consistent*. For information about the considerations that you should keep in mind while attaching a resource-based policy, see [Resource-based policy considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html). + ResourcePolicy TableResourcePolicyPtrOutput `pulumi:"resourcePolicy"` // Specifies the settings to enable server-side encryption. SseSpecification TableSseSpecificationPtrOutput `pulumi:"sseSpecification"` StreamArn pulumi.StringOutput `pulumi:"streamArn"` @@ -421,6 +424,9 @@ 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"` + // A resource-based policy document that contains permissions to add to the specified table. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + // When you attach a resource-based policy while creating a table, the policy creation is *strongly consistent*. For information about the considerations that you should keep in mind while attaching a resource-based policy, see [Resource-based policy considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html). + 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 +482,9 @@ 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 + // A resource-based policy document that contains permissions to add to the specified table. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + // When you attach a resource-based policy while creating a table, the policy creation is *strongly consistent*. For information about the considerations that you should keep in mind while attaching a resource-based policy, see [Resource-based policy considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html). + 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 +621,13 @@ func (o TableOutput) ProvisionedThroughput() TableProvisionedThroughputPtrOutput return o.ApplyT(func(v *Table) TableProvisionedThroughputPtrOutput { return v.ProvisionedThroughput }).(TableProvisionedThroughputPtrOutput) } +// A resource-based policy document that contains permissions to add to the specified table. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). +// +// When you attach a resource-based policy while creating a table, the policy creation is *strongly consistent*. For information about the considerations that you should keep in mind while attaching a resource-based policy, see [Resource-based policy considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html). +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/getNatGateway.go b/sdk/go/aws/ec2/getNatGateway.go index cdd91aa20f..1b43427def 100644 --- a/sdk/go/aws/ec2/getNatGateway.go +++ b/sdk/go/aws/ec2/getNatGateway.go @@ -16,7 +16,7 @@ import ( // // With a NAT gateway, instances in a private subnet can connect to the internet, other AWS services, or an on-premises network using the IP address of the NAT gateway. For more information, see [NAT gateways](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) in the *Amazon VPC User Guide*. // If you add a default route (``AWS::EC2::Route`` resource) that points to a NAT gateway, specify the NAT gateway ID for the route's ``NatGatewayId`` property. -// When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*. +// When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*. func LookupNatGateway(ctx *pulumi.Context, args *LookupNatGatewayArgs, opts ...pulumi.InvokeOption) (*LookupNatGatewayResult, error) { opts = internal.PkgInvokeDefaultOpts(opts) var rv LookupNatGatewayResult @@ -36,10 +36,10 @@ type LookupNatGatewayResult struct { // Secondary EIP allocation IDs. For more information, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon VPC User Guide*. SecondaryAllocationIds []string `pulumi:"secondaryAllocationIds"` // [Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*. - // ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. + // ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. SecondaryPrivateIpAddressCount *int `pulumi:"secondaryPrivateIpAddressCount"` // Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*. - // ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. + // ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. SecondaryPrivateIpAddresses []string `pulumi:"secondaryPrivateIpAddresses"` // The tags for the NAT gateway. Tags []aws.Tag `pulumi:"tags"` diff --git a/sdk/go/aws/ec2/getSecurityGroupEgress.go b/sdk/go/aws/ec2/getSecurityGroupEgress.go index 166dde038f..015d701c5d 100644 --- a/sdk/go/aws/ec2/getSecurityGroupEgress.go +++ b/sdk/go/aws/ec2/getSecurityGroupEgress.go @@ -14,9 +14,9 @@ import ( // Adds the specified outbound (egress) rule to a security group. // // An outbound rule permits instances to send traffic to the specified IPv4 or IPv6 address range, the IP addresses that are specified by a prefix list, or the instances that are associated with a destination security group. For more information, see [Security group rules](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html). -// You must specify exactly one of the following destinations: an IPv4 or IPv6 address range, a prefix list, or a security group. Otherwise, the stack launches successfully but the rule is not added to the security group. +// You must specify exactly one of the following destinations: an IPv4 address range, an IPv6 address range, a prefix list, or a security group. // You must specify a protocol for each rule (for example, TCP). If the protocol is TCP or UDP, you must also specify a port or port range. If the protocol is ICMP or ICMPv6, you must also specify the ICMP/ICMPv6 type and code. To specify all types or all codes, use -1. -// Rule changes are propagated to instances associated with the security group as quickly as possible +// Rule changes are propagated to instances associated with the security group as quickly as possible. However, a small delay might occur. func LookupSecurityGroupEgress(ctx *pulumi.Context, args *LookupSecurityGroupEgressArgs, opts ...pulumi.InvokeOption) (*LookupSecurityGroupEgressResult, error) { opts = internal.PkgInvokeDefaultOpts(opts) var rv LookupSecurityGroupEgressResult 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/natGateway.go b/sdk/go/aws/ec2/natGateway.go index 5101e7abcd..5332d92dcf 100644 --- a/sdk/go/aws/ec2/natGateway.go +++ b/sdk/go/aws/ec2/natGateway.go @@ -17,7 +17,7 @@ import ( // // With a NAT gateway, instances in a private subnet can connect to the internet, other AWS services, or an on-premises network using the IP address of the NAT gateway. For more information, see [NAT gateways](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) in the *Amazon VPC User Guide*. // If you add a default route (``AWS::EC2::Route`` resource) that points to a NAT gateway, specify the NAT gateway ID for the route's ``NatGatewayId`` property. -// When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*. +// When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*. type NatGateway struct { pulumi.CustomResourceState @@ -33,10 +33,10 @@ type NatGateway struct { // Secondary EIP allocation IDs. For more information, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon VPC User Guide*. SecondaryAllocationIds pulumi.StringArrayOutput `pulumi:"secondaryAllocationIds"` // [Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*. - // ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. + // ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. SecondaryPrivateIpAddressCount pulumi.IntPtrOutput `pulumi:"secondaryPrivateIpAddressCount"` // Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*. - // ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. + // ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. SecondaryPrivateIpAddresses pulumi.StringArrayOutput `pulumi:"secondaryPrivateIpAddresses"` // The ID of the subnet in which the NAT gateway is located. SubnetId pulumi.StringOutput `pulumi:"subnetId"` @@ -105,10 +105,10 @@ type natGatewayArgs struct { // Secondary EIP allocation IDs. For more information, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon VPC User Guide*. SecondaryAllocationIds []string `pulumi:"secondaryAllocationIds"` // [Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*. - // ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. + // ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. SecondaryPrivateIpAddressCount *int `pulumi:"secondaryPrivateIpAddressCount"` // Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*. - // ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. + // ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. SecondaryPrivateIpAddresses []string `pulumi:"secondaryPrivateIpAddresses"` // The ID of the subnet in which the NAT gateway is located. SubnetId string `pulumi:"subnetId"` @@ -129,10 +129,10 @@ type NatGatewayArgs struct { // Secondary EIP allocation IDs. For more information, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon VPC User Guide*. SecondaryAllocationIds pulumi.StringArrayInput // [Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*. - // ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. + // ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. SecondaryPrivateIpAddressCount pulumi.IntPtrInput // Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*. - // ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. + // ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. SecondaryPrivateIpAddresses pulumi.StringArrayInput // The ID of the subnet in which the NAT gateway is located. SubnetId pulumi.StringInput diff --git a/sdk/go/aws/ec2/pulumiTypes.go b/sdk/go/aws/ec2/pulumiTypes.go index 0b0ef95d66..3c3f457f39 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 { @@ -19244,7 +19259,6 @@ type SecurityGroupEgressType struct { DestinationSecurityGroupId *string `pulumi:"destinationSecurityGroupId"` FromPort *int `pulumi:"fromPort"` IpProtocol string `pulumi:"ipProtocol"` - SourceSecurityGroupId *string `pulumi:"sourceSecurityGroupId"` ToPort *int `pulumi:"toPort"` } @@ -19267,7 +19281,6 @@ type SecurityGroupEgressTypeArgs struct { DestinationSecurityGroupId pulumi.StringPtrInput `pulumi:"destinationSecurityGroupId"` FromPort pulumi.IntPtrInput `pulumi:"fromPort"` IpProtocol pulumi.StringInput `pulumi:"ipProtocol"` - SourceSecurityGroupId pulumi.StringPtrInput `pulumi:"sourceSecurityGroupId"` ToPort pulumi.IntPtrInput `pulumi:"toPort"` } @@ -19350,10 +19363,6 @@ func (o SecurityGroupEgressTypeOutput) IpProtocol() pulumi.StringOutput { return o.ApplyT(func(v SecurityGroupEgressType) string { return v.IpProtocol }).(pulumi.StringOutput) } -func (o SecurityGroupEgressTypeOutput) SourceSecurityGroupId() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityGroupEgressType) *string { return v.SourceSecurityGroupId }).(pulumi.StringPtrOutput) -} - func (o SecurityGroupEgressTypeOutput) ToPort() pulumi.IntPtrOutput { return o.ApplyT(func(v SecurityGroupEgressType) *int { return v.ToPort }).(pulumi.IntPtrOutput) } diff --git a/sdk/go/aws/ec2/securityGroupEgress.go b/sdk/go/aws/ec2/securityGroupEgress.go index a272adc8e9..f22130437d 100644 --- a/sdk/go/aws/ec2/securityGroupEgress.go +++ b/sdk/go/aws/ec2/securityGroupEgress.go @@ -15,29 +15,29 @@ import ( // Adds the specified outbound (egress) rule to a security group. // // An outbound rule permits instances to send traffic to the specified IPv4 or IPv6 address range, the IP addresses that are specified by a prefix list, or the instances that are associated with a destination security group. For more information, see [Security group rules](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html). -// You must specify exactly one of the following destinations: an IPv4 or IPv6 address range, a prefix list, or a security group. Otherwise, the stack launches successfully but the rule is not added to the security group. +// You must specify exactly one of the following destinations: an IPv4 address range, an IPv6 address range, a prefix list, or a security group. // You must specify a protocol for each rule (for example, TCP). If the protocol is TCP or UDP, you must also specify a port or port range. If the protocol is ICMP or ICMPv6, you must also specify the ICMP/ICMPv6 type and code. To specify all types or all codes, use -1. -// Rule changes are propagated to instances associated with the security group as quickly as possible +// Rule changes are propagated to instances associated with the security group as quickly as possible. However, a small delay might occur. type SecurityGroupEgress struct { pulumi.CustomResourceState AwsId pulumi.StringOutput `pulumi:"awsId"` // The IPv4 address range, in CIDR format. - // You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + // You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. // For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*. CidrIp pulumi.StringPtrOutput `pulumi:"cidrIp"` // The IPv6 address range, in CIDR format. - // You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + // You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. // For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*. CidrIpv6 pulumi.StringPtrOutput `pulumi:"cidrIpv6"` // The description of an egress (outbound) security group rule. // Constraints: Up to 255 characters in length. Allowed characters are a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=;{}!$* Description pulumi.StringPtrOutput `pulumi:"description"` - // The prefix list IDs for an AWS service. This is the AWS service that you want to access through a VPC endpoint from instances associated with the security group. - // You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + // The prefix list IDs for an AWS service. This is the AWS service to access through a VPC endpoint from instances associated with the security group. + // You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. DestinationPrefixListId pulumi.StringPtrOutput `pulumi:"destinationPrefixListId"` // The ID of the security group. - // You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + // You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. DestinationSecurityGroupId pulumi.StringPtrOutput `pulumi:"destinationSecurityGroupId"` // If the protocol is TCP or UDP, this is the start of the port range. If the protocol is ICMP or ICMPv6, this is the ICMP type or -1 (all ICMP types). FromPort pulumi.IntPtrOutput `pulumi:"fromPort"` @@ -108,21 +108,21 @@ func (SecurityGroupEgressState) ElementType() reflect.Type { type securityGroupEgressArgs struct { // The IPv4 address range, in CIDR format. - // You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + // You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. // For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*. CidrIp *string `pulumi:"cidrIp"` // The IPv6 address range, in CIDR format. - // You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + // You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. // For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*. CidrIpv6 *string `pulumi:"cidrIpv6"` // The description of an egress (outbound) security group rule. // Constraints: Up to 255 characters in length. Allowed characters are a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=;{}!$* Description *string `pulumi:"description"` - // The prefix list IDs for an AWS service. This is the AWS service that you want to access through a VPC endpoint from instances associated with the security group. - // You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + // The prefix list IDs for an AWS service. This is the AWS service to access through a VPC endpoint from instances associated with the security group. + // You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. DestinationPrefixListId *string `pulumi:"destinationPrefixListId"` // The ID of the security group. - // You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + // You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. DestinationSecurityGroupId *string `pulumi:"destinationSecurityGroupId"` // If the protocol is TCP or UDP, this is the start of the port range. If the protocol is ICMP or ICMPv6, this is the ICMP type or -1 (all ICMP types). FromPort *int `pulumi:"fromPort"` @@ -138,21 +138,21 @@ type securityGroupEgressArgs struct { // The set of arguments for constructing a SecurityGroupEgress resource. type SecurityGroupEgressArgs struct { // The IPv4 address range, in CIDR format. - // You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + // You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. // For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*. CidrIp pulumi.StringPtrInput // The IPv6 address range, in CIDR format. - // You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + // You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. // For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*. CidrIpv6 pulumi.StringPtrInput // The description of an egress (outbound) security group rule. // Constraints: Up to 255 characters in length. Allowed characters are a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=;{}!$* Description pulumi.StringPtrInput - // The prefix list IDs for an AWS service. This is the AWS service that you want to access through a VPC endpoint from instances associated with the security group. - // You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + // The prefix list IDs for an AWS service. This is the AWS service to access through a VPC endpoint from instances associated with the security group. + // You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. DestinationPrefixListId pulumi.StringPtrInput // The ID of the security group. - // You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + // You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. DestinationSecurityGroupId pulumi.StringPtrInput // If the protocol is TCP or UDP, this is the start of the port range. If the protocol is ICMP or ICMPv6, this is the ICMP type or -1 (all ICMP types). FromPort pulumi.IntPtrInput @@ -208,7 +208,7 @@ func (o SecurityGroupEgressOutput) AwsId() pulumi.StringOutput { // The IPv4 address range, in CIDR format. // -// You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). +// You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. // For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*. func (o SecurityGroupEgressOutput) CidrIp() pulumi.StringPtrOutput { return o.ApplyT(func(v *SecurityGroupEgress) pulumi.StringPtrOutput { return v.CidrIp }).(pulumi.StringPtrOutput) @@ -216,7 +216,7 @@ func (o SecurityGroupEgressOutput) CidrIp() pulumi.StringPtrOutput { // The IPv6 address range, in CIDR format. // -// You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). +// You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. // For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*. func (o SecurityGroupEgressOutput) CidrIpv6() pulumi.StringPtrOutput { return o.ApplyT(func(v *SecurityGroupEgress) pulumi.StringPtrOutput { return v.CidrIpv6 }).(pulumi.StringPtrOutput) @@ -229,16 +229,16 @@ func (o SecurityGroupEgressOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v *SecurityGroupEgress) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) } -// The prefix list IDs for an AWS service. This is the AWS service that you want to access through a VPC endpoint from instances associated with the security group. +// The prefix list IDs for an AWS service. This is the AWS service to access through a VPC endpoint from instances associated with the security group. // -// You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). +// You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. func (o SecurityGroupEgressOutput) DestinationPrefixListId() pulumi.StringPtrOutput { return o.ApplyT(func(v *SecurityGroupEgress) pulumi.StringPtrOutput { return v.DestinationPrefixListId }).(pulumi.StringPtrOutput) } // The ID of the security group. // -// You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). +// You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. func (o SecurityGroupEgressOutput) DestinationSecurityGroupId() pulumi.StringPtrOutput { return o.ApplyT(func(v *SecurityGroupEgress) pulumi.StringPtrOutput { return v.DestinationSecurityGroupId }).(pulumi.StringPtrOutput) } 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/ecs/getTaskDefinition.go b/sdk/go/aws/ecs/getTaskDefinition.go index de84c0fe1e..2a0c274f48 100644 --- a/sdk/go/aws/ecs/getTaskDefinition.go +++ b/sdk/go/aws/ecs/getTaskDefinition.go @@ -15,7 +15,9 @@ import ( // Registers a new task definition from the supplied “family“ and “containerDefinitions“. Optionally, you can add data volumes to your containers with the “volumes“ parameter. For more information about task definition parameters and defaults, see [Amazon ECS Task Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) in the *Amazon Elastic Container Service Developer Guide*. // // You can specify a role for your task with the ``taskRoleArn`` parameter. When you specify a role for a task, its containers can then use the latest versions of the CLI or SDKs to make API requests to the AWS services that are specified in the policy that's associated with the role. For more information, see [IAM Roles for Tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*. -// You can specify a Docker networking mode for the containers in your task definition with the ``networkMod +// You can specify a Docker networking mode for the containers in your task definition with the ``networkMode`` parameter. The available network modes correspond to those described in [Network settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#/network-settings) in the Docker run reference. If you specify the ``awsvpc`` network mode, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*. +// In the following example or examples, the Authorization header contents (``AUTHPARAMS``) must be replaced with an AWS Signature Version 4 signature. For more information, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the *General Reference*. +// You only need to learn how to sign HTTP requests if you intend to create them manually. When you use the [](https://docs.aws.amazon.com/cli/) or one of the [SDKs](https://docs.aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you, with the access key that you specify when you configure the tools. When you use these tools, you don't have to sign requests yourself. func LookupTaskDefinition(ctx *pulumi.Context, args *LookupTaskDefinitionArgs, opts ...pulumi.InvokeOption) (*LookupTaskDefinitionResult, error) { opts = internal.PkgInvokeDefaultOpts(opts) var rv LookupTaskDefinitionResult @@ -39,7 +41,7 @@ type LookupTaskDefinitionResult struct { // + Maximum value length - 256 Unicode characters in UTF-8 // + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. // + Tag keys and values are case-sensitive. - // + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values + // + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. Tags []aws.Tag `pulumi:"tags"` TaskDefinitionArn *string `pulumi:"taskDefinitionArn"` } @@ -88,7 +90,7 @@ func (o LookupTaskDefinitionResultOutput) ToLookupTaskDefinitionResultOutputWith // + Maximum value length - 256 Unicode characters in UTF-8 // + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. // + Tag keys and values are case-sensitive. -// + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values +// + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. func (o LookupTaskDefinitionResultOutput) Tags() aws.TagArrayOutput { return o.ApplyT(func(v LookupTaskDefinitionResult) []aws.Tag { return v.Tags }).(aws.TagArrayOutput) } diff --git a/sdk/go/aws/ecs/pulumiEnums.go b/sdk/go/aws/ecs/pulumiEnums.go index c6ada96acc..378361a514 100644 --- a/sdk/go/aws/ecs/pulumiEnums.go +++ b/sdk/go/aws/ecs/pulumiEnums.go @@ -2360,7 +2360,7 @@ func (in *taskDefinitionEfsVolumeConfigurationTransitEncryptionPtr) ToTaskDefini // // If you don't set a value for this parameter, then TCP is used. However, Amazon ECS doesn't add protocol-specific telemetry for TCP. // ``appProtocol`` is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment. -// Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS se +// Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. type TaskDefinitionPortMappingAppProtocol string const ( diff --git a/sdk/go/aws/ecs/pulumiTypes.go b/sdk/go/aws/ecs/pulumiTypes.go index 4da521010a..ba2f4552fd 100644 --- a/sdk/go/aws/ecs/pulumiTypes.go +++ b/sdk/go/aws/ecs/pulumiTypes.go @@ -5519,16 +5519,26 @@ type TaskDefinitionContainerDefinition struct { // The number of ``cpu`` units reserved for the container. This parameter maps to ``CpuShares`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cpu-shares`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). // This field is optional for tasks using the Fargate launch type, and the only requirement is that the total amount of CPU reserved for all containers within a task be lower than the task-level ``cpu`` value. // You can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the [Amazon EC2 Instances](https://docs.aws.amazon.com/ec2/instance-types/) detail page by 1,024. - // Linux containers share unallocated CPU units with other containers on the cont + // Linux containers share unallocated CPU units with other containers on the container instance with the same ratio as their allocated amount. For example, if you run a single-container task on a single-core instance type with 512 CPU units specified for that container, and that's the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time. However, if you launched another copy of the same task on that container instance, each task is guaranteed a minimum of 512 CPU units when needed. Moreover, each container could float to higher CPU usage if the other container was not using it. If both tasks were 100% active all of the time, they would be limited to 512 CPU units. + // On Linux container instances, the Docker daemon on the container instance uses the CPU value to calculate the relative CPU share ratios for running containers. For more information, see [CPU share constraint](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#cpu-share-constraint) in the Docker documentation. The minimum valid CPU share value that the Linux kernel allows is 2. However, the CPU parameter isn't required, and you can use CPU values below 2 in your container definitions. For CPU values below 2 (including null), the behavior varies based on your Amazon ECS container agent version: + // + *Agent versions less than or equal to 1.1.0:* Null and zero CPU values are passed to Docker as 0, which Docker then converts to 1,024 CPU shares. CPU values of 1 are passed to Docker as 1, which the Linux kernel converts to two CPU shares. + // + *Agent versions greater than or equal to 1.2.0:* Null, zero, and CPU values of 1 are passed to Docker as 2. + // + // On Windows container instances, the CPU limit is enforced as an absolute limit, or a quota. Windows containers only have access to the specified amount of CPU that's described in the task definition. A null or zero CPU value is passed to Docker as ``0``, which Windows interprets as 1% of one CPU. Cpu *int `pulumi:"cpu"` // A list of ARNs in SSM or Amazon S3 to a credential spec (``CredSpec``) file that configures the container for Active Directory authentication. We recommend that you use this parameter instead of the ``dockerSecurityOptions``. The maximum number of ARNs is 1. // There are two formats for each ARN. // + credentialspecdomainless:MyARN You use credentialspecdomainless:MyARN to provide a CredSpec with an additional section for a secret in . You provide the login credentials to the domain in the secret. Each task that runs on any container instance can join different domains. You can use this format without joining the container instance to a domain. + credentialspec:MyARN You use credentialspec:MyARN to provide a CredSpec for a single domain. You must join the container instance to the domain before you start any tasks that use this task definition. // In both formats, replace ``MyARN`` with the ARN in SSM or Amazon S3. - // If you provide a ``credentialspecdomainless:MyARN``, the ``credspec`` must + // If you provide a ``credentialspecdomainless:MyARN``, the ``credspec`` must provide a ARN in ASMlong for a secret containing the username, password, and the domain to connect to. For better security, the instance isn't joined to the domain for domainless authentication. Other applications on the instance can't use the domainless credentials. You can use this parameter to run tasks on the same instance, even it the tasks need to join different domains. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) and [Using gMSAs for Linux Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html). CredentialSpecs []string `pulumi:"credentialSpecs"` // The dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed. - // For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [ + // For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + // For tasks using the Fargate launch type, the task or service requires the following platforms: + // + Linux platform version ``1.3.0`` or later. + // + Windows platform version ``1.0.0`` or later. + // + // If the task definition is used in a blue/green deployment that uses [AWS::CodeDeploy::DeploymentGroup BlueGreenDeploymentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-bluegreendeploymentconfiguration.html), the ``dependsOn`` parameter is not supported. For more information see [Issue #680](https://docs.aws.amazon.com/https://github.com/aws-cloudformation/cloudformation-coverage-roadmap/issues/680) on the on the GitHub website. DependsOn []TaskDefinitionContainerDependency `pulumi:"dependsOn"` // When this parameter is true, networking is off within the container. This parameter maps to ``NetworkDisabled`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/). // This parameter is not supported for Windows containers. @@ -5544,7 +5554,10 @@ type TaskDefinitionContainerDefinition struct { // A list of strings to provide custom configuration for multiple security systems. For more information about valid values, see [Docker Run Security Configuration](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). This field isn't valid for containers in tasks using the Fargate launch type. // For Linux tasks on EC2, this parameter can be used to reference custom labels for SELinux and AppArmor multi-level security systems. // For any tasks on EC2, this parameter can be used to reference a credential spec file that configures a container for Active Directory authentication. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) and [Using gMSAs for Linux Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html) in the *Amazon Elastic Container Service Developer Guide*. - // This parameter maps to ``SecurityOpt`` in the [Create a co + // This parameter maps to ``SecurityOpt`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--security-opt`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + // The Amazon ECS container agent running on a container instance must register with the ``ECS_SELINUX_CAPABLE=true`` or ``ECS_APPARMOR_CAPABLE=true`` environment variables before containers placed on that instance can use these security options. For more information, see [Amazon ECS Container Agent Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*. + // For more information about valid values, see [Docker Run Security Configuration](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + // Valid values: "no-new-privileges" | "apparmor:PROFILE" | "label:value" | "credentialspec:CredentialSpecFilePath" DockerSecurityOptions []string `pulumi:"dockerSecurityOptions"` // Early versions of the Amazon ECS container agent don't properly handle ``entryPoint`` parameters. If you have problems using ``entryPoint``, update your container agent or enter your commands and arguments as ``command`` array items instead. // The entry point that's passed to the container. This parameter maps to ``Entrypoint`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--entrypoint`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). For more information, see [https://docs.docker.com/engine/reference/builder/#entrypoint](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/builder/#entrypoint). @@ -5554,7 +5567,7 @@ type TaskDefinitionContainerDefinition struct { Environment []TaskDefinitionKeyValuePair `pulumi:"environment"` // A list of files containing the environment variables to pass to a container. This parameter maps to the ``--env-file`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). // You can specify up to ten environment files. The file must have a ``.env`` file extension. Each line in an environment file contains an environment variable in ``VARIABLE=VALUE`` format. Lines beginning with ``#`` are treated as comments and are ignored. For more information about the environment variable file syntax, see [Declare default environment variables in file](https://docs.aws.amazon.com/https://docs.docker.com/compose/env-file/). - // If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend t + // If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Specifying Environment Variables](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) in the *Amazon Elastic Container Service Developer Guide*. EnvironmentFiles []TaskDefinitionEnvironmentFile `pulumi:"environmentFiles"` // If the ``essential`` parameter of a container is marked as ``true``, and that container fails or stops for any reason, all other containers that are part of the task are stopped. If the ``essential`` parameter of a container is marked as ``false``, its failure doesn't affect the rest of the containers in a task. If this parameter is omitted, a container is assumed to be essential. // All tasks must have at least one essential container. If you have an application that's composed of multiple containers, group containers that are used for a common purpose into components, and separate the different components into multiple task definitions. For more information, see [Application Architecture](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html) in the *Amazon Elastic Container Service Developer Guide*. @@ -5570,25 +5583,38 @@ type TaskDefinitionContainerDefinition struct { // The ``hostname`` parameter is not supported if you're using the ``awsvpc`` network mode. Hostname *string `pulumi:"hostname"` // The image used to start a container. This string is passed directly to the Docker daemon. By default, images in the Docker Hub registry are available. Other repositories are specified with either ``repository-url/image:tag`` or ``repository-url/image@digest``. Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to ``Image`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``IMAGE`` parameter of [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - // + When a new task starts, the Amazon ECS container agent pulls the latest version of the specified image and tag for the container to use. However, subsequent updates to a repository image + // + When a new task starts, the Amazon ECS container agent pulls the latest version of the specified image and tag for the container to use. However, subsequent updates to a repository image aren't propagated to already running tasks. + // + Images in Amazon ECR repositories can be specified by either using the full ``registry/repository:tag`` or ``registry/repository@digest``. For example, ``012345678910.dkr.ecr..amazonaws.com/:latest`` or ``012345678910.dkr.ecr..amazonaws.com/@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE``. + // + Images in official repositories on Docker Hub use a single name (for example, ``ubuntu`` or ``mongo``). + // + Images in other repositories on Docker Hub are qualified with an organization name (for example, ``amazon/amazon-ecs-agent``). + // + Images in other online repositories are qualified further by a domain name (for example, ``quay.io/assemblyline/ubuntu``). Image string `pulumi:"image"` // When this parameter is ``true``, you can deploy containerized applications that require ``stdin`` or a ``tty`` to be allocated. This parameter maps to ``OpenStdin`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--interactive`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). Interactive *bool `pulumi:"interactive"` // The ``links`` parameter allows containers to communicate with each other without the need for port mappings. This parameter is only supported if the network mode of a task definition is ``bridge``. The ``name:internalName`` construct is analogous to ``name:alias`` in Docker links. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. For more information about linking Docker containers, go to [Legacy container links](https://docs.aws.amazon.com/https://docs.docker.com/network/links/) in the Docker documentation. This parameter maps to ``Links`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--link`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - // This parameter is not supported for W + // This parameter is not supported for Windows containers. + // Containers that are collocated on a single container instance may be able to communicate with each other without requiring links or host port mappings. Network isolation is achieved on the container instance using security groups and VPC settings. Links []string `pulumi:"links"` // Linux-specific modifications that are applied to the container, such as Linux kernel capabilities. For more information see [KernelCapabilities](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_KernelCapabilities.html). // This parameter is not supported for Windows containers. LinuxParameters *TaskDefinitionLinuxParameters `pulumi:"linuxParameters"` // The log configuration specification for the container. - // This parameter maps to ``LogConfig`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--log-driver`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). By default, containers use the same logging driver that the Docker daemon uses. However, the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.aws.amazon.com/htt + // This parameter maps to ``LogConfig`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--log-driver`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). By default, containers use the same logging driver that the Docker daemon uses. However, the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.aws.amazon.com/https://docs.docker.com/engine/admin/logging/overview/) in the Docker documentation. + // Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon (shown in the [LogConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_LogConfiguration.html) data type). Additional log drivers may be available in future releases of the Amazon ECS container agent. + // This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'`` + // The Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the ``ECS_AVAILABLE_LOGGING_DRIVERS`` environment variable before containers placed on that instance can use these log configuration options. For more information, see [Amazon ECS Container Agent Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*. LogConfiguration *TaskDefinitionLogConfiguration `pulumi:"logConfiguration"` // The amount (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. The total amount of memory reserved for all containers within a task must be lower than the task ``memory`` value, if one is specified. This parameter maps to ``Memory`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). // If using the Fargate launch type, this parameter is optional. - // If using the EC2 launch type, you must specify either a task-level memory value or a container-level memory value. If you specify both a container-level ``memory`` and ``memoryReservation`` value, ``memory`` must be greater than ``memoryReserva + // If using the EC2 launch type, you must specify either a task-level memory value or a container-level memory value. If you specify both a container-level ``memory`` and ``memoryReservation`` value, ``memory`` must be greater than ``memoryReservation``. If you specify ``memoryReservation``, then that value is subtracted from the available memory resources for the container instance where the container is placed. Otherwise, the value of ``memory`` is used. + // The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container, so you should not specify fewer than 6 MiB of memory for your containers. + // The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container, so you should not specify fewer than 4 MiB of memory for your containers. Memory *int `pulumi:"memory"` // The soft limit (in MiB) of memory to reserve for the container. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit. However, your container can consume more memory when it needs to, up to either the hard limit specified with the ``memory`` parameter (if applicable), or all of the available memory on the container instance, whichever comes first. This parameter maps to ``MemoryReservation`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory-reservation`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - // If a task-level memory value is not specified, you must specify a non-zero integer for one or both of ``memory`` or ``memoryReservation`` in a container definiti + // If a task-level memory value is not specified, you must specify a non-zero integer for one or both of ``memory`` or ``memoryReservation`` in a container definition. If you specify both, ``memory`` must be greater than ``memoryReservation``. If you specify ``memoryReservation``, then that value is subtracted from the available memory resources for the container instance where the container is placed. Otherwise, the value of ``memory`` is used. + // For example, if your container normally uses 128 MiB of memory, but occasionally bursts to 256 MiB of memory for short periods of time, you can set a ``memoryReservation`` of 128 MiB, and a ``memory`` hard limit of 300 MiB. This configuration would allow the container to only reserve 128 MiB of memory from the remaining resources on the container instance, but also allow the container to consume more memory resources when needed. + // The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container. So, don't specify less than 6 MiB of memory for your containers. + // The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container. So, don't specify less than 4 MiB of memory for your containers. MemoryReservation *int `pulumi:"memoryReservation"` // The mount points for data volumes in your container. // This parameter maps to ``Volumes`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--volume`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). @@ -5599,7 +5625,8 @@ type TaskDefinitionContainerDefinition struct { // The list of port mappings for the container. Port mappings allow containers to access ports on the host container instance to send or receive traffic. // For task definitions that use the ``awsvpc`` network mode, you should only specify the ``containerPort``. The ``hostPort`` can be left blank or it must be the same value as the ``containerPort``. // Port mappings on Windows use the ``NetNAT`` gateway address rather than ``localhost``. There is no loopback for port mappings on Windows, so you cannot access a container's mapped port from the host itself. - // This parameter maps to ``PortBindings`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--publish`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). If the network mode of a task definition is set to + // This parameter maps to ``PortBindings`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--publish`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). If the network mode of a task definition is set to ``none``, then you can't specify port mappings. If the network mode of a task definition is set to ``host``, then host ports must either be undefined or they must match the container port in the port mapping. + // After a task reaches the ``RUNNING`` status, manual and automatic host and container port assignments are visible in the *Network Bindings* section of a container description for a selected task in the Amazon ECS console. The assignments are also visible in the ``networkBindings`` section [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) responses. PortMappings []TaskDefinitionPortMapping `pulumi:"portMappings"` // When this parameter is true, the container is given elevated privileges on the host container instance (similar to the ``root`` user). This parameter maps to ``Privileged`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--privileged`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). // This parameter is not supported for Windows containers or tasks run on FARGATElong. @@ -5621,7 +5648,8 @@ type TaskDefinitionContainerDefinition struct { // + Linux platform version ``1.3.0`` or later. // + Windows platform version ``1.0.0`` or later. // - // For tasks using the EC2 launch type, your container instances require at least version ``1.26.0`` of the container agent to use a container start timeout value. However + // For tasks using the EC2 launch type, your container instances require at least version ``1.26.0`` of the container agent to use a container start timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version ``1.26.0-1`` of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + // The valid values are 2-120 seconds. StartTimeout *int `pulumi:"startTimeout"` // Time duration (in seconds) to wait before the container is forcefully killed if it doesn't exit normally on its own. // For tasks using the Fargate launch type, the task or service requires the following platforms: @@ -5629,7 +5657,8 @@ type TaskDefinitionContainerDefinition struct { // + Windows platform version ``1.0.0`` or later. // // The max stop timeout value is 120 seconds and if the parameter is not specified, the default value of 30 seconds is used. - // For tasks that use the EC2 launch type, if the ``stopTimeout`` parameter isn't specified, the value set for the Amazon ECS container agent configuration variable ``ECS_CONTAINER_STOP_TIMEOUT`` is used. If neither the ``stopTimeout`` parameter or the ``ECS_CONTAINER_STOP_TIMEOUT`` agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to use a container stop timeout value. However, we recomm + // For tasks that use the EC2 launch type, if the ``stopTimeout`` parameter isn't specified, the value set for the Amazon ECS container agent configuration variable ``ECS_CONTAINER_STOP_TIMEOUT`` is used. If neither the ``stopTimeout`` parameter or the ``ECS_CONTAINER_STOP_TIMEOUT`` agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to use a container stop timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + // The valid values are 2-120 seconds. StopTimeout *int `pulumi:"stopTimeout"` // A list of namespaced kernel parameters to set in the container. This parameter maps to ``Sysctls`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--sysctl`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). For example, you can configure ``net.ipv4.tcp_keepalive_time`` setting to maintain longer lived connections. SystemControls []TaskDefinitionSystemControl `pulumi:"systemControls"` @@ -5672,16 +5701,26 @@ type TaskDefinitionContainerDefinitionArgs struct { // The number of ``cpu`` units reserved for the container. This parameter maps to ``CpuShares`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cpu-shares`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). // This field is optional for tasks using the Fargate launch type, and the only requirement is that the total amount of CPU reserved for all containers within a task be lower than the task-level ``cpu`` value. // You can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the [Amazon EC2 Instances](https://docs.aws.amazon.com/ec2/instance-types/) detail page by 1,024. - // Linux containers share unallocated CPU units with other containers on the cont + // Linux containers share unallocated CPU units with other containers on the container instance with the same ratio as their allocated amount. For example, if you run a single-container task on a single-core instance type with 512 CPU units specified for that container, and that's the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time. However, if you launched another copy of the same task on that container instance, each task is guaranteed a minimum of 512 CPU units when needed. Moreover, each container could float to higher CPU usage if the other container was not using it. If both tasks were 100% active all of the time, they would be limited to 512 CPU units. + // On Linux container instances, the Docker daemon on the container instance uses the CPU value to calculate the relative CPU share ratios for running containers. For more information, see [CPU share constraint](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#cpu-share-constraint) in the Docker documentation. The minimum valid CPU share value that the Linux kernel allows is 2. However, the CPU parameter isn't required, and you can use CPU values below 2 in your container definitions. For CPU values below 2 (including null), the behavior varies based on your Amazon ECS container agent version: + // + *Agent versions less than or equal to 1.1.0:* Null and zero CPU values are passed to Docker as 0, which Docker then converts to 1,024 CPU shares. CPU values of 1 are passed to Docker as 1, which the Linux kernel converts to two CPU shares. + // + *Agent versions greater than or equal to 1.2.0:* Null, zero, and CPU values of 1 are passed to Docker as 2. + // + // On Windows container instances, the CPU limit is enforced as an absolute limit, or a quota. Windows containers only have access to the specified amount of CPU that's described in the task definition. A null or zero CPU value is passed to Docker as ``0``, which Windows interprets as 1% of one CPU. Cpu pulumi.IntPtrInput `pulumi:"cpu"` // A list of ARNs in SSM or Amazon S3 to a credential spec (``CredSpec``) file that configures the container for Active Directory authentication. We recommend that you use this parameter instead of the ``dockerSecurityOptions``. The maximum number of ARNs is 1. // There are two formats for each ARN. // + credentialspecdomainless:MyARN You use credentialspecdomainless:MyARN to provide a CredSpec with an additional section for a secret in . You provide the login credentials to the domain in the secret. Each task that runs on any container instance can join different domains. You can use this format without joining the container instance to a domain. + credentialspec:MyARN You use credentialspec:MyARN to provide a CredSpec for a single domain. You must join the container instance to the domain before you start any tasks that use this task definition. // In both formats, replace ``MyARN`` with the ARN in SSM or Amazon S3. - // If you provide a ``credentialspecdomainless:MyARN``, the ``credspec`` must + // If you provide a ``credentialspecdomainless:MyARN``, the ``credspec`` must provide a ARN in ASMlong for a secret containing the username, password, and the domain to connect to. For better security, the instance isn't joined to the domain for domainless authentication. Other applications on the instance can't use the domainless credentials. You can use this parameter to run tasks on the same instance, even it the tasks need to join different domains. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) and [Using gMSAs for Linux Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html). CredentialSpecs pulumi.StringArrayInput `pulumi:"credentialSpecs"` // The dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed. - // For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [ + // For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + // For tasks using the Fargate launch type, the task or service requires the following platforms: + // + Linux platform version ``1.3.0`` or later. + // + Windows platform version ``1.0.0`` or later. + // + // If the task definition is used in a blue/green deployment that uses [AWS::CodeDeploy::DeploymentGroup BlueGreenDeploymentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-bluegreendeploymentconfiguration.html), the ``dependsOn`` parameter is not supported. For more information see [Issue #680](https://docs.aws.amazon.com/https://github.com/aws-cloudformation/cloudformation-coverage-roadmap/issues/680) on the on the GitHub website. DependsOn TaskDefinitionContainerDependencyArrayInput `pulumi:"dependsOn"` // When this parameter is true, networking is off within the container. This parameter maps to ``NetworkDisabled`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/). // This parameter is not supported for Windows containers. @@ -5697,7 +5736,10 @@ type TaskDefinitionContainerDefinitionArgs struct { // A list of strings to provide custom configuration for multiple security systems. For more information about valid values, see [Docker Run Security Configuration](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). This field isn't valid for containers in tasks using the Fargate launch type. // For Linux tasks on EC2, this parameter can be used to reference custom labels for SELinux and AppArmor multi-level security systems. // For any tasks on EC2, this parameter can be used to reference a credential spec file that configures a container for Active Directory authentication. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) and [Using gMSAs for Linux Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html) in the *Amazon Elastic Container Service Developer Guide*. - // This parameter maps to ``SecurityOpt`` in the [Create a co + // This parameter maps to ``SecurityOpt`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--security-opt`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + // The Amazon ECS container agent running on a container instance must register with the ``ECS_SELINUX_CAPABLE=true`` or ``ECS_APPARMOR_CAPABLE=true`` environment variables before containers placed on that instance can use these security options. For more information, see [Amazon ECS Container Agent Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*. + // For more information about valid values, see [Docker Run Security Configuration](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + // Valid values: "no-new-privileges" | "apparmor:PROFILE" | "label:value" | "credentialspec:CredentialSpecFilePath" DockerSecurityOptions pulumi.StringArrayInput `pulumi:"dockerSecurityOptions"` // Early versions of the Amazon ECS container agent don't properly handle ``entryPoint`` parameters. If you have problems using ``entryPoint``, update your container agent or enter your commands and arguments as ``command`` array items instead. // The entry point that's passed to the container. This parameter maps to ``Entrypoint`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--entrypoint`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). For more information, see [https://docs.docker.com/engine/reference/builder/#entrypoint](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/builder/#entrypoint). @@ -5707,7 +5749,7 @@ type TaskDefinitionContainerDefinitionArgs struct { Environment TaskDefinitionKeyValuePairArrayInput `pulumi:"environment"` // A list of files containing the environment variables to pass to a container. This parameter maps to the ``--env-file`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). // You can specify up to ten environment files. The file must have a ``.env`` file extension. Each line in an environment file contains an environment variable in ``VARIABLE=VALUE`` format. Lines beginning with ``#`` are treated as comments and are ignored. For more information about the environment variable file syntax, see [Declare default environment variables in file](https://docs.aws.amazon.com/https://docs.docker.com/compose/env-file/). - // If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend t + // If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Specifying Environment Variables](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) in the *Amazon Elastic Container Service Developer Guide*. EnvironmentFiles TaskDefinitionEnvironmentFileArrayInput `pulumi:"environmentFiles"` // If the ``essential`` parameter of a container is marked as ``true``, and that container fails or stops for any reason, all other containers that are part of the task are stopped. If the ``essential`` parameter of a container is marked as ``false``, its failure doesn't affect the rest of the containers in a task. If this parameter is omitted, a container is assumed to be essential. // All tasks must have at least one essential container. If you have an application that's composed of multiple containers, group containers that are used for a common purpose into components, and separate the different components into multiple task definitions. For more information, see [Application Architecture](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html) in the *Amazon Elastic Container Service Developer Guide*. @@ -5723,25 +5765,38 @@ type TaskDefinitionContainerDefinitionArgs struct { // The ``hostname`` parameter is not supported if you're using the ``awsvpc`` network mode. Hostname pulumi.StringPtrInput `pulumi:"hostname"` // The image used to start a container. This string is passed directly to the Docker daemon. By default, images in the Docker Hub registry are available. Other repositories are specified with either ``repository-url/image:tag`` or ``repository-url/image@digest``. Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to ``Image`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``IMAGE`` parameter of [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - // + When a new task starts, the Amazon ECS container agent pulls the latest version of the specified image and tag for the container to use. However, subsequent updates to a repository image + // + When a new task starts, the Amazon ECS container agent pulls the latest version of the specified image and tag for the container to use. However, subsequent updates to a repository image aren't propagated to already running tasks. + // + Images in Amazon ECR repositories can be specified by either using the full ``registry/repository:tag`` or ``registry/repository@digest``. For example, ``012345678910.dkr.ecr..amazonaws.com/:latest`` or ``012345678910.dkr.ecr..amazonaws.com/@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE``. + // + Images in official repositories on Docker Hub use a single name (for example, ``ubuntu`` or ``mongo``). + // + Images in other repositories on Docker Hub are qualified with an organization name (for example, ``amazon/amazon-ecs-agent``). + // + Images in other online repositories are qualified further by a domain name (for example, ``quay.io/assemblyline/ubuntu``). Image pulumi.StringInput `pulumi:"image"` // When this parameter is ``true``, you can deploy containerized applications that require ``stdin`` or a ``tty`` to be allocated. This parameter maps to ``OpenStdin`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--interactive`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). Interactive pulumi.BoolPtrInput `pulumi:"interactive"` // The ``links`` parameter allows containers to communicate with each other without the need for port mappings. This parameter is only supported if the network mode of a task definition is ``bridge``. The ``name:internalName`` construct is analogous to ``name:alias`` in Docker links. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. For more information about linking Docker containers, go to [Legacy container links](https://docs.aws.amazon.com/https://docs.docker.com/network/links/) in the Docker documentation. This parameter maps to ``Links`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--link`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - // This parameter is not supported for W + // This parameter is not supported for Windows containers. + // Containers that are collocated on a single container instance may be able to communicate with each other without requiring links or host port mappings. Network isolation is achieved on the container instance using security groups and VPC settings. Links pulumi.StringArrayInput `pulumi:"links"` // Linux-specific modifications that are applied to the container, such as Linux kernel capabilities. For more information see [KernelCapabilities](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_KernelCapabilities.html). // This parameter is not supported for Windows containers. LinuxParameters TaskDefinitionLinuxParametersPtrInput `pulumi:"linuxParameters"` // The log configuration specification for the container. - // This parameter maps to ``LogConfig`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--log-driver`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). By default, containers use the same logging driver that the Docker daemon uses. However, the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.aws.amazon.com/htt + // This parameter maps to ``LogConfig`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--log-driver`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). By default, containers use the same logging driver that the Docker daemon uses. However, the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.aws.amazon.com/https://docs.docker.com/engine/admin/logging/overview/) in the Docker documentation. + // Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon (shown in the [LogConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_LogConfiguration.html) data type). Additional log drivers may be available in future releases of the Amazon ECS container agent. + // This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'`` + // The Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the ``ECS_AVAILABLE_LOGGING_DRIVERS`` environment variable before containers placed on that instance can use these log configuration options. For more information, see [Amazon ECS Container Agent Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*. LogConfiguration TaskDefinitionLogConfigurationPtrInput `pulumi:"logConfiguration"` // The amount (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. The total amount of memory reserved for all containers within a task must be lower than the task ``memory`` value, if one is specified. This parameter maps to ``Memory`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). // If using the Fargate launch type, this parameter is optional. - // If using the EC2 launch type, you must specify either a task-level memory value or a container-level memory value. If you specify both a container-level ``memory`` and ``memoryReservation`` value, ``memory`` must be greater than ``memoryReserva + // If using the EC2 launch type, you must specify either a task-level memory value or a container-level memory value. If you specify both a container-level ``memory`` and ``memoryReservation`` value, ``memory`` must be greater than ``memoryReservation``. If you specify ``memoryReservation``, then that value is subtracted from the available memory resources for the container instance where the container is placed. Otherwise, the value of ``memory`` is used. + // The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container, so you should not specify fewer than 6 MiB of memory for your containers. + // The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container, so you should not specify fewer than 4 MiB of memory for your containers. Memory pulumi.IntPtrInput `pulumi:"memory"` // The soft limit (in MiB) of memory to reserve for the container. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit. However, your container can consume more memory when it needs to, up to either the hard limit specified with the ``memory`` parameter (if applicable), or all of the available memory on the container instance, whichever comes first. This parameter maps to ``MemoryReservation`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory-reservation`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - // If a task-level memory value is not specified, you must specify a non-zero integer for one or both of ``memory`` or ``memoryReservation`` in a container definiti + // If a task-level memory value is not specified, you must specify a non-zero integer for one or both of ``memory`` or ``memoryReservation`` in a container definition. If you specify both, ``memory`` must be greater than ``memoryReservation``. If you specify ``memoryReservation``, then that value is subtracted from the available memory resources for the container instance where the container is placed. Otherwise, the value of ``memory`` is used. + // For example, if your container normally uses 128 MiB of memory, but occasionally bursts to 256 MiB of memory for short periods of time, you can set a ``memoryReservation`` of 128 MiB, and a ``memory`` hard limit of 300 MiB. This configuration would allow the container to only reserve 128 MiB of memory from the remaining resources on the container instance, but also allow the container to consume more memory resources when needed. + // The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container. So, don't specify less than 6 MiB of memory for your containers. + // The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container. So, don't specify less than 4 MiB of memory for your containers. MemoryReservation pulumi.IntPtrInput `pulumi:"memoryReservation"` // The mount points for data volumes in your container. // This parameter maps to ``Volumes`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--volume`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). @@ -5752,7 +5807,8 @@ type TaskDefinitionContainerDefinitionArgs struct { // The list of port mappings for the container. Port mappings allow containers to access ports on the host container instance to send or receive traffic. // For task definitions that use the ``awsvpc`` network mode, you should only specify the ``containerPort``. The ``hostPort`` can be left blank or it must be the same value as the ``containerPort``. // Port mappings on Windows use the ``NetNAT`` gateway address rather than ``localhost``. There is no loopback for port mappings on Windows, so you cannot access a container's mapped port from the host itself. - // This parameter maps to ``PortBindings`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--publish`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). If the network mode of a task definition is set to + // This parameter maps to ``PortBindings`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--publish`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). If the network mode of a task definition is set to ``none``, then you can't specify port mappings. If the network mode of a task definition is set to ``host``, then host ports must either be undefined or they must match the container port in the port mapping. + // After a task reaches the ``RUNNING`` status, manual and automatic host and container port assignments are visible in the *Network Bindings* section of a container description for a selected task in the Amazon ECS console. The assignments are also visible in the ``networkBindings`` section [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) responses. PortMappings TaskDefinitionPortMappingArrayInput `pulumi:"portMappings"` // When this parameter is true, the container is given elevated privileges on the host container instance (similar to the ``root`` user). This parameter maps to ``Privileged`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--privileged`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). // This parameter is not supported for Windows containers or tasks run on FARGATElong. @@ -5774,7 +5830,8 @@ type TaskDefinitionContainerDefinitionArgs struct { // + Linux platform version ``1.3.0`` or later. // + Windows platform version ``1.0.0`` or later. // - // For tasks using the EC2 launch type, your container instances require at least version ``1.26.0`` of the container agent to use a container start timeout value. However + // For tasks using the EC2 launch type, your container instances require at least version ``1.26.0`` of the container agent to use a container start timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version ``1.26.0-1`` of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + // The valid values are 2-120 seconds. StartTimeout pulumi.IntPtrInput `pulumi:"startTimeout"` // Time duration (in seconds) to wait before the container is forcefully killed if it doesn't exit normally on its own. // For tasks using the Fargate launch type, the task or service requires the following platforms: @@ -5782,7 +5839,8 @@ type TaskDefinitionContainerDefinitionArgs struct { // + Windows platform version ``1.0.0`` or later. // // The max stop timeout value is 120 seconds and if the parameter is not specified, the default value of 30 seconds is used. - // For tasks that use the EC2 launch type, if the ``stopTimeout`` parameter isn't specified, the value set for the Amazon ECS container agent configuration variable ``ECS_CONTAINER_STOP_TIMEOUT`` is used. If neither the ``stopTimeout`` parameter or the ``ECS_CONTAINER_STOP_TIMEOUT`` agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to use a container stop timeout value. However, we recomm + // For tasks that use the EC2 launch type, if the ``stopTimeout`` parameter isn't specified, the value set for the Amazon ECS container agent configuration variable ``ECS_CONTAINER_STOP_TIMEOUT`` is used. If neither the ``stopTimeout`` parameter or the ``ECS_CONTAINER_STOP_TIMEOUT`` agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to use a container stop timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + // The valid values are 2-120 seconds. StopTimeout pulumi.IntPtrInput `pulumi:"stopTimeout"` // A list of namespaced kernel parameters to set in the container. This parameter maps to ``Sysctls`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--sysctl`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). For example, you can configure ``net.ipv4.tcp_keepalive_time`` setting to maintain longer lived connections. SystemControls TaskDefinitionSystemControlArrayInput `pulumi:"systemControls"` @@ -5868,7 +5926,12 @@ func (o TaskDefinitionContainerDefinitionOutput) Command() pulumi.StringArrayOut // // This field is optional for tasks using the Fargate launch type, and the only requirement is that the total amount of CPU reserved for all containers within a task be lower than the task-level ``cpu`` value. // You can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the [Amazon EC2 Instances](https://docs.aws.amazon.com/ec2/instance-types/) detail page by 1,024. -// Linux containers share unallocated CPU units with other containers on the cont +// Linux containers share unallocated CPU units with other containers on the container instance with the same ratio as their allocated amount. For example, if you run a single-container task on a single-core instance type with 512 CPU units specified for that container, and that's the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time. However, if you launched another copy of the same task on that container instance, each task is guaranteed a minimum of 512 CPU units when needed. Moreover, each container could float to higher CPU usage if the other container was not using it. If both tasks were 100% active all of the time, they would be limited to 512 CPU units. +// On Linux container instances, the Docker daemon on the container instance uses the CPU value to calculate the relative CPU share ratios for running containers. For more information, see [CPU share constraint](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#cpu-share-constraint) in the Docker documentation. The minimum valid CPU share value that the Linux kernel allows is 2. However, the CPU parameter isn't required, and you can use CPU values below 2 in your container definitions. For CPU values below 2 (including null), the behavior varies based on your Amazon ECS container agent version: +// + *Agent versions less than or equal to 1.1.0:* Null and zero CPU values are passed to Docker as 0, which Docker then converts to 1,024 CPU shares. CPU values of 1 are passed to Docker as 1, which the Linux kernel converts to two CPU shares. +// + *Agent versions greater than or equal to 1.2.0:* Null, zero, and CPU values of 1 are passed to Docker as 2. +// +// On Windows container instances, the CPU limit is enforced as an absolute limit, or a quota. Windows containers only have access to the specified amount of CPU that's described in the task definition. A null or zero CPU value is passed to Docker as ``0``, which Windows interprets as 1% of one CPU. func (o TaskDefinitionContainerDefinitionOutput) Cpu() pulumi.IntPtrOutput { return o.ApplyT(func(v TaskDefinitionContainerDefinition) *int { return v.Cpu }).(pulumi.IntPtrOutput) } @@ -5878,14 +5941,19 @@ func (o TaskDefinitionContainerDefinitionOutput) Cpu() pulumi.IntPtrOutput { // There are two formats for each ARN. // + credentialspecdomainless:MyARN You use credentialspecdomainless:MyARN to provide a CredSpec with an additional section for a secret in . You provide the login credentials to the domain in the secret. Each task that runs on any container instance can join different domains. You can use this format without joining the container instance to a domain. + credentialspec:MyARN You use credentialspec:MyARN to provide a CredSpec for a single domain. You must join the container instance to the domain before you start any tasks that use this task definition. // In both formats, replace ``MyARN`` with the ARN in SSM or Amazon S3. -// If you provide a ``credentialspecdomainless:MyARN``, the ``credspec`` must +// If you provide a ``credentialspecdomainless:MyARN``, the ``credspec`` must provide a ARN in ASMlong for a secret containing the username, password, and the domain to connect to. For better security, the instance isn't joined to the domain for domainless authentication. Other applications on the instance can't use the domainless credentials. You can use this parameter to run tasks on the same instance, even it the tasks need to join different domains. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) and [Using gMSAs for Linux Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html). func (o TaskDefinitionContainerDefinitionOutput) CredentialSpecs() pulumi.StringArrayOutput { return o.ApplyT(func(v TaskDefinitionContainerDefinition) []string { return v.CredentialSpecs }).(pulumi.StringArrayOutput) } // The dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed. // -// For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [ +// For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. +// For tasks using the Fargate launch type, the task or service requires the following platforms: +// + Linux platform version ``1.3.0`` or later. +// + Windows platform version ``1.0.0`` or later. +// +// If the task definition is used in a blue/green deployment that uses [AWS::CodeDeploy::DeploymentGroup BlueGreenDeploymentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-bluegreendeploymentconfiguration.html), the ``dependsOn`` parameter is not supported. For more information see [Issue #680](https://docs.aws.amazon.com/https://github.com/aws-cloudformation/cloudformation-coverage-roadmap/issues/680) on the on the GitHub website. func (o TaskDefinitionContainerDefinitionOutput) DependsOn() TaskDefinitionContainerDependencyArrayOutput { return o.ApplyT(func(v TaskDefinitionContainerDefinition) []TaskDefinitionContainerDependency { return v.DependsOn }).(TaskDefinitionContainerDependencyArrayOutput) } @@ -5920,7 +5988,10 @@ func (o TaskDefinitionContainerDefinitionOutput) DockerLabels() pulumi.StringMap // // For Linux tasks on EC2, this parameter can be used to reference custom labels for SELinux and AppArmor multi-level security systems. // For any tasks on EC2, this parameter can be used to reference a credential spec file that configures a container for Active Directory authentication. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) and [Using gMSAs for Linux Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html) in the *Amazon Elastic Container Service Developer Guide*. -// This parameter maps to ``SecurityOpt`` in the [Create a co +// This parameter maps to ``SecurityOpt`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--security-opt`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). +// The Amazon ECS container agent running on a container instance must register with the ``ECS_SELINUX_CAPABLE=true`` or ``ECS_APPARMOR_CAPABLE=true`` environment variables before containers placed on that instance can use these security options. For more information, see [Amazon ECS Container Agent Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*. +// For more information about valid values, see [Docker Run Security Configuration](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). +// Valid values: "no-new-privileges" | "apparmor:PROFILE" | "label:value" | "credentialspec:CredentialSpecFilePath" func (o TaskDefinitionContainerDefinitionOutput) DockerSecurityOptions() pulumi.StringArrayOutput { return o.ApplyT(func(v TaskDefinitionContainerDefinition) []string { return v.DockerSecurityOptions }).(pulumi.StringArrayOutput) } @@ -5942,7 +6013,7 @@ func (o TaskDefinitionContainerDefinitionOutput) Environment() TaskDefinitionKey // A list of files containing the environment variables to pass to a container. This parameter maps to the “--env-file“ option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). // // You can specify up to ten environment files. The file must have a ``.env`` file extension. Each line in an environment file contains an environment variable in ``VARIABLE=VALUE`` format. Lines beginning with ``#`` are treated as comments and are ignored. For more information about the environment variable file syntax, see [Declare default environment variables in file](https://docs.aws.amazon.com/https://docs.docker.com/compose/env-file/). -// If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend t +// If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Specifying Environment Variables](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) in the *Amazon Elastic Container Service Developer Guide*. func (o TaskDefinitionContainerDefinitionOutput) EnvironmentFiles() TaskDefinitionEnvironmentFileArrayOutput { return o.ApplyT(func(v TaskDefinitionContainerDefinition) []TaskDefinitionEnvironmentFile { return v.EnvironmentFiles }).(TaskDefinitionEnvironmentFileArrayOutput) } @@ -5981,7 +6052,11 @@ func (o TaskDefinitionContainerDefinitionOutput) Hostname() pulumi.StringPtrOutp } // The image used to start a container. This string is passed directly to the Docker daemon. By default, images in the Docker Hub registry are available. Other repositories are specified with either “repository-url/image:tag“ or “repository-url/image@digest“. Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to “Image“ in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the “IMAGE“ parameter of [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). -// - When a new task starts, the Amazon ECS container agent pulls the latest version of the specified image and tag for the container to use. However, subsequent updates to a repository image +// - When a new task starts, the Amazon ECS container agent pulls the latest version of the specified image and tag for the container to use. However, subsequent updates to a repository image aren't propagated to already running tasks. +// - Images in Amazon ECR repositories can be specified by either using the full “registry/repository:tag“ or “registry/repository@digest“. For example, “012345678910.dkr.ecr..amazonaws.com/:latest“ or “012345678910.dkr.ecr..amazonaws.com/@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE“. +// - Images in official repositories on Docker Hub use a single name (for example, “ubuntu“ or “mongo“). +// - Images in other repositories on Docker Hub are qualified with an organization name (for example, “amazon/amazon-ecs-agent“). +// - Images in other online repositories are qualified further by a domain name (for example, “quay.io/assemblyline/ubuntu“). func (o TaskDefinitionContainerDefinitionOutput) Image() pulumi.StringOutput { return o.ApplyT(func(v TaskDefinitionContainerDefinition) string { return v.Image }).(pulumi.StringOutput) } @@ -5993,7 +6068,8 @@ func (o TaskDefinitionContainerDefinitionOutput) Interactive() pulumi.BoolPtrOut // The “links“ parameter allows containers to communicate with each other without the need for port mappings. This parameter is only supported if the network mode of a task definition is “bridge“. The “name:internalName“ construct is analogous to “name:alias“ in Docker links. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. For more information about linking Docker containers, go to [Legacy container links](https://docs.aws.amazon.com/https://docs.docker.com/network/links/) in the Docker documentation. This parameter maps to “Links“ in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the “--link“ option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). // -// This parameter is not supported for W +// This parameter is not supported for Windows containers. +// Containers that are collocated on a single container instance may be able to communicate with each other without requiring links or host port mappings. Network isolation is achieved on the container instance using security groups and VPC settings. func (o TaskDefinitionContainerDefinitionOutput) Links() pulumi.StringArrayOutput { return o.ApplyT(func(v TaskDefinitionContainerDefinition) []string { return v.Links }).(pulumi.StringArrayOutput) } @@ -6007,7 +6083,10 @@ func (o TaskDefinitionContainerDefinitionOutput) LinuxParameters() TaskDefinitio // The log configuration specification for the container. // -// This parameter maps to ``LogConfig`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--log-driver`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). By default, containers use the same logging driver that the Docker daemon uses. However, the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.aws.amazon.com/htt +// This parameter maps to ``LogConfig`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--log-driver`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). By default, containers use the same logging driver that the Docker daemon uses. However, the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.aws.amazon.com/https://docs.docker.com/engine/admin/logging/overview/) in the Docker documentation. +// Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon (shown in the [LogConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_LogConfiguration.html) data type). Additional log drivers may be available in future releases of the Amazon ECS container agent. +// This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'`` +// The Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the ``ECS_AVAILABLE_LOGGING_DRIVERS`` environment variable before containers placed on that instance can use these log configuration options. For more information, see [Amazon ECS Container Agent Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*. func (o TaskDefinitionContainerDefinitionOutput) LogConfiguration() TaskDefinitionLogConfigurationPtrOutput { return o.ApplyT(func(v TaskDefinitionContainerDefinition) *TaskDefinitionLogConfiguration { return v.LogConfiguration }).(TaskDefinitionLogConfigurationPtrOutput) } @@ -6015,14 +6094,19 @@ func (o TaskDefinitionContainerDefinitionOutput) LogConfiguration() TaskDefiniti // The amount (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. The total amount of memory reserved for all containers within a task must be lower than the task “memory“ value, if one is specified. This parameter maps to “Memory“ in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the “--memory“ option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). // // If using the Fargate launch type, this parameter is optional. -// If using the EC2 launch type, you must specify either a task-level memory value or a container-level memory value. If you specify both a container-level ``memory`` and ``memoryReservation`` value, ``memory`` must be greater than ``memoryReserva +// If using the EC2 launch type, you must specify either a task-level memory value or a container-level memory value. If you specify both a container-level ``memory`` and ``memoryReservation`` value, ``memory`` must be greater than ``memoryReservation``. If you specify ``memoryReservation``, then that value is subtracted from the available memory resources for the container instance where the container is placed. Otherwise, the value of ``memory`` is used. +// The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container, so you should not specify fewer than 6 MiB of memory for your containers. +// The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container, so you should not specify fewer than 4 MiB of memory for your containers. func (o TaskDefinitionContainerDefinitionOutput) Memory() pulumi.IntPtrOutput { return o.ApplyT(func(v TaskDefinitionContainerDefinition) *int { return v.Memory }).(pulumi.IntPtrOutput) } // The soft limit (in MiB) of memory to reserve for the container. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit. However, your container can consume more memory when it needs to, up to either the hard limit specified with the “memory“ parameter (if applicable), or all of the available memory on the container instance, whichever comes first. This parameter maps to “MemoryReservation“ in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the “--memory-reservation“ option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). // -// If a task-level memory value is not specified, you must specify a non-zero integer for one or both of ``memory`` or ``memoryReservation`` in a container definiti +// If a task-level memory value is not specified, you must specify a non-zero integer for one or both of ``memory`` or ``memoryReservation`` in a container definition. If you specify both, ``memory`` must be greater than ``memoryReservation``. If you specify ``memoryReservation``, then that value is subtracted from the available memory resources for the container instance where the container is placed. Otherwise, the value of ``memory`` is used. +// For example, if your container normally uses 128 MiB of memory, but occasionally bursts to 256 MiB of memory for short periods of time, you can set a ``memoryReservation`` of 128 MiB, and a ``memory`` hard limit of 300 MiB. This configuration would allow the container to only reserve 128 MiB of memory from the remaining resources on the container instance, but also allow the container to consume more memory resources when needed. +// The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container. So, don't specify less than 6 MiB of memory for your containers. +// The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container. So, don't specify less than 4 MiB of memory for your containers. func (o TaskDefinitionContainerDefinitionOutput) MemoryReservation() pulumi.IntPtrOutput { return o.ApplyT(func(v TaskDefinitionContainerDefinition) *int { return v.MemoryReservation }).(pulumi.IntPtrOutput) } @@ -6044,7 +6128,8 @@ func (o TaskDefinitionContainerDefinitionOutput) Name() pulumi.StringOutput { // // For task definitions that use the ``awsvpc`` network mode, you should only specify the ``containerPort``. The ``hostPort`` can be left blank or it must be the same value as the ``containerPort``. // Port mappings on Windows use the ``NetNAT`` gateway address rather than ``localhost``. There is no loopback for port mappings on Windows, so you cannot access a container's mapped port from the host itself. -// This parameter maps to ``PortBindings`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--publish`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). If the network mode of a task definition is set to +// This parameter maps to ``PortBindings`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--publish`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). If the network mode of a task definition is set to ``none``, then you can't specify port mappings. If the network mode of a task definition is set to ``host``, then host ports must either be undefined or they must match the container port in the port mapping. +// After a task reaches the ``RUNNING`` status, manual and automatic host and container port assignments are visible in the *Network Bindings* section of a container description for a selected task in the Amazon ECS console. The assignments are also visible in the ``networkBindings`` section [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) responses. func (o TaskDefinitionContainerDefinitionOutput) PortMappings() TaskDefinitionPortMappingArrayOutput { return o.ApplyT(func(v TaskDefinitionContainerDefinition) []TaskDefinitionPortMapping { return v.PortMappings }).(TaskDefinitionPortMappingArrayOutput) } @@ -6094,7 +6179,8 @@ func (o TaskDefinitionContainerDefinitionOutput) Secrets() TaskDefinitionSecretA // + Linux platform version ``1.3.0`` or later. // + Windows platform version ``1.0.0`` or later. // -// For tasks using the EC2 launch type, your container instances require at least version ``1.26.0`` of the container agent to use a container start timeout value. However +// For tasks using the EC2 launch type, your container instances require at least version ``1.26.0`` of the container agent to use a container start timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version ``1.26.0-1`` of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. +// The valid values are 2-120 seconds. func (o TaskDefinitionContainerDefinitionOutput) StartTimeout() pulumi.IntPtrOutput { return o.ApplyT(func(v TaskDefinitionContainerDefinition) *int { return v.StartTimeout }).(pulumi.IntPtrOutput) } @@ -6106,7 +6192,8 @@ func (o TaskDefinitionContainerDefinitionOutput) StartTimeout() pulumi.IntPtrOut // + Windows platform version ``1.0.0`` or later. // // The max stop timeout value is 120 seconds and if the parameter is not specified, the default value of 30 seconds is used. -// For tasks that use the EC2 launch type, if the ``stopTimeout`` parameter isn't specified, the value set for the Amazon ECS container agent configuration variable ``ECS_CONTAINER_STOP_TIMEOUT`` is used. If neither the ``stopTimeout`` parameter or the ``ECS_CONTAINER_STOP_TIMEOUT`` agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to use a container stop timeout value. However, we recomm +// For tasks that use the EC2 launch type, if the ``stopTimeout`` parameter isn't specified, the value set for the Amazon ECS container agent configuration variable ``ECS_CONTAINER_STOP_TIMEOUT`` is used. If neither the ``stopTimeout`` parameter or the ``ECS_CONTAINER_STOP_TIMEOUT`` agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to use a container stop timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. +// The valid values are 2-120 seconds. func (o TaskDefinitionContainerDefinitionOutput) StopTimeout() pulumi.IntPtrOutput { return o.ApplyT(func(v TaskDefinitionContainerDefinition) *int { return v.StopTimeout }).(pulumi.IntPtrOutput) } @@ -6171,13 +6258,14 @@ func (o TaskDefinitionContainerDefinitionArrayOutput) Index(i pulumi.IntInput) T // The “ContainerDependency“ property specifies the dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed. // -// Your Amazon ECS container instances require at least version 1.26.0 of the container agent to enable container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you are using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For m +// Your Amazon ECS container instances require at least version 1.26.0 of the container agent to enable container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you are using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. +// For tasks using the Fargate launch type, this parameter requires that the task or service uses platform version 1.3.0 or later. type TaskDefinitionContainerDependency struct { // The dependency condition of the container. The following are the available conditions and their behavior: // + ``START`` - This condition emulates the behavior of links and volumes today. It validates that a dependent container is started before permitting other containers to start. // + ``COMPLETE`` - This condition validates that a dependent container runs to completion (exits) before permitting other containers to start. This can be useful for nonessential containers that run a script and then exit. This condition can't be set on an essential container. // + ``SUCCESS`` - This condition is the same as ``COMPLETE``, but it also requires that the container exits with a ``zero`` status. This condition can't be set on an essential container. - // + ``HEALTHY`` - This condition validates that the dependent container passes its Docker health check before permitting other containers to start. This requires that the dependent container has health checks configured. This condition is confi + // + ``HEALTHY`` - This condition validates that the dependent container passes its Docker health check before permitting other containers to start. This requires that the dependent container has health checks configured. This condition is confirmed only at task startup. Condition *string `pulumi:"condition"` // The name of a container. ContainerName *string `pulumi:"containerName"` @@ -6196,13 +6284,14 @@ type TaskDefinitionContainerDependencyInput interface { // The “ContainerDependency“ property specifies the dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed. // -// Your Amazon ECS container instances require at least version 1.26.0 of the container agent to enable container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you are using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For m +// Your Amazon ECS container instances require at least version 1.26.0 of the container agent to enable container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you are using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. +// For tasks using the Fargate launch type, this parameter requires that the task or service uses platform version 1.3.0 or later. type TaskDefinitionContainerDependencyArgs struct { // The dependency condition of the container. The following are the available conditions and their behavior: // + ``START`` - This condition emulates the behavior of links and volumes today. It validates that a dependent container is started before permitting other containers to start. // + ``COMPLETE`` - This condition validates that a dependent container runs to completion (exits) before permitting other containers to start. This can be useful for nonessential containers that run a script and then exit. This condition can't be set on an essential container. // + ``SUCCESS`` - This condition is the same as ``COMPLETE``, but it also requires that the container exits with a ``zero`` status. This condition can't be set on an essential container. - // + ``HEALTHY`` - This condition validates that the dependent container passes its Docker health check before permitting other containers to start. This requires that the dependent container has health checks configured. This condition is confi + // + ``HEALTHY`` - This condition validates that the dependent container passes its Docker health check before permitting other containers to start. This requires that the dependent container has health checks configured. This condition is confirmed only at task startup. Condition pulumi.StringPtrInput `pulumi:"condition"` // The name of a container. ContainerName pulumi.StringPtrInput `pulumi:"containerName"` @@ -6247,7 +6336,8 @@ func (i TaskDefinitionContainerDependencyArray) ToTaskDefinitionContainerDepende // The “ContainerDependency“ property specifies the dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed. // -// Your Amazon ECS container instances require at least version 1.26.0 of the container agent to enable container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you are using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For m +// Your Amazon ECS container instances require at least version 1.26.0 of the container agent to enable container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you are using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. +// For tasks using the Fargate launch type, this parameter requires that the task or service uses platform version 1.3.0 or later. type TaskDefinitionContainerDependencyOutput struct{ *pulumi.OutputState } func (TaskDefinitionContainerDependencyOutput) ElementType() reflect.Type { @@ -6266,7 +6356,7 @@ func (o TaskDefinitionContainerDependencyOutput) ToTaskDefinitionContainerDepend // - “START“ - This condition emulates the behavior of links and volumes today. It validates that a dependent container is started before permitting other containers to start. // - “COMPLETE“ - This condition validates that a dependent container runs to completion (exits) before permitting other containers to start. This can be useful for nonessential containers that run a script and then exit. This condition can't be set on an essential container. // - “SUCCESS“ - This condition is the same as “COMPLETE“, but it also requires that the container exits with a “zero“ status. This condition can't be set on an essential container. -// - “HEALTHY“ - This condition validates that the dependent container passes its Docker health check before permitting other containers to start. This requires that the dependent container has health checks configured. This condition is confi +// - “HEALTHY“ - This condition validates that the dependent container passes its Docker health check before permitting other containers to start. This requires that the dependent container has health checks configured. This condition is confirmed only at task startup. func (o TaskDefinitionContainerDependencyOutput) Condition() pulumi.StringPtrOutput { return o.ApplyT(func(v TaskDefinitionContainerDependency) *string { return v.Condition }).(pulumi.StringPtrOutput) } @@ -6864,11 +6954,18 @@ func (o TaskDefinitionEfsVolumeConfigurationPtrOutput) TransitEncryptionPort() p // A list of files containing the environment variables to pass to a container. You can specify up to ten environment files. The file must have a “.env“ file extension. Each line in an environment file should contain an environment variable in “VARIABLE=VALUE“ format. Lines beginning with “#“ are treated as comments and are ignored. // -// If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Specifying environment variables](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) in the *Amazon Elastic Container Service Developer Guide*. +// If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Use a file to pass environment variables to a container](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/use-environment-file.html) in the *Amazon Elastic Container Service Developer Guide*. +// Environment variable files are objects in Amazon S3 and all Amazon S3 security considerations apply. // You must use the following platforms for the Fargate launch type: -// + Linux platform version ``1.4.0`` or la +// + Linux platform version ``1.4.0`` or later. +// + Windows platform version ``1.0.0`` or later. +// +// Consider the following when using the Fargate launch type: +// + The file is handled like a native Docker env-file. +// + There is no support for shell escape handling. +// + The container entry point interperts the ``VARIABLE`` values. type TaskDefinitionEnvironmentFile struct { - // The file type to use. The only supported value is ``s3``. + // The file type to use. Environment files are objects in Amazon S3. The only supported value is ``s3``. Type *string `pulumi:"type"` // The Amazon Resource Name (ARN) of the Amazon S3 object containing the environment variable file. Value *string `pulumi:"value"` @@ -6887,11 +6984,18 @@ type TaskDefinitionEnvironmentFileInput interface { // A list of files containing the environment variables to pass to a container. You can specify up to ten environment files. The file must have a “.env“ file extension. Each line in an environment file should contain an environment variable in “VARIABLE=VALUE“ format. Lines beginning with “#“ are treated as comments and are ignored. // -// If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Specifying environment variables](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) in the *Amazon Elastic Container Service Developer Guide*. +// If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Use a file to pass environment variables to a container](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/use-environment-file.html) in the *Amazon Elastic Container Service Developer Guide*. +// Environment variable files are objects in Amazon S3 and all Amazon S3 security considerations apply. // You must use the following platforms for the Fargate launch type: -// + Linux platform version ``1.4.0`` or la +// + Linux platform version ``1.4.0`` or later. +// + Windows platform version ``1.0.0`` or later. +// +// Consider the following when using the Fargate launch type: +// + The file is handled like a native Docker env-file. +// + There is no support for shell escape handling. +// + The container entry point interperts the ``VARIABLE`` values. type TaskDefinitionEnvironmentFileArgs struct { - // The file type to use. The only supported value is ``s3``. + // The file type to use. Environment files are objects in Amazon S3. The only supported value is ``s3``. Type pulumi.StringPtrInput `pulumi:"type"` // The Amazon Resource Name (ARN) of the Amazon S3 object containing the environment variable file. Value pulumi.StringPtrInput `pulumi:"value"` @@ -6936,9 +7040,16 @@ func (i TaskDefinitionEnvironmentFileArray) ToTaskDefinitionEnvironmentFileArray // A list of files containing the environment variables to pass to a container. You can specify up to ten environment files. The file must have a “.env“ file extension. Each line in an environment file should contain an environment variable in “VARIABLE=VALUE“ format. Lines beginning with “#“ are treated as comments and are ignored. // -// If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Specifying environment variables](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) in the *Amazon Elastic Container Service Developer Guide*. +// If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Use a file to pass environment variables to a container](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/use-environment-file.html) in the *Amazon Elastic Container Service Developer Guide*. +// Environment variable files are objects in Amazon S3 and all Amazon S3 security considerations apply. // You must use the following platforms for the Fargate launch type: -// + Linux platform version ``1.4.0`` or la +// + Linux platform version ``1.4.0`` or later. +// + Windows platform version ``1.0.0`` or later. +// +// Consider the following when using the Fargate launch type: +// + The file is handled like a native Docker env-file. +// + There is no support for shell escape handling. +// + The container entry point interperts the ``VARIABLE`` values. type TaskDefinitionEnvironmentFileOutput struct{ *pulumi.OutputState } func (TaskDefinitionEnvironmentFileOutput) ElementType() reflect.Type { @@ -6953,7 +7064,7 @@ func (o TaskDefinitionEnvironmentFileOutput) ToTaskDefinitionEnvironmentFileOutp return o } -// The file type to use. The only supported value is “s3“. +// The file type to use. Environment files are objects in Amazon S3. The only supported value is “s3“. func (o TaskDefinitionEnvironmentFileOutput) Type() pulumi.StringPtrOutput { return o.ApplyT(func(v TaskDefinitionEnvironmentFile) *string { return v.Type }).(pulumi.StringPtrOutput) } @@ -6989,7 +7100,7 @@ func (o TaskDefinitionEnvironmentFileArrayOutput) Index(i pulumi.IntInput) TaskD // + Linux platform version ``1.4.0`` or later. // + Windows platform version ``1.0.0`` or later. type TaskDefinitionEphemeralStorage struct { - // The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``21`` GiB and the maximum supported value is ``200`` GiB. + // The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``20`` GiB and the maximum supported value is ``200`` GiB. SizeInGiB *int `pulumi:"sizeInGiB"` } @@ -7010,7 +7121,7 @@ type TaskDefinitionEphemeralStorageInput interface { // + Linux platform version ``1.4.0`` or later. // + Windows platform version ``1.0.0`` or later. type TaskDefinitionEphemeralStorageArgs struct { - // The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``21`` GiB and the maximum supported value is ``200`` GiB. + // The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``20`` GiB and the maximum supported value is ``200`` GiB. SizeInGiB pulumi.IntPtrInput `pulumi:"sizeInGiB"` } @@ -7096,7 +7207,7 @@ func (o TaskDefinitionEphemeralStorageOutput) ToTaskDefinitionEphemeralStoragePt }).(TaskDefinitionEphemeralStoragePtrOutput) } -// The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is “21“ GiB and the maximum supported value is “200“ GiB. +// The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is “20“ GiB and the maximum supported value is “200“ GiB. func (o TaskDefinitionEphemeralStorageOutput) SizeInGiB() pulumi.IntPtrOutput { return o.ApplyT(func(v TaskDefinitionEphemeralStorage) *int { return v.SizeInGiB }).(pulumi.IntPtrOutput) } @@ -7125,7 +7236,7 @@ func (o TaskDefinitionEphemeralStoragePtrOutput) Elem() TaskDefinitionEphemeralS }).(TaskDefinitionEphemeralStorageOutput) } -// The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is “21“ GiB and the maximum supported value is “200“ GiB. +// The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is “20“ GiB and the maximum supported value is “200“ GiB. func (o TaskDefinitionEphemeralStoragePtrOutput) SizeInGiB() pulumi.IntPtrOutput { return o.ApplyT(func(v *TaskDefinitionEphemeralStorage) *int { if v == nil { @@ -7135,13 +7246,326 @@ func (o TaskDefinitionEphemeralStoragePtrOutput) SizeInGiB() pulumi.IntPtrOutput }).(pulumi.IntPtrOutput) } +type TaskDefinitionFSxAuthorizationConfig struct { + CredentialsParameter string `pulumi:"credentialsParameter"` + Domain string `pulumi:"domain"` +} + +// TaskDefinitionFSxAuthorizationConfigInput is an input type that accepts TaskDefinitionFSxAuthorizationConfigArgs and TaskDefinitionFSxAuthorizationConfigOutput values. +// You can construct a concrete instance of `TaskDefinitionFSxAuthorizationConfigInput` via: +// +// TaskDefinitionFSxAuthorizationConfigArgs{...} +type TaskDefinitionFSxAuthorizationConfigInput interface { + pulumi.Input + + ToTaskDefinitionFSxAuthorizationConfigOutput() TaskDefinitionFSxAuthorizationConfigOutput + ToTaskDefinitionFSxAuthorizationConfigOutputWithContext(context.Context) TaskDefinitionFSxAuthorizationConfigOutput +} + +type TaskDefinitionFSxAuthorizationConfigArgs struct { + CredentialsParameter pulumi.StringInput `pulumi:"credentialsParameter"` + Domain pulumi.StringInput `pulumi:"domain"` +} + +func (TaskDefinitionFSxAuthorizationConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionFSxAuthorizationConfig)(nil)).Elem() +} + +func (i TaskDefinitionFSxAuthorizationConfigArgs) ToTaskDefinitionFSxAuthorizationConfigOutput() TaskDefinitionFSxAuthorizationConfigOutput { + return i.ToTaskDefinitionFSxAuthorizationConfigOutputWithContext(context.Background()) +} + +func (i TaskDefinitionFSxAuthorizationConfigArgs) ToTaskDefinitionFSxAuthorizationConfigOutputWithContext(ctx context.Context) TaskDefinitionFSxAuthorizationConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionFSxAuthorizationConfigOutput) +} + +func (i TaskDefinitionFSxAuthorizationConfigArgs) ToTaskDefinitionFSxAuthorizationConfigPtrOutput() TaskDefinitionFSxAuthorizationConfigPtrOutput { + return i.ToTaskDefinitionFSxAuthorizationConfigPtrOutputWithContext(context.Background()) +} + +func (i TaskDefinitionFSxAuthorizationConfigArgs) ToTaskDefinitionFSxAuthorizationConfigPtrOutputWithContext(ctx context.Context) TaskDefinitionFSxAuthorizationConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionFSxAuthorizationConfigOutput).ToTaskDefinitionFSxAuthorizationConfigPtrOutputWithContext(ctx) +} + +// TaskDefinitionFSxAuthorizationConfigPtrInput is an input type that accepts TaskDefinitionFSxAuthorizationConfigArgs, TaskDefinitionFSxAuthorizationConfigPtr and TaskDefinitionFSxAuthorizationConfigPtrOutput values. +// You can construct a concrete instance of `TaskDefinitionFSxAuthorizationConfigPtrInput` via: +// +// TaskDefinitionFSxAuthorizationConfigArgs{...} +// +// or: +// +// nil +type TaskDefinitionFSxAuthorizationConfigPtrInput interface { + pulumi.Input + + ToTaskDefinitionFSxAuthorizationConfigPtrOutput() TaskDefinitionFSxAuthorizationConfigPtrOutput + ToTaskDefinitionFSxAuthorizationConfigPtrOutputWithContext(context.Context) TaskDefinitionFSxAuthorizationConfigPtrOutput +} + +type taskDefinitionFSxAuthorizationConfigPtrType TaskDefinitionFSxAuthorizationConfigArgs + +func TaskDefinitionFSxAuthorizationConfigPtr(v *TaskDefinitionFSxAuthorizationConfigArgs) TaskDefinitionFSxAuthorizationConfigPtrInput { + return (*taskDefinitionFSxAuthorizationConfigPtrType)(v) +} + +func (*taskDefinitionFSxAuthorizationConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinitionFSxAuthorizationConfig)(nil)).Elem() +} + +func (i *taskDefinitionFSxAuthorizationConfigPtrType) ToTaskDefinitionFSxAuthorizationConfigPtrOutput() TaskDefinitionFSxAuthorizationConfigPtrOutput { + return i.ToTaskDefinitionFSxAuthorizationConfigPtrOutputWithContext(context.Background()) +} + +func (i *taskDefinitionFSxAuthorizationConfigPtrType) ToTaskDefinitionFSxAuthorizationConfigPtrOutputWithContext(ctx context.Context) TaskDefinitionFSxAuthorizationConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionFSxAuthorizationConfigPtrOutput) +} + +type TaskDefinitionFSxAuthorizationConfigOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionFSxAuthorizationConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionFSxAuthorizationConfig)(nil)).Elem() +} + +func (o TaskDefinitionFSxAuthorizationConfigOutput) ToTaskDefinitionFSxAuthorizationConfigOutput() TaskDefinitionFSxAuthorizationConfigOutput { + return o +} + +func (o TaskDefinitionFSxAuthorizationConfigOutput) ToTaskDefinitionFSxAuthorizationConfigOutputWithContext(ctx context.Context) TaskDefinitionFSxAuthorizationConfigOutput { + return o +} + +func (o TaskDefinitionFSxAuthorizationConfigOutput) ToTaskDefinitionFSxAuthorizationConfigPtrOutput() TaskDefinitionFSxAuthorizationConfigPtrOutput { + return o.ToTaskDefinitionFSxAuthorizationConfigPtrOutputWithContext(context.Background()) +} + +func (o TaskDefinitionFSxAuthorizationConfigOutput) ToTaskDefinitionFSxAuthorizationConfigPtrOutputWithContext(ctx context.Context) TaskDefinitionFSxAuthorizationConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TaskDefinitionFSxAuthorizationConfig) *TaskDefinitionFSxAuthorizationConfig { + return &v + }).(TaskDefinitionFSxAuthorizationConfigPtrOutput) +} + +func (o TaskDefinitionFSxAuthorizationConfigOutput) CredentialsParameter() pulumi.StringOutput { + return o.ApplyT(func(v TaskDefinitionFSxAuthorizationConfig) string { return v.CredentialsParameter }).(pulumi.StringOutput) +} + +func (o TaskDefinitionFSxAuthorizationConfigOutput) Domain() pulumi.StringOutput { + return o.ApplyT(func(v TaskDefinitionFSxAuthorizationConfig) string { return v.Domain }).(pulumi.StringOutput) +} + +type TaskDefinitionFSxAuthorizationConfigPtrOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionFSxAuthorizationConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinitionFSxAuthorizationConfig)(nil)).Elem() +} + +func (o TaskDefinitionFSxAuthorizationConfigPtrOutput) ToTaskDefinitionFSxAuthorizationConfigPtrOutput() TaskDefinitionFSxAuthorizationConfigPtrOutput { + return o +} + +func (o TaskDefinitionFSxAuthorizationConfigPtrOutput) ToTaskDefinitionFSxAuthorizationConfigPtrOutputWithContext(ctx context.Context) TaskDefinitionFSxAuthorizationConfigPtrOutput { + return o +} + +func (o TaskDefinitionFSxAuthorizationConfigPtrOutput) Elem() TaskDefinitionFSxAuthorizationConfigOutput { + return o.ApplyT(func(v *TaskDefinitionFSxAuthorizationConfig) TaskDefinitionFSxAuthorizationConfig { + if v != nil { + return *v + } + var ret TaskDefinitionFSxAuthorizationConfig + return ret + }).(TaskDefinitionFSxAuthorizationConfigOutput) +} + +func (o TaskDefinitionFSxAuthorizationConfigPtrOutput) CredentialsParameter() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskDefinitionFSxAuthorizationConfig) *string { + if v == nil { + return nil + } + return &v.CredentialsParameter + }).(pulumi.StringPtrOutput) +} + +func (o TaskDefinitionFSxAuthorizationConfigPtrOutput) Domain() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskDefinitionFSxAuthorizationConfig) *string { + if v == nil { + return nil + } + return &v.Domain + }).(pulumi.StringPtrOutput) +} + +type TaskDefinitionFSxWindowsFileServerVolumeConfiguration struct { + AuthorizationConfig *TaskDefinitionFSxAuthorizationConfig `pulumi:"authorizationConfig"` + FileSystemId string `pulumi:"fileSystemId"` + RootDirectory string `pulumi:"rootDirectory"` +} + +// TaskDefinitionFSxWindowsFileServerVolumeConfigurationInput is an input type that accepts TaskDefinitionFSxWindowsFileServerVolumeConfigurationArgs and TaskDefinitionFSxWindowsFileServerVolumeConfigurationOutput values. +// You can construct a concrete instance of `TaskDefinitionFSxWindowsFileServerVolumeConfigurationInput` via: +// +// TaskDefinitionFSxWindowsFileServerVolumeConfigurationArgs{...} +type TaskDefinitionFSxWindowsFileServerVolumeConfigurationInput interface { + pulumi.Input + + ToTaskDefinitionFSxWindowsFileServerVolumeConfigurationOutput() TaskDefinitionFSxWindowsFileServerVolumeConfigurationOutput + ToTaskDefinitionFSxWindowsFileServerVolumeConfigurationOutputWithContext(context.Context) TaskDefinitionFSxWindowsFileServerVolumeConfigurationOutput +} + +type TaskDefinitionFSxWindowsFileServerVolumeConfigurationArgs struct { + AuthorizationConfig TaskDefinitionFSxAuthorizationConfigPtrInput `pulumi:"authorizationConfig"` + FileSystemId pulumi.StringInput `pulumi:"fileSystemId"` + RootDirectory pulumi.StringInput `pulumi:"rootDirectory"` +} + +func (TaskDefinitionFSxWindowsFileServerVolumeConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionFSxWindowsFileServerVolumeConfiguration)(nil)).Elem() +} + +func (i TaskDefinitionFSxWindowsFileServerVolumeConfigurationArgs) ToTaskDefinitionFSxWindowsFileServerVolumeConfigurationOutput() TaskDefinitionFSxWindowsFileServerVolumeConfigurationOutput { + return i.ToTaskDefinitionFSxWindowsFileServerVolumeConfigurationOutputWithContext(context.Background()) +} + +func (i TaskDefinitionFSxWindowsFileServerVolumeConfigurationArgs) ToTaskDefinitionFSxWindowsFileServerVolumeConfigurationOutputWithContext(ctx context.Context) TaskDefinitionFSxWindowsFileServerVolumeConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionFSxWindowsFileServerVolumeConfigurationOutput) +} + +func (i TaskDefinitionFSxWindowsFileServerVolumeConfigurationArgs) ToTaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutput() TaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutput { + return i.ToTaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutputWithContext(context.Background()) +} + +func (i TaskDefinitionFSxWindowsFileServerVolumeConfigurationArgs) ToTaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutputWithContext(ctx context.Context) TaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionFSxWindowsFileServerVolumeConfigurationOutput).ToTaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutputWithContext(ctx) +} + +// TaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrInput is an input type that accepts TaskDefinitionFSxWindowsFileServerVolumeConfigurationArgs, TaskDefinitionFSxWindowsFileServerVolumeConfigurationPtr and TaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutput values. +// You can construct a concrete instance of `TaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrInput` via: +// +// TaskDefinitionFSxWindowsFileServerVolumeConfigurationArgs{...} +// +// or: +// +// nil +type TaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrInput interface { + pulumi.Input + + ToTaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutput() TaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutput + ToTaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutputWithContext(context.Context) TaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutput +} + +type taskDefinitionFSxWindowsFileServerVolumeConfigurationPtrType TaskDefinitionFSxWindowsFileServerVolumeConfigurationArgs + +func TaskDefinitionFSxWindowsFileServerVolumeConfigurationPtr(v *TaskDefinitionFSxWindowsFileServerVolumeConfigurationArgs) TaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrInput { + return (*taskDefinitionFSxWindowsFileServerVolumeConfigurationPtrType)(v) +} + +func (*taskDefinitionFSxWindowsFileServerVolumeConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinitionFSxWindowsFileServerVolumeConfiguration)(nil)).Elem() +} + +func (i *taskDefinitionFSxWindowsFileServerVolumeConfigurationPtrType) ToTaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutput() TaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutput { + return i.ToTaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *taskDefinitionFSxWindowsFileServerVolumeConfigurationPtrType) ToTaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutputWithContext(ctx context.Context) TaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutput) +} + +type TaskDefinitionFSxWindowsFileServerVolumeConfigurationOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionFSxWindowsFileServerVolumeConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionFSxWindowsFileServerVolumeConfiguration)(nil)).Elem() +} + +func (o TaskDefinitionFSxWindowsFileServerVolumeConfigurationOutput) ToTaskDefinitionFSxWindowsFileServerVolumeConfigurationOutput() TaskDefinitionFSxWindowsFileServerVolumeConfigurationOutput { + return o +} + +func (o TaskDefinitionFSxWindowsFileServerVolumeConfigurationOutput) ToTaskDefinitionFSxWindowsFileServerVolumeConfigurationOutputWithContext(ctx context.Context) TaskDefinitionFSxWindowsFileServerVolumeConfigurationOutput { + return o +} + +func (o TaskDefinitionFSxWindowsFileServerVolumeConfigurationOutput) ToTaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutput() TaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutput { + return o.ToTaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutputWithContext(context.Background()) +} + +func (o TaskDefinitionFSxWindowsFileServerVolumeConfigurationOutput) ToTaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutputWithContext(ctx context.Context) TaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TaskDefinitionFSxWindowsFileServerVolumeConfiguration) *TaskDefinitionFSxWindowsFileServerVolumeConfiguration { + return &v + }).(TaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutput) +} + +func (o TaskDefinitionFSxWindowsFileServerVolumeConfigurationOutput) AuthorizationConfig() TaskDefinitionFSxAuthorizationConfigPtrOutput { + return o.ApplyT(func(v TaskDefinitionFSxWindowsFileServerVolumeConfiguration) *TaskDefinitionFSxAuthorizationConfig { + return v.AuthorizationConfig + }).(TaskDefinitionFSxAuthorizationConfigPtrOutput) +} + +func (o TaskDefinitionFSxWindowsFileServerVolumeConfigurationOutput) FileSystemId() pulumi.StringOutput { + return o.ApplyT(func(v TaskDefinitionFSxWindowsFileServerVolumeConfiguration) string { return v.FileSystemId }).(pulumi.StringOutput) +} + +func (o TaskDefinitionFSxWindowsFileServerVolumeConfigurationOutput) RootDirectory() pulumi.StringOutput { + return o.ApplyT(func(v TaskDefinitionFSxWindowsFileServerVolumeConfiguration) string { return v.RootDirectory }).(pulumi.StringOutput) +} + +type TaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinitionFSxWindowsFileServerVolumeConfiguration)(nil)).Elem() +} + +func (o TaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutput) ToTaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutput() TaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutput { + return o +} + +func (o TaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutput) ToTaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutputWithContext(ctx context.Context) TaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutput { + return o +} + +func (o TaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutput) Elem() TaskDefinitionFSxWindowsFileServerVolumeConfigurationOutput { + return o.ApplyT(func(v *TaskDefinitionFSxWindowsFileServerVolumeConfiguration) TaskDefinitionFSxWindowsFileServerVolumeConfiguration { + if v != nil { + return *v + } + var ret TaskDefinitionFSxWindowsFileServerVolumeConfiguration + return ret + }).(TaskDefinitionFSxWindowsFileServerVolumeConfigurationOutput) +} + +func (o TaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutput) AuthorizationConfig() TaskDefinitionFSxAuthorizationConfigPtrOutput { + return o.ApplyT(func(v *TaskDefinitionFSxWindowsFileServerVolumeConfiguration) *TaskDefinitionFSxAuthorizationConfig { + if v == nil { + return nil + } + return v.AuthorizationConfig + }).(TaskDefinitionFSxAuthorizationConfigPtrOutput) +} + +func (o TaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutput) FileSystemId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskDefinitionFSxWindowsFileServerVolumeConfiguration) *string { + if v == nil { + return nil + } + return &v.FileSystemId + }).(pulumi.StringPtrOutput) +} + +func (o TaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutput) RootDirectory() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskDefinitionFSxWindowsFileServerVolumeConfiguration) *string { + if v == nil { + return nil + } + return &v.RootDirectory + }).(pulumi.StringPtrOutput) +} + // The FireLens configuration for the container. This is used to specify and configure a log router for container logs. For more information, see [Custom log routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*. type TaskDefinitionFirelensConfiguration struct { // The options to use when configuring the log router. This field is optional and can be used to add additional metadata, such as the task, task definition, cluster, and container instance details to the log event. // If specified, valid option keys are: - // + ``enable-ecs-log-metadata``, which can be ``true`` or ``false`` - // + ``config-file-type``, which can be ``s3`` or ``file`` - // + ``config-file-value``, which is either an S3 ARN or a file path + // + ``enable-ecs-log-metadata``, which can be ``true`` or ``false`` + // + ``config-file-type``, which can be ``s3`` or ``file`` + // + ``config-file-value``, which is either an S3 ARN or a file path Options map[string]string `pulumi:"options"` // The log router to use. The valid values are ``fluentd`` or ``fluentbit``. Type *string `pulumi:"type"` @@ -7162,9 +7586,9 @@ type TaskDefinitionFirelensConfigurationInput interface { type TaskDefinitionFirelensConfigurationArgs struct { // The options to use when configuring the log router. This field is optional and can be used to add additional metadata, such as the task, task definition, cluster, and container instance details to the log event. // If specified, valid option keys are: - // + ``enable-ecs-log-metadata``, which can be ``true`` or ``false`` - // + ``config-file-type``, which can be ``s3`` or ``file`` - // + ``config-file-value``, which is either an S3 ARN or a file path + // + ``enable-ecs-log-metadata``, which can be ``true`` or ``false`` + // + ``config-file-type``, which can be ``s3`` or ``file`` + // + ``config-file-value``, which is either an S3 ARN or a file path Options pulumi.StringMapInput `pulumi:"options"` // The log router to use. The valid values are ``fluentd`` or ``fluentbit``. Type pulumi.StringPtrInput `pulumi:"type"` @@ -7251,9 +7675,9 @@ func (o TaskDefinitionFirelensConfigurationOutput) ToTaskDefinitionFirelensConfi // The options to use when configuring the log router. This field is optional and can be used to add additional metadata, such as the task, task definition, cluster, and container instance details to the log event. // // If specified, valid option keys are: -// + ``enable-ecs-log-metadata``, which can be ``true`` or ``false`` -// + ``config-file-type``, which can be ``s3`` or ``file`` -// + ``config-file-value``, which is either an S3 ARN or a file path +// + ``enable-ecs-log-metadata``, which can be ``true`` or ``false`` +// + ``config-file-type``, which can be ``s3`` or ``file`` +// + ``config-file-value``, which is either an S3 ARN or a file path func (o TaskDefinitionFirelensConfigurationOutput) Options() pulumi.StringMapOutput { return o.ApplyT(func(v TaskDefinitionFirelensConfiguration) map[string]string { return v.Options }).(pulumi.StringMapOutput) } @@ -7290,9 +7714,9 @@ func (o TaskDefinitionFirelensConfigurationPtrOutput) Elem() TaskDefinitionFirel // The options to use when configuring the log router. This field is optional and can be used to add additional metadata, such as the task, task definition, cluster, and container instance details to the log event. // // If specified, valid option keys are: -// + ``enable-ecs-log-metadata``, which can be ``true`` or ``false`` -// + ``config-file-type``, which can be ``s3`` or ``file`` -// + ``config-file-value``, which is either an S3 ARN or a file path +// + ``enable-ecs-log-metadata``, which can be ``true`` or ``false`` +// + ``config-file-type``, which can be ``s3`` or ``file`` +// + ``config-file-value``, which is either an S3 ARN or a file path func (o TaskDefinitionFirelensConfigurationPtrOutput) Options() pulumi.StringMapOutput { return o.ApplyT(func(v *TaskDefinitionFirelensConfiguration) map[string]string { if v == nil { @@ -7314,8 +7738,12 @@ func (o TaskDefinitionFirelensConfigurationPtrOutput) Type() pulumi.StringPtrOut // The “HealthCheck“ property specifies an object representing a container health check. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image (such as those specified in a parent image or from the image's Dockerfile). This configuration maps to the “HEALTHCHECK“ parameter of [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). // -// The Amazon ECS container agent only monitors and reports on the health checks specified in the task definition. Amazon ECS does not monitor Docker health checks that are embedded in a container image and not specified in the container definition. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image. -// If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a servi +// The Amazon ECS container agent only monitors and reports on the health checks specified in the task definition. Amazon ECS does not monitor Docker health checks that are embedded in a container image and not specified in the container definition. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image. +// If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a service, if the task reports as unhealthy then the task will be stopped and the service scheduler will replace it. +// The following are notes about container health check support: +// + Container health checks require version 1.17.0 or greater of the Amazon ECS container agent. For more information, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html). +// + Container health checks are supported for Fargate tasks if you are using platform version 1.1.0 or greater. For more information, see [Platform Versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). +// + Container health checks are not supported for tasks that are part of a service that is configured to use a Classic Load Balancer. type TaskDefinitionHealthCheck struct { // A string array representing the command that the container runs to determine if it is healthy. The string array must start with ``CMD`` to run the command arguments directly, or ``CMD-SHELL`` to run the command with the container's default shell. // When you use the AWS Management Console JSON panel, the CLIlong, or the APIs, enclose the list of commands in double quotes and brackets. @@ -7348,8 +7776,12 @@ type TaskDefinitionHealthCheckInput interface { // The “HealthCheck“ property specifies an object representing a container health check. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image (such as those specified in a parent image or from the image's Dockerfile). This configuration maps to the “HEALTHCHECK“ parameter of [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). // -// The Amazon ECS container agent only monitors and reports on the health checks specified in the task definition. Amazon ECS does not monitor Docker health checks that are embedded in a container image and not specified in the container definition. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image. -// If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a servi +// The Amazon ECS container agent only monitors and reports on the health checks specified in the task definition. Amazon ECS does not monitor Docker health checks that are embedded in a container image and not specified in the container definition. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image. +// If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a service, if the task reports as unhealthy then the task will be stopped and the service scheduler will replace it. +// The following are notes about container health check support: +// + Container health checks require version 1.17.0 or greater of the Amazon ECS container agent. For more information, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html). +// + Container health checks are supported for Fargate tasks if you are using platform version 1.1.0 or greater. For more information, see [Platform Versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). +// + Container health checks are not supported for tasks that are part of a service that is configured to use a Classic Load Balancer. type TaskDefinitionHealthCheckArgs struct { // A string array representing the command that the container runs to determine if it is healthy. The string array must start with ``CMD`` to run the command arguments directly, or ``CMD-SHELL`` to run the command with the container's default shell. // When you use the AWS Management Console JSON panel, the CLIlong, or the APIs, enclose the list of commands in double quotes and brackets. @@ -7424,8 +7856,12 @@ func (i *taskDefinitionHealthCheckPtrType) ToTaskDefinitionHealthCheckPtrOutputW // The “HealthCheck“ property specifies an object representing a container health check. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image (such as those specified in a parent image or from the image's Dockerfile). This configuration maps to the “HEALTHCHECK“ parameter of [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). // -// The Amazon ECS container agent only monitors and reports on the health checks specified in the task definition. Amazon ECS does not monitor Docker health checks that are embedded in a container image and not specified in the container definition. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image. -// If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a servi +// The Amazon ECS container agent only monitors and reports on the health checks specified in the task definition. Amazon ECS does not monitor Docker health checks that are embedded in a container image and not specified in the container definition. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image. +// If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a service, if the task reports as unhealthy then the task will be stopped and the service scheduler will replace it. +// The following are notes about container health check support: +// + Container health checks require version 1.17.0 or greater of the Amazon ECS container agent. For more information, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html). +// + Container health checks are supported for Fargate tasks if you are using platform version 1.1.0 or greater. For more information, see [Platform Versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). +// + Container health checks are not supported for tasks that are part of a service that is configured to use a Classic Load Balancer. type TaskDefinitionHealthCheckOutput struct{ *pulumi.OutputState } func (TaskDefinitionHealthCheckOutput) ElementType() reflect.Type { @@ -7929,14 +8365,14 @@ func (o TaskDefinitionInferenceAcceleratorArrayOutput) Index(i pulumi.IntInput) }).(TaskDefinitionInferenceAcceleratorOutput) } -// The “KernelCapabilities“ property specifies the Linux capabilities for the container that are added to or dropped from the default configuration that is provided by Docker. For more information on the default capabilities and the non-default available capabilities, see [Runtime privilege and Linux capabilities](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) in the *Docker run reference*. For more detailed information on these Linux capabilities, see the [capabilities(7)](https://docs.aws.amazon.com/http://man7.org/linux/man-pages/man7/capabilities.7.html) Linux manual page. +// The Linux capabilities to add or remove from the default Docker configuration for a container defined in the task definition. For more information about the default capabilities and the non-default available capabilities, see [Runtime privilege and Linux capabilities](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) in the *Docker run reference*. For more detailed information about these Linux capabilities, see the [capabilities(7)](https://docs.aws.amazon.com/http://man7.org/linux/man-pages/man7/capabilities.7.html) Linux manual page. type TaskDefinitionKernelCapabilities struct { // The Linux capabilities for the container that have been added to the default configuration provided by Docker. This parameter maps to ``CapAdd`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-add`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). // Tasks launched on FARGATElong only support adding the ``SYS_PTRACE`` kernel capability. - // Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" + // Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"`` Add []string `pulumi:"add"` // The Linux capabilities for the container that have been removed from the default configuration provided by Docker. This parameter maps to ``CapDrop`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-drop`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - // Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" + // Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"`` Drop []string `pulumi:"drop"` } @@ -7951,14 +8387,14 @@ type TaskDefinitionKernelCapabilitiesInput interface { ToTaskDefinitionKernelCapabilitiesOutputWithContext(context.Context) TaskDefinitionKernelCapabilitiesOutput } -// The “KernelCapabilities“ property specifies the Linux capabilities for the container that are added to or dropped from the default configuration that is provided by Docker. For more information on the default capabilities and the non-default available capabilities, see [Runtime privilege and Linux capabilities](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) in the *Docker run reference*. For more detailed information on these Linux capabilities, see the [capabilities(7)](https://docs.aws.amazon.com/http://man7.org/linux/man-pages/man7/capabilities.7.html) Linux manual page. +// The Linux capabilities to add or remove from the default Docker configuration for a container defined in the task definition. For more information about the default capabilities and the non-default available capabilities, see [Runtime privilege and Linux capabilities](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) in the *Docker run reference*. For more detailed information about these Linux capabilities, see the [capabilities(7)](https://docs.aws.amazon.com/http://man7.org/linux/man-pages/man7/capabilities.7.html) Linux manual page. type TaskDefinitionKernelCapabilitiesArgs struct { // The Linux capabilities for the container that have been added to the default configuration provided by Docker. This parameter maps to ``CapAdd`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-add`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). // Tasks launched on FARGATElong only support adding the ``SYS_PTRACE`` kernel capability. - // Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" + // Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"`` Add pulumi.StringArrayInput `pulumi:"add"` // The Linux capabilities for the container that have been removed from the default configuration provided by Docker. This parameter maps to ``CapDrop`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-drop`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - // Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" + // Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"`` Drop pulumi.StringArrayInput `pulumi:"drop"` } @@ -8015,7 +8451,7 @@ func (i *taskDefinitionKernelCapabilitiesPtrType) ToTaskDefinitionKernelCapabili return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionKernelCapabilitiesPtrOutput) } -// The “KernelCapabilities“ property specifies the Linux capabilities for the container that are added to or dropped from the default configuration that is provided by Docker. For more information on the default capabilities and the non-default available capabilities, see [Runtime privilege and Linux capabilities](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) in the *Docker run reference*. For more detailed information on these Linux capabilities, see the [capabilities(7)](https://docs.aws.amazon.com/http://man7.org/linux/man-pages/man7/capabilities.7.html) Linux manual page. +// The Linux capabilities to add or remove from the default Docker configuration for a container defined in the task definition. For more information about the default capabilities and the non-default available capabilities, see [Runtime privilege and Linux capabilities](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) in the *Docker run reference*. For more detailed information about these Linux capabilities, see the [capabilities(7)](https://docs.aws.amazon.com/http://man7.org/linux/man-pages/man7/capabilities.7.html) Linux manual page. type TaskDefinitionKernelCapabilitiesOutput struct{ *pulumi.OutputState } func (TaskDefinitionKernelCapabilitiesOutput) ElementType() reflect.Type { @@ -8043,14 +8479,14 @@ func (o TaskDefinitionKernelCapabilitiesOutput) ToTaskDefinitionKernelCapabiliti // The Linux capabilities for the container that have been added to the default configuration provided by Docker. This parameter maps to “CapAdd“ in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the “--cap-add“ option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). // // Tasks launched on FARGATElong only support adding the ``SYS_PTRACE`` kernel capability. -// Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" +// Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"`` func (o TaskDefinitionKernelCapabilitiesOutput) Add() pulumi.StringArrayOutput { return o.ApplyT(func(v TaskDefinitionKernelCapabilities) []string { return v.Add }).(pulumi.StringArrayOutput) } // The Linux capabilities for the container that have been removed from the default configuration provided by Docker. This parameter maps to “CapDrop“ in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the “--cap-drop“ option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). // -// Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" +// Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"`` func (o TaskDefinitionKernelCapabilitiesOutput) Drop() pulumi.StringArrayOutput { return o.ApplyT(func(v TaskDefinitionKernelCapabilities) []string { return v.Drop }).(pulumi.StringArrayOutput) } @@ -8082,7 +8518,7 @@ func (o TaskDefinitionKernelCapabilitiesPtrOutput) Elem() TaskDefinitionKernelCa // The Linux capabilities for the container that have been added to the default configuration provided by Docker. This parameter maps to “CapAdd“ in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the “--cap-add“ option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). // // Tasks launched on FARGATElong only support adding the ``SYS_PTRACE`` kernel capability. -// Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" +// Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"`` func (o TaskDefinitionKernelCapabilitiesPtrOutput) Add() pulumi.StringArrayOutput { return o.ApplyT(func(v *TaskDefinitionKernelCapabilities) []string { if v == nil { @@ -8094,7 +8530,7 @@ func (o TaskDefinitionKernelCapabilitiesPtrOutput) Add() pulumi.StringArrayOutpu // The Linux capabilities for the container that have been removed from the default configuration provided by Docker. This parameter maps to “CapDrop“ in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the “--cap-drop“ option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). // -// Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" +// Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"`` func (o TaskDefinitionKernelCapabilitiesPtrOutput) Drop() pulumi.StringArrayOutput { return o.ApplyT(func(v *TaskDefinitionKernelCapabilities) []string { if v == nil { @@ -8522,7 +8958,7 @@ type TaskDefinitionLogConfiguration struct { // For tasks hosted on Amazon EC2 instances, the supported log drivers are ``awslogs``, ``fluentd``, ``gelf``, ``json-file``, ``journald``, ``logentries``,``syslog``, ``splunk``, and ``awsfirelens``. // For more information about using the ``awslogs`` log driver, see [Using the awslogs log driver](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html) in the *Amazon Elastic Container Service Developer Guide*. // For more information about using the ``awsfirelens`` log driver, see [Custom log routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*. - // If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs + // If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs-agent) and customize it to work with that driver. We encourage you to submit pull requests for changes that you would like to have included. However, we don't currently provide support for running modified copies of this software. LogDriver string `pulumi:"logDriver"` // The configuration options to send to the log driver. This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'`` Options map[string]string `pulumi:"options"` @@ -8548,7 +8984,7 @@ type TaskDefinitionLogConfigurationArgs struct { // For tasks hosted on Amazon EC2 instances, the supported log drivers are ``awslogs``, ``fluentd``, ``gelf``, ``json-file``, ``journald``, ``logentries``,``syslog``, ``splunk``, and ``awsfirelens``. // For more information about using the ``awslogs`` log driver, see [Using the awslogs log driver](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html) in the *Amazon Elastic Container Service Developer Guide*. // For more information about using the ``awsfirelens`` log driver, see [Custom log routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*. - // If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs + // If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs-agent) and customize it to work with that driver. We encourage you to submit pull requests for changes that you would like to have included. However, we don't currently provide support for running modified copies of this software. LogDriver pulumi.StringInput `pulumi:"logDriver"` // The configuration options to send to the log driver. This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'`` Options pulumi.StringMapInput `pulumi:"options"` @@ -8640,7 +9076,7 @@ func (o TaskDefinitionLogConfigurationOutput) ToTaskDefinitionLogConfigurationPt // For tasks hosted on Amazon EC2 instances, the supported log drivers are ``awslogs``, ``fluentd``, ``gelf``, ``json-file``, ``journald``, ``logentries``,``syslog``, ``splunk``, and ``awsfirelens``. // For more information about using the ``awslogs`` log driver, see [Using the awslogs log driver](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html) in the *Amazon Elastic Container Service Developer Guide*. // For more information about using the ``awsfirelens`` log driver, see [Custom log routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*. -// If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs +// If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs-agent) and customize it to work with that driver. We encourage you to submit pull requests for changes that you would like to have included. However, we don't currently provide support for running modified copies of this software. func (o TaskDefinitionLogConfigurationOutput) LogDriver() pulumi.StringOutput { return o.ApplyT(func(v TaskDefinitionLogConfiguration) string { return v.LogDriver }).(pulumi.StringOutput) } @@ -8685,7 +9121,7 @@ func (o TaskDefinitionLogConfigurationPtrOutput) Elem() TaskDefinitionLogConfigu // For tasks hosted on Amazon EC2 instances, the supported log drivers are ``awslogs``, ``fluentd``, ``gelf``, ``json-file``, ``journald``, ``logentries``,``syslog``, ``splunk``, and ``awsfirelens``. // For more information about using the ``awslogs`` log driver, see [Using the awslogs log driver](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html) in the *Amazon Elastic Container Service Developer Guide*. // For more information about using the ``awsfirelens`` log driver, see [Custom log routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*. -// If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs +// If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs-agent) and customize it to work with that driver. We encourage you to submit pull requests for changes that you would like to have included. However, we don't currently provide support for running modified copies of this software. func (o TaskDefinitionLogConfigurationPtrOutput) LogDriver() pulumi.StringPtrOutput { return o.ApplyT(func(v *TaskDefinitionLogConfiguration) *string { if v == nil { @@ -8956,7 +9392,7 @@ type TaskDefinitionPortMapping struct { // The application protocol that's used for the port mapping. This parameter only applies to Service Connect. We recommend that you set this parameter to be consistent with the protocol that your application uses. If you set this parameter, Amazon ECS adds protocol-specific connection handling to the Service Connect proxy. If you set this parameter, Amazon ECS adds protocol-specific telemetry in the Amazon ECS console and CloudWatch. // If you don't set a value for this parameter, then TCP is used. However, Amazon ECS doesn't add protocol-specific telemetry for TCP. // ``appProtocol`` is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment. - // Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS se + // Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. AppProtocol *TaskDefinitionPortMappingAppProtocol `pulumi:"appProtocol"` // The port number on the container that's bound to the user-specified or automatically assigned host port. // If you use containers in a task with the ``awsvpc`` or ``host`` network mode, specify the exposed ports using ``containerPort``. @@ -8971,7 +9407,17 @@ type TaskDefinitionPortMapping struct { // + You can specify a maximum of 100 port ranges per container. // + You do not specify a ``hostPortRange``. The value of the ``hostPortRange`` is set as follows: // + For containers in a task with the ``awsvpc`` network mode, the ``hostPortRange`` is set to the same value as the ``containerPortRange``. This is a static mapping strategy. - // + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open host + // + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open host ports from the default ephemeral range and passes it to docker to bind them to the container ports. + // + // + The ``containerPortRange`` valid values are between 1 and 65535. + // + A port can only be included in one port mapping per container. + // + You cannot specify overlapping port ranges. + // + The first port in the range must be less than last port in the range. + // + Docker recommends that you turn off the docker-proxy in the Docker daemon config file when you have a large number of ports. + // For more information, see [Issue #11185](https://docs.aws.amazon.com/https://github.com/moby/moby/issues/11185) on the Github website. + // For information about how to turn off the docker-proxy in the Docker daemon config file, see [Docker daemon](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/bootstrap_container_instance.html#bootstrap_docker_daemon) in the *Amazon ECS Developer Guide*. + // + // You can call [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) to view the ``hostPortRange`` which are the host ports that are bound to the container ports. ContainerPortRange *string `pulumi:"containerPortRange"` // The port number on the container instance to reserve for your container. // If you specify a ``containerPortRange``, leave this field empty and the value of the ``hostPort`` is set as follows: @@ -8979,7 +9425,9 @@ type TaskDefinitionPortMapping struct { // + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open ports on the host and automatically binds them to the container ports. This is a dynamic mapping strategy. // // If you use containers in a task with the ``awsvpc`` or ``host`` network mode, the ``hostPort`` can either be left blank or set to the same value as the ``containerPort``. - // If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0``) while specifying a ``containerPort`` and your container automatically + // If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0``) while specifying a ``containerPort`` and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version. + // The default ephemeral port range for Docker version 1.6.0 and later is listed on the instance under ``/proc/sys/net/ipv4/ip_local_port_range``. If this kernel parameter is unavailable, the default ephemeral port range from 49153 through 65535 (Linux) or 49152 through 65535 (Windows) is used. Do not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range. + // The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678-51680. Any host port that was previously specified in a running task is also reserved while the task is running. That is, after a task stops, the host port is released. The current reserved ports are displayed in the ``remainingResources`` of [DescribeContainerInstances](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html) output. A container instance can have up to 100 reserved ports at a time. This number includes the default reserved ports. Automatically assigned ports aren't included in the 100 reserved ports quota. HostPort *int `pulumi:"hostPort"` // The name that's used for the port mapping. This parameter only applies to Service Connect. This parameter is the name that you use in the ``serviceConnectConfiguration`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen. // For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. @@ -9007,7 +9455,7 @@ type TaskDefinitionPortMappingArgs struct { // The application protocol that's used for the port mapping. This parameter only applies to Service Connect. We recommend that you set this parameter to be consistent with the protocol that your application uses. If you set this parameter, Amazon ECS adds protocol-specific connection handling to the Service Connect proxy. If you set this parameter, Amazon ECS adds protocol-specific telemetry in the Amazon ECS console and CloudWatch. // If you don't set a value for this parameter, then TCP is used. However, Amazon ECS doesn't add protocol-specific telemetry for TCP. // ``appProtocol`` is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment. - // Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS se + // Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. AppProtocol TaskDefinitionPortMappingAppProtocolPtrInput `pulumi:"appProtocol"` // The port number on the container that's bound to the user-specified or automatically assigned host port. // If you use containers in a task with the ``awsvpc`` or ``host`` network mode, specify the exposed ports using ``containerPort``. @@ -9022,7 +9470,17 @@ type TaskDefinitionPortMappingArgs struct { // + You can specify a maximum of 100 port ranges per container. // + You do not specify a ``hostPortRange``. The value of the ``hostPortRange`` is set as follows: // + For containers in a task with the ``awsvpc`` network mode, the ``hostPortRange`` is set to the same value as the ``containerPortRange``. This is a static mapping strategy. - // + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open host + // + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open host ports from the default ephemeral range and passes it to docker to bind them to the container ports. + // + // + The ``containerPortRange`` valid values are between 1 and 65535. + // + A port can only be included in one port mapping per container. + // + You cannot specify overlapping port ranges. + // + The first port in the range must be less than last port in the range. + // + Docker recommends that you turn off the docker-proxy in the Docker daemon config file when you have a large number of ports. + // For more information, see [Issue #11185](https://docs.aws.amazon.com/https://github.com/moby/moby/issues/11185) on the Github website. + // For information about how to turn off the docker-proxy in the Docker daemon config file, see [Docker daemon](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/bootstrap_container_instance.html#bootstrap_docker_daemon) in the *Amazon ECS Developer Guide*. + // + // You can call [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) to view the ``hostPortRange`` which are the host ports that are bound to the container ports. ContainerPortRange pulumi.StringPtrInput `pulumi:"containerPortRange"` // The port number on the container instance to reserve for your container. // If you specify a ``containerPortRange``, leave this field empty and the value of the ``hostPort`` is set as follows: @@ -9030,7 +9488,9 @@ type TaskDefinitionPortMappingArgs struct { // + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open ports on the host and automatically binds them to the container ports. This is a dynamic mapping strategy. // // If you use containers in a task with the ``awsvpc`` or ``host`` network mode, the ``hostPort`` can either be left blank or set to the same value as the ``containerPort``. - // If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0``) while specifying a ``containerPort`` and your container automatically + // If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0``) while specifying a ``containerPort`` and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version. + // The default ephemeral port range for Docker version 1.6.0 and later is listed on the instance under ``/proc/sys/net/ipv4/ip_local_port_range``. If this kernel parameter is unavailable, the default ephemeral port range from 49153 through 65535 (Linux) or 49152 through 65535 (Windows) is used. Do not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range. + // The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678-51680. Any host port that was previously specified in a running task is also reserved while the task is running. That is, after a task stops, the host port is released. The current reserved ports are displayed in the ``remainingResources`` of [DescribeContainerInstances](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html) output. A container instance can have up to 100 reserved ports at a time. This number includes the default reserved ports. Automatically assigned ports aren't included in the 100 reserved ports quota. HostPort pulumi.IntPtrInput `pulumi:"hostPort"` // The name that's used for the port mapping. This parameter only applies to Service Connect. This parameter is the name that you use in the ``serviceConnectConfiguration`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen. // For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. @@ -9098,7 +9558,7 @@ func (o TaskDefinitionPortMappingOutput) ToTaskDefinitionPortMappingOutputWithCo // // If you don't set a value for this parameter, then TCP is used. However, Amazon ECS doesn't add protocol-specific telemetry for TCP. // ``appProtocol`` is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment. -// Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS se +// Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. func (o TaskDefinitionPortMappingOutput) AppProtocol() TaskDefinitionPortMappingAppProtocolPtrOutput { return o.ApplyT(func(v TaskDefinitionPortMapping) *TaskDefinitionPortMappingAppProtocol { return v.AppProtocol }).(TaskDefinitionPortMappingAppProtocolPtrOutput) } @@ -9121,7 +9581,17 @@ func (o TaskDefinitionPortMappingOutput) ContainerPort() pulumi.IntPtrOutput { // + You can specify a maximum of 100 port ranges per container. // + You do not specify a ``hostPortRange``. The value of the ``hostPortRange`` is set as follows: // + For containers in a task with the ``awsvpc`` network mode, the ``hostPortRange`` is set to the same value as the ``containerPortRange``. This is a static mapping strategy. -// + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open host +// + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open host ports from the default ephemeral range and passes it to docker to bind them to the container ports. +// +// + The ``containerPortRange`` valid values are between 1 and 65535. +// + A port can only be included in one port mapping per container. +// + You cannot specify overlapping port ranges. +// + The first port in the range must be less than last port in the range. +// + Docker recommends that you turn off the docker-proxy in the Docker daemon config file when you have a large number of ports. +// For more information, see [Issue #11185](https://docs.aws.amazon.com/https://github.com/moby/moby/issues/11185) on the Github website. +// For information about how to turn off the docker-proxy in the Docker daemon config file, see [Docker daemon](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/bootstrap_container_instance.html#bootstrap_docker_daemon) in the *Amazon ECS Developer Guide*. +// +// You can call [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) to view the ``hostPortRange`` which are the host ports that are bound to the container ports. func (o TaskDefinitionPortMappingOutput) ContainerPortRange() pulumi.StringPtrOutput { return o.ApplyT(func(v TaskDefinitionPortMapping) *string { return v.ContainerPortRange }).(pulumi.StringPtrOutput) } @@ -9133,7 +9603,9 @@ func (o TaskDefinitionPortMappingOutput) ContainerPortRange() pulumi.StringPtrOu // + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open ports on the host and automatically binds them to the container ports. This is a dynamic mapping strategy. // // If you use containers in a task with the ``awsvpc`` or ``host`` network mode, the ``hostPort`` can either be left blank or set to the same value as the ``containerPort``. -// If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0``) while specifying a ``containerPort`` and your container automatically +// If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0``) while specifying a ``containerPort`` and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version. +// The default ephemeral port range for Docker version 1.6.0 and later is listed on the instance under ``/proc/sys/net/ipv4/ip_local_port_range``. If this kernel parameter is unavailable, the default ephemeral port range from 49153 through 65535 (Linux) or 49152 through 65535 (Windows) is used. Do not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range. +// The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678-51680. Any host port that was previously specified in a running task is also reserved while the task is running. That is, after a task stops, the host port is released. The current reserved ports are displayed in the ``remainingResources`` of [DescribeContainerInstances](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html) output. A container instance can have up to 100 reserved ports at a time. This number includes the default reserved ports. Automatically assigned ports aren't included in the 100 reserved ports quota. func (o TaskDefinitionPortMappingOutput) HostPort() pulumi.IntPtrOutput { return o.ApplyT(func(v TaskDefinitionPortMapping) *int { return v.HostPort }).(pulumi.IntPtrOutput) } @@ -9181,7 +9653,9 @@ type TaskDefinitionProxyConfiguration struct { // + ``IgnoredGID`` - (Required) The group ID (GID) of the proxy container as defined by the ``user`` parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If ``IgnoredUID`` is specified, this field can be empty. // + ``AppPorts`` - (Required) The list of ports that the application uses. Network traffic to these ports is forwarded to the ``ProxyIngressPort`` and ``ProxyEgressPort``. // + ``ProxyIngressPort`` - (Required) Specifies the port that incoming traffic to the ``AppPorts`` is directed to. - // + ``ProxyEgressPort`` - (Required) Specifies the port that outgoi + // + ``ProxyEgressPort`` - (Required) Specifies the port that outgoing traffic from the ``AppPorts`` is directed to. + // + ``EgressIgnoredPorts`` - (Required) The egress traffic going to the specified ports is ignored and not redirected to the ``ProxyEgressPort``. It can be an empty list. + // + ``EgressIgnoredIPs`` - (Required) The egress traffic going to the specified IP addresses is ignored and not redirected to the ``ProxyEgressPort``. It can be an empty list. ProxyConfigurationProperties []TaskDefinitionKeyValuePair `pulumi:"proxyConfigurationProperties"` // The proxy type. The only supported value is ``APPMESH``. Type *string `pulumi:"type"` @@ -9209,7 +9683,9 @@ type TaskDefinitionProxyConfigurationArgs struct { // + ``IgnoredGID`` - (Required) The group ID (GID) of the proxy container as defined by the ``user`` parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If ``IgnoredUID`` is specified, this field can be empty. // + ``AppPorts`` - (Required) The list of ports that the application uses. Network traffic to these ports is forwarded to the ``ProxyIngressPort`` and ``ProxyEgressPort``. // + ``ProxyIngressPort`` - (Required) Specifies the port that incoming traffic to the ``AppPorts`` is directed to. - // + ``ProxyEgressPort`` - (Required) Specifies the port that outgoi + // + ``ProxyEgressPort`` - (Required) Specifies the port that outgoing traffic from the ``AppPorts`` is directed to. + // + ``EgressIgnoredPorts`` - (Required) The egress traffic going to the specified ports is ignored and not redirected to the ``ProxyEgressPort``. It can be an empty list. + // + ``EgressIgnoredIPs`` - (Required) The egress traffic going to the specified IP addresses is ignored and not redirected to the ``ProxyEgressPort``. It can be an empty list. ProxyConfigurationProperties TaskDefinitionKeyValuePairArrayInput `pulumi:"proxyConfigurationProperties"` // The proxy type. The only supported value is ``APPMESH``. Type pulumi.StringPtrInput `pulumi:"type"` @@ -9305,7 +9781,9 @@ func (o TaskDefinitionProxyConfigurationOutput) ContainerName() pulumi.StringOut // - “IgnoredGID“ - (Required) The group ID (GID) of the proxy container as defined by the “user“ parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If “IgnoredUID“ is specified, this field can be empty. // - “AppPorts“ - (Required) The list of ports that the application uses. Network traffic to these ports is forwarded to the “ProxyIngressPort“ and “ProxyEgressPort“. // - “ProxyIngressPort“ - (Required) Specifies the port that incoming traffic to the “AppPorts“ is directed to. -// - “ProxyEgressPort“ - (Required) Specifies the port that outgoi +// - “ProxyEgressPort“ - (Required) Specifies the port that outgoing traffic from the “AppPorts“ is directed to. +// - “EgressIgnoredPorts“ - (Required) The egress traffic going to the specified ports is ignored and not redirected to the “ProxyEgressPort“. It can be an empty list. +// - “EgressIgnoredIPs“ - (Required) The egress traffic going to the specified IP addresses is ignored and not redirected to the “ProxyEgressPort“. It can be an empty list. func (o TaskDefinitionProxyConfigurationOutput) ProxyConfigurationProperties() TaskDefinitionKeyValuePairArrayOutput { return o.ApplyT(func(v TaskDefinitionProxyConfiguration) []TaskDefinitionKeyValuePair { return v.ProxyConfigurationProperties @@ -9356,7 +9834,9 @@ func (o TaskDefinitionProxyConfigurationPtrOutput) ContainerName() pulumi.String // - “IgnoredGID“ - (Required) The group ID (GID) of the proxy container as defined by the “user“ parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If “IgnoredUID“ is specified, this field can be empty. // - “AppPorts“ - (Required) The list of ports that the application uses. Network traffic to these ports is forwarded to the “ProxyIngressPort“ and “ProxyEgressPort“. // - “ProxyIngressPort“ - (Required) Specifies the port that incoming traffic to the “AppPorts“ is directed to. -// - “ProxyEgressPort“ - (Required) Specifies the port that outgoi +// - “ProxyEgressPort“ - (Required) Specifies the port that outgoing traffic from the “AppPorts“ is directed to. +// - “EgressIgnoredPorts“ - (Required) The egress traffic going to the specified ports is ignored and not redirected to the “ProxyEgressPort“. It can be an empty list. +// - “EgressIgnoredIPs“ - (Required) The egress traffic going to the specified IP addresses is ignored and not redirected to the “ProxyEgressPort“. It can be an empty list. func (o TaskDefinitionProxyConfigurationPtrOutput) ProxyConfigurationProperties() TaskDefinitionKeyValuePairArrayOutput { return o.ApplyT(func(v *TaskDefinitionProxyConfiguration) []TaskDefinitionKeyValuePair { if v == nil { @@ -9946,7 +10426,15 @@ func (o TaskDefinitionSecretArrayOutput) Index(i pulumi.IntInput) TaskDefinition // A list of namespaced kernel parameters to set in the container. This parameter maps to “Sysctls“ in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the “--sysctl“ option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). For example, you can configure “net.ipv4.tcp_keepalive_time“ setting to maintain longer lived connections. // // We don't recommend that you specify network-related ``systemControls`` parameters for multiple containers in a single task that also uses either the ``awsvpc`` or ``host`` network mode. Doing this has the following disadvantages: -// + For tasks that use the ``awsvpc`` network mode including Fargate, if you set ``systemControls`` for any container, it applies to all containers in the task. If you set different ``sy +// + For tasks that use the ``awsvpc`` network mode including Fargate, if you set ``systemControls`` for any container, it applies to all containers in the task. If you set different ``systemControls`` for multiple containers in a single task, the container that's started last determines which ``systemControls`` take effect. +// + For tasks that use the ``host`` network mode, the network namespace ``systemControls`` aren't supported. +// +// If you're setting an IPC resource namespace to use for the containers in the task, the following conditions apply to your system controls. For more information, see [IPC mode](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#task_definition_ipcmode). +// + For tasks that use the ``host`` IPC mode, IPC namespace ``systemControls`` aren't supported. +// + For tasks that use the ``task`` IPC mode, IPC namespace ``systemControls`` values apply to all containers within a task. +// +// This parameter is not supported for Windows containers. +// This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate. type TaskDefinitionSystemControl struct { // The namespaced kernel parameter to set a ``value`` for. Namespace *string `pulumi:"namespace"` @@ -9971,7 +10459,15 @@ type TaskDefinitionSystemControlInput interface { // A list of namespaced kernel parameters to set in the container. This parameter maps to “Sysctls“ in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the “--sysctl“ option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). For example, you can configure “net.ipv4.tcp_keepalive_time“ setting to maintain longer lived connections. // // We don't recommend that you specify network-related ``systemControls`` parameters for multiple containers in a single task that also uses either the ``awsvpc`` or ``host`` network mode. Doing this has the following disadvantages: -// + For tasks that use the ``awsvpc`` network mode including Fargate, if you set ``systemControls`` for any container, it applies to all containers in the task. If you set different ``sy +// + For tasks that use the ``awsvpc`` network mode including Fargate, if you set ``systemControls`` for any container, it applies to all containers in the task. If you set different ``systemControls`` for multiple containers in a single task, the container that's started last determines which ``systemControls`` take effect. +// + For tasks that use the ``host`` network mode, the network namespace ``systemControls`` aren't supported. +// +// If you're setting an IPC resource namespace to use for the containers in the task, the following conditions apply to your system controls. For more information, see [IPC mode](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#task_definition_ipcmode). +// + For tasks that use the ``host`` IPC mode, IPC namespace ``systemControls`` aren't supported. +// + For tasks that use the ``task`` IPC mode, IPC namespace ``systemControls`` values apply to all containers within a task. +// +// This parameter is not supported for Windows containers. +// This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate. type TaskDefinitionSystemControlArgs struct { // The namespaced kernel parameter to set a ``value`` for. Namespace pulumi.StringPtrInput `pulumi:"namespace"` @@ -10022,7 +10518,15 @@ func (i TaskDefinitionSystemControlArray) ToTaskDefinitionSystemControlArrayOutp // A list of namespaced kernel parameters to set in the container. This parameter maps to “Sysctls“ in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the “--sysctl“ option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). For example, you can configure “net.ipv4.tcp_keepalive_time“ setting to maintain longer lived connections. // // We don't recommend that you specify network-related ``systemControls`` parameters for multiple containers in a single task that also uses either the ``awsvpc`` or ``host`` network mode. Doing this has the following disadvantages: -// + For tasks that use the ``awsvpc`` network mode including Fargate, if you set ``systemControls`` for any container, it applies to all containers in the task. If you set different ``sy +// + For tasks that use the ``awsvpc`` network mode including Fargate, if you set ``systemControls`` for any container, it applies to all containers in the task. If you set different ``systemControls`` for multiple containers in a single task, the container that's started last determines which ``systemControls`` take effect. +// + For tasks that use the ``host`` network mode, the network namespace ``systemControls`` aren't supported. +// +// If you're setting an IPC resource namespace to use for the containers in the task, the following conditions apply to your system controls. For more information, see [IPC mode](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#task_definition_ipcmode). +// + For tasks that use the ``host`` IPC mode, IPC namespace ``systemControls`` aren't supported. +// + For tasks that use the ``task`` IPC mode, IPC namespace ``systemControls`` values apply to all containers within a task. +// +// This parameter is not supported for Windows containers. +// This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate. type TaskDefinitionSystemControlOutput struct{ *pulumi.OutputState } func (TaskDefinitionSystemControlOutput) ElementType() reflect.Type { @@ -10080,7 +10584,7 @@ func (o TaskDefinitionSystemControlArrayOutput) Index(i pulumi.IntInput) TaskDef // + Maximum value length - 256 Unicode characters in UTF-8 // + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. // + Tag keys and values are case-sensitive. -// + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix +// + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. type TaskDefinitionTag struct { // One part of a key-value pair that make up a tag. A ``key`` is a general label that acts like a category for more specific tag values. Key *string `pulumi:"key"` @@ -10347,7 +10851,8 @@ type TaskDefinitionVolume struct { // Docker volumes aren't supported by tasks run on FARGATElong. DockerVolumeConfiguration *TaskDefinitionDockerVolumeConfiguration `pulumi:"dockerVolumeConfiguration"` // This parameter is specified when you use an Amazon Elastic File System file system for task storage. - EfsVolumeConfiguration *TaskDefinitionEfsVolumeConfiguration `pulumi:"efsVolumeConfiguration"` + EfsVolumeConfiguration *TaskDefinitionEfsVolumeConfiguration `pulumi:"efsVolumeConfiguration"` + FSxWindowsFileServerVolumeConfiguration *TaskDefinitionFSxWindowsFileServerVolumeConfiguration `pulumi:"fSxWindowsFileServerVolumeConfiguration"` // This parameter is specified when you use bind mount host volumes. The contents of the ``host`` parameter determine whether your bind mount host volume persists on the host container instance and where it's stored. If the ``host`` parameter is empty, then the Docker daemon assigns a host path for your data volume. However, the data isn't guaranteed to persist after the containers that are associated with it stop running. // Windows containers can mount whole directories on the same drive as ``$env:ProgramData``. Windows containers can't mount directories on a different drive, and mount point can't be across drives. For example, you can mount ``C:\my\path:C:\my\path`` and ``D:\:D:\``, but not ``D:\my\path:C:\my\path`` or ``D:\:C:\my\path``. Host *TaskDefinitionHostVolumeProperties `pulumi:"host"` @@ -10379,7 +10884,8 @@ type TaskDefinitionVolumeArgs struct { // Docker volumes aren't supported by tasks run on FARGATElong. DockerVolumeConfiguration TaskDefinitionDockerVolumeConfigurationPtrInput `pulumi:"dockerVolumeConfiguration"` // This parameter is specified when you use an Amazon Elastic File System file system for task storage. - EfsVolumeConfiguration TaskDefinitionEfsVolumeConfigurationPtrInput `pulumi:"efsVolumeConfiguration"` + EfsVolumeConfiguration TaskDefinitionEfsVolumeConfigurationPtrInput `pulumi:"efsVolumeConfiguration"` + FSxWindowsFileServerVolumeConfiguration TaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrInput `pulumi:"fSxWindowsFileServerVolumeConfiguration"` // This parameter is specified when you use bind mount host volumes. The contents of the ``host`` parameter determine whether your bind mount host volume persists on the host container instance and where it's stored. If the ``host`` parameter is empty, then the Docker daemon assigns a host path for your data volume. However, the data isn't guaranteed to persist after the containers that are associated with it stop running. // Windows containers can mount whole directories on the same drive as ``$env:ProgramData``. Windows containers can't mount directories on a different drive, and mount point can't be across drives. For example, you can mount ``C:\my\path:C:\my\path`` and ``D:\:D:\``, but not ``D:\my\path:C:\my\path`` or ``D:\:C:\my\path``. Host TaskDefinitionHostVolumePropertiesPtrInput `pulumi:"host"` @@ -10464,6 +10970,12 @@ func (o TaskDefinitionVolumeOutput) EfsVolumeConfiguration() TaskDefinitionEfsVo return o.ApplyT(func(v TaskDefinitionVolume) *TaskDefinitionEfsVolumeConfiguration { return v.EfsVolumeConfiguration }).(TaskDefinitionEfsVolumeConfigurationPtrOutput) } +func (o TaskDefinitionVolumeOutput) FSxWindowsFileServerVolumeConfiguration() TaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutput { + return o.ApplyT(func(v TaskDefinitionVolume) *TaskDefinitionFSxWindowsFileServerVolumeConfiguration { + return v.FSxWindowsFileServerVolumeConfiguration + }).(TaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutput) +} + // This parameter is specified when you use bind mount host volumes. The contents of the “host“ parameter determine whether your bind mount host volume persists on the host container instance and where it's stored. If the “host“ parameter is empty, then the Docker daemon assigns a host path for your data volume. However, the data isn't guaranteed to persist after the containers that are associated with it stop running. // // Windows containers can mount whole directories on the same drive as ``$env:ProgramData``. Windows containers can't mount directories on a different drive, and mount point can't be across drives. For example, you can mount ``C:\my\path:C:\my\path`` and ``D:\:D:\``, but not ``D:\my\path:C:\my\path`` or ``D:\:C:\my\path``. @@ -11406,6 +11918,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionEnvironmentFileArrayInput)(nil)).Elem(), TaskDefinitionEnvironmentFileArray{}) pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionEphemeralStorageInput)(nil)).Elem(), TaskDefinitionEphemeralStorageArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionEphemeralStoragePtrInput)(nil)).Elem(), TaskDefinitionEphemeralStorageArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionFSxAuthorizationConfigInput)(nil)).Elem(), TaskDefinitionFSxAuthorizationConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionFSxAuthorizationConfigPtrInput)(nil)).Elem(), TaskDefinitionFSxAuthorizationConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionFSxWindowsFileServerVolumeConfigurationInput)(nil)).Elem(), TaskDefinitionFSxWindowsFileServerVolumeConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrInput)(nil)).Elem(), TaskDefinitionFSxWindowsFileServerVolumeConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionFirelensConfigurationInput)(nil)).Elem(), TaskDefinitionFirelensConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionFirelensConfigurationPtrInput)(nil)).Elem(), TaskDefinitionFirelensConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionHealthCheckInput)(nil)).Elem(), TaskDefinitionHealthCheckArgs{}) @@ -11540,6 +12056,10 @@ func init() { pulumi.RegisterOutputType(TaskDefinitionEnvironmentFileArrayOutput{}) pulumi.RegisterOutputType(TaskDefinitionEphemeralStorageOutput{}) pulumi.RegisterOutputType(TaskDefinitionEphemeralStoragePtrOutput{}) + pulumi.RegisterOutputType(TaskDefinitionFSxAuthorizationConfigOutput{}) + pulumi.RegisterOutputType(TaskDefinitionFSxAuthorizationConfigPtrOutput{}) + pulumi.RegisterOutputType(TaskDefinitionFSxWindowsFileServerVolumeConfigurationOutput{}) + pulumi.RegisterOutputType(TaskDefinitionFSxWindowsFileServerVolumeConfigurationPtrOutput{}) pulumi.RegisterOutputType(TaskDefinitionFirelensConfigurationOutput{}) pulumi.RegisterOutputType(TaskDefinitionFirelensConfigurationPtrOutput{}) pulumi.RegisterOutputType(TaskDefinitionHealthCheckOutput{}) diff --git a/sdk/go/aws/ecs/taskDefinition.go b/sdk/go/aws/ecs/taskDefinition.go index 2b3515c255..c18b9ea00b 100644 --- a/sdk/go/aws/ecs/taskDefinition.go +++ b/sdk/go/aws/ecs/taskDefinition.go @@ -15,7 +15,9 @@ import ( // Registers a new task definition from the supplied “family“ and “containerDefinitions“. Optionally, you can add data volumes to your containers with the “volumes“ parameter. For more information about task definition parameters and defaults, see [Amazon ECS Task Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) in the *Amazon Elastic Container Service Developer Guide*. // // You can specify a role for your task with the ``taskRoleArn`` parameter. When you specify a role for a task, its containers can then use the latest versions of the CLI or SDKs to make API requests to the AWS services that are specified in the policy that's associated with the role. For more information, see [IAM Roles for Tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*. -// You can specify a Docker networking mode for the containers in your task definition with the ``networkMod +// You can specify a Docker networking mode for the containers in your task definition with the ``networkMode`` parameter. The available network modes correspond to those described in [Network settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#/network-settings) in the Docker run reference. If you specify the ``awsvpc`` network mode, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*. +// In the following example or examples, the Authorization header contents (``AUTHPARAMS``) must be replaced with an AWS Signature Version 4 signature. For more information, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the *General Reference*. +// You only need to learn how to sign HTTP requests if you intend to create them manually. When you use the [](https://docs.aws.amazon.com/cli/) or one of the [SDKs](https://docs.aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you, with the access key that you specify when you configure the tools. When you use these tools, you don't have to sign requests yourself. // // ## Example Usage // ### Example @@ -294,7 +296,10 @@ type TaskDefinition struct { // + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) // + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) // + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - // + 8192 (8 vCPU) - Available ``memory`` va + // + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments + // This option requires Linux platform ``1.4.0`` or later. + // + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments + // This option requires Linux platform ``1.4.0`` or later. Cpu pulumi.StringPtrOutput `pulumi:"cpu"` // The ephemeral storage settings to use for tasks run with the task definition. EphemeralStorage TaskDefinitionEphemeralStoragePtrOutput `pulumi:"ephemeralStorage"` @@ -307,24 +312,41 @@ type TaskDefinition struct { // The Elastic Inference accelerators to use for the containers in the task. InferenceAccelerators TaskDefinitionInferenceAcceleratorArrayOutput `pulumi:"inferenceAccelerators"` // The IPC resource namespace to use for the containers in the task. The valid values are ``host``, ``task``, or ``none``. If ``host`` is specified, then all containers within the tasks that specified the ``host`` IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If ``task`` is specified, all containers within the specified task share the same IPC resources. If ``none`` is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see [IPC settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#ipc-settings---ipc) in the *Docker run reference*. - // If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more inform + // If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/). + // If you are setting namespaced kernel parameters using ``systemControls`` for the containers in the task, the following will apply to your IPC resource namespace. For more information, see [System Controls](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html) in the *Amazon Elastic Container Service Developer Guide*. + // + For tasks that use the ``host`` IPC mode, IPC namespace related ``systemControls`` are not supported. + // + For tasks that use the ``task`` IPC mode, IPC namespace related ``systemControls`` will apply to all containers within a task. + // + // This parameter is not supported for Windows containers or tasks run on FARGATElong. IpcMode pulumi.StringPtrOutput `pulumi:"ipcMode"` // The amount (in MiB) of memory used by the task. // If your tasks runs on Amazon EC2 instances, you must specify either a task-level memory value or a container-level memory value. This field is optional and any value can be used. If a task-level memory value is specified, the container-level memory value is optional. For more information regarding container-level memory and memory reservation, see [ContainerDefinition](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html). // If your tasks runs on FARGATElong, this field is required. You must use one of the following values. The value you choose determines your range of valid values for the ``cpu`` parameter. // + 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available ``cpu`` values: 256 (.25 vCPU) // + 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available ``cpu`` values: 512 (.5 vCPU) - // + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` va + // + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` values: 1024 (1 vCPU) + // + Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 2048 (2 vCPU) + // + Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 4096 (4 vCPU) + // + Between 16 GB and 60 GB in 4 GB increments - Available ``cpu`` values: 8192 (8 vCPU) + // This option requires Linux platform ``1.4.0`` or later. + // + Between 32GB and 120 GB in 8 GB increments - Available ``cpu`` values: 16384 (16 vCPU) + // This option requires Linux platform ``1.4.0`` or later. Memory pulumi.StringPtrOutput `pulumi:"memory"` // The Docker networking mode to use for the containers in the task. The valid values are ``none``, ``bridge``, ``awsvpc``, and ``host``. If no network mode is specified, the default is ``bridge``. // For Amazon ECS tasks on Fargate, the ``awsvpc`` network mode is required. For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, ```` or ``awsvpc`` can be used. If the network mode is set to ``none``, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The ``host`` and ``awsvpc`` network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the ``bridge`` mode. - // With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elasti + // With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elastic network interface port (for the ``awsvpc`` network mode), so you cannot take advantage of dynamic host port mappings. + // When using the ``host`` network mode, you should not run containers using the root user (UID 0). It is considered best practice to use a non-root user. + // If the network mode is ``awsvpc``, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration value when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*. + // If the network mode is ``host``, you cannot run multiple instantiations of the same task on a single container instance when port mappings are used. + // For more information, see [Network settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#network-settings) in the *Docker run reference*. NetworkMode pulumi.StringPtrOutput `pulumi:"networkMode"` // The process namespace to use for the containers in the task. The valid values are ``host`` or ``task``. On Fargate for Linux containers, the only valid value is ``task``. For example, monitoring sidecars might need ``pidMode`` to access information about other containers running in the same task. // If ``host`` is specified, all containers within the tasks that specified the ``host`` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance. // If ``task`` is specified, all containers within the specified task share the same process namespace. // If no value is specified, the default is a private namespace for each container. For more information, see [PID settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#pid-settings---pid) in the *Docker run reference*. - // If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://doc + // If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/). + // This parameter is not supported for Windows containers. + // This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate. PidMode pulumi.StringPtrOutput `pulumi:"pidMode"` // An array of placement constraint objects to use for tasks. // This parameter isn't supported for tasks run on FARGATElong. @@ -345,7 +367,7 @@ type TaskDefinition struct { // + Maximum value length - 256 Unicode characters in UTF-8 // + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. // + Tag keys and values are case-sensitive. - // + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values + // + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. Tags aws.TagArrayOutput `pulumi:"tags"` TaskDefinitionArn pulumi.StringOutput `pulumi:"taskDefinitionArn"` // The short name or full Amazon Resource Name (ARN) of the IAMlong role that grants containers in the task permission to call AWS APIs on your behalf. For more information, see [Amazon ECS Task Role](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*. @@ -424,7 +446,10 @@ type taskDefinitionArgs struct { // + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) // + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) // + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - // + 8192 (8 vCPU) - Available ``memory`` va + // + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments + // This option requires Linux platform ``1.4.0`` or later. + // + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments + // This option requires Linux platform ``1.4.0`` or later. Cpu *string `pulumi:"cpu"` // The ephemeral storage settings to use for tasks run with the task definition. EphemeralStorage *TaskDefinitionEphemeralStorage `pulumi:"ephemeralStorage"` @@ -437,24 +462,41 @@ type taskDefinitionArgs struct { // The Elastic Inference accelerators to use for the containers in the task. InferenceAccelerators []TaskDefinitionInferenceAccelerator `pulumi:"inferenceAccelerators"` // The IPC resource namespace to use for the containers in the task. The valid values are ``host``, ``task``, or ``none``. If ``host`` is specified, then all containers within the tasks that specified the ``host`` IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If ``task`` is specified, all containers within the specified task share the same IPC resources. If ``none`` is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see [IPC settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#ipc-settings---ipc) in the *Docker run reference*. - // If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more inform + // If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/). + // If you are setting namespaced kernel parameters using ``systemControls`` for the containers in the task, the following will apply to your IPC resource namespace. For more information, see [System Controls](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html) in the *Amazon Elastic Container Service Developer Guide*. + // + For tasks that use the ``host`` IPC mode, IPC namespace related ``systemControls`` are not supported. + // + For tasks that use the ``task`` IPC mode, IPC namespace related ``systemControls`` will apply to all containers within a task. + // + // This parameter is not supported for Windows containers or tasks run on FARGATElong. IpcMode *string `pulumi:"ipcMode"` // The amount (in MiB) of memory used by the task. // If your tasks runs on Amazon EC2 instances, you must specify either a task-level memory value or a container-level memory value. This field is optional and any value can be used. If a task-level memory value is specified, the container-level memory value is optional. For more information regarding container-level memory and memory reservation, see [ContainerDefinition](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html). // If your tasks runs on FARGATElong, this field is required. You must use one of the following values. The value you choose determines your range of valid values for the ``cpu`` parameter. // + 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available ``cpu`` values: 256 (.25 vCPU) // + 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available ``cpu`` values: 512 (.5 vCPU) - // + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` va + // + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` values: 1024 (1 vCPU) + // + Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 2048 (2 vCPU) + // + Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 4096 (4 vCPU) + // + Between 16 GB and 60 GB in 4 GB increments - Available ``cpu`` values: 8192 (8 vCPU) + // This option requires Linux platform ``1.4.0`` or later. + // + Between 32GB and 120 GB in 8 GB increments - Available ``cpu`` values: 16384 (16 vCPU) + // This option requires Linux platform ``1.4.0`` or later. Memory *string `pulumi:"memory"` // The Docker networking mode to use for the containers in the task. The valid values are ``none``, ``bridge``, ``awsvpc``, and ``host``. If no network mode is specified, the default is ``bridge``. // For Amazon ECS tasks on Fargate, the ``awsvpc`` network mode is required. For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, ```` or ``awsvpc`` can be used. If the network mode is set to ``none``, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The ``host`` and ``awsvpc`` network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the ``bridge`` mode. - // With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elasti + // With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elastic network interface port (for the ``awsvpc`` network mode), so you cannot take advantage of dynamic host port mappings. + // When using the ``host`` network mode, you should not run containers using the root user (UID 0). It is considered best practice to use a non-root user. + // If the network mode is ``awsvpc``, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration value when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*. + // If the network mode is ``host``, you cannot run multiple instantiations of the same task on a single container instance when port mappings are used. + // For more information, see [Network settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#network-settings) in the *Docker run reference*. NetworkMode *string `pulumi:"networkMode"` // The process namespace to use for the containers in the task. The valid values are ``host`` or ``task``. On Fargate for Linux containers, the only valid value is ``task``. For example, monitoring sidecars might need ``pidMode`` to access information about other containers running in the same task. // If ``host`` is specified, all containers within the tasks that specified the ``host`` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance. // If ``task`` is specified, all containers within the specified task share the same process namespace. // If no value is specified, the default is a private namespace for each container. For more information, see [PID settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#pid-settings---pid) in the *Docker run reference*. - // If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://doc + // If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/). + // This parameter is not supported for Windows containers. + // This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate. PidMode *string `pulumi:"pidMode"` // An array of placement constraint objects to use for tasks. // This parameter isn't supported for tasks run on FARGATElong. @@ -475,7 +517,7 @@ type taskDefinitionArgs struct { // + Maximum value length - 256 Unicode characters in UTF-8 // + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. // + Tag keys and values are case-sensitive. - // + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values + // + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. Tags []aws.Tag `pulumi:"tags"` // The short name or full Amazon Resource Name (ARN) of the IAMlong role that grants containers in the task permission to call AWS APIs on your behalf. For more information, see [Amazon ECS Task Role](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*. // IAM roles for tasks on Windows require that the ``-EnableTaskIAMRole`` option is set when you launch the Amazon ECS-optimized Windows AMI. Your containers must also run some configuration code to use the feature. For more information, see [Windows IAM roles for tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows_task_IAM_roles.html) in the *Amazon Elastic Container Service Developer Guide*. @@ -496,7 +538,10 @@ type TaskDefinitionArgs struct { // + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) // + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) // + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - // + 8192 (8 vCPU) - Available ``memory`` va + // + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments + // This option requires Linux platform ``1.4.0`` or later. + // + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments + // This option requires Linux platform ``1.4.0`` or later. Cpu pulumi.StringPtrInput // The ephemeral storage settings to use for tasks run with the task definition. EphemeralStorage TaskDefinitionEphemeralStoragePtrInput @@ -509,24 +554,41 @@ type TaskDefinitionArgs struct { // The Elastic Inference accelerators to use for the containers in the task. InferenceAccelerators TaskDefinitionInferenceAcceleratorArrayInput // The IPC resource namespace to use for the containers in the task. The valid values are ``host``, ``task``, or ``none``. If ``host`` is specified, then all containers within the tasks that specified the ``host`` IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If ``task`` is specified, all containers within the specified task share the same IPC resources. If ``none`` is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see [IPC settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#ipc-settings---ipc) in the *Docker run reference*. - // If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more inform + // If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/). + // If you are setting namespaced kernel parameters using ``systemControls`` for the containers in the task, the following will apply to your IPC resource namespace. For more information, see [System Controls](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html) in the *Amazon Elastic Container Service Developer Guide*. + // + For tasks that use the ``host`` IPC mode, IPC namespace related ``systemControls`` are not supported. + // + For tasks that use the ``task`` IPC mode, IPC namespace related ``systemControls`` will apply to all containers within a task. + // + // This parameter is not supported for Windows containers or tasks run on FARGATElong. IpcMode pulumi.StringPtrInput // The amount (in MiB) of memory used by the task. // If your tasks runs on Amazon EC2 instances, you must specify either a task-level memory value or a container-level memory value. This field is optional and any value can be used. If a task-level memory value is specified, the container-level memory value is optional. For more information regarding container-level memory and memory reservation, see [ContainerDefinition](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html). // If your tasks runs on FARGATElong, this field is required. You must use one of the following values. The value you choose determines your range of valid values for the ``cpu`` parameter. // + 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available ``cpu`` values: 256 (.25 vCPU) // + 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available ``cpu`` values: 512 (.5 vCPU) - // + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` va + // + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` values: 1024 (1 vCPU) + // + Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 2048 (2 vCPU) + // + Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 4096 (4 vCPU) + // + Between 16 GB and 60 GB in 4 GB increments - Available ``cpu`` values: 8192 (8 vCPU) + // This option requires Linux platform ``1.4.0`` or later. + // + Between 32GB and 120 GB in 8 GB increments - Available ``cpu`` values: 16384 (16 vCPU) + // This option requires Linux platform ``1.4.0`` or later. Memory pulumi.StringPtrInput // The Docker networking mode to use for the containers in the task. The valid values are ``none``, ``bridge``, ``awsvpc``, and ``host``. If no network mode is specified, the default is ``bridge``. // For Amazon ECS tasks on Fargate, the ``awsvpc`` network mode is required. For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, ```` or ``awsvpc`` can be used. If the network mode is set to ``none``, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The ``host`` and ``awsvpc`` network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the ``bridge`` mode. - // With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elasti + // With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elastic network interface port (for the ``awsvpc`` network mode), so you cannot take advantage of dynamic host port mappings. + // When using the ``host`` network mode, you should not run containers using the root user (UID 0). It is considered best practice to use a non-root user. + // If the network mode is ``awsvpc``, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration value when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*. + // If the network mode is ``host``, you cannot run multiple instantiations of the same task on a single container instance when port mappings are used. + // For more information, see [Network settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#network-settings) in the *Docker run reference*. NetworkMode pulumi.StringPtrInput // The process namespace to use for the containers in the task. The valid values are ``host`` or ``task``. On Fargate for Linux containers, the only valid value is ``task``. For example, monitoring sidecars might need ``pidMode`` to access information about other containers running in the same task. // If ``host`` is specified, all containers within the tasks that specified the ``host`` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance. // If ``task`` is specified, all containers within the specified task share the same process namespace. // If no value is specified, the default is a private namespace for each container. For more information, see [PID settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#pid-settings---pid) in the *Docker run reference*. - // If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://doc + // If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/). + // This parameter is not supported for Windows containers. + // This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate. PidMode pulumi.StringPtrInput // An array of placement constraint objects to use for tasks. // This parameter isn't supported for tasks run on FARGATElong. @@ -547,7 +609,7 @@ type TaskDefinitionArgs struct { // + Maximum value length - 256 Unicode characters in UTF-8 // + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. // + Tag keys and values are case-sensitive. - // + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values + // + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. Tags aws.TagArrayInput // The short name or full Amazon Resource Name (ARN) of the IAMlong role that grants containers in the task permission to call AWS APIs on your behalf. For more information, see [Amazon ECS Task Role](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*. // IAM roles for tasks on Windows require that the ``-EnableTaskIAMRole`` option is set when you launch the Amazon ECS-optimized Windows AMI. Your containers must also run some configuration code to use the feature. For more information, see [Windows IAM roles for tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows_task_IAM_roles.html) in the *Amazon Elastic Container Service Developer Guide*. @@ -607,7 +669,10 @@ func (o TaskDefinitionOutput) ContainerDefinitions() TaskDefinitionContainerDefi // + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) // + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) // + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) -// + 8192 (8 vCPU) - Available ``memory`` va +// + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments +// This option requires Linux platform ``1.4.0`` or later. +// + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments +// This option requires Linux platform ``1.4.0`` or later. func (o TaskDefinitionOutput) Cpu() pulumi.StringPtrOutput { return o.ApplyT(func(v *TaskDefinition) pulumi.StringPtrOutput { return v.Cpu }).(pulumi.StringPtrOutput) } @@ -637,7 +702,12 @@ func (o TaskDefinitionOutput) InferenceAccelerators() TaskDefinitionInferenceAcc // The IPC resource namespace to use for the containers in the task. The valid values are “host“, “task“, or “none“. If “host“ is specified, then all containers within the tasks that specified the “host“ IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If “task“ is specified, all containers within the specified task share the same IPC resources. If “none“ is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see [IPC settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#ipc-settings---ipc) in the *Docker run reference*. // -// If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more inform +// If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/). +// If you are setting namespaced kernel parameters using ``systemControls`` for the containers in the task, the following will apply to your IPC resource namespace. For more information, see [System Controls](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html) in the *Amazon Elastic Container Service Developer Guide*. +// + For tasks that use the ``host`` IPC mode, IPC namespace related ``systemControls`` are not supported. +// + For tasks that use the ``task`` IPC mode, IPC namespace related ``systemControls`` will apply to all containers within a task. +// +// This parameter is not supported for Windows containers or tasks run on FARGATElong. func (o TaskDefinitionOutput) IpcMode() pulumi.StringPtrOutput { return o.ApplyT(func(v *TaskDefinition) pulumi.StringPtrOutput { return v.IpcMode }).(pulumi.StringPtrOutput) } @@ -648,7 +718,13 @@ func (o TaskDefinitionOutput) IpcMode() pulumi.StringPtrOutput { // If your tasks runs on FARGATElong, this field is required. You must use one of the following values. The value you choose determines your range of valid values for the ``cpu`` parameter. // + 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available ``cpu`` values: 256 (.25 vCPU) // + 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available ``cpu`` values: 512 (.5 vCPU) -// + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` va +// + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` values: 1024 (1 vCPU) +// + Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 2048 (2 vCPU) +// + Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 4096 (4 vCPU) +// + Between 16 GB and 60 GB in 4 GB increments - Available ``cpu`` values: 8192 (8 vCPU) +// This option requires Linux platform ``1.4.0`` or later. +// + Between 32GB and 120 GB in 8 GB increments - Available ``cpu`` values: 16384 (16 vCPU) +// This option requires Linux platform ``1.4.0`` or later. func (o TaskDefinitionOutput) Memory() pulumi.StringPtrOutput { return o.ApplyT(func(v *TaskDefinition) pulumi.StringPtrOutput { return v.Memory }).(pulumi.StringPtrOutput) } @@ -656,7 +732,11 @@ func (o TaskDefinitionOutput) Memory() pulumi.StringPtrOutput { // The Docker networking mode to use for the containers in the task. The valid values are “none“, “bridge“, “awsvpc“, and “host“. If no network mode is specified, the default is “bridge“. // // For Amazon ECS tasks on Fargate, the ``awsvpc`` network mode is required. For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, ```` or ``awsvpc`` can be used. If the network mode is set to ``none``, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The ``host`` and ``awsvpc`` network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the ``bridge`` mode. -// With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elasti +// With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elastic network interface port (for the ``awsvpc`` network mode), so you cannot take advantage of dynamic host port mappings. +// When using the ``host`` network mode, you should not run containers using the root user (UID 0). It is considered best practice to use a non-root user. +// If the network mode is ``awsvpc``, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration value when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*. +// If the network mode is ``host``, you cannot run multiple instantiations of the same task on a single container instance when port mappings are used. +// For more information, see [Network settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#network-settings) in the *Docker run reference*. func (o TaskDefinitionOutput) NetworkMode() pulumi.StringPtrOutput { return o.ApplyT(func(v *TaskDefinition) pulumi.StringPtrOutput { return v.NetworkMode }).(pulumi.StringPtrOutput) } @@ -666,7 +746,9 @@ func (o TaskDefinitionOutput) NetworkMode() pulumi.StringPtrOutput { // If ``host`` is specified, all containers within the tasks that specified the ``host`` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance. // If ``task`` is specified, all containers within the specified task share the same process namespace. // If no value is specified, the default is a private namespace for each container. For more information, see [PID settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#pid-settings---pid) in the *Docker run reference*. -// If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://doc +// If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/). +// This parameter is not supported for Windows containers. +// This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate. func (o TaskDefinitionOutput) PidMode() pulumi.StringPtrOutput { return o.ApplyT(func(v *TaskDefinition) pulumi.StringPtrOutput { return v.PidMode }).(pulumi.StringPtrOutput) } @@ -706,7 +788,7 @@ func (o TaskDefinitionOutput) RuntimePlatform() TaskDefinitionRuntimePlatformPtr // + Maximum value length - 256 Unicode characters in UTF-8 // + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. // + Tag keys and values are case-sensitive. -// + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values +// + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. func (o TaskDefinitionOutput) Tags() aws.TagArrayOutput { return o.ApplyT(func(v *TaskDefinition) aws.TagArrayOutput { return v.Tags }).(aws.TagArrayOutput) } 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/getIdNamespace.go b/sdk/go/aws/entityresolution/getIdNamespace.go new file mode 100644 index 0000000000..c46b584efb --- /dev/null +++ b/sdk/go/aws/entityresolution/getIdNamespace.go @@ -0,0 +1,123 @@ +// 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 entityresolution + +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" +) + +// IdNamespace defined in AWS Entity Resolution service +func LookupIdNamespace(ctx *pulumi.Context, args *LookupIdNamespaceArgs, opts ...pulumi.InvokeOption) (*LookupIdNamespaceResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupIdNamespaceResult + err := ctx.Invoke("aws-native:entityresolution:getIdNamespace", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupIdNamespaceArgs struct { + IdNamespaceName string `pulumi:"idNamespaceName"` +} + +type LookupIdNamespaceResult struct { + // The date and time when the IdNamespace was created + CreatedAt *string `pulumi:"createdAt"` + Description *string `pulumi:"description"` + IdMappingWorkflowProperties []IdNamespaceIdMappingWorkflowProperties `pulumi:"idMappingWorkflowProperties"` + // The arn associated with the IdNamespace + IdNamespaceArn *string `pulumi:"idNamespaceArn"` + InputSourceConfig []IdNamespaceInputSource `pulumi:"inputSourceConfig"` + RoleArn *string `pulumi:"roleArn"` + Tags []aws.Tag `pulumi:"tags"` + Type *IdNamespaceType `pulumi:"type"` + // The date and time when the IdNamespace was updated + UpdatedAt *string `pulumi:"updatedAt"` +} + +func LookupIdNamespaceOutput(ctx *pulumi.Context, args LookupIdNamespaceOutputArgs, opts ...pulumi.InvokeOption) LookupIdNamespaceResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupIdNamespaceResult, error) { + args := v.(LookupIdNamespaceArgs) + r, err := LookupIdNamespace(ctx, &args, opts...) + var s LookupIdNamespaceResult + if r != nil { + s = *r + } + return s, err + }).(LookupIdNamespaceResultOutput) +} + +type LookupIdNamespaceOutputArgs struct { + IdNamespaceName pulumi.StringInput `pulumi:"idNamespaceName"` +} + +func (LookupIdNamespaceOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupIdNamespaceArgs)(nil)).Elem() +} + +type LookupIdNamespaceResultOutput struct{ *pulumi.OutputState } + +func (LookupIdNamespaceResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupIdNamespaceResult)(nil)).Elem() +} + +func (o LookupIdNamespaceResultOutput) ToLookupIdNamespaceResultOutput() LookupIdNamespaceResultOutput { + return o +} + +func (o LookupIdNamespaceResultOutput) ToLookupIdNamespaceResultOutputWithContext(ctx context.Context) LookupIdNamespaceResultOutput { + return o +} + +// The date and time when the IdNamespace was created +func (o LookupIdNamespaceResultOutput) CreatedAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupIdNamespaceResult) *string { return v.CreatedAt }).(pulumi.StringPtrOutput) +} + +func (o LookupIdNamespaceResultOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupIdNamespaceResult) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +func (o LookupIdNamespaceResultOutput) IdMappingWorkflowProperties() IdNamespaceIdMappingWorkflowPropertiesArrayOutput { + return o.ApplyT(func(v LookupIdNamespaceResult) []IdNamespaceIdMappingWorkflowProperties { + return v.IdMappingWorkflowProperties + }).(IdNamespaceIdMappingWorkflowPropertiesArrayOutput) +} + +// The arn associated with the IdNamespace +func (o LookupIdNamespaceResultOutput) IdNamespaceArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupIdNamespaceResult) *string { return v.IdNamespaceArn }).(pulumi.StringPtrOutput) +} + +func (o LookupIdNamespaceResultOutput) InputSourceConfig() IdNamespaceInputSourceArrayOutput { + return o.ApplyT(func(v LookupIdNamespaceResult) []IdNamespaceInputSource { return v.InputSourceConfig }).(IdNamespaceInputSourceArrayOutput) +} + +func (o LookupIdNamespaceResultOutput) RoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupIdNamespaceResult) *string { return v.RoleArn }).(pulumi.StringPtrOutput) +} + +func (o LookupIdNamespaceResultOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v LookupIdNamespaceResult) []aws.Tag { return v.Tags }).(aws.TagArrayOutput) +} + +func (o LookupIdNamespaceResultOutput) Type() IdNamespaceTypePtrOutput { + return o.ApplyT(func(v LookupIdNamespaceResult) *IdNamespaceType { return v.Type }).(IdNamespaceTypePtrOutput) +} + +// The date and time when the IdNamespace was updated +func (o LookupIdNamespaceResultOutput) UpdatedAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupIdNamespaceResult) *string { return v.UpdatedAt }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupIdNamespaceResultOutput{}) +} diff --git a/sdk/go/aws/entityresolution/getPolicyStatement.go b/sdk/go/aws/entityresolution/getPolicyStatement.go new file mode 100644 index 0000000000..547148d393 --- /dev/null +++ b/sdk/go/aws/entityresolution/getPolicyStatement.go @@ -0,0 +1,91 @@ +// 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 entityresolution + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Policy Statement defined in AWS Entity Resolution Service +func LookupPolicyStatement(ctx *pulumi.Context, args *LookupPolicyStatementArgs, opts ...pulumi.InvokeOption) (*LookupPolicyStatementResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupPolicyStatementResult + err := ctx.Invoke("aws-native:entityresolution:getPolicyStatement", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupPolicyStatementArgs struct { + Arn string `pulumi:"arn"` + StatementId string `pulumi:"statementId"` +} + +type LookupPolicyStatementResult struct { + Action []string `pulumi:"action"` + Condition *string `pulumi:"condition"` + Effect *PolicyStatementStatementEffect `pulumi:"effect"` + Principal []string `pulumi:"principal"` +} + +func LookupPolicyStatementOutput(ctx *pulumi.Context, args LookupPolicyStatementOutputArgs, opts ...pulumi.InvokeOption) LookupPolicyStatementResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupPolicyStatementResult, error) { + args := v.(LookupPolicyStatementArgs) + r, err := LookupPolicyStatement(ctx, &args, opts...) + var s LookupPolicyStatementResult + if r != nil { + s = *r + } + return s, err + }).(LookupPolicyStatementResultOutput) +} + +type LookupPolicyStatementOutputArgs struct { + Arn pulumi.StringInput `pulumi:"arn"` + StatementId pulumi.StringInput `pulumi:"statementId"` +} + +func (LookupPolicyStatementOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupPolicyStatementArgs)(nil)).Elem() +} + +type LookupPolicyStatementResultOutput struct{ *pulumi.OutputState } + +func (LookupPolicyStatementResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupPolicyStatementResult)(nil)).Elem() +} + +func (o LookupPolicyStatementResultOutput) ToLookupPolicyStatementResultOutput() LookupPolicyStatementResultOutput { + return o +} + +func (o LookupPolicyStatementResultOutput) ToLookupPolicyStatementResultOutputWithContext(ctx context.Context) LookupPolicyStatementResultOutput { + return o +} + +func (o LookupPolicyStatementResultOutput) Action() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupPolicyStatementResult) []string { return v.Action }).(pulumi.StringArrayOutput) +} + +func (o LookupPolicyStatementResultOutput) Condition() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupPolicyStatementResult) *string { return v.Condition }).(pulumi.StringPtrOutput) +} + +func (o LookupPolicyStatementResultOutput) Effect() PolicyStatementStatementEffectPtrOutput { + return o.ApplyT(func(v LookupPolicyStatementResult) *PolicyStatementStatementEffect { return v.Effect }).(PolicyStatementStatementEffectPtrOutput) +} + +func (o LookupPolicyStatementResultOutput) Principal() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupPolicyStatementResult) []string { return v.Principal }).(pulumi.StringArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupPolicyStatementResultOutput{}) +} 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/idNamespace.go b/sdk/go/aws/entityresolution/idNamespace.go new file mode 100644 index 0000000000..6d96b19f8a --- /dev/null +++ b/sdk/go/aws/entityresolution/idNamespace.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 entityresolution + +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" +) + +// IdNamespace defined in AWS Entity Resolution service +type IdNamespace struct { + pulumi.CustomResourceState + + // The date and time when the IdNamespace was created + CreatedAt pulumi.StringOutput `pulumi:"createdAt"` + Description pulumi.StringPtrOutput `pulumi:"description"` + IdMappingWorkflowProperties IdNamespaceIdMappingWorkflowPropertiesArrayOutput `pulumi:"idMappingWorkflowProperties"` + // The arn associated with the IdNamespace + IdNamespaceArn pulumi.StringOutput `pulumi:"idNamespaceArn"` + IdNamespaceName pulumi.StringOutput `pulumi:"idNamespaceName"` + InputSourceConfig IdNamespaceInputSourceArrayOutput `pulumi:"inputSourceConfig"` + RoleArn pulumi.StringPtrOutput `pulumi:"roleArn"` + Tags aws.TagArrayOutput `pulumi:"tags"` + Type IdNamespaceTypeOutput `pulumi:"type"` + // The date and time when the IdNamespace was updated + UpdatedAt pulumi.StringOutput `pulumi:"updatedAt"` +} + +// NewIdNamespace registers a new resource with the given unique name, arguments, and options. +func NewIdNamespace(ctx *pulumi.Context, + name string, args *IdNamespaceArgs, opts ...pulumi.ResourceOption) (*IdNamespace, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Type == nil { + return nil, errors.New("invalid value for required argument 'Type'") + } + replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "idNamespaceName", + }) + opts = append(opts, replaceOnChanges) + opts = internal.PkgResourceDefaultOpts(opts) + var resource IdNamespace + err := ctx.RegisterResource("aws-native:entityresolution:IdNamespace", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetIdNamespace gets an existing IdNamespace 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 GetIdNamespace(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *IdNamespaceState, opts ...pulumi.ResourceOption) (*IdNamespace, error) { + var resource IdNamespace + err := ctx.ReadResource("aws-native:entityresolution:IdNamespace", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering IdNamespace resources. +type idNamespaceState struct { +} + +type IdNamespaceState struct { +} + +func (IdNamespaceState) ElementType() reflect.Type { + return reflect.TypeOf((*idNamespaceState)(nil)).Elem() +} + +type idNamespaceArgs struct { + Description *string `pulumi:"description"` + IdMappingWorkflowProperties []IdNamespaceIdMappingWorkflowProperties `pulumi:"idMappingWorkflowProperties"` + IdNamespaceName *string `pulumi:"idNamespaceName"` + InputSourceConfig []IdNamespaceInputSource `pulumi:"inputSourceConfig"` + RoleArn *string `pulumi:"roleArn"` + Tags []aws.Tag `pulumi:"tags"` + Type IdNamespaceType `pulumi:"type"` +} + +// The set of arguments for constructing a IdNamespace resource. +type IdNamespaceArgs struct { + Description pulumi.StringPtrInput + IdMappingWorkflowProperties IdNamespaceIdMappingWorkflowPropertiesArrayInput + IdNamespaceName pulumi.StringPtrInput + InputSourceConfig IdNamespaceInputSourceArrayInput + RoleArn pulumi.StringPtrInput + Tags aws.TagArrayInput + Type IdNamespaceTypeInput +} + +func (IdNamespaceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*idNamespaceArgs)(nil)).Elem() +} + +type IdNamespaceInput interface { + pulumi.Input + + ToIdNamespaceOutput() IdNamespaceOutput + ToIdNamespaceOutputWithContext(ctx context.Context) IdNamespaceOutput +} + +func (*IdNamespace) ElementType() reflect.Type { + return reflect.TypeOf((**IdNamespace)(nil)).Elem() +} + +func (i *IdNamespace) ToIdNamespaceOutput() IdNamespaceOutput { + return i.ToIdNamespaceOutputWithContext(context.Background()) +} + +func (i *IdNamespace) ToIdNamespaceOutputWithContext(ctx context.Context) IdNamespaceOutput { + return pulumi.ToOutputWithContext(ctx, i).(IdNamespaceOutput) +} + +type IdNamespaceOutput struct{ *pulumi.OutputState } + +func (IdNamespaceOutput) ElementType() reflect.Type { + return reflect.TypeOf((**IdNamespace)(nil)).Elem() +} + +func (o IdNamespaceOutput) ToIdNamespaceOutput() IdNamespaceOutput { + return o +} + +func (o IdNamespaceOutput) ToIdNamespaceOutputWithContext(ctx context.Context) IdNamespaceOutput { + return o +} + +// The date and time when the IdNamespace was created +func (o IdNamespaceOutput) CreatedAt() pulumi.StringOutput { + return o.ApplyT(func(v *IdNamespace) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput) +} + +func (o IdNamespaceOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *IdNamespace) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +func (o IdNamespaceOutput) IdMappingWorkflowProperties() IdNamespaceIdMappingWorkflowPropertiesArrayOutput { + return o.ApplyT(func(v *IdNamespace) IdNamespaceIdMappingWorkflowPropertiesArrayOutput { + return v.IdMappingWorkflowProperties + }).(IdNamespaceIdMappingWorkflowPropertiesArrayOutput) +} + +// The arn associated with the IdNamespace +func (o IdNamespaceOutput) IdNamespaceArn() pulumi.StringOutput { + return o.ApplyT(func(v *IdNamespace) pulumi.StringOutput { return v.IdNamespaceArn }).(pulumi.StringOutput) +} + +func (o IdNamespaceOutput) IdNamespaceName() pulumi.StringOutput { + return o.ApplyT(func(v *IdNamespace) pulumi.StringOutput { return v.IdNamespaceName }).(pulumi.StringOutput) +} + +func (o IdNamespaceOutput) InputSourceConfig() IdNamespaceInputSourceArrayOutput { + return o.ApplyT(func(v *IdNamespace) IdNamespaceInputSourceArrayOutput { return v.InputSourceConfig }).(IdNamespaceInputSourceArrayOutput) +} + +func (o IdNamespaceOutput) RoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *IdNamespace) pulumi.StringPtrOutput { return v.RoleArn }).(pulumi.StringPtrOutput) +} + +func (o IdNamespaceOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v *IdNamespace) aws.TagArrayOutput { return v.Tags }).(aws.TagArrayOutput) +} + +func (o IdNamespaceOutput) Type() IdNamespaceTypeOutput { + return o.ApplyT(func(v *IdNamespace) IdNamespaceTypeOutput { return v.Type }).(IdNamespaceTypeOutput) +} + +// The date and time when the IdNamespace was updated +func (o IdNamespaceOutput) UpdatedAt() pulumi.StringOutput { + return o.ApplyT(func(v *IdNamespace) pulumi.StringOutput { return v.UpdatedAt }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*IdNamespaceInput)(nil)).Elem(), &IdNamespace{}) + pulumi.RegisterOutputType(IdNamespaceOutput{}) +} diff --git a/sdk/go/aws/entityresolution/init.go b/sdk/go/aws/entityresolution/init.go index d2fa48402a..9819050aac 100644 --- a/sdk/go/aws/entityresolution/init.go +++ b/sdk/go/aws/entityresolution/init.go @@ -23,8 +23,12 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi switch typ { case "aws-native:entityresolution:IdMappingWorkflow": r = &IdMappingWorkflow{} + case "aws-native:entityresolution:IdNamespace": + r = &IdNamespace{} case "aws-native:entityresolution:MatchingWorkflow": r = &MatchingWorkflow{} + case "aws-native:entityresolution:PolicyStatement": + r = &PolicyStatement{} case "aws-native:entityresolution:SchemaMapping": r = &SchemaMapping{} default: diff --git a/sdk/go/aws/entityresolution/policyStatement.go b/sdk/go/aws/entityresolution/policyStatement.go new file mode 100644 index 0000000000..9836a65082 --- /dev/null +++ b/sdk/go/aws/entityresolution/policyStatement.go @@ -0,0 +1,160 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package entityresolution + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Policy Statement defined in AWS Entity Resolution Service +type PolicyStatement struct { + pulumi.CustomResourceState + + Action pulumi.StringArrayOutput `pulumi:"action"` + Arn pulumi.StringOutput `pulumi:"arn"` + Condition pulumi.StringPtrOutput `pulumi:"condition"` + Effect PolicyStatementStatementEffectPtrOutput `pulumi:"effect"` + Principal pulumi.StringArrayOutput `pulumi:"principal"` + StatementId pulumi.StringOutput `pulumi:"statementId"` +} + +// NewPolicyStatement registers a new resource with the given unique name, arguments, and options. +func NewPolicyStatement(ctx *pulumi.Context, + name string, args *PolicyStatementArgs, opts ...pulumi.ResourceOption) (*PolicyStatement, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Arn == nil { + return nil, errors.New("invalid value for required argument 'Arn'") + } + if args.StatementId == nil { + return nil, errors.New("invalid value for required argument 'StatementId'") + } + replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "arn", + "statementId", + }) + opts = append(opts, replaceOnChanges) + opts = internal.PkgResourceDefaultOpts(opts) + var resource PolicyStatement + err := ctx.RegisterResource("aws-native:entityresolution:PolicyStatement", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetPolicyStatement gets an existing PolicyStatement 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 GetPolicyStatement(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *PolicyStatementState, opts ...pulumi.ResourceOption) (*PolicyStatement, error) { + var resource PolicyStatement + err := ctx.ReadResource("aws-native:entityresolution:PolicyStatement", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering PolicyStatement resources. +type policyStatementState struct { +} + +type PolicyStatementState struct { +} + +func (PolicyStatementState) ElementType() reflect.Type { + return reflect.TypeOf((*policyStatementState)(nil)).Elem() +} + +type policyStatementArgs struct { + Action []string `pulumi:"action"` + Arn string `pulumi:"arn"` + Condition *string `pulumi:"condition"` + Effect *PolicyStatementStatementEffect `pulumi:"effect"` + Principal []string `pulumi:"principal"` + StatementId string `pulumi:"statementId"` +} + +// The set of arguments for constructing a PolicyStatement resource. +type PolicyStatementArgs struct { + Action pulumi.StringArrayInput + Arn pulumi.StringInput + Condition pulumi.StringPtrInput + Effect PolicyStatementStatementEffectPtrInput + Principal pulumi.StringArrayInput + StatementId pulumi.StringInput +} + +func (PolicyStatementArgs) ElementType() reflect.Type { + return reflect.TypeOf((*policyStatementArgs)(nil)).Elem() +} + +type PolicyStatementInput interface { + pulumi.Input + + ToPolicyStatementOutput() PolicyStatementOutput + ToPolicyStatementOutputWithContext(ctx context.Context) PolicyStatementOutput +} + +func (*PolicyStatement) ElementType() reflect.Type { + return reflect.TypeOf((**PolicyStatement)(nil)).Elem() +} + +func (i *PolicyStatement) ToPolicyStatementOutput() PolicyStatementOutput { + return i.ToPolicyStatementOutputWithContext(context.Background()) +} + +func (i *PolicyStatement) ToPolicyStatementOutputWithContext(ctx context.Context) PolicyStatementOutput { + return pulumi.ToOutputWithContext(ctx, i).(PolicyStatementOutput) +} + +type PolicyStatementOutput struct{ *pulumi.OutputState } + +func (PolicyStatementOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PolicyStatement)(nil)).Elem() +} + +func (o PolicyStatementOutput) ToPolicyStatementOutput() PolicyStatementOutput { + return o +} + +func (o PolicyStatementOutput) ToPolicyStatementOutputWithContext(ctx context.Context) PolicyStatementOutput { + return o +} + +func (o PolicyStatementOutput) Action() pulumi.StringArrayOutput { + return o.ApplyT(func(v *PolicyStatement) pulumi.StringArrayOutput { return v.Action }).(pulumi.StringArrayOutput) +} + +func (o PolicyStatementOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *PolicyStatement) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +func (o PolicyStatementOutput) Condition() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PolicyStatement) pulumi.StringPtrOutput { return v.Condition }).(pulumi.StringPtrOutput) +} + +func (o PolicyStatementOutput) Effect() PolicyStatementStatementEffectPtrOutput { + return o.ApplyT(func(v *PolicyStatement) PolicyStatementStatementEffectPtrOutput { return v.Effect }).(PolicyStatementStatementEffectPtrOutput) +} + +func (o PolicyStatementOutput) Principal() pulumi.StringArrayOutput { + return o.ApplyT(func(v *PolicyStatement) pulumi.StringArrayOutput { return v.Principal }).(pulumi.StringArrayOutput) +} + +func (o PolicyStatementOutput) StatementId() pulumi.StringOutput { + return o.ApplyT(func(v *PolicyStatement) pulumi.StringOutput { return v.StatementId }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*PolicyStatementInput)(nil)).Elem(), &PolicyStatement{}) + pulumi.RegisterOutputType(PolicyStatementOutput{}) +} diff --git a/sdk/go/aws/entityresolution/pulumiEnums.go b/sdk/go/aws/entityresolution/pulumiEnums.go index 36b733bdcf..464b10928c 100644 --- a/sdk/go/aws/entityresolution/pulumiEnums.go +++ b/sdk/go/aws/entityresolution/pulumiEnums.go @@ -173,6 +173,499 @@ 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 IdNamespaceIdMappingWorkflowPropertiesIdMappingType string + +const ( + IdNamespaceIdMappingWorkflowPropertiesIdMappingTypeProvider = IdNamespaceIdMappingWorkflowPropertiesIdMappingType("PROVIDER") +) + +func (IdNamespaceIdMappingWorkflowPropertiesIdMappingType) ElementType() reflect.Type { + return reflect.TypeOf((*IdNamespaceIdMappingWorkflowPropertiesIdMappingType)(nil)).Elem() +} + +func (e IdNamespaceIdMappingWorkflowPropertiesIdMappingType) ToIdNamespaceIdMappingWorkflowPropertiesIdMappingTypeOutput() IdNamespaceIdMappingWorkflowPropertiesIdMappingTypeOutput { + return pulumi.ToOutput(e).(IdNamespaceIdMappingWorkflowPropertiesIdMappingTypeOutput) +} + +func (e IdNamespaceIdMappingWorkflowPropertiesIdMappingType) ToIdNamespaceIdMappingWorkflowPropertiesIdMappingTypeOutputWithContext(ctx context.Context) IdNamespaceIdMappingWorkflowPropertiesIdMappingTypeOutput { + return pulumi.ToOutputWithContext(ctx, e).(IdNamespaceIdMappingWorkflowPropertiesIdMappingTypeOutput) +} + +func (e IdNamespaceIdMappingWorkflowPropertiesIdMappingType) ToIdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrOutput() IdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrOutput { + return e.ToIdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrOutputWithContext(context.Background()) +} + +func (e IdNamespaceIdMappingWorkflowPropertiesIdMappingType) ToIdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrOutputWithContext(ctx context.Context) IdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrOutput { + return IdNamespaceIdMappingWorkflowPropertiesIdMappingType(e).ToIdNamespaceIdMappingWorkflowPropertiesIdMappingTypeOutputWithContext(ctx).ToIdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrOutputWithContext(ctx) +} + +func (e IdNamespaceIdMappingWorkflowPropertiesIdMappingType) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e IdNamespaceIdMappingWorkflowPropertiesIdMappingType) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e IdNamespaceIdMappingWorkflowPropertiesIdMappingType) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e IdNamespaceIdMappingWorkflowPropertiesIdMappingType) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type IdNamespaceIdMappingWorkflowPropertiesIdMappingTypeOutput struct{ *pulumi.OutputState } + +func (IdNamespaceIdMappingWorkflowPropertiesIdMappingTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*IdNamespaceIdMappingWorkflowPropertiesIdMappingType)(nil)).Elem() +} + +func (o IdNamespaceIdMappingWorkflowPropertiesIdMappingTypeOutput) ToIdNamespaceIdMappingWorkflowPropertiesIdMappingTypeOutput() IdNamespaceIdMappingWorkflowPropertiesIdMappingTypeOutput { + return o +} + +func (o IdNamespaceIdMappingWorkflowPropertiesIdMappingTypeOutput) ToIdNamespaceIdMappingWorkflowPropertiesIdMappingTypeOutputWithContext(ctx context.Context) IdNamespaceIdMappingWorkflowPropertiesIdMappingTypeOutput { + return o +} + +func (o IdNamespaceIdMappingWorkflowPropertiesIdMappingTypeOutput) ToIdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrOutput() IdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrOutput { + return o.ToIdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrOutputWithContext(context.Background()) +} + +func (o IdNamespaceIdMappingWorkflowPropertiesIdMappingTypeOutput) ToIdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrOutputWithContext(ctx context.Context) IdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v IdNamespaceIdMappingWorkflowPropertiesIdMappingType) *IdNamespaceIdMappingWorkflowPropertiesIdMappingType { + return &v + }).(IdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrOutput) +} + +func (o IdNamespaceIdMappingWorkflowPropertiesIdMappingTypeOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o IdNamespaceIdMappingWorkflowPropertiesIdMappingTypeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e IdNamespaceIdMappingWorkflowPropertiesIdMappingType) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o IdNamespaceIdMappingWorkflowPropertiesIdMappingTypeOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o IdNamespaceIdMappingWorkflowPropertiesIdMappingTypeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e IdNamespaceIdMappingWorkflowPropertiesIdMappingType) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type IdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrOutput struct{ *pulumi.OutputState } + +func (IdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**IdNamespaceIdMappingWorkflowPropertiesIdMappingType)(nil)).Elem() +} + +func (o IdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrOutput) ToIdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrOutput() IdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrOutput { + return o +} + +func (o IdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrOutput) ToIdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrOutputWithContext(ctx context.Context) IdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrOutput { + return o +} + +func (o IdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrOutput) Elem() IdNamespaceIdMappingWorkflowPropertiesIdMappingTypeOutput { + return o.ApplyT(func(v *IdNamespaceIdMappingWorkflowPropertiesIdMappingType) IdNamespaceIdMappingWorkflowPropertiesIdMappingType { + if v != nil { + return *v + } + var ret IdNamespaceIdMappingWorkflowPropertiesIdMappingType + return ret + }).(IdNamespaceIdMappingWorkflowPropertiesIdMappingTypeOutput) +} + +func (o IdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o IdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *IdNamespaceIdMappingWorkflowPropertiesIdMappingType) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// IdNamespaceIdMappingWorkflowPropertiesIdMappingTypeInput is an input type that accepts values of the IdNamespaceIdMappingWorkflowPropertiesIdMappingType enum +// A concrete instance of `IdNamespaceIdMappingWorkflowPropertiesIdMappingTypeInput` can be one of the following: +// +// IdNamespaceIdMappingWorkflowPropertiesIdMappingTypeProvider +type IdNamespaceIdMappingWorkflowPropertiesIdMappingTypeInput interface { + pulumi.Input + + ToIdNamespaceIdMappingWorkflowPropertiesIdMappingTypeOutput() IdNamespaceIdMappingWorkflowPropertiesIdMappingTypeOutput + ToIdNamespaceIdMappingWorkflowPropertiesIdMappingTypeOutputWithContext(context.Context) IdNamespaceIdMappingWorkflowPropertiesIdMappingTypeOutput +} + +var idNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrType = reflect.TypeOf((**IdNamespaceIdMappingWorkflowPropertiesIdMappingType)(nil)).Elem() + +type IdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrInput interface { + pulumi.Input + + ToIdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrOutput() IdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrOutput + ToIdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrOutputWithContext(context.Context) IdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrOutput +} + +type idNamespaceIdMappingWorkflowPropertiesIdMappingTypePtr string + +func IdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtr(v string) IdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrInput { + return (*idNamespaceIdMappingWorkflowPropertiesIdMappingTypePtr)(&v) +} + +func (*idNamespaceIdMappingWorkflowPropertiesIdMappingTypePtr) ElementType() reflect.Type { + return idNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrType +} + +func (in *idNamespaceIdMappingWorkflowPropertiesIdMappingTypePtr) ToIdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrOutput() IdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrOutput { + return pulumi.ToOutput(in).(IdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrOutput) +} + +func (in *idNamespaceIdMappingWorkflowPropertiesIdMappingTypePtr) ToIdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrOutputWithContext(ctx context.Context) IdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(IdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrOutput) +} + +type IdNamespaceType string + +const ( + IdNamespaceTypeSource = IdNamespaceType("SOURCE") + IdNamespaceTypeTarget = IdNamespaceType("TARGET") +) + +func (IdNamespaceType) ElementType() reflect.Type { + return reflect.TypeOf((*IdNamespaceType)(nil)).Elem() +} + +func (e IdNamespaceType) ToIdNamespaceTypeOutput() IdNamespaceTypeOutput { + return pulumi.ToOutput(e).(IdNamespaceTypeOutput) +} + +func (e IdNamespaceType) ToIdNamespaceTypeOutputWithContext(ctx context.Context) IdNamespaceTypeOutput { + return pulumi.ToOutputWithContext(ctx, e).(IdNamespaceTypeOutput) +} + +func (e IdNamespaceType) ToIdNamespaceTypePtrOutput() IdNamespaceTypePtrOutput { + return e.ToIdNamespaceTypePtrOutputWithContext(context.Background()) +} + +func (e IdNamespaceType) ToIdNamespaceTypePtrOutputWithContext(ctx context.Context) IdNamespaceTypePtrOutput { + return IdNamespaceType(e).ToIdNamespaceTypeOutputWithContext(ctx).ToIdNamespaceTypePtrOutputWithContext(ctx) +} + +func (e IdNamespaceType) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e IdNamespaceType) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e IdNamespaceType) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e IdNamespaceType) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type IdNamespaceTypeOutput struct{ *pulumi.OutputState } + +func (IdNamespaceTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*IdNamespaceType)(nil)).Elem() +} + +func (o IdNamespaceTypeOutput) ToIdNamespaceTypeOutput() IdNamespaceTypeOutput { + return o +} + +func (o IdNamespaceTypeOutput) ToIdNamespaceTypeOutputWithContext(ctx context.Context) IdNamespaceTypeOutput { + return o +} + +func (o IdNamespaceTypeOutput) ToIdNamespaceTypePtrOutput() IdNamespaceTypePtrOutput { + return o.ToIdNamespaceTypePtrOutputWithContext(context.Background()) +} + +func (o IdNamespaceTypeOutput) ToIdNamespaceTypePtrOutputWithContext(ctx context.Context) IdNamespaceTypePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v IdNamespaceType) *IdNamespaceType { + return &v + }).(IdNamespaceTypePtrOutput) +} + +func (o IdNamespaceTypeOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o IdNamespaceTypeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e IdNamespaceType) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o IdNamespaceTypeOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o IdNamespaceTypeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e IdNamespaceType) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type IdNamespaceTypePtrOutput struct{ *pulumi.OutputState } + +func (IdNamespaceTypePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**IdNamespaceType)(nil)).Elem() +} + +func (o IdNamespaceTypePtrOutput) ToIdNamespaceTypePtrOutput() IdNamespaceTypePtrOutput { + return o +} + +func (o IdNamespaceTypePtrOutput) ToIdNamespaceTypePtrOutputWithContext(ctx context.Context) IdNamespaceTypePtrOutput { + return o +} + +func (o IdNamespaceTypePtrOutput) Elem() IdNamespaceTypeOutput { + return o.ApplyT(func(v *IdNamespaceType) IdNamespaceType { + if v != nil { + return *v + } + var ret IdNamespaceType + return ret + }).(IdNamespaceTypeOutput) +} + +func (o IdNamespaceTypePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o IdNamespaceTypePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *IdNamespaceType) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// IdNamespaceTypeInput is an input type that accepts values of the IdNamespaceType enum +// A concrete instance of `IdNamespaceTypeInput` can be one of the following: +// +// IdNamespaceTypeSource +// IdNamespaceTypeTarget +type IdNamespaceTypeInput interface { + pulumi.Input + + ToIdNamespaceTypeOutput() IdNamespaceTypeOutput + ToIdNamespaceTypeOutputWithContext(context.Context) IdNamespaceTypeOutput +} + +var idNamespaceTypePtrType = reflect.TypeOf((**IdNamespaceType)(nil)).Elem() + +type IdNamespaceTypePtrInput interface { + pulumi.Input + + ToIdNamespaceTypePtrOutput() IdNamespaceTypePtrOutput + ToIdNamespaceTypePtrOutputWithContext(context.Context) IdNamespaceTypePtrOutput +} + +type idNamespaceTypePtr string + +func IdNamespaceTypePtr(v string) IdNamespaceTypePtrInput { + return (*idNamespaceTypePtr)(&v) +} + +func (*idNamespaceTypePtr) ElementType() reflect.Type { + return idNamespaceTypePtrType +} + +func (in *idNamespaceTypePtr) ToIdNamespaceTypePtrOutput() IdNamespaceTypePtrOutput { + return pulumi.ToOutput(in).(IdNamespaceTypePtrOutput) +} + +func (in *idNamespaceTypePtr) ToIdNamespaceTypePtrOutputWithContext(ctx context.Context) IdNamespaceTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(IdNamespaceTypePtrOutput) +} + type MatchingWorkflowResolutionTechniquesResolutionType string const ( @@ -505,6 +998,171 @@ func (in *matchingWorkflowRuleBasedPropertiesAttributeMatchingModelPtr) ToMatchi return pulumi.ToOutputWithContext(ctx, in).(MatchingWorkflowRuleBasedPropertiesAttributeMatchingModelPtrOutput) } +type PolicyStatementStatementEffect string + +const ( + PolicyStatementStatementEffectAllow = PolicyStatementStatementEffect("Allow") + PolicyStatementStatementEffectDeny = PolicyStatementStatementEffect("Deny") +) + +func (PolicyStatementStatementEffect) ElementType() reflect.Type { + return reflect.TypeOf((*PolicyStatementStatementEffect)(nil)).Elem() +} + +func (e PolicyStatementStatementEffect) ToPolicyStatementStatementEffectOutput() PolicyStatementStatementEffectOutput { + return pulumi.ToOutput(e).(PolicyStatementStatementEffectOutput) +} + +func (e PolicyStatementStatementEffect) ToPolicyStatementStatementEffectOutputWithContext(ctx context.Context) PolicyStatementStatementEffectOutput { + return pulumi.ToOutputWithContext(ctx, e).(PolicyStatementStatementEffectOutput) +} + +func (e PolicyStatementStatementEffect) ToPolicyStatementStatementEffectPtrOutput() PolicyStatementStatementEffectPtrOutput { + return e.ToPolicyStatementStatementEffectPtrOutputWithContext(context.Background()) +} + +func (e PolicyStatementStatementEffect) ToPolicyStatementStatementEffectPtrOutputWithContext(ctx context.Context) PolicyStatementStatementEffectPtrOutput { + return PolicyStatementStatementEffect(e).ToPolicyStatementStatementEffectOutputWithContext(ctx).ToPolicyStatementStatementEffectPtrOutputWithContext(ctx) +} + +func (e PolicyStatementStatementEffect) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e PolicyStatementStatementEffect) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e PolicyStatementStatementEffect) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e PolicyStatementStatementEffect) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type PolicyStatementStatementEffectOutput struct{ *pulumi.OutputState } + +func (PolicyStatementStatementEffectOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PolicyStatementStatementEffect)(nil)).Elem() +} + +func (o PolicyStatementStatementEffectOutput) ToPolicyStatementStatementEffectOutput() PolicyStatementStatementEffectOutput { + return o +} + +func (o PolicyStatementStatementEffectOutput) ToPolicyStatementStatementEffectOutputWithContext(ctx context.Context) PolicyStatementStatementEffectOutput { + return o +} + +func (o PolicyStatementStatementEffectOutput) ToPolicyStatementStatementEffectPtrOutput() PolicyStatementStatementEffectPtrOutput { + return o.ToPolicyStatementStatementEffectPtrOutputWithContext(context.Background()) +} + +func (o PolicyStatementStatementEffectOutput) ToPolicyStatementStatementEffectPtrOutputWithContext(ctx context.Context) PolicyStatementStatementEffectPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PolicyStatementStatementEffect) *PolicyStatementStatementEffect { + return &v + }).(PolicyStatementStatementEffectPtrOutput) +} + +func (o PolicyStatementStatementEffectOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o PolicyStatementStatementEffectOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e PolicyStatementStatementEffect) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o PolicyStatementStatementEffectOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o PolicyStatementStatementEffectOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e PolicyStatementStatementEffect) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type PolicyStatementStatementEffectPtrOutput struct{ *pulumi.OutputState } + +func (PolicyStatementStatementEffectPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PolicyStatementStatementEffect)(nil)).Elem() +} + +func (o PolicyStatementStatementEffectPtrOutput) ToPolicyStatementStatementEffectPtrOutput() PolicyStatementStatementEffectPtrOutput { + return o +} + +func (o PolicyStatementStatementEffectPtrOutput) ToPolicyStatementStatementEffectPtrOutputWithContext(ctx context.Context) PolicyStatementStatementEffectPtrOutput { + return o +} + +func (o PolicyStatementStatementEffectPtrOutput) Elem() PolicyStatementStatementEffectOutput { + return o.ApplyT(func(v *PolicyStatementStatementEffect) PolicyStatementStatementEffect { + if v != nil { + return *v + } + var ret PolicyStatementStatementEffect + return ret + }).(PolicyStatementStatementEffectOutput) +} + +func (o PolicyStatementStatementEffectPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o PolicyStatementStatementEffectPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *PolicyStatementStatementEffect) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// PolicyStatementStatementEffectInput is an input type that accepts values of the PolicyStatementStatementEffect enum +// A concrete instance of `PolicyStatementStatementEffectInput` can be one of the following: +// +// PolicyStatementStatementEffectAllow +// PolicyStatementStatementEffectDeny +type PolicyStatementStatementEffectInput interface { + pulumi.Input + + ToPolicyStatementStatementEffectOutput() PolicyStatementStatementEffectOutput + ToPolicyStatementStatementEffectOutputWithContext(context.Context) PolicyStatementStatementEffectOutput +} + +var policyStatementStatementEffectPtrType = reflect.TypeOf((**PolicyStatementStatementEffect)(nil)).Elem() + +type PolicyStatementStatementEffectPtrInput interface { + pulumi.Input + + ToPolicyStatementStatementEffectPtrOutput() PolicyStatementStatementEffectPtrOutput + ToPolicyStatementStatementEffectPtrOutputWithContext(context.Context) PolicyStatementStatementEffectPtrOutput +} + +type policyStatementStatementEffectPtr string + +func PolicyStatementStatementEffectPtr(v string) PolicyStatementStatementEffectPtrInput { + return (*policyStatementStatementEffectPtr)(&v) +} + +func (*policyStatementStatementEffectPtr) ElementType() reflect.Type { + return policyStatementStatementEffectPtrType +} + +func (in *policyStatementStatementEffectPtr) ToPolicyStatementStatementEffectPtrOutput() PolicyStatementStatementEffectPtrOutput { + return pulumi.ToOutput(in).(PolicyStatementStatementEffectPtrOutput) +} + +func (in *policyStatementStatementEffectPtr) ToPolicyStatementStatementEffectPtrOutputWithContext(ctx context.Context) PolicyStatementStatementEffectPtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(PolicyStatementStatementEffectPtrOutput) +} + type SchemaMappingSchemaAttributeType string const ( @@ -709,18 +1367,34 @@ 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((*IdNamespaceIdMappingWorkflowPropertiesIdMappingTypeInput)(nil)).Elem(), IdNamespaceIdMappingWorkflowPropertiesIdMappingType("PROVIDER")) + pulumi.RegisterInputType(reflect.TypeOf((*IdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrInput)(nil)).Elem(), IdNamespaceIdMappingWorkflowPropertiesIdMappingType("PROVIDER")) + pulumi.RegisterInputType(reflect.TypeOf((*IdNamespaceTypeInput)(nil)).Elem(), IdNamespaceType("SOURCE")) + pulumi.RegisterInputType(reflect.TypeOf((*IdNamespaceTypePtrInput)(nil)).Elem(), IdNamespaceType("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")) pulumi.RegisterInputType(reflect.TypeOf((*MatchingWorkflowRuleBasedPropertiesAttributeMatchingModelPtrInput)(nil)).Elem(), MatchingWorkflowRuleBasedPropertiesAttributeMatchingModel("ONE_TO_ONE")) + pulumi.RegisterInputType(reflect.TypeOf((*PolicyStatementStatementEffectInput)(nil)).Elem(), PolicyStatementStatementEffect("Allow")) + pulumi.RegisterInputType(reflect.TypeOf((*PolicyStatementStatementEffectPtrInput)(nil)).Elem(), PolicyStatementStatementEffect("Allow")) pulumi.RegisterInputType(reflect.TypeOf((*SchemaMappingSchemaAttributeTypeInput)(nil)).Elem(), SchemaMappingSchemaAttributeType("NAME")) pulumi.RegisterInputType(reflect.TypeOf((*SchemaMappingSchemaAttributeTypePtrInput)(nil)).Elem(), SchemaMappingSchemaAttributeType("NAME")) pulumi.RegisterOutputType(IdMappingWorkflowIdMappingTechniquesIdMappingTypeOutput{}) pulumi.RegisterOutputType(IdMappingWorkflowIdMappingTechniquesIdMappingTypePtrOutput{}) + pulumi.RegisterOutputType(IdMappingWorkflowInputSourceTypeOutput{}) + pulumi.RegisterOutputType(IdMappingWorkflowInputSourceTypePtrOutput{}) + pulumi.RegisterOutputType(IdNamespaceIdMappingWorkflowPropertiesIdMappingTypeOutput{}) + pulumi.RegisterOutputType(IdNamespaceIdMappingWorkflowPropertiesIdMappingTypePtrOutput{}) + pulumi.RegisterOutputType(IdNamespaceTypeOutput{}) + pulumi.RegisterOutputType(IdNamespaceTypePtrOutput{}) pulumi.RegisterOutputType(MatchingWorkflowResolutionTechniquesResolutionTypeOutput{}) pulumi.RegisterOutputType(MatchingWorkflowResolutionTechniquesResolutionTypePtrOutput{}) pulumi.RegisterOutputType(MatchingWorkflowRuleBasedPropertiesAttributeMatchingModelOutput{}) pulumi.RegisterOutputType(MatchingWorkflowRuleBasedPropertiesAttributeMatchingModelPtrOutput{}) + pulumi.RegisterOutputType(PolicyStatementStatementEffectOutput{}) + pulumi.RegisterOutputType(PolicyStatementStatementEffectPtrOutput{}) pulumi.RegisterOutputType(SchemaMappingSchemaAttributeTypeOutput{}) pulumi.RegisterOutputType(SchemaMappingSchemaAttributeTypePtrOutput{}) } diff --git a/sdk/go/aws/entityresolution/pulumiTypes.go b/sdk/go/aws/entityresolution/pulumiTypes.go index b2e267577e..ae54268299 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 } @@ -638,6 +644,370 @@ type IdMappingWorkflowTag struct { Value string `pulumi:"value"` } +type IdNamespaceIdMappingWorkflowProperties struct { + IdMappingType IdNamespaceIdMappingWorkflowPropertiesIdMappingType `pulumi:"idMappingType"` + ProviderProperties *IdNamespaceNamespaceProviderProperties `pulumi:"providerProperties"` +} + +// IdNamespaceIdMappingWorkflowPropertiesInput is an input type that accepts IdNamespaceIdMappingWorkflowPropertiesArgs and IdNamespaceIdMappingWorkflowPropertiesOutput values. +// You can construct a concrete instance of `IdNamespaceIdMappingWorkflowPropertiesInput` via: +// +// IdNamespaceIdMappingWorkflowPropertiesArgs{...} +type IdNamespaceIdMappingWorkflowPropertiesInput interface { + pulumi.Input + + ToIdNamespaceIdMappingWorkflowPropertiesOutput() IdNamespaceIdMappingWorkflowPropertiesOutput + ToIdNamespaceIdMappingWorkflowPropertiesOutputWithContext(context.Context) IdNamespaceIdMappingWorkflowPropertiesOutput +} + +type IdNamespaceIdMappingWorkflowPropertiesArgs struct { + IdMappingType IdNamespaceIdMappingWorkflowPropertiesIdMappingTypeInput `pulumi:"idMappingType"` + ProviderProperties IdNamespaceNamespaceProviderPropertiesPtrInput `pulumi:"providerProperties"` +} + +func (IdNamespaceIdMappingWorkflowPropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*IdNamespaceIdMappingWorkflowProperties)(nil)).Elem() +} + +func (i IdNamespaceIdMappingWorkflowPropertiesArgs) ToIdNamespaceIdMappingWorkflowPropertiesOutput() IdNamespaceIdMappingWorkflowPropertiesOutput { + return i.ToIdNamespaceIdMappingWorkflowPropertiesOutputWithContext(context.Background()) +} + +func (i IdNamespaceIdMappingWorkflowPropertiesArgs) ToIdNamespaceIdMappingWorkflowPropertiesOutputWithContext(ctx context.Context) IdNamespaceIdMappingWorkflowPropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(IdNamespaceIdMappingWorkflowPropertiesOutput) +} + +// IdNamespaceIdMappingWorkflowPropertiesArrayInput is an input type that accepts IdNamespaceIdMappingWorkflowPropertiesArray and IdNamespaceIdMappingWorkflowPropertiesArrayOutput values. +// You can construct a concrete instance of `IdNamespaceIdMappingWorkflowPropertiesArrayInput` via: +// +// IdNamespaceIdMappingWorkflowPropertiesArray{ IdNamespaceIdMappingWorkflowPropertiesArgs{...} } +type IdNamespaceIdMappingWorkflowPropertiesArrayInput interface { + pulumi.Input + + ToIdNamespaceIdMappingWorkflowPropertiesArrayOutput() IdNamespaceIdMappingWorkflowPropertiesArrayOutput + ToIdNamespaceIdMappingWorkflowPropertiesArrayOutputWithContext(context.Context) IdNamespaceIdMappingWorkflowPropertiesArrayOutput +} + +type IdNamespaceIdMappingWorkflowPropertiesArray []IdNamespaceIdMappingWorkflowPropertiesInput + +func (IdNamespaceIdMappingWorkflowPropertiesArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]IdNamespaceIdMappingWorkflowProperties)(nil)).Elem() +} + +func (i IdNamespaceIdMappingWorkflowPropertiesArray) ToIdNamespaceIdMappingWorkflowPropertiesArrayOutput() IdNamespaceIdMappingWorkflowPropertiesArrayOutput { + return i.ToIdNamespaceIdMappingWorkflowPropertiesArrayOutputWithContext(context.Background()) +} + +func (i IdNamespaceIdMappingWorkflowPropertiesArray) ToIdNamespaceIdMappingWorkflowPropertiesArrayOutputWithContext(ctx context.Context) IdNamespaceIdMappingWorkflowPropertiesArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(IdNamespaceIdMappingWorkflowPropertiesArrayOutput) +} + +type IdNamespaceIdMappingWorkflowPropertiesOutput struct{ *pulumi.OutputState } + +func (IdNamespaceIdMappingWorkflowPropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*IdNamespaceIdMappingWorkflowProperties)(nil)).Elem() +} + +func (o IdNamespaceIdMappingWorkflowPropertiesOutput) ToIdNamespaceIdMappingWorkflowPropertiesOutput() IdNamespaceIdMappingWorkflowPropertiesOutput { + return o +} + +func (o IdNamespaceIdMappingWorkflowPropertiesOutput) ToIdNamespaceIdMappingWorkflowPropertiesOutputWithContext(ctx context.Context) IdNamespaceIdMappingWorkflowPropertiesOutput { + return o +} + +func (o IdNamespaceIdMappingWorkflowPropertiesOutput) IdMappingType() IdNamespaceIdMappingWorkflowPropertiesIdMappingTypeOutput { + return o.ApplyT(func(v IdNamespaceIdMappingWorkflowProperties) IdNamespaceIdMappingWorkflowPropertiesIdMappingType { + return v.IdMappingType + }).(IdNamespaceIdMappingWorkflowPropertiesIdMappingTypeOutput) +} + +func (o IdNamespaceIdMappingWorkflowPropertiesOutput) ProviderProperties() IdNamespaceNamespaceProviderPropertiesPtrOutput { + return o.ApplyT(func(v IdNamespaceIdMappingWorkflowProperties) *IdNamespaceNamespaceProviderProperties { + return v.ProviderProperties + }).(IdNamespaceNamespaceProviderPropertiesPtrOutput) +} + +type IdNamespaceIdMappingWorkflowPropertiesArrayOutput struct{ *pulumi.OutputState } + +func (IdNamespaceIdMappingWorkflowPropertiesArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]IdNamespaceIdMappingWorkflowProperties)(nil)).Elem() +} + +func (o IdNamespaceIdMappingWorkflowPropertiesArrayOutput) ToIdNamespaceIdMappingWorkflowPropertiesArrayOutput() IdNamespaceIdMappingWorkflowPropertiesArrayOutput { + return o +} + +func (o IdNamespaceIdMappingWorkflowPropertiesArrayOutput) ToIdNamespaceIdMappingWorkflowPropertiesArrayOutputWithContext(ctx context.Context) IdNamespaceIdMappingWorkflowPropertiesArrayOutput { + return o +} + +func (o IdNamespaceIdMappingWorkflowPropertiesArrayOutput) Index(i pulumi.IntInput) IdNamespaceIdMappingWorkflowPropertiesOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) IdNamespaceIdMappingWorkflowProperties { + return vs[0].([]IdNamespaceIdMappingWorkflowProperties)[vs[1].(int)] + }).(IdNamespaceIdMappingWorkflowPropertiesOutput) +} + +type IdNamespaceInputSource struct { + InputSourceArn string `pulumi:"inputSourceArn"` + SchemaName *string `pulumi:"schemaName"` +} + +// IdNamespaceInputSourceInput is an input type that accepts IdNamespaceInputSourceArgs and IdNamespaceInputSourceOutput values. +// You can construct a concrete instance of `IdNamespaceInputSourceInput` via: +// +// IdNamespaceInputSourceArgs{...} +type IdNamespaceInputSourceInput interface { + pulumi.Input + + ToIdNamespaceInputSourceOutput() IdNamespaceInputSourceOutput + ToIdNamespaceInputSourceOutputWithContext(context.Context) IdNamespaceInputSourceOutput +} + +type IdNamespaceInputSourceArgs struct { + InputSourceArn pulumi.StringInput `pulumi:"inputSourceArn"` + SchemaName pulumi.StringPtrInput `pulumi:"schemaName"` +} + +func (IdNamespaceInputSourceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*IdNamespaceInputSource)(nil)).Elem() +} + +func (i IdNamespaceInputSourceArgs) ToIdNamespaceInputSourceOutput() IdNamespaceInputSourceOutput { + return i.ToIdNamespaceInputSourceOutputWithContext(context.Background()) +} + +func (i IdNamespaceInputSourceArgs) ToIdNamespaceInputSourceOutputWithContext(ctx context.Context) IdNamespaceInputSourceOutput { + return pulumi.ToOutputWithContext(ctx, i).(IdNamespaceInputSourceOutput) +} + +// IdNamespaceInputSourceArrayInput is an input type that accepts IdNamespaceInputSourceArray and IdNamespaceInputSourceArrayOutput values. +// You can construct a concrete instance of `IdNamespaceInputSourceArrayInput` via: +// +// IdNamespaceInputSourceArray{ IdNamespaceInputSourceArgs{...} } +type IdNamespaceInputSourceArrayInput interface { + pulumi.Input + + ToIdNamespaceInputSourceArrayOutput() IdNamespaceInputSourceArrayOutput + ToIdNamespaceInputSourceArrayOutputWithContext(context.Context) IdNamespaceInputSourceArrayOutput +} + +type IdNamespaceInputSourceArray []IdNamespaceInputSourceInput + +func (IdNamespaceInputSourceArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]IdNamespaceInputSource)(nil)).Elem() +} + +func (i IdNamespaceInputSourceArray) ToIdNamespaceInputSourceArrayOutput() IdNamespaceInputSourceArrayOutput { + return i.ToIdNamespaceInputSourceArrayOutputWithContext(context.Background()) +} + +func (i IdNamespaceInputSourceArray) ToIdNamespaceInputSourceArrayOutputWithContext(ctx context.Context) IdNamespaceInputSourceArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(IdNamespaceInputSourceArrayOutput) +} + +type IdNamespaceInputSourceOutput struct{ *pulumi.OutputState } + +func (IdNamespaceInputSourceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*IdNamespaceInputSource)(nil)).Elem() +} + +func (o IdNamespaceInputSourceOutput) ToIdNamespaceInputSourceOutput() IdNamespaceInputSourceOutput { + return o +} + +func (o IdNamespaceInputSourceOutput) ToIdNamespaceInputSourceOutputWithContext(ctx context.Context) IdNamespaceInputSourceOutput { + return o +} + +func (o IdNamespaceInputSourceOutput) InputSourceArn() pulumi.StringOutput { + return o.ApplyT(func(v IdNamespaceInputSource) string { return v.InputSourceArn }).(pulumi.StringOutput) +} + +func (o IdNamespaceInputSourceOutput) SchemaName() pulumi.StringPtrOutput { + return o.ApplyT(func(v IdNamespaceInputSource) *string { return v.SchemaName }).(pulumi.StringPtrOutput) +} + +type IdNamespaceInputSourceArrayOutput struct{ *pulumi.OutputState } + +func (IdNamespaceInputSourceArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]IdNamespaceInputSource)(nil)).Elem() +} + +func (o IdNamespaceInputSourceArrayOutput) ToIdNamespaceInputSourceArrayOutput() IdNamespaceInputSourceArrayOutput { + return o +} + +func (o IdNamespaceInputSourceArrayOutput) ToIdNamespaceInputSourceArrayOutputWithContext(ctx context.Context) IdNamespaceInputSourceArrayOutput { + return o +} + +func (o IdNamespaceInputSourceArrayOutput) Index(i pulumi.IntInput) IdNamespaceInputSourceOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) IdNamespaceInputSource { + return vs[0].([]IdNamespaceInputSource)[vs[1].(int)] + }).(IdNamespaceInputSourceOutput) +} + +type IdNamespaceNamespaceProviderProperties struct { + // Additional Provider configuration that would be required for the provider service. The Configuration must be in JSON string format. + ProviderConfiguration map[string]string `pulumi:"providerConfiguration"` + ProviderServiceArn string `pulumi:"providerServiceArn"` +} + +// IdNamespaceNamespaceProviderPropertiesInput is an input type that accepts IdNamespaceNamespaceProviderPropertiesArgs and IdNamespaceNamespaceProviderPropertiesOutput values. +// You can construct a concrete instance of `IdNamespaceNamespaceProviderPropertiesInput` via: +// +// IdNamespaceNamespaceProviderPropertiesArgs{...} +type IdNamespaceNamespaceProviderPropertiesInput interface { + pulumi.Input + + ToIdNamespaceNamespaceProviderPropertiesOutput() IdNamespaceNamespaceProviderPropertiesOutput + ToIdNamespaceNamespaceProviderPropertiesOutputWithContext(context.Context) IdNamespaceNamespaceProviderPropertiesOutput +} + +type IdNamespaceNamespaceProviderPropertiesArgs struct { + // Additional Provider configuration that would be required for the provider service. The Configuration must be in JSON string format. + ProviderConfiguration pulumi.StringMapInput `pulumi:"providerConfiguration"` + ProviderServiceArn pulumi.StringInput `pulumi:"providerServiceArn"` +} + +func (IdNamespaceNamespaceProviderPropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*IdNamespaceNamespaceProviderProperties)(nil)).Elem() +} + +func (i IdNamespaceNamespaceProviderPropertiesArgs) ToIdNamespaceNamespaceProviderPropertiesOutput() IdNamespaceNamespaceProviderPropertiesOutput { + return i.ToIdNamespaceNamespaceProviderPropertiesOutputWithContext(context.Background()) +} + +func (i IdNamespaceNamespaceProviderPropertiesArgs) ToIdNamespaceNamespaceProviderPropertiesOutputWithContext(ctx context.Context) IdNamespaceNamespaceProviderPropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(IdNamespaceNamespaceProviderPropertiesOutput) +} + +func (i IdNamespaceNamespaceProviderPropertiesArgs) ToIdNamespaceNamespaceProviderPropertiesPtrOutput() IdNamespaceNamespaceProviderPropertiesPtrOutput { + return i.ToIdNamespaceNamespaceProviderPropertiesPtrOutputWithContext(context.Background()) +} + +func (i IdNamespaceNamespaceProviderPropertiesArgs) ToIdNamespaceNamespaceProviderPropertiesPtrOutputWithContext(ctx context.Context) IdNamespaceNamespaceProviderPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(IdNamespaceNamespaceProviderPropertiesOutput).ToIdNamespaceNamespaceProviderPropertiesPtrOutputWithContext(ctx) +} + +// IdNamespaceNamespaceProviderPropertiesPtrInput is an input type that accepts IdNamespaceNamespaceProviderPropertiesArgs, IdNamespaceNamespaceProviderPropertiesPtr and IdNamespaceNamespaceProviderPropertiesPtrOutput values. +// You can construct a concrete instance of `IdNamespaceNamespaceProviderPropertiesPtrInput` via: +// +// IdNamespaceNamespaceProviderPropertiesArgs{...} +// +// or: +// +// nil +type IdNamespaceNamespaceProviderPropertiesPtrInput interface { + pulumi.Input + + ToIdNamespaceNamespaceProviderPropertiesPtrOutput() IdNamespaceNamespaceProviderPropertiesPtrOutput + ToIdNamespaceNamespaceProviderPropertiesPtrOutputWithContext(context.Context) IdNamespaceNamespaceProviderPropertiesPtrOutput +} + +type idNamespaceNamespaceProviderPropertiesPtrType IdNamespaceNamespaceProviderPropertiesArgs + +func IdNamespaceNamespaceProviderPropertiesPtr(v *IdNamespaceNamespaceProviderPropertiesArgs) IdNamespaceNamespaceProviderPropertiesPtrInput { + return (*idNamespaceNamespaceProviderPropertiesPtrType)(v) +} + +func (*idNamespaceNamespaceProviderPropertiesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**IdNamespaceNamespaceProviderProperties)(nil)).Elem() +} + +func (i *idNamespaceNamespaceProviderPropertiesPtrType) ToIdNamespaceNamespaceProviderPropertiesPtrOutput() IdNamespaceNamespaceProviderPropertiesPtrOutput { + return i.ToIdNamespaceNamespaceProviderPropertiesPtrOutputWithContext(context.Background()) +} + +func (i *idNamespaceNamespaceProviderPropertiesPtrType) ToIdNamespaceNamespaceProviderPropertiesPtrOutputWithContext(ctx context.Context) IdNamespaceNamespaceProviderPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(IdNamespaceNamespaceProviderPropertiesPtrOutput) +} + +type IdNamespaceNamespaceProviderPropertiesOutput struct{ *pulumi.OutputState } + +func (IdNamespaceNamespaceProviderPropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*IdNamespaceNamespaceProviderProperties)(nil)).Elem() +} + +func (o IdNamespaceNamespaceProviderPropertiesOutput) ToIdNamespaceNamespaceProviderPropertiesOutput() IdNamespaceNamespaceProviderPropertiesOutput { + return o +} + +func (o IdNamespaceNamespaceProviderPropertiesOutput) ToIdNamespaceNamespaceProviderPropertiesOutputWithContext(ctx context.Context) IdNamespaceNamespaceProviderPropertiesOutput { + return o +} + +func (o IdNamespaceNamespaceProviderPropertiesOutput) ToIdNamespaceNamespaceProviderPropertiesPtrOutput() IdNamespaceNamespaceProviderPropertiesPtrOutput { + return o.ToIdNamespaceNamespaceProviderPropertiesPtrOutputWithContext(context.Background()) +} + +func (o IdNamespaceNamespaceProviderPropertiesOutput) ToIdNamespaceNamespaceProviderPropertiesPtrOutputWithContext(ctx context.Context) IdNamespaceNamespaceProviderPropertiesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v IdNamespaceNamespaceProviderProperties) *IdNamespaceNamespaceProviderProperties { + return &v + }).(IdNamespaceNamespaceProviderPropertiesPtrOutput) +} + +// Additional Provider configuration that would be required for the provider service. The Configuration must be in JSON string format. +func (o IdNamespaceNamespaceProviderPropertiesOutput) ProviderConfiguration() pulumi.StringMapOutput { + return o.ApplyT(func(v IdNamespaceNamespaceProviderProperties) map[string]string { return v.ProviderConfiguration }).(pulumi.StringMapOutput) +} + +func (o IdNamespaceNamespaceProviderPropertiesOutput) ProviderServiceArn() pulumi.StringOutput { + return o.ApplyT(func(v IdNamespaceNamespaceProviderProperties) string { return v.ProviderServiceArn }).(pulumi.StringOutput) +} + +type IdNamespaceNamespaceProviderPropertiesPtrOutput struct{ *pulumi.OutputState } + +func (IdNamespaceNamespaceProviderPropertiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**IdNamespaceNamespaceProviderProperties)(nil)).Elem() +} + +func (o IdNamespaceNamespaceProviderPropertiesPtrOutput) ToIdNamespaceNamespaceProviderPropertiesPtrOutput() IdNamespaceNamespaceProviderPropertiesPtrOutput { + return o +} + +func (o IdNamespaceNamespaceProviderPropertiesPtrOutput) ToIdNamespaceNamespaceProviderPropertiesPtrOutputWithContext(ctx context.Context) IdNamespaceNamespaceProviderPropertiesPtrOutput { + return o +} + +func (o IdNamespaceNamespaceProviderPropertiesPtrOutput) Elem() IdNamespaceNamespaceProviderPropertiesOutput { + return o.ApplyT(func(v *IdNamespaceNamespaceProviderProperties) IdNamespaceNamespaceProviderProperties { + if v != nil { + return *v + } + var ret IdNamespaceNamespaceProviderProperties + return ret + }).(IdNamespaceNamespaceProviderPropertiesOutput) +} + +// Additional Provider configuration that would be required for the provider service. The Configuration must be in JSON string format. +func (o IdNamespaceNamespaceProviderPropertiesPtrOutput) ProviderConfiguration() pulumi.StringMapOutput { + return o.ApplyT(func(v *IdNamespaceNamespaceProviderProperties) map[string]string { + if v == nil { + return nil + } + return v.ProviderConfiguration + }).(pulumi.StringMapOutput) +} + +func (o IdNamespaceNamespaceProviderPropertiesPtrOutput) ProviderServiceArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *IdNamespaceNamespaceProviderProperties) *string { + if v == nil { + return nil + } + return &v.ProviderServiceArn + }).(pulumi.StringPtrOutput) +} + +// A key-value pair to associate with a resource. +type IdNamespaceTag 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 MatchingWorkflowInputSource struct { ApplyNormalization *bool `pulumi:"applyNormalization"` // An Glue table ARN for the input source table @@ -1787,6 +2157,12 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*IdMappingWorkflowOutputSourceArrayInput)(nil)).Elem(), IdMappingWorkflowOutputSourceArray{}) pulumi.RegisterInputType(reflect.TypeOf((*IdMappingWorkflowProviderPropertiesInput)(nil)).Elem(), IdMappingWorkflowProviderPropertiesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*IdMappingWorkflowProviderPropertiesPtrInput)(nil)).Elem(), IdMappingWorkflowProviderPropertiesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*IdNamespaceIdMappingWorkflowPropertiesInput)(nil)).Elem(), IdNamespaceIdMappingWorkflowPropertiesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*IdNamespaceIdMappingWorkflowPropertiesArrayInput)(nil)).Elem(), IdNamespaceIdMappingWorkflowPropertiesArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*IdNamespaceInputSourceInput)(nil)).Elem(), IdNamespaceInputSourceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*IdNamespaceInputSourceArrayInput)(nil)).Elem(), IdNamespaceInputSourceArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*IdNamespaceNamespaceProviderPropertiesInput)(nil)).Elem(), IdNamespaceNamespaceProviderPropertiesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*IdNamespaceNamespaceProviderPropertiesPtrInput)(nil)).Elem(), IdNamespaceNamespaceProviderPropertiesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*MatchingWorkflowInputSourceInput)(nil)).Elem(), MatchingWorkflowInputSourceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*MatchingWorkflowInputSourceArrayInput)(nil)).Elem(), MatchingWorkflowInputSourceArray{}) pulumi.RegisterInputType(reflect.TypeOf((*MatchingWorkflowIntermediateSourceConfigurationInput)(nil)).Elem(), MatchingWorkflowIntermediateSourceConfigurationArgs{}) @@ -1814,6 +2190,12 @@ func init() { pulumi.RegisterOutputType(IdMappingWorkflowOutputSourceArrayOutput{}) pulumi.RegisterOutputType(IdMappingWorkflowProviderPropertiesOutput{}) pulumi.RegisterOutputType(IdMappingWorkflowProviderPropertiesPtrOutput{}) + pulumi.RegisterOutputType(IdNamespaceIdMappingWorkflowPropertiesOutput{}) + pulumi.RegisterOutputType(IdNamespaceIdMappingWorkflowPropertiesArrayOutput{}) + pulumi.RegisterOutputType(IdNamespaceInputSourceOutput{}) + pulumi.RegisterOutputType(IdNamespaceInputSourceArrayOutput{}) + pulumi.RegisterOutputType(IdNamespaceNamespaceProviderPropertiesOutput{}) + pulumi.RegisterOutputType(IdNamespaceNamespaceProviderPropertiesPtrOutput{}) pulumi.RegisterOutputType(MatchingWorkflowInputSourceOutput{}) pulumi.RegisterOutputType(MatchingWorkflowInputSourceArrayOutput{}) pulumi.RegisterOutputType(MatchingWorkflowIntermediateSourceConfigurationOutput{}) 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/ivs/encoderConfiguration.go b/sdk/go/aws/ivs/encoderConfiguration.go new file mode 100644 index 0000000000..435b681ad9 --- /dev/null +++ b/sdk/go/aws/ivs/encoderConfiguration.go @@ -0,0 +1,152 @@ +// 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 ivs + +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::IVS::EncoderConfiguration. +type EncoderConfiguration struct { + pulumi.CustomResourceState + + // Encoder configuration identifier. + Arn pulumi.StringOutput `pulumi:"arn"` + // Encoder configuration name. + Name pulumi.StringPtrOutput `pulumi:"name"` + // An array of key-value pairs to apply to this resource. + Tags aws.TagArrayOutput `pulumi:"tags"` + // Video configuration. Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps + Video VideoPropertiesPtrOutput `pulumi:"video"` +} + +// NewEncoderConfiguration registers a new resource with the given unique name, arguments, and options. +func NewEncoderConfiguration(ctx *pulumi.Context, + name string, args *EncoderConfigurationArgs, opts ...pulumi.ResourceOption) (*EncoderConfiguration, error) { + if args == nil { + args = &EncoderConfigurationArgs{} + } + + replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "name", + "video", + }) + opts = append(opts, replaceOnChanges) + opts = internal.PkgResourceDefaultOpts(opts) + var resource EncoderConfiguration + err := ctx.RegisterResource("aws-native:ivs:EncoderConfiguration", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetEncoderConfiguration gets an existing EncoderConfiguration 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 GetEncoderConfiguration(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *EncoderConfigurationState, opts ...pulumi.ResourceOption) (*EncoderConfiguration, error) { + var resource EncoderConfiguration + err := ctx.ReadResource("aws-native:ivs:EncoderConfiguration", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering EncoderConfiguration resources. +type encoderConfigurationState struct { +} + +type EncoderConfigurationState struct { +} + +func (EncoderConfigurationState) ElementType() reflect.Type { + return reflect.TypeOf((*encoderConfigurationState)(nil)).Elem() +} + +type encoderConfigurationArgs struct { + // Encoder configuration name. + Name *string `pulumi:"name"` + // An array of key-value pairs to apply to this resource. + Tags []aws.Tag `pulumi:"tags"` + // Video configuration. Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps + Video *VideoProperties `pulumi:"video"` +} + +// The set of arguments for constructing a EncoderConfiguration resource. +type EncoderConfigurationArgs struct { + // Encoder configuration name. + Name pulumi.StringPtrInput + // An array of key-value pairs to apply to this resource. + Tags aws.TagArrayInput + // Video configuration. Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps + Video VideoPropertiesPtrInput +} + +func (EncoderConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*encoderConfigurationArgs)(nil)).Elem() +} + +type EncoderConfigurationInput interface { + pulumi.Input + + ToEncoderConfigurationOutput() EncoderConfigurationOutput + ToEncoderConfigurationOutputWithContext(ctx context.Context) EncoderConfigurationOutput +} + +func (*EncoderConfiguration) ElementType() reflect.Type { + return reflect.TypeOf((**EncoderConfiguration)(nil)).Elem() +} + +func (i *EncoderConfiguration) ToEncoderConfigurationOutput() EncoderConfigurationOutput { + return i.ToEncoderConfigurationOutputWithContext(context.Background()) +} + +func (i *EncoderConfiguration) ToEncoderConfigurationOutputWithContext(ctx context.Context) EncoderConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(EncoderConfigurationOutput) +} + +type EncoderConfigurationOutput struct{ *pulumi.OutputState } + +func (EncoderConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EncoderConfiguration)(nil)).Elem() +} + +func (o EncoderConfigurationOutput) ToEncoderConfigurationOutput() EncoderConfigurationOutput { + return o +} + +func (o EncoderConfigurationOutput) ToEncoderConfigurationOutputWithContext(ctx context.Context) EncoderConfigurationOutput { + return o +} + +// Encoder configuration identifier. +func (o EncoderConfigurationOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *EncoderConfiguration) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// Encoder configuration name. +func (o EncoderConfigurationOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EncoderConfiguration) pulumi.StringPtrOutput { return v.Name }).(pulumi.StringPtrOutput) +} + +// An array of key-value pairs to apply to this resource. +func (o EncoderConfigurationOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v *EncoderConfiguration) aws.TagArrayOutput { return v.Tags }).(aws.TagArrayOutput) +} + +// Video configuration. Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps +func (o EncoderConfigurationOutput) Video() VideoPropertiesPtrOutput { + return o.ApplyT(func(v *EncoderConfiguration) VideoPropertiesPtrOutput { return v.Video }).(VideoPropertiesPtrOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*EncoderConfigurationInput)(nil)).Elem(), &EncoderConfiguration{}) + pulumi.RegisterOutputType(EncoderConfigurationOutput{}) +} diff --git a/sdk/go/aws/ivs/getEncoderConfiguration.go b/sdk/go/aws/ivs/getEncoderConfiguration.go new file mode 100644 index 0000000000..113dd1b812 --- /dev/null +++ b/sdk/go/aws/ivs/getEncoderConfiguration.go @@ -0,0 +1,86 @@ +// 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 ivs + +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::IVS::EncoderConfiguration. +func LookupEncoderConfiguration(ctx *pulumi.Context, args *LookupEncoderConfigurationArgs, opts ...pulumi.InvokeOption) (*LookupEncoderConfigurationResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupEncoderConfigurationResult + err := ctx.Invoke("aws-native:ivs:getEncoderConfiguration", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupEncoderConfigurationArgs struct { + // Encoder configuration identifier. + Arn string `pulumi:"arn"` +} + +type LookupEncoderConfigurationResult struct { + // Encoder configuration identifier. + Arn *string `pulumi:"arn"` + // An array of key-value pairs to apply to this resource. + Tags []aws.Tag `pulumi:"tags"` +} + +func LookupEncoderConfigurationOutput(ctx *pulumi.Context, args LookupEncoderConfigurationOutputArgs, opts ...pulumi.InvokeOption) LookupEncoderConfigurationResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupEncoderConfigurationResult, error) { + args := v.(LookupEncoderConfigurationArgs) + r, err := LookupEncoderConfiguration(ctx, &args, opts...) + var s LookupEncoderConfigurationResult + if r != nil { + s = *r + } + return s, err + }).(LookupEncoderConfigurationResultOutput) +} + +type LookupEncoderConfigurationOutputArgs struct { + // Encoder configuration identifier. + Arn pulumi.StringInput `pulumi:"arn"` +} + +func (LookupEncoderConfigurationOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupEncoderConfigurationArgs)(nil)).Elem() +} + +type LookupEncoderConfigurationResultOutput struct{ *pulumi.OutputState } + +func (LookupEncoderConfigurationResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupEncoderConfigurationResult)(nil)).Elem() +} + +func (o LookupEncoderConfigurationResultOutput) ToLookupEncoderConfigurationResultOutput() LookupEncoderConfigurationResultOutput { + return o +} + +func (o LookupEncoderConfigurationResultOutput) ToLookupEncoderConfigurationResultOutputWithContext(ctx context.Context) LookupEncoderConfigurationResultOutput { + return o +} + +// Encoder configuration identifier. +func (o LookupEncoderConfigurationResultOutput) Arn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupEncoderConfigurationResult) *string { return v.Arn }).(pulumi.StringPtrOutput) +} + +// An array of key-value pairs to apply to this resource. +func (o LookupEncoderConfigurationResultOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v LookupEncoderConfigurationResult) []aws.Tag { return v.Tags }).(aws.TagArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupEncoderConfigurationResultOutput{}) +} diff --git a/sdk/go/aws/ivs/getPlaybackRestrictionPolicy.go b/sdk/go/aws/ivs/getPlaybackRestrictionPolicy.go new file mode 100644 index 0000000000..34e749fd9e --- /dev/null +++ b/sdk/go/aws/ivs/getPlaybackRestrictionPolicy.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 ivs + +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::IVS::PlaybackRestrictionPolicy. +func LookupPlaybackRestrictionPolicy(ctx *pulumi.Context, args *LookupPlaybackRestrictionPolicyArgs, opts ...pulumi.InvokeOption) (*LookupPlaybackRestrictionPolicyResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupPlaybackRestrictionPolicyResult + err := ctx.Invoke("aws-native:ivs:getPlaybackRestrictionPolicy", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupPlaybackRestrictionPolicyArgs struct { + // Playback-restriction-policy identifier. + Arn string `pulumi:"arn"` +} + +type LookupPlaybackRestrictionPolicyResult struct { + // A list of country codes that control geoblocking restriction. Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries (an empty array). + AllowedCountries []string `pulumi:"allowedCountries"` + // A list of origin sites that control CORS restriction. Allowed values are the same as valid values of the Origin header defined at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin + AllowedOrigins []string `pulumi:"allowedOrigins"` + // Playback-restriction-policy identifier. + Arn *string `pulumi:"arn"` + // Whether channel playback is constrained by origin site. + EnableStrictOriginEnforcement *bool `pulumi:"enableStrictOriginEnforcement"` + // Playback-restriction-policy name. + Name *string `pulumi:"name"` + // An array of key-value pairs to apply to this resource. + Tags []aws.Tag `pulumi:"tags"` +} + +func LookupPlaybackRestrictionPolicyOutput(ctx *pulumi.Context, args LookupPlaybackRestrictionPolicyOutputArgs, opts ...pulumi.InvokeOption) LookupPlaybackRestrictionPolicyResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupPlaybackRestrictionPolicyResult, error) { + args := v.(LookupPlaybackRestrictionPolicyArgs) + r, err := LookupPlaybackRestrictionPolicy(ctx, &args, opts...) + var s LookupPlaybackRestrictionPolicyResult + if r != nil { + s = *r + } + return s, err + }).(LookupPlaybackRestrictionPolicyResultOutput) +} + +type LookupPlaybackRestrictionPolicyOutputArgs struct { + // Playback-restriction-policy identifier. + Arn pulumi.StringInput `pulumi:"arn"` +} + +func (LookupPlaybackRestrictionPolicyOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupPlaybackRestrictionPolicyArgs)(nil)).Elem() +} + +type LookupPlaybackRestrictionPolicyResultOutput struct{ *pulumi.OutputState } + +func (LookupPlaybackRestrictionPolicyResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupPlaybackRestrictionPolicyResult)(nil)).Elem() +} + +func (o LookupPlaybackRestrictionPolicyResultOutput) ToLookupPlaybackRestrictionPolicyResultOutput() LookupPlaybackRestrictionPolicyResultOutput { + return o +} + +func (o LookupPlaybackRestrictionPolicyResultOutput) ToLookupPlaybackRestrictionPolicyResultOutputWithContext(ctx context.Context) LookupPlaybackRestrictionPolicyResultOutput { + return o +} + +// A list of country codes that control geoblocking restriction. Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries (an empty array). +func (o LookupPlaybackRestrictionPolicyResultOutput) AllowedCountries() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupPlaybackRestrictionPolicyResult) []string { return v.AllowedCountries }).(pulumi.StringArrayOutput) +} + +// A list of origin sites that control CORS restriction. Allowed values are the same as valid values of the Origin header defined at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin +func (o LookupPlaybackRestrictionPolicyResultOutput) AllowedOrigins() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupPlaybackRestrictionPolicyResult) []string { return v.AllowedOrigins }).(pulumi.StringArrayOutput) +} + +// Playback-restriction-policy identifier. +func (o LookupPlaybackRestrictionPolicyResultOutput) Arn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupPlaybackRestrictionPolicyResult) *string { return v.Arn }).(pulumi.StringPtrOutput) +} + +// Whether channel playback is constrained by origin site. +func (o LookupPlaybackRestrictionPolicyResultOutput) EnableStrictOriginEnforcement() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupPlaybackRestrictionPolicyResult) *bool { return v.EnableStrictOriginEnforcement }).(pulumi.BoolPtrOutput) +} + +// Playback-restriction-policy name. +func (o LookupPlaybackRestrictionPolicyResultOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupPlaybackRestrictionPolicyResult) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// An array of key-value pairs to apply to this resource. +func (o LookupPlaybackRestrictionPolicyResultOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v LookupPlaybackRestrictionPolicyResult) []aws.Tag { return v.Tags }).(aws.TagArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupPlaybackRestrictionPolicyResultOutput{}) +} diff --git a/sdk/go/aws/ivs/getStorageConfiguration.go b/sdk/go/aws/ivs/getStorageConfiguration.go new file mode 100644 index 0000000000..fa9269cee7 --- /dev/null +++ b/sdk/go/aws/ivs/getStorageConfiguration.go @@ -0,0 +1,86 @@ +// 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 ivs + +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::IVS::StorageConfiguration +func LookupStorageConfiguration(ctx *pulumi.Context, args *LookupStorageConfigurationArgs, opts ...pulumi.InvokeOption) (*LookupStorageConfigurationResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupStorageConfigurationResult + err := ctx.Invoke("aws-native:ivs:getStorageConfiguration", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupStorageConfigurationArgs struct { + // Storage Configuration ARN is automatically generated on creation and assigned as the unique identifier. + Arn string `pulumi:"arn"` +} + +type LookupStorageConfigurationResult struct { + // Storage Configuration ARN is automatically generated on creation and assigned as the unique identifier. + Arn *string `pulumi:"arn"` + // A list of key-value pairs that contain metadata for the asset model. + Tags []aws.Tag `pulumi:"tags"` +} + +func LookupStorageConfigurationOutput(ctx *pulumi.Context, args LookupStorageConfigurationOutputArgs, opts ...pulumi.InvokeOption) LookupStorageConfigurationResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupStorageConfigurationResult, error) { + args := v.(LookupStorageConfigurationArgs) + r, err := LookupStorageConfiguration(ctx, &args, opts...) + var s LookupStorageConfigurationResult + if r != nil { + s = *r + } + return s, err + }).(LookupStorageConfigurationResultOutput) +} + +type LookupStorageConfigurationOutputArgs struct { + // Storage Configuration ARN is automatically generated on creation and assigned as the unique identifier. + Arn pulumi.StringInput `pulumi:"arn"` +} + +func (LookupStorageConfigurationOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupStorageConfigurationArgs)(nil)).Elem() +} + +type LookupStorageConfigurationResultOutput struct{ *pulumi.OutputState } + +func (LookupStorageConfigurationResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupStorageConfigurationResult)(nil)).Elem() +} + +func (o LookupStorageConfigurationResultOutput) ToLookupStorageConfigurationResultOutput() LookupStorageConfigurationResultOutput { + return o +} + +func (o LookupStorageConfigurationResultOutput) ToLookupStorageConfigurationResultOutputWithContext(ctx context.Context) LookupStorageConfigurationResultOutput { + return o +} + +// Storage Configuration ARN is automatically generated on creation and assigned as the unique identifier. +func (o LookupStorageConfigurationResultOutput) Arn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupStorageConfigurationResult) *string { return v.Arn }).(pulumi.StringPtrOutput) +} + +// A list of key-value pairs that contain metadata for the asset model. +func (o LookupStorageConfigurationResultOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v LookupStorageConfigurationResult) []aws.Tag { return v.Tags }).(aws.TagArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupStorageConfigurationResultOutput{}) +} diff --git a/sdk/go/aws/ivs/init.go b/sdk/go/aws/ivs/init.go index 95ecb1fa19..8d3b9a56e9 100644 --- a/sdk/go/aws/ivs/init.go +++ b/sdk/go/aws/ivs/init.go @@ -23,12 +23,18 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi switch typ { case "aws-native:ivs:Channel": r = &Channel{} + case "aws-native:ivs:EncoderConfiguration": + r = &EncoderConfiguration{} case "aws-native:ivs:PlaybackKeyPair": r = &PlaybackKeyPair{} + case "aws-native:ivs:PlaybackRestrictionPolicy": + r = &PlaybackRestrictionPolicy{} case "aws-native:ivs:RecordingConfiguration": r = &RecordingConfiguration{} case "aws-native:ivs:Stage": r = &Stage{} + case "aws-native:ivs:StorageConfiguration": + r = &StorageConfiguration{} case "aws-native:ivs:StreamKey": r = &StreamKey{} default: diff --git a/sdk/go/aws/ivs/playbackRestrictionPolicy.go b/sdk/go/aws/ivs/playbackRestrictionPolicy.go new file mode 100644 index 0000000000..88cf32a86a --- /dev/null +++ b/sdk/go/aws/ivs/playbackRestrictionPolicy.go @@ -0,0 +1,176 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package ivs + +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::IVS::PlaybackRestrictionPolicy. +type PlaybackRestrictionPolicy struct { + pulumi.CustomResourceState + + // A list of country codes that control geoblocking restriction. Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries (an empty array). + AllowedCountries pulumi.StringArrayOutput `pulumi:"allowedCountries"` + // A list of origin sites that control CORS restriction. Allowed values are the same as valid values of the Origin header defined at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin + AllowedOrigins pulumi.StringArrayOutput `pulumi:"allowedOrigins"` + // Playback-restriction-policy identifier. + Arn pulumi.StringOutput `pulumi:"arn"` + // Whether channel playback is constrained by origin site. + EnableStrictOriginEnforcement pulumi.BoolPtrOutput `pulumi:"enableStrictOriginEnforcement"` + // Playback-restriction-policy name. + Name pulumi.StringPtrOutput `pulumi:"name"` + // An array of key-value pairs to apply to this resource. + Tags aws.TagArrayOutput `pulumi:"tags"` +} + +// NewPlaybackRestrictionPolicy registers a new resource with the given unique name, arguments, and options. +func NewPlaybackRestrictionPolicy(ctx *pulumi.Context, + name string, args *PlaybackRestrictionPolicyArgs, opts ...pulumi.ResourceOption) (*PlaybackRestrictionPolicy, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.AllowedCountries == nil { + return nil, errors.New("invalid value for required argument 'AllowedCountries'") + } + if args.AllowedOrigins == nil { + return nil, errors.New("invalid value for required argument 'AllowedOrigins'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource PlaybackRestrictionPolicy + err := ctx.RegisterResource("aws-native:ivs:PlaybackRestrictionPolicy", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetPlaybackRestrictionPolicy gets an existing PlaybackRestrictionPolicy 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 GetPlaybackRestrictionPolicy(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *PlaybackRestrictionPolicyState, opts ...pulumi.ResourceOption) (*PlaybackRestrictionPolicy, error) { + var resource PlaybackRestrictionPolicy + err := ctx.ReadResource("aws-native:ivs:PlaybackRestrictionPolicy", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering PlaybackRestrictionPolicy resources. +type playbackRestrictionPolicyState struct { +} + +type PlaybackRestrictionPolicyState struct { +} + +func (PlaybackRestrictionPolicyState) ElementType() reflect.Type { + return reflect.TypeOf((*playbackRestrictionPolicyState)(nil)).Elem() +} + +type playbackRestrictionPolicyArgs struct { + // A list of country codes that control geoblocking restriction. Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries (an empty array). + AllowedCountries []string `pulumi:"allowedCountries"` + // A list of origin sites that control CORS restriction. Allowed values are the same as valid values of the Origin header defined at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin + AllowedOrigins []string `pulumi:"allowedOrigins"` + // Whether channel playback is constrained by origin site. + EnableStrictOriginEnforcement *bool `pulumi:"enableStrictOriginEnforcement"` + // Playback-restriction-policy name. + 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 PlaybackRestrictionPolicy resource. +type PlaybackRestrictionPolicyArgs struct { + // A list of country codes that control geoblocking restriction. Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries (an empty array). + AllowedCountries pulumi.StringArrayInput + // A list of origin sites that control CORS restriction. Allowed values are the same as valid values of the Origin header defined at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin + AllowedOrigins pulumi.StringArrayInput + // Whether channel playback is constrained by origin site. + EnableStrictOriginEnforcement pulumi.BoolPtrInput + // Playback-restriction-policy name. + Name pulumi.StringPtrInput + // An array of key-value pairs to apply to this resource. + Tags aws.TagArrayInput +} + +func (PlaybackRestrictionPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*playbackRestrictionPolicyArgs)(nil)).Elem() +} + +type PlaybackRestrictionPolicyInput interface { + pulumi.Input + + ToPlaybackRestrictionPolicyOutput() PlaybackRestrictionPolicyOutput + ToPlaybackRestrictionPolicyOutputWithContext(ctx context.Context) PlaybackRestrictionPolicyOutput +} + +func (*PlaybackRestrictionPolicy) ElementType() reflect.Type { + return reflect.TypeOf((**PlaybackRestrictionPolicy)(nil)).Elem() +} + +func (i *PlaybackRestrictionPolicy) ToPlaybackRestrictionPolicyOutput() PlaybackRestrictionPolicyOutput { + return i.ToPlaybackRestrictionPolicyOutputWithContext(context.Background()) +} + +func (i *PlaybackRestrictionPolicy) ToPlaybackRestrictionPolicyOutputWithContext(ctx context.Context) PlaybackRestrictionPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(PlaybackRestrictionPolicyOutput) +} + +type PlaybackRestrictionPolicyOutput struct{ *pulumi.OutputState } + +func (PlaybackRestrictionPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PlaybackRestrictionPolicy)(nil)).Elem() +} + +func (o PlaybackRestrictionPolicyOutput) ToPlaybackRestrictionPolicyOutput() PlaybackRestrictionPolicyOutput { + return o +} + +func (o PlaybackRestrictionPolicyOutput) ToPlaybackRestrictionPolicyOutputWithContext(ctx context.Context) PlaybackRestrictionPolicyOutput { + return o +} + +// A list of country codes that control geoblocking restriction. Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries (an empty array). +func (o PlaybackRestrictionPolicyOutput) AllowedCountries() pulumi.StringArrayOutput { + return o.ApplyT(func(v *PlaybackRestrictionPolicy) pulumi.StringArrayOutput { return v.AllowedCountries }).(pulumi.StringArrayOutput) +} + +// A list of origin sites that control CORS restriction. Allowed values are the same as valid values of the Origin header defined at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin +func (o PlaybackRestrictionPolicyOutput) AllowedOrigins() pulumi.StringArrayOutput { + return o.ApplyT(func(v *PlaybackRestrictionPolicy) pulumi.StringArrayOutput { return v.AllowedOrigins }).(pulumi.StringArrayOutput) +} + +// Playback-restriction-policy identifier. +func (o PlaybackRestrictionPolicyOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *PlaybackRestrictionPolicy) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// Whether channel playback is constrained by origin site. +func (o PlaybackRestrictionPolicyOutput) EnableStrictOriginEnforcement() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *PlaybackRestrictionPolicy) pulumi.BoolPtrOutput { return v.EnableStrictOriginEnforcement }).(pulumi.BoolPtrOutput) +} + +// Playback-restriction-policy name. +func (o PlaybackRestrictionPolicyOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PlaybackRestrictionPolicy) pulumi.StringPtrOutput { return v.Name }).(pulumi.StringPtrOutput) +} + +// An array of key-value pairs to apply to this resource. +func (o PlaybackRestrictionPolicyOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v *PlaybackRestrictionPolicy) aws.TagArrayOutput { return v.Tags }).(aws.TagArrayOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*PlaybackRestrictionPolicyInput)(nil)).Elem(), &PlaybackRestrictionPolicy{}) + pulumi.RegisterOutputType(PlaybackRestrictionPolicyOutput{}) +} diff --git a/sdk/go/aws/ivs/pulumiTypes.go b/sdk/go/aws/ivs/pulumiTypes.go index 385d44d4eb..b171c7df33 100644 --- a/sdk/go/aws/ivs/pulumiTypes.go +++ b/sdk/go/aws/ivs/pulumiTypes.go @@ -18,11 +18,27 @@ type ChannelTag struct { Value string `pulumi:"value"` } +// A key-value pair to associate with a resource. +type EncoderConfigurationTag 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 PlaybackKeyPairTag struct { Key string `pulumi:"key"` Value string `pulumi:"value"` } +// A key-value pair to associate with a resource. +type PlaybackRestrictionPolicyTag 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"` +} + // Recording Destination Configuration. type RecordingConfigurationDestinationConfiguration struct { S3 *RecordingConfigurationS3DestinationConfiguration `pulumi:"s3"` @@ -589,11 +605,268 @@ type StageTag struct { Value string `pulumi:"value"` } +// A complex type that describes an S3 location where recorded videos will be stored. +type StorageConfigurationS3StorageConfiguration struct { + // Location (S3 bucket name) where recorded videos will be stored. Note that the StorageConfiguration and S3 bucket must be in the same region as the Composition. + BucketName string `pulumi:"bucketName"` +} + +// StorageConfigurationS3StorageConfigurationInput is an input type that accepts StorageConfigurationS3StorageConfigurationArgs and StorageConfigurationS3StorageConfigurationOutput values. +// You can construct a concrete instance of `StorageConfigurationS3StorageConfigurationInput` via: +// +// StorageConfigurationS3StorageConfigurationArgs{...} +type StorageConfigurationS3StorageConfigurationInput interface { + pulumi.Input + + ToStorageConfigurationS3StorageConfigurationOutput() StorageConfigurationS3StorageConfigurationOutput + ToStorageConfigurationS3StorageConfigurationOutputWithContext(context.Context) StorageConfigurationS3StorageConfigurationOutput +} + +// A complex type that describes an S3 location where recorded videos will be stored. +type StorageConfigurationS3StorageConfigurationArgs struct { + // Location (S3 bucket name) where recorded videos will be stored. Note that the StorageConfiguration and S3 bucket must be in the same region as the Composition. + BucketName pulumi.StringInput `pulumi:"bucketName"` +} + +func (StorageConfigurationS3StorageConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StorageConfigurationS3StorageConfiguration)(nil)).Elem() +} + +func (i StorageConfigurationS3StorageConfigurationArgs) ToStorageConfigurationS3StorageConfigurationOutput() StorageConfigurationS3StorageConfigurationOutput { + return i.ToStorageConfigurationS3StorageConfigurationOutputWithContext(context.Background()) +} + +func (i StorageConfigurationS3StorageConfigurationArgs) ToStorageConfigurationS3StorageConfigurationOutputWithContext(ctx context.Context) StorageConfigurationS3StorageConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(StorageConfigurationS3StorageConfigurationOutput) +} + +// A complex type that describes an S3 location where recorded videos will be stored. +type StorageConfigurationS3StorageConfigurationOutput struct{ *pulumi.OutputState } + +func (StorageConfigurationS3StorageConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StorageConfigurationS3StorageConfiguration)(nil)).Elem() +} + +func (o StorageConfigurationS3StorageConfigurationOutput) ToStorageConfigurationS3StorageConfigurationOutput() StorageConfigurationS3StorageConfigurationOutput { + return o +} + +func (o StorageConfigurationS3StorageConfigurationOutput) ToStorageConfigurationS3StorageConfigurationOutputWithContext(ctx context.Context) StorageConfigurationS3StorageConfigurationOutput { + return o +} + +// Location (S3 bucket name) where recorded videos will be stored. Note that the StorageConfiguration and S3 bucket must be in the same region as the Composition. +func (o StorageConfigurationS3StorageConfigurationOutput) BucketName() pulumi.StringOutput { + return o.ApplyT(func(v StorageConfigurationS3StorageConfiguration) string { return v.BucketName }).(pulumi.StringOutput) +} + +type StorageConfigurationTag struct { + Key string `pulumi:"key"` + Value string `pulumi:"value"` +} + type StreamKeyTag struct { Key string `pulumi:"key"` Value string `pulumi:"value"` } +// Video configuration. Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps +type VideoProperties struct { + // Bitrate for generated output, in bps. Default: 2500000. + Bitrate *int `pulumi:"bitrate"` + // Video frame rate, in fps. Default: 30. + Framerate *float64 `pulumi:"framerate"` + // Video-resolution height. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 720. + Height *int `pulumi:"height"` + // Video-resolution width. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 1280. + Width *int `pulumi:"width"` +} + +// VideoPropertiesInput is an input type that accepts VideoPropertiesArgs and VideoPropertiesOutput values. +// You can construct a concrete instance of `VideoPropertiesInput` via: +// +// VideoPropertiesArgs{...} +type VideoPropertiesInput interface { + pulumi.Input + + ToVideoPropertiesOutput() VideoPropertiesOutput + ToVideoPropertiesOutputWithContext(context.Context) VideoPropertiesOutput +} + +// Video configuration. Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps +type VideoPropertiesArgs struct { + // Bitrate for generated output, in bps. Default: 2500000. + Bitrate pulumi.IntPtrInput `pulumi:"bitrate"` + // Video frame rate, in fps. Default: 30. + Framerate pulumi.Float64PtrInput `pulumi:"framerate"` + // Video-resolution height. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 720. + Height pulumi.IntPtrInput `pulumi:"height"` + // Video-resolution width. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 1280. + Width pulumi.IntPtrInput `pulumi:"width"` +} + +func (VideoPropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VideoProperties)(nil)).Elem() +} + +func (i VideoPropertiesArgs) ToVideoPropertiesOutput() VideoPropertiesOutput { + return i.ToVideoPropertiesOutputWithContext(context.Background()) +} + +func (i VideoPropertiesArgs) ToVideoPropertiesOutputWithContext(ctx context.Context) VideoPropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(VideoPropertiesOutput) +} + +func (i VideoPropertiesArgs) ToVideoPropertiesPtrOutput() VideoPropertiesPtrOutput { + return i.ToVideoPropertiesPtrOutputWithContext(context.Background()) +} + +func (i VideoPropertiesArgs) ToVideoPropertiesPtrOutputWithContext(ctx context.Context) VideoPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VideoPropertiesOutput).ToVideoPropertiesPtrOutputWithContext(ctx) +} + +// VideoPropertiesPtrInput is an input type that accepts VideoPropertiesArgs, VideoPropertiesPtr and VideoPropertiesPtrOutput values. +// You can construct a concrete instance of `VideoPropertiesPtrInput` via: +// +// VideoPropertiesArgs{...} +// +// or: +// +// nil +type VideoPropertiesPtrInput interface { + pulumi.Input + + ToVideoPropertiesPtrOutput() VideoPropertiesPtrOutput + ToVideoPropertiesPtrOutputWithContext(context.Context) VideoPropertiesPtrOutput +} + +type videoPropertiesPtrType VideoPropertiesArgs + +func VideoPropertiesPtr(v *VideoPropertiesArgs) VideoPropertiesPtrInput { + return (*videoPropertiesPtrType)(v) +} + +func (*videoPropertiesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**VideoProperties)(nil)).Elem() +} + +func (i *videoPropertiesPtrType) ToVideoPropertiesPtrOutput() VideoPropertiesPtrOutput { + return i.ToVideoPropertiesPtrOutputWithContext(context.Background()) +} + +func (i *videoPropertiesPtrType) ToVideoPropertiesPtrOutputWithContext(ctx context.Context) VideoPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VideoPropertiesPtrOutput) +} + +// Video configuration. Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps +type VideoPropertiesOutput struct{ *pulumi.OutputState } + +func (VideoPropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VideoProperties)(nil)).Elem() +} + +func (o VideoPropertiesOutput) ToVideoPropertiesOutput() VideoPropertiesOutput { + return o +} + +func (o VideoPropertiesOutput) ToVideoPropertiesOutputWithContext(ctx context.Context) VideoPropertiesOutput { + return o +} + +func (o VideoPropertiesOutput) ToVideoPropertiesPtrOutput() VideoPropertiesPtrOutput { + return o.ToVideoPropertiesPtrOutputWithContext(context.Background()) +} + +func (o VideoPropertiesOutput) ToVideoPropertiesPtrOutputWithContext(ctx context.Context) VideoPropertiesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v VideoProperties) *VideoProperties { + return &v + }).(VideoPropertiesPtrOutput) +} + +// Bitrate for generated output, in bps. Default: 2500000. +func (o VideoPropertiesOutput) Bitrate() pulumi.IntPtrOutput { + return o.ApplyT(func(v VideoProperties) *int { return v.Bitrate }).(pulumi.IntPtrOutput) +} + +// Video frame rate, in fps. Default: 30. +func (o VideoPropertiesOutput) Framerate() pulumi.Float64PtrOutput { + return o.ApplyT(func(v VideoProperties) *float64 { return v.Framerate }).(pulumi.Float64PtrOutput) +} + +// Video-resolution height. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 720. +func (o VideoPropertiesOutput) Height() pulumi.IntPtrOutput { + return o.ApplyT(func(v VideoProperties) *int { return v.Height }).(pulumi.IntPtrOutput) +} + +// Video-resolution width. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 1280. +func (o VideoPropertiesOutput) Width() pulumi.IntPtrOutput { + return o.ApplyT(func(v VideoProperties) *int { return v.Width }).(pulumi.IntPtrOutput) +} + +type VideoPropertiesPtrOutput struct{ *pulumi.OutputState } + +func (VideoPropertiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VideoProperties)(nil)).Elem() +} + +func (o VideoPropertiesPtrOutput) ToVideoPropertiesPtrOutput() VideoPropertiesPtrOutput { + return o +} + +func (o VideoPropertiesPtrOutput) ToVideoPropertiesPtrOutputWithContext(ctx context.Context) VideoPropertiesPtrOutput { + return o +} + +func (o VideoPropertiesPtrOutput) Elem() VideoPropertiesOutput { + return o.ApplyT(func(v *VideoProperties) VideoProperties { + if v != nil { + return *v + } + var ret VideoProperties + return ret + }).(VideoPropertiesOutput) +} + +// Bitrate for generated output, in bps. Default: 2500000. +func (o VideoPropertiesPtrOutput) Bitrate() pulumi.IntPtrOutput { + return o.ApplyT(func(v *VideoProperties) *int { + if v == nil { + return nil + } + return v.Bitrate + }).(pulumi.IntPtrOutput) +} + +// Video frame rate, in fps. Default: 30. +func (o VideoPropertiesPtrOutput) Framerate() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *VideoProperties) *float64 { + if v == nil { + return nil + } + return v.Framerate + }).(pulumi.Float64PtrOutput) +} + +// Video-resolution height. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 720. +func (o VideoPropertiesPtrOutput) Height() pulumi.IntPtrOutput { + return o.ApplyT(func(v *VideoProperties) *int { + if v == nil { + return nil + } + return v.Height + }).(pulumi.IntPtrOutput) +} + +// Video-resolution width. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 1280. +func (o VideoPropertiesPtrOutput) Width() pulumi.IntPtrOutput { + return o.ApplyT(func(v *VideoProperties) *int { + if v == nil { + return nil + } + return v.Width + }).(pulumi.IntPtrOutput) +} + func init() { pulumi.RegisterInputType(reflect.TypeOf((*RecordingConfigurationDestinationConfigurationInput)(nil)).Elem(), RecordingConfigurationDestinationConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RecordingConfigurationRenditionConfigurationInput)(nil)).Elem(), RecordingConfigurationRenditionConfigurationArgs{}) @@ -602,6 +875,9 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*RecordingConfigurationS3DestinationConfigurationPtrInput)(nil)).Elem(), RecordingConfigurationS3DestinationConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RecordingConfigurationThumbnailConfigurationInput)(nil)).Elem(), RecordingConfigurationThumbnailConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RecordingConfigurationThumbnailConfigurationPtrInput)(nil)).Elem(), RecordingConfigurationThumbnailConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StorageConfigurationS3StorageConfigurationInput)(nil)).Elem(), StorageConfigurationS3StorageConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*VideoPropertiesInput)(nil)).Elem(), VideoPropertiesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*VideoPropertiesPtrInput)(nil)).Elem(), VideoPropertiesArgs{}) pulumi.RegisterOutputType(RecordingConfigurationDestinationConfigurationOutput{}) pulumi.RegisterOutputType(RecordingConfigurationRenditionConfigurationOutput{}) pulumi.RegisterOutputType(RecordingConfigurationRenditionConfigurationPtrOutput{}) @@ -609,4 +885,7 @@ func init() { pulumi.RegisterOutputType(RecordingConfigurationS3DestinationConfigurationPtrOutput{}) pulumi.RegisterOutputType(RecordingConfigurationThumbnailConfigurationOutput{}) pulumi.RegisterOutputType(RecordingConfigurationThumbnailConfigurationPtrOutput{}) + pulumi.RegisterOutputType(StorageConfigurationS3StorageConfigurationOutput{}) + pulumi.RegisterOutputType(VideoPropertiesOutput{}) + pulumi.RegisterOutputType(VideoPropertiesPtrOutput{}) } diff --git a/sdk/go/aws/ivs/storageConfiguration.go b/sdk/go/aws/ivs/storageConfiguration.go new file mode 100644 index 0000000000..4c272a04fb --- /dev/null +++ b/sdk/go/aws/ivs/storageConfiguration.go @@ -0,0 +1,152 @@ +// 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 ivs + +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::IVS::StorageConfiguration +type StorageConfiguration struct { + pulumi.CustomResourceState + + // Storage Configuration ARN is automatically generated on creation and assigned as the unique identifier. + Arn pulumi.StringOutput `pulumi:"arn"` + // Storage Configuration Name. + Name pulumi.StringPtrOutput `pulumi:"name"` + S3 StorageConfigurationS3StorageConfigurationOutput `pulumi:"s3"` + // A list of key-value pairs that contain metadata for the asset model. + Tags aws.TagArrayOutput `pulumi:"tags"` +} + +// NewStorageConfiguration registers a new resource with the given unique name, arguments, and options. +func NewStorageConfiguration(ctx *pulumi.Context, + name string, args *StorageConfigurationArgs, opts ...pulumi.ResourceOption) (*StorageConfiguration, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.S3 == nil { + return nil, errors.New("invalid value for required argument 'S3'") + } + replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "name", + "s3", + }) + opts = append(opts, replaceOnChanges) + opts = internal.PkgResourceDefaultOpts(opts) + var resource StorageConfiguration + err := ctx.RegisterResource("aws-native:ivs:StorageConfiguration", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetStorageConfiguration gets an existing StorageConfiguration 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 GetStorageConfiguration(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *StorageConfigurationState, opts ...pulumi.ResourceOption) (*StorageConfiguration, error) { + var resource StorageConfiguration + err := ctx.ReadResource("aws-native:ivs:StorageConfiguration", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering StorageConfiguration resources. +type storageConfigurationState struct { +} + +type StorageConfigurationState struct { +} + +func (StorageConfigurationState) ElementType() reflect.Type { + return reflect.TypeOf((*storageConfigurationState)(nil)).Elem() +} + +type storageConfigurationArgs struct { + // Storage Configuration Name. + Name *string `pulumi:"name"` + S3 StorageConfigurationS3StorageConfiguration `pulumi:"s3"` + // A list of key-value pairs that contain metadata for the asset model. + Tags []aws.Tag `pulumi:"tags"` +} + +// The set of arguments for constructing a StorageConfiguration resource. +type StorageConfigurationArgs struct { + // Storage Configuration Name. + Name pulumi.StringPtrInput + S3 StorageConfigurationS3StorageConfigurationInput + // A list of key-value pairs that contain metadata for the asset model. + Tags aws.TagArrayInput +} + +func (StorageConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*storageConfigurationArgs)(nil)).Elem() +} + +type StorageConfigurationInput interface { + pulumi.Input + + ToStorageConfigurationOutput() StorageConfigurationOutput + ToStorageConfigurationOutputWithContext(ctx context.Context) StorageConfigurationOutput +} + +func (*StorageConfiguration) ElementType() reflect.Type { + return reflect.TypeOf((**StorageConfiguration)(nil)).Elem() +} + +func (i *StorageConfiguration) ToStorageConfigurationOutput() StorageConfigurationOutput { + return i.ToStorageConfigurationOutputWithContext(context.Background()) +} + +func (i *StorageConfiguration) ToStorageConfigurationOutputWithContext(ctx context.Context) StorageConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(StorageConfigurationOutput) +} + +type StorageConfigurationOutput struct{ *pulumi.OutputState } + +func (StorageConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StorageConfiguration)(nil)).Elem() +} + +func (o StorageConfigurationOutput) ToStorageConfigurationOutput() StorageConfigurationOutput { + return o +} + +func (o StorageConfigurationOutput) ToStorageConfigurationOutputWithContext(ctx context.Context) StorageConfigurationOutput { + return o +} + +// Storage Configuration ARN is automatically generated on creation and assigned as the unique identifier. +func (o StorageConfigurationOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *StorageConfiguration) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// Storage Configuration Name. +func (o StorageConfigurationOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StorageConfiguration) pulumi.StringPtrOutput { return v.Name }).(pulumi.StringPtrOutput) +} + +func (o StorageConfigurationOutput) S3() StorageConfigurationS3StorageConfigurationOutput { + return o.ApplyT(func(v *StorageConfiguration) StorageConfigurationS3StorageConfigurationOutput { return v.S3 }).(StorageConfigurationS3StorageConfigurationOutput) +} + +// A list of key-value pairs that contain metadata for the asset model. +func (o StorageConfigurationOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v *StorageConfiguration) aws.TagArrayOutput { return v.Tags }).(aws.TagArrayOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*StorageConfigurationInput)(nil)).Elem(), &StorageConfiguration{}) + pulumi.RegisterOutputType(StorageConfigurationOutput{}) +} 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/lambda/pulumiTypes.go b/sdk/go/aws/lambda/pulumiTypes.go index 36a34b8fe2..7100d1e7f2 100644 --- a/sdk/go/aws/lambda/pulumiTypes.go +++ b/sdk/go/aws/lambda/pulumiTypes.go @@ -3200,11 +3200,11 @@ type FunctionRuntimeManagementConfig struct { // This is only required if you're using the *Manual* runtime update mode. RuntimeVersionArn *string `pulumi:"runtimeVersionArn"` // Specify the runtime update mode. - // + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates. - // + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date. - // + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback). + // + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates. + // + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date. + // + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback). // - // *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual`` + // *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual`` UpdateRuntimeOn FunctionRuntimeManagementConfigUpdateRuntimeOn `pulumi:"updateRuntimeOn"` } @@ -3225,11 +3225,11 @@ type FunctionRuntimeManagementConfigArgs struct { // This is only required if you're using the *Manual* runtime update mode. RuntimeVersionArn pulumi.StringPtrInput `pulumi:"runtimeVersionArn"` // Specify the runtime update mode. - // + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates. - // + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date. - // + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback). + // + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates. + // + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date. + // + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback). // - // *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual`` + // *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual`` UpdateRuntimeOn FunctionRuntimeManagementConfigUpdateRuntimeOnInput `pulumi:"updateRuntimeOn"` } diff --git a/sdk/go/aws/logs/getLogGroup.go b/sdk/go/aws/logs/getLogGroup.go index 68c415d66a..ae931759f0 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..e327a1feed 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..32b482fa23 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/mediatailor/channel.go b/sdk/go/aws/mediatailor/channel.go index 0301a6fcc8..e490f1e232 100644 --- a/sdk/go/aws/mediatailor/channel.go +++ b/sdk/go/aws/mediatailor/channel.go @@ -18,7 +18,9 @@ type Channel struct { pulumi.CustomResourceState //

The ARN of the channel.

- Arn pulumi.StringOutput `pulumi:"arn"` + Arn pulumi.StringOutput `pulumi:"arn"` + //

The list of audiences defined in channel.

+ Audiences pulumi.StringArrayOutput `pulumi:"audiences"` ChannelName pulumi.StringOutput `pulumi:"channelName"` FillerSlate ChannelSlateSourcePtrOutput `pulumi:"fillerSlate"` LogConfiguration ChannelLogConfigurationForChannelPtrOutput `pulumi:"logConfiguration"` @@ -82,6 +84,8 @@ func (ChannelState) ElementType() reflect.Type { } type channelArgs struct { + //

The list of audiences defined in channel.

+ Audiences []string `pulumi:"audiences"` ChannelName *string `pulumi:"channelName"` FillerSlate *ChannelSlateSource `pulumi:"fillerSlate"` LogConfiguration *ChannelLogConfigurationForChannel `pulumi:"logConfiguration"` @@ -96,6 +100,8 @@ type channelArgs struct { // The set of arguments for constructing a Channel resource. type ChannelArgs struct { + //

The list of audiences defined in channel.

+ Audiences pulumi.StringArrayInput ChannelName pulumi.StringPtrInput FillerSlate ChannelSlateSourcePtrInput LogConfiguration ChannelLogConfigurationForChannelPtrInput @@ -150,6 +156,11 @@ func (o ChannelOutput) Arn() pulumi.StringOutput { return o.ApplyT(func(v *Channel) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) } +//

The list of audiences defined in channel.

+func (o ChannelOutput) Audiences() pulumi.StringArrayOutput { + return o.ApplyT(func(v *Channel) pulumi.StringArrayOutput { return v.Audiences }).(pulumi.StringArrayOutput) +} + func (o ChannelOutput) ChannelName() pulumi.StringOutput { return o.ApplyT(func(v *Channel) pulumi.StringOutput { return v.ChannelName }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/mediatailor/getChannel.go b/sdk/go/aws/mediatailor/getChannel.go index 85571e42b2..1f463e54c2 100644 --- a/sdk/go/aws/mediatailor/getChannel.go +++ b/sdk/go/aws/mediatailor/getChannel.go @@ -29,7 +29,9 @@ type LookupChannelArgs struct { type LookupChannelResult struct { //

The ARN of the channel.

- Arn *string `pulumi:"arn"` + Arn *string `pulumi:"arn"` + //

The list of audiences defined in channel.

+ Audiences []string `pulumi:"audiences"` FillerSlate *ChannelSlateSource `pulumi:"fillerSlate"` LogConfiguration *ChannelLogConfigurationForChannel `pulumi:"logConfiguration"` PlaybackMode *ChannelPlaybackMode `pulumi:"playbackMode"` @@ -78,6 +80,11 @@ func (o LookupChannelResultOutput) Arn() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupChannelResult) *string { return v.Arn }).(pulumi.StringPtrOutput) } +//

The list of audiences defined in channel.

+func (o LookupChannelResultOutput) Audiences() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupChannelResult) []string { return v.Audiences }).(pulumi.StringArrayOutput) +} + func (o LookupChannelResultOutput) FillerSlate() ChannelSlateSourcePtrOutput { return o.ApplyT(func(v LookupChannelResult) *ChannelSlateSource { return v.FillerSlate }).(ChannelSlateSourcePtrOutput) } diff --git a/sdk/go/aws/rds/customDbEngineVersion.go b/sdk/go/aws/rds/customDbEngineVersion.go index b443c8d9b2..ed6b70468e 100644 --- a/sdk/go/aws/rds/customDbEngineVersion.go +++ b/sdk/go/aws/rds/customDbEngineVersion.go @@ -18,7 +18,7 @@ type CustomDbEngineVersion struct { pulumi.CustomResourceState // The name of an Amazon S3 bucket that contains database installation files for your CEV. For example, a valid bucket name is `my-custom-installation-files`. - DatabaseInstallationFilesS3BucketName pulumi.StringOutput `pulumi:"databaseInstallationFilesS3BucketName"` + DatabaseInstallationFilesS3BucketName pulumi.StringPtrOutput `pulumi:"databaseInstallationFilesS3BucketName"` // The Amazon S3 directory that contains the database installation files for your CEV. For example, a valid bucket name is `123456789012/cev1`. If this setting isn't specified, no prefix is assumed. DatabaseInstallationFilesS3Prefix pulumi.StringPtrOutput `pulumi:"databaseInstallationFilesS3Prefix"` // The ARN of the custom engine version. @@ -29,14 +29,20 @@ type CustomDbEngineVersion struct { Engine pulumi.StringOutput `pulumi:"engine"` // The name of your CEV. The name format is 19.customized_string . For example, a valid name is 19.my_cev1. This setting is required for RDS Custom for Oracle, but optional for Amazon RDS. The combination of Engine and EngineVersion is unique per customer per Region. EngineVersion pulumi.StringOutput `pulumi:"engineVersion"` + // The identifier of Amazon Machine Image (AMI) used for CEV. + ImageId pulumi.StringPtrOutput `pulumi:"imageId"` // The AWS KMS key identifier for an encrypted CEV. A symmetric KMS key is required for RDS Custom, but optional for Amazon RDS. KmsKeyId pulumi.StringPtrOutput `pulumi:"kmsKeyId"` // The CEV manifest, which is a JSON document that describes the installation .zip files stored in Amazon S3. Specify the name/value pairs in a file or a quoted string. RDS Custom applies the patches in the order in which they are listed. Manifest pulumi.StringPtrOutput `pulumi:"manifest"` + // The identifier of the source custom engine version. + SourceCustomDbEngineVersionIdentifier pulumi.StringPtrOutput `pulumi:"sourceCustomDbEngineVersionIdentifier"` // The availability status to be assigned to the CEV. Status CustomDbEngineVersionStatusPtrOutput `pulumi:"status"` // An array of key-value pairs to apply to this resource. Tags aws.TagArrayOutput `pulumi:"tags"` + // A value that indicates whether AWS provided latest image is applied automatically to the Custom Engine Version. By default, AWS provided latest image is applied automatically. This value is only applied on create. + UseAwsProvidedLatestImage pulumi.BoolPtrOutput `pulumi:"useAwsProvidedLatestImage"` } // NewCustomDbEngineVersion registers a new resource with the given unique name, arguments, and options. @@ -46,9 +52,6 @@ func NewCustomDbEngineVersion(ctx *pulumi.Context, return nil, errors.New("missing one or more required arguments") } - if args.DatabaseInstallationFilesS3BucketName == nil { - return nil, errors.New("invalid value for required argument 'DatabaseInstallationFilesS3BucketName'") - } if args.Engine == nil { return nil, errors.New("invalid value for required argument 'Engine'") } @@ -60,8 +63,11 @@ func NewCustomDbEngineVersion(ctx *pulumi.Context, "databaseInstallationFilesS3Prefix", "engine", "engineVersion", + "imageId", "kmsKeyId", "manifest", + "sourceCustomDbEngineVersionIdentifier", + "useAwsProvidedLatestImage", }) opts = append(opts, replaceOnChanges) opts = internal.PkgResourceDefaultOpts(opts) @@ -98,7 +104,7 @@ func (CustomDbEngineVersionState) ElementType() reflect.Type { type customDbEngineVersionArgs struct { // The name of an Amazon S3 bucket that contains database installation files for your CEV. For example, a valid bucket name is `my-custom-installation-files`. - DatabaseInstallationFilesS3BucketName string `pulumi:"databaseInstallationFilesS3BucketName"` + DatabaseInstallationFilesS3BucketName *string `pulumi:"databaseInstallationFilesS3BucketName"` // The Amazon S3 directory that contains the database installation files for your CEV. For example, a valid bucket name is `123456789012/cev1`. If this setting isn't specified, no prefix is assumed. DatabaseInstallationFilesS3Prefix *string `pulumi:"databaseInstallationFilesS3Prefix"` // An optional description of your CEV. @@ -107,20 +113,26 @@ type customDbEngineVersionArgs struct { Engine string `pulumi:"engine"` // The name of your CEV. The name format is 19.customized_string . For example, a valid name is 19.my_cev1. This setting is required for RDS Custom for Oracle, but optional for Amazon RDS. The combination of Engine and EngineVersion is unique per customer per Region. EngineVersion string `pulumi:"engineVersion"` + // The identifier of Amazon Machine Image (AMI) used for CEV. + ImageId *string `pulumi:"imageId"` // The AWS KMS key identifier for an encrypted CEV. A symmetric KMS key is required for RDS Custom, but optional for Amazon RDS. KmsKeyId *string `pulumi:"kmsKeyId"` // The CEV manifest, which is a JSON document that describes the installation .zip files stored in Amazon S3. Specify the name/value pairs in a file or a quoted string. RDS Custom applies the patches in the order in which they are listed. Manifest *string `pulumi:"manifest"` + // The identifier of the source custom engine version. + SourceCustomDbEngineVersionIdentifier *string `pulumi:"sourceCustomDbEngineVersionIdentifier"` // The availability status to be assigned to the CEV. Status *CustomDbEngineVersionStatus `pulumi:"status"` // An array of key-value pairs to apply to this resource. Tags []aws.Tag `pulumi:"tags"` + // A value that indicates whether AWS provided latest image is applied automatically to the Custom Engine Version. By default, AWS provided latest image is applied automatically. This value is only applied on create. + UseAwsProvidedLatestImage *bool `pulumi:"useAwsProvidedLatestImage"` } // The set of arguments for constructing a CustomDbEngineVersion resource. type CustomDbEngineVersionArgs struct { // The name of an Amazon S3 bucket that contains database installation files for your CEV. For example, a valid bucket name is `my-custom-installation-files`. - DatabaseInstallationFilesS3BucketName pulumi.StringInput + DatabaseInstallationFilesS3BucketName pulumi.StringPtrInput // The Amazon S3 directory that contains the database installation files for your CEV. For example, a valid bucket name is `123456789012/cev1`. If this setting isn't specified, no prefix is assumed. DatabaseInstallationFilesS3Prefix pulumi.StringPtrInput // An optional description of your CEV. @@ -129,14 +141,20 @@ type CustomDbEngineVersionArgs struct { Engine pulumi.StringInput // The name of your CEV. The name format is 19.customized_string . For example, a valid name is 19.my_cev1. This setting is required for RDS Custom for Oracle, but optional for Amazon RDS. The combination of Engine and EngineVersion is unique per customer per Region. EngineVersion pulumi.StringInput + // The identifier of Amazon Machine Image (AMI) used for CEV. + ImageId pulumi.StringPtrInput // The AWS KMS key identifier for an encrypted CEV. A symmetric KMS key is required for RDS Custom, but optional for Amazon RDS. KmsKeyId pulumi.StringPtrInput // The CEV manifest, which is a JSON document that describes the installation .zip files stored in Amazon S3. Specify the name/value pairs in a file or a quoted string. RDS Custom applies the patches in the order in which they are listed. Manifest pulumi.StringPtrInput + // The identifier of the source custom engine version. + SourceCustomDbEngineVersionIdentifier pulumi.StringPtrInput // The availability status to be assigned to the CEV. Status CustomDbEngineVersionStatusPtrInput // An array of key-value pairs to apply to this resource. Tags aws.TagArrayInput + // A value that indicates whether AWS provided latest image is applied automatically to the Custom Engine Version. By default, AWS provided latest image is applied automatically. This value is only applied on create. + UseAwsProvidedLatestImage pulumi.BoolPtrInput } func (CustomDbEngineVersionArgs) ElementType() reflect.Type { @@ -177,8 +195,8 @@ func (o CustomDbEngineVersionOutput) ToCustomDbEngineVersionOutputWithContext(ct } // The name of an Amazon S3 bucket that contains database installation files for your CEV. For example, a valid bucket name is `my-custom-installation-files`. -func (o CustomDbEngineVersionOutput) DatabaseInstallationFilesS3BucketName() pulumi.StringOutput { - return o.ApplyT(func(v *CustomDbEngineVersion) pulumi.StringOutput { return v.DatabaseInstallationFilesS3BucketName }).(pulumi.StringOutput) +func (o CustomDbEngineVersionOutput) DatabaseInstallationFilesS3BucketName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CustomDbEngineVersion) pulumi.StringPtrOutput { return v.DatabaseInstallationFilesS3BucketName }).(pulumi.StringPtrOutput) } // The Amazon S3 directory that contains the database installation files for your CEV. For example, a valid bucket name is `123456789012/cev1`. If this setting isn't specified, no prefix is assumed. @@ -206,6 +224,11 @@ func (o CustomDbEngineVersionOutput) EngineVersion() pulumi.StringOutput { return o.ApplyT(func(v *CustomDbEngineVersion) pulumi.StringOutput { return v.EngineVersion }).(pulumi.StringOutput) } +// The identifier of Amazon Machine Image (AMI) used for CEV. +func (o CustomDbEngineVersionOutput) ImageId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CustomDbEngineVersion) pulumi.StringPtrOutput { return v.ImageId }).(pulumi.StringPtrOutput) +} + // The AWS KMS key identifier for an encrypted CEV. A symmetric KMS key is required for RDS Custom, but optional for Amazon RDS. func (o CustomDbEngineVersionOutput) KmsKeyId() pulumi.StringPtrOutput { return o.ApplyT(func(v *CustomDbEngineVersion) pulumi.StringPtrOutput { return v.KmsKeyId }).(pulumi.StringPtrOutput) @@ -216,6 +239,11 @@ func (o CustomDbEngineVersionOutput) Manifest() pulumi.StringPtrOutput { return o.ApplyT(func(v *CustomDbEngineVersion) pulumi.StringPtrOutput { return v.Manifest }).(pulumi.StringPtrOutput) } +// The identifier of the source custom engine version. +func (o CustomDbEngineVersionOutput) SourceCustomDbEngineVersionIdentifier() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CustomDbEngineVersion) pulumi.StringPtrOutput { return v.SourceCustomDbEngineVersionIdentifier }).(pulumi.StringPtrOutput) +} + // The availability status to be assigned to the CEV. func (o CustomDbEngineVersionOutput) Status() CustomDbEngineVersionStatusPtrOutput { return o.ApplyT(func(v *CustomDbEngineVersion) CustomDbEngineVersionStatusPtrOutput { return v.Status }).(CustomDbEngineVersionStatusPtrOutput) @@ -226,6 +254,11 @@ func (o CustomDbEngineVersionOutput) Tags() aws.TagArrayOutput { return o.ApplyT(func(v *CustomDbEngineVersion) aws.TagArrayOutput { return v.Tags }).(aws.TagArrayOutput) } +// A value that indicates whether AWS provided latest image is applied automatically to the Custom Engine Version. By default, AWS provided latest image is applied automatically. This value is only applied on create. +func (o CustomDbEngineVersionOutput) UseAwsProvidedLatestImage() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *CustomDbEngineVersion) pulumi.BoolPtrOutput { return v.UseAwsProvidedLatestImage }).(pulumi.BoolPtrOutput) +} + func init() { pulumi.RegisterInputType(reflect.TypeOf((*CustomDbEngineVersionInput)(nil)).Elem(), &CustomDbEngineVersion{}) pulumi.RegisterOutputType(CustomDbEngineVersionOutput{}) 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/route53/getHostedZone.go b/sdk/go/aws/route53/getHostedZone.go index f8ceeac999..93fe4caed6 100644 --- a/sdk/go/aws/route53/getHostedZone.go +++ b/sdk/go/aws/route53/getHostedZone.go @@ -61,7 +61,7 @@ type LookupHostedZoneResult struct { // + Log Group and Resource Policy Before you create a query logging configuration, perform the following operations. If you create a query logging configuration using the Route 53 console, Route 53 performs these operations automatically. Create a CloudWatch Logs log group, and make note of the ARN, which you specify when you create a query logging configuration. Note the following: You must create the log group in the us-east-1 region. You must use the same to create the log group and the hosted zone that you want to configure query logging for. When you create log groups for query logging, we recommend that you use a consistent prefix, for example: /aws/route53/hosted zone name In the next step, you'll create a resource policy, which controls access to one or more log groups and the associated resources, such as Route 53 hosted zones. There's a limit on the number of resource policies that you can create, so we recommend that you use a consistent prefix so you can use the same resource policy for all the log groups that you create for query logging. Create a CloudWatch Logs resource policy, and give it the permissions that Route 53 needs to create log streams and to send query logs to log streams. For the value of Resource, specify the ARN for the log group that you created in the previous step. To use the same resource policy for all the CloudWatch Logs log groups that you created for query logging configurations, replace the hosted zone name with *, for example: arn:aws:logs:us-east-1:123412341234:log-group:/aws/route53/* To avoid the confused deputy problem, a security issue where an entity without a permission for an action can coerce a more-privileged entity to perform it, you can optionally limit the permissions that a service has to a resource in a resource-based policy by supplying the following values: For aws:SourceArn, supply the hosted zone ARN used in creating the query logging configuration. For example, aws:SourceArn: arn:aws:route53:::hostedzone/hosted zone ID. For aws:SourceAccount, supply the account ID for the account that creates the query logging configuration. For example, aws:SourceAccount:111111111111. For more information, see The confused deputy problem in the IAM User Guide. You can't use the CloudWatch console to create or edit a resource policy. You must use the CloudWatch API, one of the SDKs, or the . + Log Streams and Edge Locations When Route 53 finishes creating the configuration for DNS query logging, it does the following: Creates a log stream for an edge location the first time that the edge location responds to DNS queries for the specified hosted zone. That log stream is used to log all queries that Route 53 responds to for that edge location. Begins to send query logs to the applicable log stream. The name of each log stream is in the following format: hosted zone ID/edge location code The edge location code is a three-letter code and an arbitrarily assigned number, for example, DFW3. The three-letter code typically corresponds with the International Air Transport Association airport code for an airport near the edge location. (These abbreviations might change in the future.) For a list of edge locations, see "The Route 53 Global Network" on the Route 53 Product Details page. + Queries That Are Logged Query logs contain only the queries that DNS resolvers forward to Route 53. If a DNS resolver has already cached the response to a query (such as the IP address for a load balancer for example.com), the resolver will continue to return the cached response. It doesn't forward another query to Route 53 until the TTL for the corresponding resource record set expires. Depending on how many DNS queries are submitted for a resource record set, and depending on the TTL for that resource record set, query logs might contain information about only one query out of every several thousand queries that are submitted to DNS. For more information about how DNS works, see Routing Internet Traffic to Your Website or Web Application in the Amazon Route 53 Developer Guide. + Log File Format For a list of the values in each query log and the format of each value, see Logging DNS Queries in the Amazon Route 53 Developer Guide. + Pricing For information about charges for query logs, see Amazon CloudWatch Pricing. + How to Stop Logging If you want Route 53 to stop sending query logs to CloudWatch Logs, delete the query logging configuration. For more information, see DeleteQueryLoggingConfig. QueryLoggingConfig *HostedZoneQueryLoggingConfig `pulumi:"queryLoggingConfig"` // *Private hosted zones:* A complex type that contains information about the VPCs that are associated with the specified hosted zone. - // For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + // For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. Vpcs []HostedZoneVpc `pulumi:"vpcs"` } diff --git a/sdk/go/aws/route53/hostedZone.go b/sdk/go/aws/route53/hostedZone.go index d5e349326c..c309c5e4a6 100644 --- a/sdk/go/aws/route53/hostedZone.go +++ b/sdk/go/aws/route53/hostedZone.go @@ -52,7 +52,7 @@ type HostedZone struct { // + Log Group and Resource Policy Before you create a query logging configuration, perform the following operations. If you create a query logging configuration using the Route 53 console, Route 53 performs these operations automatically. Create a CloudWatch Logs log group, and make note of the ARN, which you specify when you create a query logging configuration. Note the following: You must create the log group in the us-east-1 region. You must use the same to create the log group and the hosted zone that you want to configure query logging for. When you create log groups for query logging, we recommend that you use a consistent prefix, for example: /aws/route53/hosted zone name In the next step, you'll create a resource policy, which controls access to one or more log groups and the associated resources, such as Route 53 hosted zones. There's a limit on the number of resource policies that you can create, so we recommend that you use a consistent prefix so you can use the same resource policy for all the log groups that you create for query logging. Create a CloudWatch Logs resource policy, and give it the permissions that Route 53 needs to create log streams and to send query logs to log streams. For the value of Resource, specify the ARN for the log group that you created in the previous step. To use the same resource policy for all the CloudWatch Logs log groups that you created for query logging configurations, replace the hosted zone name with *, for example: arn:aws:logs:us-east-1:123412341234:log-group:/aws/route53/* To avoid the confused deputy problem, a security issue where an entity without a permission for an action can coerce a more-privileged entity to perform it, you can optionally limit the permissions that a service has to a resource in a resource-based policy by supplying the following values: For aws:SourceArn, supply the hosted zone ARN used in creating the query logging configuration. For example, aws:SourceArn: arn:aws:route53:::hostedzone/hosted zone ID. For aws:SourceAccount, supply the account ID for the account that creates the query logging configuration. For example, aws:SourceAccount:111111111111. For more information, see The confused deputy problem in the IAM User Guide. You can't use the CloudWatch console to create or edit a resource policy. You must use the CloudWatch API, one of the SDKs, or the . + Log Streams and Edge Locations When Route 53 finishes creating the configuration for DNS query logging, it does the following: Creates a log stream for an edge location the first time that the edge location responds to DNS queries for the specified hosted zone. That log stream is used to log all queries that Route 53 responds to for that edge location. Begins to send query logs to the applicable log stream. The name of each log stream is in the following format: hosted zone ID/edge location code The edge location code is a three-letter code and an arbitrarily assigned number, for example, DFW3. The three-letter code typically corresponds with the International Air Transport Association airport code for an airport near the edge location. (These abbreviations might change in the future.) For a list of edge locations, see "The Route 53 Global Network" on the Route 53 Product Details page. + Queries That Are Logged Query logs contain only the queries that DNS resolvers forward to Route 53. If a DNS resolver has already cached the response to a query (such as the IP address for a load balancer for example.com), the resolver will continue to return the cached response. It doesn't forward another query to Route 53 until the TTL for the corresponding resource record set expires. Depending on how many DNS queries are submitted for a resource record set, and depending on the TTL for that resource record set, query logs might contain information about only one query out of every several thousand queries that are submitted to DNS. For more information about how DNS works, see Routing Internet Traffic to Your Website or Web Application in the Amazon Route 53 Developer Guide. + Log File Format For a list of the values in each query log and the format of each value, see Logging DNS Queries in the Amazon Route 53 Developer Guide. + Pricing For information about charges for query logs, see Amazon CloudWatch Pricing. + How to Stop Logging If you want Route 53 to stop sending query logs to CloudWatch Logs, delete the query logging configuration. For more information, see DeleteQueryLoggingConfig. QueryLoggingConfig HostedZoneQueryLoggingConfigPtrOutput `pulumi:"queryLoggingConfig"` // *Private hosted zones:* A complex type that contains information about the VPCs that are associated with the specified hosted zone. - // For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + // For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. Vpcs HostedZoneVpcArrayOutput `pulumi:"vpcs"` } @@ -119,7 +119,7 @@ type hostedZoneArgs struct { // + Log Group and Resource Policy Before you create a query logging configuration, perform the following operations. If you create a query logging configuration using the Route 53 console, Route 53 performs these operations automatically. Create a CloudWatch Logs log group, and make note of the ARN, which you specify when you create a query logging configuration. Note the following: You must create the log group in the us-east-1 region. You must use the same to create the log group and the hosted zone that you want to configure query logging for. When you create log groups for query logging, we recommend that you use a consistent prefix, for example: /aws/route53/hosted zone name In the next step, you'll create a resource policy, which controls access to one or more log groups and the associated resources, such as Route 53 hosted zones. There's a limit on the number of resource policies that you can create, so we recommend that you use a consistent prefix so you can use the same resource policy for all the log groups that you create for query logging. Create a CloudWatch Logs resource policy, and give it the permissions that Route 53 needs to create log streams and to send query logs to log streams. For the value of Resource, specify the ARN for the log group that you created in the previous step. To use the same resource policy for all the CloudWatch Logs log groups that you created for query logging configurations, replace the hosted zone name with *, for example: arn:aws:logs:us-east-1:123412341234:log-group:/aws/route53/* To avoid the confused deputy problem, a security issue where an entity without a permission for an action can coerce a more-privileged entity to perform it, you can optionally limit the permissions that a service has to a resource in a resource-based policy by supplying the following values: For aws:SourceArn, supply the hosted zone ARN used in creating the query logging configuration. For example, aws:SourceArn: arn:aws:route53:::hostedzone/hosted zone ID. For aws:SourceAccount, supply the account ID for the account that creates the query logging configuration. For example, aws:SourceAccount:111111111111. For more information, see The confused deputy problem in the IAM User Guide. You can't use the CloudWatch console to create or edit a resource policy. You must use the CloudWatch API, one of the SDKs, or the . + Log Streams and Edge Locations When Route 53 finishes creating the configuration for DNS query logging, it does the following: Creates a log stream for an edge location the first time that the edge location responds to DNS queries for the specified hosted zone. That log stream is used to log all queries that Route 53 responds to for that edge location. Begins to send query logs to the applicable log stream. The name of each log stream is in the following format: hosted zone ID/edge location code The edge location code is a three-letter code and an arbitrarily assigned number, for example, DFW3. The three-letter code typically corresponds with the International Air Transport Association airport code for an airport near the edge location. (These abbreviations might change in the future.) For a list of edge locations, see "The Route 53 Global Network" on the Route 53 Product Details page. + Queries That Are Logged Query logs contain only the queries that DNS resolvers forward to Route 53. If a DNS resolver has already cached the response to a query (such as the IP address for a load balancer for example.com), the resolver will continue to return the cached response. It doesn't forward another query to Route 53 until the TTL for the corresponding resource record set expires. Depending on how many DNS queries are submitted for a resource record set, and depending on the TTL for that resource record set, query logs might contain information about only one query out of every several thousand queries that are submitted to DNS. For more information about how DNS works, see Routing Internet Traffic to Your Website or Web Application in the Amazon Route 53 Developer Guide. + Log File Format For a list of the values in each query log and the format of each value, see Logging DNS Queries in the Amazon Route 53 Developer Guide. + Pricing For information about charges for query logs, see Amazon CloudWatch Pricing. + How to Stop Logging If you want Route 53 to stop sending query logs to CloudWatch Logs, delete the query logging configuration. For more information, see DeleteQueryLoggingConfig. QueryLoggingConfig *HostedZoneQueryLoggingConfig `pulumi:"queryLoggingConfig"` // *Private hosted zones:* A complex type that contains information about the VPCs that are associated with the specified hosted zone. - // For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + // For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. Vpcs []HostedZoneVpc `pulumi:"vpcs"` } @@ -144,7 +144,7 @@ type HostedZoneArgs struct { // + Log Group and Resource Policy Before you create a query logging configuration, perform the following operations. If you create a query logging configuration using the Route 53 console, Route 53 performs these operations automatically. Create a CloudWatch Logs log group, and make note of the ARN, which you specify when you create a query logging configuration. Note the following: You must create the log group in the us-east-1 region. You must use the same to create the log group and the hosted zone that you want to configure query logging for. When you create log groups for query logging, we recommend that you use a consistent prefix, for example: /aws/route53/hosted zone name In the next step, you'll create a resource policy, which controls access to one or more log groups and the associated resources, such as Route 53 hosted zones. There's a limit on the number of resource policies that you can create, so we recommend that you use a consistent prefix so you can use the same resource policy for all the log groups that you create for query logging. Create a CloudWatch Logs resource policy, and give it the permissions that Route 53 needs to create log streams and to send query logs to log streams. For the value of Resource, specify the ARN for the log group that you created in the previous step. To use the same resource policy for all the CloudWatch Logs log groups that you created for query logging configurations, replace the hosted zone name with *, for example: arn:aws:logs:us-east-1:123412341234:log-group:/aws/route53/* To avoid the confused deputy problem, a security issue where an entity without a permission for an action can coerce a more-privileged entity to perform it, you can optionally limit the permissions that a service has to a resource in a resource-based policy by supplying the following values: For aws:SourceArn, supply the hosted zone ARN used in creating the query logging configuration. For example, aws:SourceArn: arn:aws:route53:::hostedzone/hosted zone ID. For aws:SourceAccount, supply the account ID for the account that creates the query logging configuration. For example, aws:SourceAccount:111111111111. For more information, see The confused deputy problem in the IAM User Guide. You can't use the CloudWatch console to create or edit a resource policy. You must use the CloudWatch API, one of the SDKs, or the . + Log Streams and Edge Locations When Route 53 finishes creating the configuration for DNS query logging, it does the following: Creates a log stream for an edge location the first time that the edge location responds to DNS queries for the specified hosted zone. That log stream is used to log all queries that Route 53 responds to for that edge location. Begins to send query logs to the applicable log stream. The name of each log stream is in the following format: hosted zone ID/edge location code The edge location code is a three-letter code and an arbitrarily assigned number, for example, DFW3. The three-letter code typically corresponds with the International Air Transport Association airport code for an airport near the edge location. (These abbreviations might change in the future.) For a list of edge locations, see "The Route 53 Global Network" on the Route 53 Product Details page. + Queries That Are Logged Query logs contain only the queries that DNS resolvers forward to Route 53. If a DNS resolver has already cached the response to a query (such as the IP address for a load balancer for example.com), the resolver will continue to return the cached response. It doesn't forward another query to Route 53 until the TTL for the corresponding resource record set expires. Depending on how many DNS queries are submitted for a resource record set, and depending on the TTL for that resource record set, query logs might contain information about only one query out of every several thousand queries that are submitted to DNS. For more information about how DNS works, see Routing Internet Traffic to Your Website or Web Application in the Amazon Route 53 Developer Guide. + Log File Format For a list of the values in each query log and the format of each value, see Logging DNS Queries in the Amazon Route 53 Developer Guide. + Pricing For information about charges for query logs, see Amazon CloudWatch Pricing. + How to Stop Logging If you want Route 53 to stop sending query logs to CloudWatch Logs, delete the query logging configuration. For more information, see DeleteQueryLoggingConfig. QueryLoggingConfig HostedZoneQueryLoggingConfigPtrInput // *Private hosted zones:* A complex type that contains information about the VPCs that are associated with the specified hosted zone. - // For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + // For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. Vpcs HostedZoneVpcArrayInput } diff --git a/sdk/go/aws/route53/pulumiTypes.go b/sdk/go/aws/route53/pulumiTypes.go index 7aa05244a8..4b5efcd183 100644 --- a/sdk/go/aws/route53/pulumiTypes.go +++ b/sdk/go/aws/route53/pulumiTypes.go @@ -1126,10 +1126,10 @@ func (o HostedZoneTagArrayOutput) Index(i pulumi.IntInput) HostedZoneTagOutput { // For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. type HostedZoneVpc struct { // *Private hosted zones only:* The ID of an Amazon VPC. - // For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + // For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. VpcId string `pulumi:"vpcId"` // *Private hosted zones only:* The region that an Amazon VPC was created in. - // For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + // For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. VpcRegion string `pulumi:"vpcRegion"` } @@ -1149,10 +1149,10 @@ type HostedZoneVpcInput interface { // For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. type HostedZoneVpcArgs struct { // *Private hosted zones only:* The ID of an Amazon VPC. - // For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + // For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. VpcId pulumi.StringInput `pulumi:"vpcId"` // *Private hosted zones only:* The region that an Amazon VPC was created in. - // For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + // For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. VpcRegion pulumi.StringInput `pulumi:"vpcRegion"` } diff --git a/sdk/go/aws/sagemaker/appImageConfig.go b/sdk/go/aws/sagemaker/appImageConfig.go index d2fef21878..85f0968fe4 100644 --- a/sdk/go/aws/sagemaker/appImageConfig.go +++ b/sdk/go/aws/sagemaker/appImageConfig.go @@ -20,6 +20,8 @@ type AppImageConfig struct { AppImageConfigArn pulumi.StringOutput `pulumi:"appImageConfigArn"` // The Name of the AppImageConfig. AppImageConfigName pulumi.StringOutput `pulumi:"appImageConfigName"` + // The CodeEditorAppImageConfig. + CodeEditorAppImageConfig AppImageConfigCodeEditorAppImageConfigPtrOutput `pulumi:"codeEditorAppImageConfig"` // The JupyterLabAppImageConfig. JupyterLabAppImageConfig AppImageConfigJupyterLabAppImageConfigPtrOutput `pulumi:"jupyterLabAppImageConfig"` // The KernelGatewayImageConfig. @@ -75,6 +77,8 @@ func (AppImageConfigState) ElementType() reflect.Type { type appImageConfigArgs struct { // The Name of the AppImageConfig. AppImageConfigName *string `pulumi:"appImageConfigName"` + // The CodeEditorAppImageConfig. + CodeEditorAppImageConfig *AppImageConfigCodeEditorAppImageConfig `pulumi:"codeEditorAppImageConfig"` // The JupyterLabAppImageConfig. JupyterLabAppImageConfig *AppImageConfigJupyterLabAppImageConfig `pulumi:"jupyterLabAppImageConfig"` // The KernelGatewayImageConfig. @@ -87,6 +91,8 @@ type appImageConfigArgs struct { type AppImageConfigArgs struct { // The Name of the AppImageConfig. AppImageConfigName pulumi.StringPtrInput + // The CodeEditorAppImageConfig. + CodeEditorAppImageConfig AppImageConfigCodeEditorAppImageConfigPtrInput // The JupyterLabAppImageConfig. JupyterLabAppImageConfig AppImageConfigJupyterLabAppImageConfigPtrInput // The KernelGatewayImageConfig. @@ -142,6 +148,13 @@ func (o AppImageConfigOutput) AppImageConfigName() pulumi.StringOutput { return o.ApplyT(func(v *AppImageConfig) pulumi.StringOutput { return v.AppImageConfigName }).(pulumi.StringOutput) } +// The CodeEditorAppImageConfig. +func (o AppImageConfigOutput) CodeEditorAppImageConfig() AppImageConfigCodeEditorAppImageConfigPtrOutput { + return o.ApplyT(func(v *AppImageConfig) AppImageConfigCodeEditorAppImageConfigPtrOutput { + return v.CodeEditorAppImageConfig + }).(AppImageConfigCodeEditorAppImageConfigPtrOutput) +} + // The JupyterLabAppImageConfig. func (o AppImageConfigOutput) JupyterLabAppImageConfig() AppImageConfigJupyterLabAppImageConfigPtrOutput { return o.ApplyT(func(v *AppImageConfig) AppImageConfigJupyterLabAppImageConfigPtrOutput { diff --git a/sdk/go/aws/sagemaker/getAppImageConfig.go b/sdk/go/aws/sagemaker/getAppImageConfig.go index 27751f11a1..a98e1d0b61 100644 --- a/sdk/go/aws/sagemaker/getAppImageConfig.go +++ b/sdk/go/aws/sagemaker/getAppImageConfig.go @@ -30,6 +30,8 @@ type LookupAppImageConfigArgs struct { type LookupAppImageConfigResult struct { // The Amazon Resource Name (ARN) of the AppImageConfig. AppImageConfigArn *string `pulumi:"appImageConfigArn"` + // The CodeEditorAppImageConfig. + CodeEditorAppImageConfig *AppImageConfigCodeEditorAppImageConfig `pulumi:"codeEditorAppImageConfig"` // The JupyterLabAppImageConfig. JupyterLabAppImageConfig *AppImageConfigJupyterLabAppImageConfig `pulumi:"jupyterLabAppImageConfig"` // The KernelGatewayImageConfig. @@ -77,6 +79,13 @@ func (o LookupAppImageConfigResultOutput) AppImageConfigArn() pulumi.StringPtrOu return o.ApplyT(func(v LookupAppImageConfigResult) *string { return v.AppImageConfigArn }).(pulumi.StringPtrOutput) } +// The CodeEditorAppImageConfig. +func (o LookupAppImageConfigResultOutput) CodeEditorAppImageConfig() AppImageConfigCodeEditorAppImageConfigPtrOutput { + return o.ApplyT(func(v LookupAppImageConfigResult) *AppImageConfigCodeEditorAppImageConfig { + return v.CodeEditorAppImageConfig + }).(AppImageConfigCodeEditorAppImageConfigPtrOutput) +} + // The JupyterLabAppImageConfig. func (o LookupAppImageConfigResultOutput) JupyterLabAppImageConfig() AppImageConfigJupyterLabAppImageConfigPtrOutput { return o.ApplyT(func(v LookupAppImageConfigResult) *AppImageConfigJupyterLabAppImageConfig { diff --git a/sdk/go/aws/sagemaker/pulumiTypes.go b/sdk/go/aws/sagemaker/pulumiTypes.go index cd97cd0dce..cdf1036a7d 100644 --- a/sdk/go/aws/sagemaker/pulumiTypes.go +++ b/sdk/go/aws/sagemaker/pulumiTypes.go @@ -13,6 +13,148 @@ import ( var _ = internal.GetEnvOrDefault +// The configuration for the kernels in a SageMaker image running as a CodeEditor app. +type AppImageConfigCodeEditorAppImageConfig struct { + // The container configuration for a SageMaker image. + ContainerConfig *AppImageConfigContainerConfig `pulumi:"containerConfig"` +} + +// AppImageConfigCodeEditorAppImageConfigInput is an input type that accepts AppImageConfigCodeEditorAppImageConfigArgs and AppImageConfigCodeEditorAppImageConfigOutput values. +// You can construct a concrete instance of `AppImageConfigCodeEditorAppImageConfigInput` via: +// +// AppImageConfigCodeEditorAppImageConfigArgs{...} +type AppImageConfigCodeEditorAppImageConfigInput interface { + pulumi.Input + + ToAppImageConfigCodeEditorAppImageConfigOutput() AppImageConfigCodeEditorAppImageConfigOutput + ToAppImageConfigCodeEditorAppImageConfigOutputWithContext(context.Context) AppImageConfigCodeEditorAppImageConfigOutput +} + +// The configuration for the kernels in a SageMaker image running as a CodeEditor app. +type AppImageConfigCodeEditorAppImageConfigArgs struct { + // The container configuration for a SageMaker image. + ContainerConfig AppImageConfigContainerConfigPtrInput `pulumi:"containerConfig"` +} + +func (AppImageConfigCodeEditorAppImageConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AppImageConfigCodeEditorAppImageConfig)(nil)).Elem() +} + +func (i AppImageConfigCodeEditorAppImageConfigArgs) ToAppImageConfigCodeEditorAppImageConfigOutput() AppImageConfigCodeEditorAppImageConfigOutput { + return i.ToAppImageConfigCodeEditorAppImageConfigOutputWithContext(context.Background()) +} + +func (i AppImageConfigCodeEditorAppImageConfigArgs) ToAppImageConfigCodeEditorAppImageConfigOutputWithContext(ctx context.Context) AppImageConfigCodeEditorAppImageConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(AppImageConfigCodeEditorAppImageConfigOutput) +} + +func (i AppImageConfigCodeEditorAppImageConfigArgs) ToAppImageConfigCodeEditorAppImageConfigPtrOutput() AppImageConfigCodeEditorAppImageConfigPtrOutput { + return i.ToAppImageConfigCodeEditorAppImageConfigPtrOutputWithContext(context.Background()) +} + +func (i AppImageConfigCodeEditorAppImageConfigArgs) ToAppImageConfigCodeEditorAppImageConfigPtrOutputWithContext(ctx context.Context) AppImageConfigCodeEditorAppImageConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AppImageConfigCodeEditorAppImageConfigOutput).ToAppImageConfigCodeEditorAppImageConfigPtrOutputWithContext(ctx) +} + +// AppImageConfigCodeEditorAppImageConfigPtrInput is an input type that accepts AppImageConfigCodeEditorAppImageConfigArgs, AppImageConfigCodeEditorAppImageConfigPtr and AppImageConfigCodeEditorAppImageConfigPtrOutput values. +// You can construct a concrete instance of `AppImageConfigCodeEditorAppImageConfigPtrInput` via: +// +// AppImageConfigCodeEditorAppImageConfigArgs{...} +// +// or: +// +// nil +type AppImageConfigCodeEditorAppImageConfigPtrInput interface { + pulumi.Input + + ToAppImageConfigCodeEditorAppImageConfigPtrOutput() AppImageConfigCodeEditorAppImageConfigPtrOutput + ToAppImageConfigCodeEditorAppImageConfigPtrOutputWithContext(context.Context) AppImageConfigCodeEditorAppImageConfigPtrOutput +} + +type appImageConfigCodeEditorAppImageConfigPtrType AppImageConfigCodeEditorAppImageConfigArgs + +func AppImageConfigCodeEditorAppImageConfigPtr(v *AppImageConfigCodeEditorAppImageConfigArgs) AppImageConfigCodeEditorAppImageConfigPtrInput { + return (*appImageConfigCodeEditorAppImageConfigPtrType)(v) +} + +func (*appImageConfigCodeEditorAppImageConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AppImageConfigCodeEditorAppImageConfig)(nil)).Elem() +} + +func (i *appImageConfigCodeEditorAppImageConfigPtrType) ToAppImageConfigCodeEditorAppImageConfigPtrOutput() AppImageConfigCodeEditorAppImageConfigPtrOutput { + return i.ToAppImageConfigCodeEditorAppImageConfigPtrOutputWithContext(context.Background()) +} + +func (i *appImageConfigCodeEditorAppImageConfigPtrType) ToAppImageConfigCodeEditorAppImageConfigPtrOutputWithContext(ctx context.Context) AppImageConfigCodeEditorAppImageConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AppImageConfigCodeEditorAppImageConfigPtrOutput) +} + +// The configuration for the kernels in a SageMaker image running as a CodeEditor app. +type AppImageConfigCodeEditorAppImageConfigOutput struct{ *pulumi.OutputState } + +func (AppImageConfigCodeEditorAppImageConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AppImageConfigCodeEditorAppImageConfig)(nil)).Elem() +} + +func (o AppImageConfigCodeEditorAppImageConfigOutput) ToAppImageConfigCodeEditorAppImageConfigOutput() AppImageConfigCodeEditorAppImageConfigOutput { + return o +} + +func (o AppImageConfigCodeEditorAppImageConfigOutput) ToAppImageConfigCodeEditorAppImageConfigOutputWithContext(ctx context.Context) AppImageConfigCodeEditorAppImageConfigOutput { + return o +} + +func (o AppImageConfigCodeEditorAppImageConfigOutput) ToAppImageConfigCodeEditorAppImageConfigPtrOutput() AppImageConfigCodeEditorAppImageConfigPtrOutput { + return o.ToAppImageConfigCodeEditorAppImageConfigPtrOutputWithContext(context.Background()) +} + +func (o AppImageConfigCodeEditorAppImageConfigOutput) ToAppImageConfigCodeEditorAppImageConfigPtrOutputWithContext(ctx context.Context) AppImageConfigCodeEditorAppImageConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AppImageConfigCodeEditorAppImageConfig) *AppImageConfigCodeEditorAppImageConfig { + return &v + }).(AppImageConfigCodeEditorAppImageConfigPtrOutput) +} + +// The container configuration for a SageMaker image. +func (o AppImageConfigCodeEditorAppImageConfigOutput) ContainerConfig() AppImageConfigContainerConfigPtrOutput { + return o.ApplyT(func(v AppImageConfigCodeEditorAppImageConfig) *AppImageConfigContainerConfig { + return v.ContainerConfig + }).(AppImageConfigContainerConfigPtrOutput) +} + +type AppImageConfigCodeEditorAppImageConfigPtrOutput struct{ *pulumi.OutputState } + +func (AppImageConfigCodeEditorAppImageConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AppImageConfigCodeEditorAppImageConfig)(nil)).Elem() +} + +func (o AppImageConfigCodeEditorAppImageConfigPtrOutput) ToAppImageConfigCodeEditorAppImageConfigPtrOutput() AppImageConfigCodeEditorAppImageConfigPtrOutput { + return o +} + +func (o AppImageConfigCodeEditorAppImageConfigPtrOutput) ToAppImageConfigCodeEditorAppImageConfigPtrOutputWithContext(ctx context.Context) AppImageConfigCodeEditorAppImageConfigPtrOutput { + return o +} + +func (o AppImageConfigCodeEditorAppImageConfigPtrOutput) Elem() AppImageConfigCodeEditorAppImageConfigOutput { + return o.ApplyT(func(v *AppImageConfigCodeEditorAppImageConfig) AppImageConfigCodeEditorAppImageConfig { + if v != nil { + return *v + } + var ret AppImageConfigCodeEditorAppImageConfig + return ret + }).(AppImageConfigCodeEditorAppImageConfigOutput) +} + +// The container configuration for a SageMaker image. +func (o AppImageConfigCodeEditorAppImageConfigPtrOutput) ContainerConfig() AppImageConfigContainerConfigPtrOutput { + return o.ApplyT(func(v *AppImageConfigCodeEditorAppImageConfig) *AppImageConfigContainerConfig { + if v == nil { + return nil + } + return v.ContainerConfig + }).(AppImageConfigContainerConfigPtrOutput) +} + // The container configuration for a SageMaker image. type AppImageConfigContainerConfig struct { // A list of arguments to apply to the container. @@ -3735,6 +3877,8 @@ type DeviceTag struct { // The CodeEditor app settings. type DomainCodeEditorAppSettings struct { + // A list of custom images for use for CodeEditor apps. + CustomImages []DomainCustomImage `pulumi:"customImages"` // The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the CodeEditor app. DefaultResourceSpec *DomainResourceSpec `pulumi:"defaultResourceSpec"` // A list of LifecycleConfigArns available for use with CodeEditor apps. @@ -3754,6 +3898,8 @@ type DomainCodeEditorAppSettingsInput interface { // The CodeEditor app settings. type DomainCodeEditorAppSettingsArgs struct { + // A list of custom images for use for CodeEditor apps. + CustomImages DomainCustomImageArrayInput `pulumi:"customImages"` // The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the CodeEditor app. DefaultResourceSpec DomainResourceSpecPtrInput `pulumi:"defaultResourceSpec"` // A list of LifecycleConfigArns available for use with CodeEditor apps. @@ -3838,6 +3984,11 @@ func (o DomainCodeEditorAppSettingsOutput) ToDomainCodeEditorAppSettingsPtrOutpu }).(DomainCodeEditorAppSettingsPtrOutput) } +// A list of custom images for use for CodeEditor apps. +func (o DomainCodeEditorAppSettingsOutput) CustomImages() DomainCustomImageArrayOutput { + return o.ApplyT(func(v DomainCodeEditorAppSettings) []DomainCustomImage { return v.CustomImages }).(DomainCustomImageArrayOutput) +} + // The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the CodeEditor app. func (o DomainCodeEditorAppSettingsOutput) DefaultResourceSpec() DomainResourceSpecPtrOutput { return o.ApplyT(func(v DomainCodeEditorAppSettings) *DomainResourceSpec { return v.DefaultResourceSpec }).(DomainResourceSpecPtrOutput) @@ -3872,6 +4023,16 @@ func (o DomainCodeEditorAppSettingsPtrOutput) Elem() DomainCodeEditorAppSettings }).(DomainCodeEditorAppSettingsOutput) } +// A list of custom images for use for CodeEditor apps. +func (o DomainCodeEditorAppSettingsPtrOutput) CustomImages() DomainCustomImageArrayOutput { + return o.ApplyT(func(v *DomainCodeEditorAppSettings) []DomainCustomImage { + if v == nil { + return nil + } + return v.CustomImages + }).(DomainCustomImageArrayOutput) +} + // The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the CodeEditor app. func (o DomainCodeEditorAppSettingsPtrOutput) DefaultResourceSpec() DomainResourceSpecPtrOutput { return o.ApplyT(func(v *DomainCodeEditorAppSettings) *DomainResourceSpec { @@ -32133,6 +32294,8 @@ type SpaceTag struct { // The CodeEditor app settings. type UserProfileCodeEditorAppSettings struct { + // A list of custom images for use for CodeEditor apps. + CustomImages []UserProfileCustomImage `pulumi:"customImages"` // The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the CodeEditor app. DefaultResourceSpec *UserProfileResourceSpec `pulumi:"defaultResourceSpec"` // A list of LifecycleConfigArns available for use with CodeEditor apps. @@ -32152,6 +32315,8 @@ type UserProfileCodeEditorAppSettingsInput interface { // The CodeEditor app settings. type UserProfileCodeEditorAppSettingsArgs struct { + // A list of custom images for use for CodeEditor apps. + CustomImages UserProfileCustomImageArrayInput `pulumi:"customImages"` // The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the CodeEditor app. DefaultResourceSpec UserProfileResourceSpecPtrInput `pulumi:"defaultResourceSpec"` // A list of LifecycleConfigArns available for use with CodeEditor apps. @@ -32236,6 +32401,11 @@ func (o UserProfileCodeEditorAppSettingsOutput) ToUserProfileCodeEditorAppSettin }).(UserProfileCodeEditorAppSettingsPtrOutput) } +// A list of custom images for use for CodeEditor apps. +func (o UserProfileCodeEditorAppSettingsOutput) CustomImages() UserProfileCustomImageArrayOutput { + return o.ApplyT(func(v UserProfileCodeEditorAppSettings) []UserProfileCustomImage { return v.CustomImages }).(UserProfileCustomImageArrayOutput) +} + // The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the CodeEditor app. func (o UserProfileCodeEditorAppSettingsOutput) DefaultResourceSpec() UserProfileResourceSpecPtrOutput { return o.ApplyT(func(v UserProfileCodeEditorAppSettings) *UserProfileResourceSpec { return v.DefaultResourceSpec }).(UserProfileResourceSpecPtrOutput) @@ -32270,6 +32440,16 @@ func (o UserProfileCodeEditorAppSettingsPtrOutput) Elem() UserProfileCodeEditorA }).(UserProfileCodeEditorAppSettingsOutput) } +// A list of custom images for use for CodeEditor apps. +func (o UserProfileCodeEditorAppSettingsPtrOutput) CustomImages() UserProfileCustomImageArrayOutput { + return o.ApplyT(func(v *UserProfileCodeEditorAppSettings) []UserProfileCustomImage { + if v == nil { + return nil + } + return v.CustomImages + }).(UserProfileCustomImageArrayOutput) +} + // The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the CodeEditor app. func (o UserProfileCodeEditorAppSettingsPtrOutput) DefaultResourceSpec() UserProfileResourceSpecPtrOutput { return o.ApplyT(func(v *UserProfileCodeEditorAppSettings) *UserProfileResourceSpec { @@ -34560,6 +34740,8 @@ func (o UserProfileUserSettingsPtrOutput) StudioWebPortal() UserProfileUserSetti } func init() { + pulumi.RegisterInputType(reflect.TypeOf((*AppImageConfigCodeEditorAppImageConfigInput)(nil)).Elem(), AppImageConfigCodeEditorAppImageConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AppImageConfigCodeEditorAppImageConfigPtrInput)(nil)).Elem(), AppImageConfigCodeEditorAppImageConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AppImageConfigContainerConfigInput)(nil)).Elem(), AppImageConfigContainerConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AppImageConfigContainerConfigPtrInput)(nil)).Elem(), AppImageConfigContainerConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AppImageConfigCustomImageContainerEnvironmentVariableInput)(nil)).Elem(), AppImageConfigCustomImageContainerEnvironmentVariableArgs{}) @@ -34984,6 +35166,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*UserProfileSharingSettingsPtrInput)(nil)).Elem(), UserProfileSharingSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsInput)(nil)).Elem(), UserProfileUserSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsPtrInput)(nil)).Elem(), UserProfileUserSettingsArgs{}) + pulumi.RegisterOutputType(AppImageConfigCodeEditorAppImageConfigOutput{}) + pulumi.RegisterOutputType(AppImageConfigCodeEditorAppImageConfigPtrOutput{}) pulumi.RegisterOutputType(AppImageConfigContainerConfigOutput{}) pulumi.RegisterOutputType(AppImageConfigContainerConfigPtrOutput{}) pulumi.RegisterOutputType(AppImageConfigCustomImageContainerEnvironmentVariableOutput{}) diff --git a/sdk/go/aws/securityhub/delegatedAdmin.go b/sdk/go/aws/securityhub/delegatedAdmin.go new file mode 100644 index 0000000000..f535f65a82 --- /dev/null +++ b/sdk/go/aws/securityhub/delegatedAdmin.go @@ -0,0 +1,139 @@ +// 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 securityhub + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// The AWS::SecurityHub::DelegatedAdmin resource represents the AWS Security Hub delegated admin account in your organization. One delegated admin resource is allowed to create for the organization in each region in which you configure the AdminAccountId. +type DelegatedAdmin struct { + pulumi.CustomResourceState + + // The Amazon Web Services account identifier of the account to designate as the Security Hub administrator account + AdminAccountId pulumi.StringOutput `pulumi:"adminAccountId"` + // The identifier of the DelegatedAdmin being created and assigned as the unique identifier + DelegatedAdminIdentifier pulumi.StringOutput `pulumi:"delegatedAdminIdentifier"` + // The current status of the Security Hub administrator account. Indicates whether the account is currently enabled as a Security Hub administrator + Status DelegatedAdminStatusOutput `pulumi:"status"` +} + +// NewDelegatedAdmin registers a new resource with the given unique name, arguments, and options. +func NewDelegatedAdmin(ctx *pulumi.Context, + name string, args *DelegatedAdminArgs, opts ...pulumi.ResourceOption) (*DelegatedAdmin, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.AdminAccountId == nil { + return nil, errors.New("invalid value for required argument 'AdminAccountId'") + } + replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "adminAccountId", + }) + opts = append(opts, replaceOnChanges) + opts = internal.PkgResourceDefaultOpts(opts) + var resource DelegatedAdmin + err := ctx.RegisterResource("aws-native:securityhub:DelegatedAdmin", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetDelegatedAdmin gets an existing DelegatedAdmin 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 GetDelegatedAdmin(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *DelegatedAdminState, opts ...pulumi.ResourceOption) (*DelegatedAdmin, error) { + var resource DelegatedAdmin + err := ctx.ReadResource("aws-native:securityhub:DelegatedAdmin", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering DelegatedAdmin resources. +type delegatedAdminState struct { +} + +type DelegatedAdminState struct { +} + +func (DelegatedAdminState) ElementType() reflect.Type { + return reflect.TypeOf((*delegatedAdminState)(nil)).Elem() +} + +type delegatedAdminArgs struct { + // The Amazon Web Services account identifier of the account to designate as the Security Hub administrator account + AdminAccountId string `pulumi:"adminAccountId"` +} + +// The set of arguments for constructing a DelegatedAdmin resource. +type DelegatedAdminArgs struct { + // The Amazon Web Services account identifier of the account to designate as the Security Hub administrator account + AdminAccountId pulumi.StringInput +} + +func (DelegatedAdminArgs) ElementType() reflect.Type { + return reflect.TypeOf((*delegatedAdminArgs)(nil)).Elem() +} + +type DelegatedAdminInput interface { + pulumi.Input + + ToDelegatedAdminOutput() DelegatedAdminOutput + ToDelegatedAdminOutputWithContext(ctx context.Context) DelegatedAdminOutput +} + +func (*DelegatedAdmin) ElementType() reflect.Type { + return reflect.TypeOf((**DelegatedAdmin)(nil)).Elem() +} + +func (i *DelegatedAdmin) ToDelegatedAdminOutput() DelegatedAdminOutput { + return i.ToDelegatedAdminOutputWithContext(context.Background()) +} + +func (i *DelegatedAdmin) ToDelegatedAdminOutputWithContext(ctx context.Context) DelegatedAdminOutput { + return pulumi.ToOutputWithContext(ctx, i).(DelegatedAdminOutput) +} + +type DelegatedAdminOutput struct{ *pulumi.OutputState } + +func (DelegatedAdminOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DelegatedAdmin)(nil)).Elem() +} + +func (o DelegatedAdminOutput) ToDelegatedAdminOutput() DelegatedAdminOutput { + return o +} + +func (o DelegatedAdminOutput) ToDelegatedAdminOutputWithContext(ctx context.Context) DelegatedAdminOutput { + return o +} + +// The Amazon Web Services account identifier of the account to designate as the Security Hub administrator account +func (o DelegatedAdminOutput) AdminAccountId() pulumi.StringOutput { + return o.ApplyT(func(v *DelegatedAdmin) pulumi.StringOutput { return v.AdminAccountId }).(pulumi.StringOutput) +} + +// The identifier of the DelegatedAdmin being created and assigned as the unique identifier +func (o DelegatedAdminOutput) DelegatedAdminIdentifier() pulumi.StringOutput { + return o.ApplyT(func(v *DelegatedAdmin) pulumi.StringOutput { return v.DelegatedAdminIdentifier }).(pulumi.StringOutput) +} + +// The current status of the Security Hub administrator account. Indicates whether the account is currently enabled as a Security Hub administrator +func (o DelegatedAdminOutput) Status() DelegatedAdminStatusOutput { + return o.ApplyT(func(v *DelegatedAdmin) DelegatedAdminStatusOutput { return v.Status }).(DelegatedAdminStatusOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*DelegatedAdminInput)(nil)).Elem(), &DelegatedAdmin{}) + pulumi.RegisterOutputType(DelegatedAdminOutput{}) +} diff --git a/sdk/go/aws/securityhub/getDelegatedAdmin.go b/sdk/go/aws/securityhub/getDelegatedAdmin.go new file mode 100644 index 0000000000..c6261bf357 --- /dev/null +++ b/sdk/go/aws/securityhub/getDelegatedAdmin.go @@ -0,0 +1,85 @@ +// 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 securityhub + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// The AWS::SecurityHub::DelegatedAdmin resource represents the AWS Security Hub delegated admin account in your organization. One delegated admin resource is allowed to create for the organization in each region in which you configure the AdminAccountId. +func LookupDelegatedAdmin(ctx *pulumi.Context, args *LookupDelegatedAdminArgs, opts ...pulumi.InvokeOption) (*LookupDelegatedAdminResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupDelegatedAdminResult + err := ctx.Invoke("aws-native:securityhub:getDelegatedAdmin", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupDelegatedAdminArgs struct { + // The identifier of the DelegatedAdmin being created and assigned as the unique identifier + DelegatedAdminIdentifier string `pulumi:"delegatedAdminIdentifier"` +} + +type LookupDelegatedAdminResult struct { + // The identifier of the DelegatedAdmin being created and assigned as the unique identifier + DelegatedAdminIdentifier *string `pulumi:"delegatedAdminIdentifier"` + // The current status of the Security Hub administrator account. Indicates whether the account is currently enabled as a Security Hub administrator + Status *DelegatedAdminStatus `pulumi:"status"` +} + +func LookupDelegatedAdminOutput(ctx *pulumi.Context, args LookupDelegatedAdminOutputArgs, opts ...pulumi.InvokeOption) LookupDelegatedAdminResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupDelegatedAdminResult, error) { + args := v.(LookupDelegatedAdminArgs) + r, err := LookupDelegatedAdmin(ctx, &args, opts...) + var s LookupDelegatedAdminResult + if r != nil { + s = *r + } + return s, err + }).(LookupDelegatedAdminResultOutput) +} + +type LookupDelegatedAdminOutputArgs struct { + // The identifier of the DelegatedAdmin being created and assigned as the unique identifier + DelegatedAdminIdentifier pulumi.StringInput `pulumi:"delegatedAdminIdentifier"` +} + +func (LookupDelegatedAdminOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupDelegatedAdminArgs)(nil)).Elem() +} + +type LookupDelegatedAdminResultOutput struct{ *pulumi.OutputState } + +func (LookupDelegatedAdminResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupDelegatedAdminResult)(nil)).Elem() +} + +func (o LookupDelegatedAdminResultOutput) ToLookupDelegatedAdminResultOutput() LookupDelegatedAdminResultOutput { + return o +} + +func (o LookupDelegatedAdminResultOutput) ToLookupDelegatedAdminResultOutputWithContext(ctx context.Context) LookupDelegatedAdminResultOutput { + return o +} + +// The identifier of the DelegatedAdmin being created and assigned as the unique identifier +func (o LookupDelegatedAdminResultOutput) DelegatedAdminIdentifier() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupDelegatedAdminResult) *string { return v.DelegatedAdminIdentifier }).(pulumi.StringPtrOutput) +} + +// The current status of the Security Hub administrator account. Indicates whether the account is currently enabled as a Security Hub administrator +func (o LookupDelegatedAdminResultOutput) Status() DelegatedAdminStatusPtrOutput { + return o.ApplyT(func(v LookupDelegatedAdminResult) *DelegatedAdminStatus { return v.Status }).(DelegatedAdminStatusPtrOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupDelegatedAdminResultOutput{}) +} diff --git a/sdk/go/aws/securityhub/getInsight.go b/sdk/go/aws/securityhub/getInsight.go new file mode 100644 index 0000000000..b8d49e40ee --- /dev/null +++ b/sdk/go/aws/securityhub/getInsight.go @@ -0,0 +1,99 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package securityhub + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// The AWS::SecurityHub::Insight resource represents the AWS Security Hub Insight in your account. An AWS Security Hub insight is a collection of related findings. +func LookupInsight(ctx *pulumi.Context, args *LookupInsightArgs, opts ...pulumi.InvokeOption) (*LookupInsightResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupInsightResult + err := ctx.Invoke("aws-native:securityhub:getInsight", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupInsightArgs struct { + // The ARN of a Security Hub insight + InsightArn string `pulumi:"insightArn"` +} + +type LookupInsightResult struct { + // One or more attributes used to filter the findings included in the insight + Filters *InsightAwsSecurityFindingFilters `pulumi:"filters"` + // The grouping attribute for the insight's findings + GroupByAttribute *string `pulumi:"groupByAttribute"` + // The ARN of a Security Hub insight + InsightArn *string `pulumi:"insightArn"` + // The name of a Security Hub insight + Name *string `pulumi:"name"` +} + +func LookupInsightOutput(ctx *pulumi.Context, args LookupInsightOutputArgs, opts ...pulumi.InvokeOption) LookupInsightResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupInsightResult, error) { + args := v.(LookupInsightArgs) + r, err := LookupInsight(ctx, &args, opts...) + var s LookupInsightResult + if r != nil { + s = *r + } + return s, err + }).(LookupInsightResultOutput) +} + +type LookupInsightOutputArgs struct { + // The ARN of a Security Hub insight + InsightArn pulumi.StringInput `pulumi:"insightArn"` +} + +func (LookupInsightOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupInsightArgs)(nil)).Elem() +} + +type LookupInsightResultOutput struct{ *pulumi.OutputState } + +func (LookupInsightResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupInsightResult)(nil)).Elem() +} + +func (o LookupInsightResultOutput) ToLookupInsightResultOutput() LookupInsightResultOutput { + return o +} + +func (o LookupInsightResultOutput) ToLookupInsightResultOutputWithContext(ctx context.Context) LookupInsightResultOutput { + return o +} + +// One or more attributes used to filter the findings included in the insight +func (o LookupInsightResultOutput) Filters() InsightAwsSecurityFindingFiltersPtrOutput { + return o.ApplyT(func(v LookupInsightResult) *InsightAwsSecurityFindingFilters { return v.Filters }).(InsightAwsSecurityFindingFiltersPtrOutput) +} + +// The grouping attribute for the insight's findings +func (o LookupInsightResultOutput) GroupByAttribute() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupInsightResult) *string { return v.GroupByAttribute }).(pulumi.StringPtrOutput) +} + +// The ARN of a Security Hub insight +func (o LookupInsightResultOutput) InsightArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupInsightResult) *string { return v.InsightArn }).(pulumi.StringPtrOutput) +} + +// The name of a Security Hub insight +func (o LookupInsightResultOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupInsightResult) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupInsightResultOutput{}) +} diff --git a/sdk/go/aws/securityhub/getProductSubscription.go b/sdk/go/aws/securityhub/getProductSubscription.go new file mode 100644 index 0000000000..0a43a6f60b --- /dev/null +++ b/sdk/go/aws/securityhub/getProductSubscription.go @@ -0,0 +1,78 @@ +// 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 securityhub + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// The AWS::SecurityHub::ProductSubscription resource represents a subscription to a service that is allowed to generate findings for your Security Hub account. One product subscription resource is created for each product enabled. +func LookupProductSubscription(ctx *pulumi.Context, args *LookupProductSubscriptionArgs, opts ...pulumi.InvokeOption) (*LookupProductSubscriptionResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupProductSubscriptionResult + err := ctx.Invoke("aws-native:securityhub:getProductSubscription", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupProductSubscriptionArgs struct { + // The ARN of the product subscription for the account + ProductSubscriptionArn string `pulumi:"productSubscriptionArn"` +} + +type LookupProductSubscriptionResult struct { + // The ARN of the product subscription for the account + ProductSubscriptionArn *string `pulumi:"productSubscriptionArn"` +} + +func LookupProductSubscriptionOutput(ctx *pulumi.Context, args LookupProductSubscriptionOutputArgs, opts ...pulumi.InvokeOption) LookupProductSubscriptionResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupProductSubscriptionResult, error) { + args := v.(LookupProductSubscriptionArgs) + r, err := LookupProductSubscription(ctx, &args, opts...) + var s LookupProductSubscriptionResult + if r != nil { + s = *r + } + return s, err + }).(LookupProductSubscriptionResultOutput) +} + +type LookupProductSubscriptionOutputArgs struct { + // The ARN of the product subscription for the account + ProductSubscriptionArn pulumi.StringInput `pulumi:"productSubscriptionArn"` +} + +func (LookupProductSubscriptionOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupProductSubscriptionArgs)(nil)).Elem() +} + +type LookupProductSubscriptionResultOutput struct{ *pulumi.OutputState } + +func (LookupProductSubscriptionResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupProductSubscriptionResult)(nil)).Elem() +} + +func (o LookupProductSubscriptionResultOutput) ToLookupProductSubscriptionResultOutput() LookupProductSubscriptionResultOutput { + return o +} + +func (o LookupProductSubscriptionResultOutput) ToLookupProductSubscriptionResultOutputWithContext(ctx context.Context) LookupProductSubscriptionResultOutput { + return o +} + +// The ARN of the product subscription for the account +func (o LookupProductSubscriptionResultOutput) ProductSubscriptionArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupProductSubscriptionResult) *string { return v.ProductSubscriptionArn }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupProductSubscriptionResultOutput{}) +} diff --git a/sdk/go/aws/securityhub/init.go b/sdk/go/aws/securityhub/init.go index 60cd7b7818..05f18e6ebe 100644 --- a/sdk/go/aws/securityhub/init.go +++ b/sdk/go/aws/securityhub/init.go @@ -23,8 +23,14 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi switch typ { case "aws-native:securityhub:AutomationRule": r = &AutomationRule{} + case "aws-native:securityhub:DelegatedAdmin": + r = &DelegatedAdmin{} case "aws-native:securityhub:Hub": r = &Hub{} + case "aws-native:securityhub:Insight": + r = &Insight{} + case "aws-native:securityhub:ProductSubscription": + r = &ProductSubscription{} case "aws-native:securityhub:Standard": r = &Standard{} default: diff --git a/sdk/go/aws/securityhub/insight.go b/sdk/go/aws/securityhub/insight.go new file mode 100644 index 0000000000..8149347035 --- /dev/null +++ b/sdk/go/aws/securityhub/insight.go @@ -0,0 +1,153 @@ +// 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 securityhub + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// The AWS::SecurityHub::Insight resource represents the AWS Security Hub Insight in your account. An AWS Security Hub insight is a collection of related findings. +type Insight struct { + pulumi.CustomResourceState + + // One or more attributes used to filter the findings included in the insight + Filters InsightAwsSecurityFindingFiltersOutput `pulumi:"filters"` + // The grouping attribute for the insight's findings + GroupByAttribute pulumi.StringOutput `pulumi:"groupByAttribute"` + // The ARN of a Security Hub insight + InsightArn pulumi.StringOutput `pulumi:"insightArn"` + // The name of a Security Hub insight + Name pulumi.StringOutput `pulumi:"name"` +} + +// NewInsight registers a new resource with the given unique name, arguments, and options. +func NewInsight(ctx *pulumi.Context, + name string, args *InsightArgs, opts ...pulumi.ResourceOption) (*Insight, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Filters == nil { + return nil, errors.New("invalid value for required argument 'Filters'") + } + if args.GroupByAttribute == nil { + return nil, errors.New("invalid value for required argument 'GroupByAttribute'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource Insight + err := ctx.RegisterResource("aws-native:securityhub:Insight", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetInsight gets an existing Insight 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 GetInsight(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *InsightState, opts ...pulumi.ResourceOption) (*Insight, error) { + var resource Insight + err := ctx.ReadResource("aws-native:securityhub:Insight", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Insight resources. +type insightState struct { +} + +type InsightState struct { +} + +func (InsightState) ElementType() reflect.Type { + return reflect.TypeOf((*insightState)(nil)).Elem() +} + +type insightArgs struct { + // One or more attributes used to filter the findings included in the insight + Filters InsightAwsSecurityFindingFilters `pulumi:"filters"` + // The grouping attribute for the insight's findings + GroupByAttribute string `pulumi:"groupByAttribute"` + // The name of a Security Hub insight + Name *string `pulumi:"name"` +} + +// The set of arguments for constructing a Insight resource. +type InsightArgs struct { + // One or more attributes used to filter the findings included in the insight + Filters InsightAwsSecurityFindingFiltersInput + // The grouping attribute for the insight's findings + GroupByAttribute pulumi.StringInput + // The name of a Security Hub insight + Name pulumi.StringPtrInput +} + +func (InsightArgs) ElementType() reflect.Type { + return reflect.TypeOf((*insightArgs)(nil)).Elem() +} + +type InsightInput interface { + pulumi.Input + + ToInsightOutput() InsightOutput + ToInsightOutputWithContext(ctx context.Context) InsightOutput +} + +func (*Insight) ElementType() reflect.Type { + return reflect.TypeOf((**Insight)(nil)).Elem() +} + +func (i *Insight) ToInsightOutput() InsightOutput { + return i.ToInsightOutputWithContext(context.Background()) +} + +func (i *Insight) ToInsightOutputWithContext(ctx context.Context) InsightOutput { + return pulumi.ToOutputWithContext(ctx, i).(InsightOutput) +} + +type InsightOutput struct{ *pulumi.OutputState } + +func (InsightOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Insight)(nil)).Elem() +} + +func (o InsightOutput) ToInsightOutput() InsightOutput { + return o +} + +func (o InsightOutput) ToInsightOutputWithContext(ctx context.Context) InsightOutput { + return o +} + +// One or more attributes used to filter the findings included in the insight +func (o InsightOutput) Filters() InsightAwsSecurityFindingFiltersOutput { + return o.ApplyT(func(v *Insight) InsightAwsSecurityFindingFiltersOutput { return v.Filters }).(InsightAwsSecurityFindingFiltersOutput) +} + +// The grouping attribute for the insight's findings +func (o InsightOutput) GroupByAttribute() pulumi.StringOutput { + return o.ApplyT(func(v *Insight) pulumi.StringOutput { return v.GroupByAttribute }).(pulumi.StringOutput) +} + +// The ARN of a Security Hub insight +func (o InsightOutput) InsightArn() pulumi.StringOutput { + return o.ApplyT(func(v *Insight) pulumi.StringOutput { return v.InsightArn }).(pulumi.StringOutput) +} + +// The name of a Security Hub insight +func (o InsightOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *Insight) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*InsightInput)(nil)).Elem(), &Insight{}) + pulumi.RegisterOutputType(InsightOutput{}) +} diff --git a/sdk/go/aws/securityhub/productSubscription.go b/sdk/go/aws/securityhub/productSubscription.go new file mode 100644 index 0000000000..fee044b1d0 --- /dev/null +++ b/sdk/go/aws/securityhub/productSubscription.go @@ -0,0 +1,132 @@ +// 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 securityhub + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// The AWS::SecurityHub::ProductSubscription resource represents a subscription to a service that is allowed to generate findings for your Security Hub account. One product subscription resource is created for each product enabled. +type ProductSubscription struct { + pulumi.CustomResourceState + + // The generic ARN of the product being subscribed to + ProductArn pulumi.StringOutput `pulumi:"productArn"` + // The ARN of the product subscription for the account + ProductSubscriptionArn pulumi.StringOutput `pulumi:"productSubscriptionArn"` +} + +// NewProductSubscription registers a new resource with the given unique name, arguments, and options. +func NewProductSubscription(ctx *pulumi.Context, + name string, args *ProductSubscriptionArgs, opts ...pulumi.ResourceOption) (*ProductSubscription, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.ProductArn == nil { + return nil, errors.New("invalid value for required argument 'ProductArn'") + } + replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "productArn", + }) + opts = append(opts, replaceOnChanges) + opts = internal.PkgResourceDefaultOpts(opts) + var resource ProductSubscription + err := ctx.RegisterResource("aws-native:securityhub:ProductSubscription", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetProductSubscription gets an existing ProductSubscription 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 GetProductSubscription(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ProductSubscriptionState, opts ...pulumi.ResourceOption) (*ProductSubscription, error) { + var resource ProductSubscription + err := ctx.ReadResource("aws-native:securityhub:ProductSubscription", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering ProductSubscription resources. +type productSubscriptionState struct { +} + +type ProductSubscriptionState struct { +} + +func (ProductSubscriptionState) ElementType() reflect.Type { + return reflect.TypeOf((*productSubscriptionState)(nil)).Elem() +} + +type productSubscriptionArgs struct { + // The generic ARN of the product being subscribed to + ProductArn string `pulumi:"productArn"` +} + +// The set of arguments for constructing a ProductSubscription resource. +type ProductSubscriptionArgs struct { + // The generic ARN of the product being subscribed to + ProductArn pulumi.StringInput +} + +func (ProductSubscriptionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*productSubscriptionArgs)(nil)).Elem() +} + +type ProductSubscriptionInput interface { + pulumi.Input + + ToProductSubscriptionOutput() ProductSubscriptionOutput + ToProductSubscriptionOutputWithContext(ctx context.Context) ProductSubscriptionOutput +} + +func (*ProductSubscription) ElementType() reflect.Type { + return reflect.TypeOf((**ProductSubscription)(nil)).Elem() +} + +func (i *ProductSubscription) ToProductSubscriptionOutput() ProductSubscriptionOutput { + return i.ToProductSubscriptionOutputWithContext(context.Background()) +} + +func (i *ProductSubscription) ToProductSubscriptionOutputWithContext(ctx context.Context) ProductSubscriptionOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProductSubscriptionOutput) +} + +type ProductSubscriptionOutput struct{ *pulumi.OutputState } + +func (ProductSubscriptionOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ProductSubscription)(nil)).Elem() +} + +func (o ProductSubscriptionOutput) ToProductSubscriptionOutput() ProductSubscriptionOutput { + return o +} + +func (o ProductSubscriptionOutput) ToProductSubscriptionOutputWithContext(ctx context.Context) ProductSubscriptionOutput { + return o +} + +// The generic ARN of the product being subscribed to +func (o ProductSubscriptionOutput) ProductArn() pulumi.StringOutput { + return o.ApplyT(func(v *ProductSubscription) pulumi.StringOutput { return v.ProductArn }).(pulumi.StringOutput) +} + +// The ARN of the product subscription for the account +func (o ProductSubscriptionOutput) ProductSubscriptionArn() pulumi.StringOutput { + return o.ApplyT(func(v *ProductSubscription) pulumi.StringOutput { return v.ProductSubscriptionArn }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ProductSubscriptionInput)(nil)).Elem(), &ProductSubscription{}) + pulumi.RegisterOutputType(ProductSubscriptionOutput{}) +} diff --git a/sdk/go/aws/securityhub/pulumiEnums.go b/sdk/go/aws/securityhub/pulumiEnums.go index 90a7cf25f9..b38a122b93 100644 --- a/sdk/go/aws/securityhub/pulumiEnums.go +++ b/sdk/go/aws/securityhub/pulumiEnums.go @@ -1354,6 +1354,597 @@ func (in *automationRulesFindingFieldsUpdateVerificationStatePtr) ToAutomationRu return pulumi.ToOutputWithContext(ctx, in).(AutomationRulesFindingFieldsUpdateVerificationStatePtrOutput) } +// The current status of the Security Hub administrator account. Indicates whether the account is currently enabled as a Security Hub administrator +type DelegatedAdminStatus string + +const ( + DelegatedAdminStatusEnabled = DelegatedAdminStatus("ENABLED") + DelegatedAdminStatusDisableInProgress = DelegatedAdminStatus("DISABLE_IN_PROGRESS") +) + +type DelegatedAdminStatusOutput struct{ *pulumi.OutputState } + +func (DelegatedAdminStatusOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DelegatedAdminStatus)(nil)).Elem() +} + +func (o DelegatedAdminStatusOutput) ToDelegatedAdminStatusOutput() DelegatedAdminStatusOutput { + return o +} + +func (o DelegatedAdminStatusOutput) ToDelegatedAdminStatusOutputWithContext(ctx context.Context) DelegatedAdminStatusOutput { + return o +} + +func (o DelegatedAdminStatusOutput) ToDelegatedAdminStatusPtrOutput() DelegatedAdminStatusPtrOutput { + return o.ToDelegatedAdminStatusPtrOutputWithContext(context.Background()) +} + +func (o DelegatedAdminStatusOutput) ToDelegatedAdminStatusPtrOutputWithContext(ctx context.Context) DelegatedAdminStatusPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DelegatedAdminStatus) *DelegatedAdminStatus { + return &v + }).(DelegatedAdminStatusPtrOutput) +} + +func (o DelegatedAdminStatusOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o DelegatedAdminStatusOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e DelegatedAdminStatus) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o DelegatedAdminStatusOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o DelegatedAdminStatusOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e DelegatedAdminStatus) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type DelegatedAdminStatusPtrOutput struct{ *pulumi.OutputState } + +func (DelegatedAdminStatusPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DelegatedAdminStatus)(nil)).Elem() +} + +func (o DelegatedAdminStatusPtrOutput) ToDelegatedAdminStatusPtrOutput() DelegatedAdminStatusPtrOutput { + return o +} + +func (o DelegatedAdminStatusPtrOutput) ToDelegatedAdminStatusPtrOutputWithContext(ctx context.Context) DelegatedAdminStatusPtrOutput { + return o +} + +func (o DelegatedAdminStatusPtrOutput) Elem() DelegatedAdminStatusOutput { + return o.ApplyT(func(v *DelegatedAdminStatus) DelegatedAdminStatus { + if v != nil { + return *v + } + var ret DelegatedAdminStatus + return ret + }).(DelegatedAdminStatusOutput) +} + +func (o DelegatedAdminStatusPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o DelegatedAdminStatusPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *DelegatedAdminStatus) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// A date range unit for the date filter. +type InsightDateRangeUnit string + +const ( + InsightDateRangeUnitDays = InsightDateRangeUnit("DAYS") +) + +func (InsightDateRangeUnit) ElementType() reflect.Type { + return reflect.TypeOf((*InsightDateRangeUnit)(nil)).Elem() +} + +func (e InsightDateRangeUnit) ToInsightDateRangeUnitOutput() InsightDateRangeUnitOutput { + return pulumi.ToOutput(e).(InsightDateRangeUnitOutput) +} + +func (e InsightDateRangeUnit) ToInsightDateRangeUnitOutputWithContext(ctx context.Context) InsightDateRangeUnitOutput { + return pulumi.ToOutputWithContext(ctx, e).(InsightDateRangeUnitOutput) +} + +func (e InsightDateRangeUnit) ToInsightDateRangeUnitPtrOutput() InsightDateRangeUnitPtrOutput { + return e.ToInsightDateRangeUnitPtrOutputWithContext(context.Background()) +} + +func (e InsightDateRangeUnit) ToInsightDateRangeUnitPtrOutputWithContext(ctx context.Context) InsightDateRangeUnitPtrOutput { + return InsightDateRangeUnit(e).ToInsightDateRangeUnitOutputWithContext(ctx).ToInsightDateRangeUnitPtrOutputWithContext(ctx) +} + +func (e InsightDateRangeUnit) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e InsightDateRangeUnit) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e InsightDateRangeUnit) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e InsightDateRangeUnit) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type InsightDateRangeUnitOutput struct{ *pulumi.OutputState } + +func (InsightDateRangeUnitOutput) ElementType() reflect.Type { + return reflect.TypeOf((*InsightDateRangeUnit)(nil)).Elem() +} + +func (o InsightDateRangeUnitOutput) ToInsightDateRangeUnitOutput() InsightDateRangeUnitOutput { + return o +} + +func (o InsightDateRangeUnitOutput) ToInsightDateRangeUnitOutputWithContext(ctx context.Context) InsightDateRangeUnitOutput { + return o +} + +func (o InsightDateRangeUnitOutput) ToInsightDateRangeUnitPtrOutput() InsightDateRangeUnitPtrOutput { + return o.ToInsightDateRangeUnitPtrOutputWithContext(context.Background()) +} + +func (o InsightDateRangeUnitOutput) ToInsightDateRangeUnitPtrOutputWithContext(ctx context.Context) InsightDateRangeUnitPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v InsightDateRangeUnit) *InsightDateRangeUnit { + return &v + }).(InsightDateRangeUnitPtrOutput) +} + +func (o InsightDateRangeUnitOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o InsightDateRangeUnitOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e InsightDateRangeUnit) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o InsightDateRangeUnitOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o InsightDateRangeUnitOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e InsightDateRangeUnit) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type InsightDateRangeUnitPtrOutput struct{ *pulumi.OutputState } + +func (InsightDateRangeUnitPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**InsightDateRangeUnit)(nil)).Elem() +} + +func (o InsightDateRangeUnitPtrOutput) ToInsightDateRangeUnitPtrOutput() InsightDateRangeUnitPtrOutput { + return o +} + +func (o InsightDateRangeUnitPtrOutput) ToInsightDateRangeUnitPtrOutputWithContext(ctx context.Context) InsightDateRangeUnitPtrOutput { + return o +} + +func (o InsightDateRangeUnitPtrOutput) Elem() InsightDateRangeUnitOutput { + return o.ApplyT(func(v *InsightDateRangeUnit) InsightDateRangeUnit { + if v != nil { + return *v + } + var ret InsightDateRangeUnit + return ret + }).(InsightDateRangeUnitOutput) +} + +func (o InsightDateRangeUnitPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o InsightDateRangeUnitPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *InsightDateRangeUnit) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// InsightDateRangeUnitInput is an input type that accepts values of the InsightDateRangeUnit enum +// A concrete instance of `InsightDateRangeUnitInput` can be one of the following: +// +// InsightDateRangeUnitDays +type InsightDateRangeUnitInput interface { + pulumi.Input + + ToInsightDateRangeUnitOutput() InsightDateRangeUnitOutput + ToInsightDateRangeUnitOutputWithContext(context.Context) InsightDateRangeUnitOutput +} + +var insightDateRangeUnitPtrType = reflect.TypeOf((**InsightDateRangeUnit)(nil)).Elem() + +type InsightDateRangeUnitPtrInput interface { + pulumi.Input + + ToInsightDateRangeUnitPtrOutput() InsightDateRangeUnitPtrOutput + ToInsightDateRangeUnitPtrOutputWithContext(context.Context) InsightDateRangeUnitPtrOutput +} + +type insightDateRangeUnitPtr string + +func InsightDateRangeUnitPtr(v string) InsightDateRangeUnitPtrInput { + return (*insightDateRangeUnitPtr)(&v) +} + +func (*insightDateRangeUnitPtr) ElementType() reflect.Type { + return insightDateRangeUnitPtrType +} + +func (in *insightDateRangeUnitPtr) ToInsightDateRangeUnitPtrOutput() InsightDateRangeUnitPtrOutput { + return pulumi.ToOutput(in).(InsightDateRangeUnitPtrOutput) +} + +func (in *insightDateRangeUnitPtr) ToInsightDateRangeUnitPtrOutputWithContext(ctx context.Context) InsightDateRangeUnitPtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(InsightDateRangeUnitPtrOutput) +} + +// The condition to apply to the key value when filtering Security Hub findings with a map filter. +type InsightMapFilterComparison string + +const ( + InsightMapFilterComparisonEquals = InsightMapFilterComparison("EQUALS") + InsightMapFilterComparisonNotEquals = InsightMapFilterComparison("NOT_EQUALS") +) + +func (InsightMapFilterComparison) ElementType() reflect.Type { + return reflect.TypeOf((*InsightMapFilterComparison)(nil)).Elem() +} + +func (e InsightMapFilterComparison) ToInsightMapFilterComparisonOutput() InsightMapFilterComparisonOutput { + return pulumi.ToOutput(e).(InsightMapFilterComparisonOutput) +} + +func (e InsightMapFilterComparison) ToInsightMapFilterComparisonOutputWithContext(ctx context.Context) InsightMapFilterComparisonOutput { + return pulumi.ToOutputWithContext(ctx, e).(InsightMapFilterComparisonOutput) +} + +func (e InsightMapFilterComparison) ToInsightMapFilterComparisonPtrOutput() InsightMapFilterComparisonPtrOutput { + return e.ToInsightMapFilterComparisonPtrOutputWithContext(context.Background()) +} + +func (e InsightMapFilterComparison) ToInsightMapFilterComparisonPtrOutputWithContext(ctx context.Context) InsightMapFilterComparisonPtrOutput { + return InsightMapFilterComparison(e).ToInsightMapFilterComparisonOutputWithContext(ctx).ToInsightMapFilterComparisonPtrOutputWithContext(ctx) +} + +func (e InsightMapFilterComparison) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e InsightMapFilterComparison) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e InsightMapFilterComparison) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e InsightMapFilterComparison) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type InsightMapFilterComparisonOutput struct{ *pulumi.OutputState } + +func (InsightMapFilterComparisonOutput) ElementType() reflect.Type { + return reflect.TypeOf((*InsightMapFilterComparison)(nil)).Elem() +} + +func (o InsightMapFilterComparisonOutput) ToInsightMapFilterComparisonOutput() InsightMapFilterComparisonOutput { + return o +} + +func (o InsightMapFilterComparisonOutput) ToInsightMapFilterComparisonOutputWithContext(ctx context.Context) InsightMapFilterComparisonOutput { + return o +} + +func (o InsightMapFilterComparisonOutput) ToInsightMapFilterComparisonPtrOutput() InsightMapFilterComparisonPtrOutput { + return o.ToInsightMapFilterComparisonPtrOutputWithContext(context.Background()) +} + +func (o InsightMapFilterComparisonOutput) ToInsightMapFilterComparisonPtrOutputWithContext(ctx context.Context) InsightMapFilterComparisonPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v InsightMapFilterComparison) *InsightMapFilterComparison { + return &v + }).(InsightMapFilterComparisonPtrOutput) +} + +func (o InsightMapFilterComparisonOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o InsightMapFilterComparisonOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e InsightMapFilterComparison) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o InsightMapFilterComparisonOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o InsightMapFilterComparisonOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e InsightMapFilterComparison) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type InsightMapFilterComparisonPtrOutput struct{ *pulumi.OutputState } + +func (InsightMapFilterComparisonPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**InsightMapFilterComparison)(nil)).Elem() +} + +func (o InsightMapFilterComparisonPtrOutput) ToInsightMapFilterComparisonPtrOutput() InsightMapFilterComparisonPtrOutput { + return o +} + +func (o InsightMapFilterComparisonPtrOutput) ToInsightMapFilterComparisonPtrOutputWithContext(ctx context.Context) InsightMapFilterComparisonPtrOutput { + return o +} + +func (o InsightMapFilterComparisonPtrOutput) Elem() InsightMapFilterComparisonOutput { + return o.ApplyT(func(v *InsightMapFilterComparison) InsightMapFilterComparison { + if v != nil { + return *v + } + var ret InsightMapFilterComparison + return ret + }).(InsightMapFilterComparisonOutput) +} + +func (o InsightMapFilterComparisonPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o InsightMapFilterComparisonPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *InsightMapFilterComparison) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// InsightMapFilterComparisonInput is an input type that accepts values of the InsightMapFilterComparison enum +// A concrete instance of `InsightMapFilterComparisonInput` can be one of the following: +// +// InsightMapFilterComparisonEquals +// InsightMapFilterComparisonNotEquals +type InsightMapFilterComparisonInput interface { + pulumi.Input + + ToInsightMapFilterComparisonOutput() InsightMapFilterComparisonOutput + ToInsightMapFilterComparisonOutputWithContext(context.Context) InsightMapFilterComparisonOutput +} + +var insightMapFilterComparisonPtrType = reflect.TypeOf((**InsightMapFilterComparison)(nil)).Elem() + +type InsightMapFilterComparisonPtrInput interface { + pulumi.Input + + ToInsightMapFilterComparisonPtrOutput() InsightMapFilterComparisonPtrOutput + ToInsightMapFilterComparisonPtrOutputWithContext(context.Context) InsightMapFilterComparisonPtrOutput +} + +type insightMapFilterComparisonPtr string + +func InsightMapFilterComparisonPtr(v string) InsightMapFilterComparisonPtrInput { + return (*insightMapFilterComparisonPtr)(&v) +} + +func (*insightMapFilterComparisonPtr) ElementType() reflect.Type { + return insightMapFilterComparisonPtrType +} + +func (in *insightMapFilterComparisonPtr) ToInsightMapFilterComparisonPtrOutput() InsightMapFilterComparisonPtrOutput { + return pulumi.ToOutput(in).(InsightMapFilterComparisonPtrOutput) +} + +func (in *insightMapFilterComparisonPtr) ToInsightMapFilterComparisonPtrOutputWithContext(ctx context.Context) InsightMapFilterComparisonPtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(InsightMapFilterComparisonPtrOutput) +} + +// The condition to apply to a string value when filtering Security Hub findings. +type InsightStringFilterComparison string + +const ( + InsightStringFilterComparisonEquals = InsightStringFilterComparison("EQUALS") + InsightStringFilterComparisonPrefix = InsightStringFilterComparison("PREFIX") + InsightStringFilterComparisonNotEquals = InsightStringFilterComparison("NOT_EQUALS") + InsightStringFilterComparisonPrefixNotEquals = InsightStringFilterComparison("PREFIX_NOT_EQUALS") +) + +func (InsightStringFilterComparison) ElementType() reflect.Type { + return reflect.TypeOf((*InsightStringFilterComparison)(nil)).Elem() +} + +func (e InsightStringFilterComparison) ToInsightStringFilterComparisonOutput() InsightStringFilterComparisonOutput { + return pulumi.ToOutput(e).(InsightStringFilterComparisonOutput) +} + +func (e InsightStringFilterComparison) ToInsightStringFilterComparisonOutputWithContext(ctx context.Context) InsightStringFilterComparisonOutput { + return pulumi.ToOutputWithContext(ctx, e).(InsightStringFilterComparisonOutput) +} + +func (e InsightStringFilterComparison) ToInsightStringFilterComparisonPtrOutput() InsightStringFilterComparisonPtrOutput { + return e.ToInsightStringFilterComparisonPtrOutputWithContext(context.Background()) +} + +func (e InsightStringFilterComparison) ToInsightStringFilterComparisonPtrOutputWithContext(ctx context.Context) InsightStringFilterComparisonPtrOutput { + return InsightStringFilterComparison(e).ToInsightStringFilterComparisonOutputWithContext(ctx).ToInsightStringFilterComparisonPtrOutputWithContext(ctx) +} + +func (e InsightStringFilterComparison) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e InsightStringFilterComparison) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e InsightStringFilterComparison) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e InsightStringFilterComparison) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type InsightStringFilterComparisonOutput struct{ *pulumi.OutputState } + +func (InsightStringFilterComparisonOutput) ElementType() reflect.Type { + return reflect.TypeOf((*InsightStringFilterComparison)(nil)).Elem() +} + +func (o InsightStringFilterComparisonOutput) ToInsightStringFilterComparisonOutput() InsightStringFilterComparisonOutput { + return o +} + +func (o InsightStringFilterComparisonOutput) ToInsightStringFilterComparisonOutputWithContext(ctx context.Context) InsightStringFilterComparisonOutput { + return o +} + +func (o InsightStringFilterComparisonOutput) ToInsightStringFilterComparisonPtrOutput() InsightStringFilterComparisonPtrOutput { + return o.ToInsightStringFilterComparisonPtrOutputWithContext(context.Background()) +} + +func (o InsightStringFilterComparisonOutput) ToInsightStringFilterComparisonPtrOutputWithContext(ctx context.Context) InsightStringFilterComparisonPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v InsightStringFilterComparison) *InsightStringFilterComparison { + return &v + }).(InsightStringFilterComparisonPtrOutput) +} + +func (o InsightStringFilterComparisonOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o InsightStringFilterComparisonOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e InsightStringFilterComparison) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o InsightStringFilterComparisonOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o InsightStringFilterComparisonOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e InsightStringFilterComparison) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type InsightStringFilterComparisonPtrOutput struct{ *pulumi.OutputState } + +func (InsightStringFilterComparisonPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**InsightStringFilterComparison)(nil)).Elem() +} + +func (o InsightStringFilterComparisonPtrOutput) ToInsightStringFilterComparisonPtrOutput() InsightStringFilterComparisonPtrOutput { + return o +} + +func (o InsightStringFilterComparisonPtrOutput) ToInsightStringFilterComparisonPtrOutputWithContext(ctx context.Context) InsightStringFilterComparisonPtrOutput { + return o +} + +func (o InsightStringFilterComparisonPtrOutput) Elem() InsightStringFilterComparisonOutput { + return o.ApplyT(func(v *InsightStringFilterComparison) InsightStringFilterComparison { + if v != nil { + return *v + } + var ret InsightStringFilterComparison + return ret + }).(InsightStringFilterComparisonOutput) +} + +func (o InsightStringFilterComparisonPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o InsightStringFilterComparisonPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *InsightStringFilterComparison) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// InsightStringFilterComparisonInput is an input type that accepts values of the InsightStringFilterComparison enum +// A concrete instance of `InsightStringFilterComparisonInput` can be one of the following: +// +// InsightStringFilterComparisonEquals +// InsightStringFilterComparisonPrefix +// InsightStringFilterComparisonNotEquals +// InsightStringFilterComparisonPrefixNotEquals +type InsightStringFilterComparisonInput interface { + pulumi.Input + + ToInsightStringFilterComparisonOutput() InsightStringFilterComparisonOutput + ToInsightStringFilterComparisonOutputWithContext(context.Context) InsightStringFilterComparisonOutput +} + +var insightStringFilterComparisonPtrType = reflect.TypeOf((**InsightStringFilterComparison)(nil)).Elem() + +type InsightStringFilterComparisonPtrInput interface { + pulumi.Input + + ToInsightStringFilterComparisonPtrOutput() InsightStringFilterComparisonPtrOutput + ToInsightStringFilterComparisonPtrOutputWithContext(context.Context) InsightStringFilterComparisonPtrOutput +} + +type insightStringFilterComparisonPtr string + +func InsightStringFilterComparisonPtr(v string) InsightStringFilterComparisonPtrInput { + return (*insightStringFilterComparisonPtr)(&v) +} + +func (*insightStringFilterComparisonPtr) ElementType() reflect.Type { + return insightStringFilterComparisonPtrType +} + +func (in *insightStringFilterComparisonPtr) ToInsightStringFilterComparisonPtrOutput() InsightStringFilterComparisonPtrOutput { + return pulumi.ToOutput(in).(InsightStringFilterComparisonPtrOutput) +} + +func (in *insightStringFilterComparisonPtr) ToInsightStringFilterComparisonPtrOutputWithContext(ctx context.Context) InsightStringFilterComparisonPtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(InsightStringFilterComparisonPtrOutput) +} + func init() { pulumi.RegisterInputType(reflect.TypeOf((*AutomationRuleDateRangeUnitInput)(nil)).Elem(), AutomationRuleDateRangeUnit("DAYS")) pulumi.RegisterInputType(reflect.TypeOf((*AutomationRuleDateRangeUnitPtrInput)(nil)).Elem(), AutomationRuleDateRangeUnit("DAYS")) @@ -1371,6 +1962,12 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*AutomationRulesActionTypePtrInput)(nil)).Elem(), AutomationRulesActionType("FINDING_FIELDS_UPDATE")) pulumi.RegisterInputType(reflect.TypeOf((*AutomationRulesFindingFieldsUpdateVerificationStateInput)(nil)).Elem(), AutomationRulesFindingFieldsUpdateVerificationState("UNKNOWN")) pulumi.RegisterInputType(reflect.TypeOf((*AutomationRulesFindingFieldsUpdateVerificationStatePtrInput)(nil)).Elem(), AutomationRulesFindingFieldsUpdateVerificationState("UNKNOWN")) + pulumi.RegisterInputType(reflect.TypeOf((*InsightDateRangeUnitInput)(nil)).Elem(), InsightDateRangeUnit("DAYS")) + pulumi.RegisterInputType(reflect.TypeOf((*InsightDateRangeUnitPtrInput)(nil)).Elem(), InsightDateRangeUnit("DAYS")) + pulumi.RegisterInputType(reflect.TypeOf((*InsightMapFilterComparisonInput)(nil)).Elem(), InsightMapFilterComparison("EQUALS")) + pulumi.RegisterInputType(reflect.TypeOf((*InsightMapFilterComparisonPtrInput)(nil)).Elem(), InsightMapFilterComparison("EQUALS")) + pulumi.RegisterInputType(reflect.TypeOf((*InsightStringFilterComparisonInput)(nil)).Elem(), InsightStringFilterComparison("EQUALS")) + pulumi.RegisterInputType(reflect.TypeOf((*InsightStringFilterComparisonPtrInput)(nil)).Elem(), InsightStringFilterComparison("EQUALS")) pulumi.RegisterOutputType(AutomationRuleDateRangeUnitOutput{}) pulumi.RegisterOutputType(AutomationRuleDateRangeUnitPtrOutput{}) pulumi.RegisterOutputType(AutomationRuleMapFilterComparisonOutput{}) @@ -1387,4 +1984,12 @@ func init() { pulumi.RegisterOutputType(AutomationRulesActionTypePtrOutput{}) pulumi.RegisterOutputType(AutomationRulesFindingFieldsUpdateVerificationStateOutput{}) pulumi.RegisterOutputType(AutomationRulesFindingFieldsUpdateVerificationStatePtrOutput{}) + pulumi.RegisterOutputType(DelegatedAdminStatusOutput{}) + pulumi.RegisterOutputType(DelegatedAdminStatusPtrOutput{}) + pulumi.RegisterOutputType(InsightDateRangeUnitOutput{}) + pulumi.RegisterOutputType(InsightDateRangeUnitPtrOutput{}) + pulumi.RegisterOutputType(InsightMapFilterComparisonOutput{}) + pulumi.RegisterOutputType(InsightMapFilterComparisonPtrOutput{}) + pulumi.RegisterOutputType(InsightStringFilterComparisonOutput{}) + pulumi.RegisterOutputType(InsightStringFilterComparisonPtrOutput{}) } diff --git a/sdk/go/aws/securityhub/pulumiTypes.go b/sdk/go/aws/securityhub/pulumiTypes.go index b652f27858..d18d2f1679 100644 --- a/sdk/go/aws/securityhub/pulumiTypes.go +++ b/sdk/go/aws/securityhub/pulumiTypes.go @@ -1990,6 +1990,2991 @@ func (o AutomationRulesFindingFiltersPtrOutput) WorkflowStatus() AutomationRuleS }).(AutomationRuleStringFilterArrayOutput) } +// A collection of filters that are applied to all active findings aggregated by AWS Security Hub. +type InsightAwsSecurityFindingFilters struct { + // The AWS account ID in which a finding is generated. + AwsAccountId []InsightStringFilter `pulumi:"awsAccountId"` + // The name of the AWS account in which a finding is generated. + AwsAccountName []InsightStringFilter `pulumi:"awsAccountName"` + // The name of the findings provider (company) that owns the solution (product) that generates findings. + CompanyName []InsightStringFilter `pulumi:"companyName"` + // The unique identifier of a standard in which a control is enabled. + ComplianceAssociatedStandardsId []InsightStringFilter `pulumi:"complianceAssociatedStandardsId"` + // The unique identifier of a control across standards. + ComplianceSecurityControlId []InsightStringFilter `pulumi:"complianceSecurityControlId"` + // The name of a security control parameter. + ComplianceSecurityControlParametersName []InsightStringFilter `pulumi:"complianceSecurityControlParametersName"` + // The current value of a security control parameter. + ComplianceSecurityControlParametersValue []InsightStringFilter `pulumi:"complianceSecurityControlParametersValue"` + // Exclusive to findings that are generated as the result of a check run against a specific rule in a supported standard. + ComplianceStatus []InsightStringFilter `pulumi:"complianceStatus"` + // A finding's confidence. + Confidence []InsightNumberFilter `pulumi:"confidence"` + // An ISO8601-formatted timestamp that indicates when the security findings provider captured the potential security issue that a finding captured. + CreatedAt []InsightDateFilter `pulumi:"createdAt"` + // The level of importance assigned to the resources associated with the finding. + Criticality []InsightNumberFilter `pulumi:"criticality"` + // A finding's description. + Description []InsightStringFilter `pulumi:"description"` + // The finding provider value for the finding confidence. + FindingProviderFieldsConfidence []InsightNumberFilter `pulumi:"findingProviderFieldsConfidence"` + // The finding provider value for the level of importance assigned to the resources associated with the findings. + FindingProviderFieldsCriticality []InsightNumberFilter `pulumi:"findingProviderFieldsCriticality"` + // The finding identifier of a related finding that is identified by the finding provider. + FindingProviderFieldsRelatedFindingsId []InsightStringFilter `pulumi:"findingProviderFieldsRelatedFindingsId"` + // The ARN of the solution that generated a related finding that is identified by the finding provider. + FindingProviderFieldsRelatedFindingsProductArn []InsightStringFilter `pulumi:"findingProviderFieldsRelatedFindingsProductArn"` + // The finding provider value for the severity label. + FindingProviderFieldsSeverityLabel []InsightStringFilter `pulumi:"findingProviderFieldsSeverityLabel"` + // The finding provider's original value for the severity. + FindingProviderFieldsSeverityOriginal []InsightStringFilter `pulumi:"findingProviderFieldsSeverityOriginal"` + // One or more finding types that the finding provider assigned to the finding. + FindingProviderFieldsTypes []InsightStringFilter `pulumi:"findingProviderFieldsTypes"` + // An ISO8601-formatted timestamp that indicates when the security findings provider first observed the potential security issue that a finding captured. + FirstObservedAt []InsightDateFilter `pulumi:"firstObservedAt"` + // The identifier for the solution-specific component (a discrete unit of logic) that generated a finding. + GeneratorId []InsightStringFilter `pulumi:"generatorId"` + // The security findings provider-specific identifier for a finding. + Id []InsightStringFilter `pulumi:"id"` + // A keyword for a finding. + Keyword []InsightKeywordFilter `pulumi:"keyword"` + // An ISO8601-formatted timestamp that indicates when the security findings provider most recently observed the potential security issue that a finding captured. + LastObservedAt []InsightDateFilter `pulumi:"lastObservedAt"` + // The name of the malware that was observed. + MalwareName []InsightStringFilter `pulumi:"malwareName"` + // The filesystem path of the malware that was observed. + MalwarePath []InsightStringFilter `pulumi:"malwarePath"` + // The state of the malware that was observed. + MalwareState []InsightStringFilter `pulumi:"malwareState"` + // The type of the malware that was observed. + MalwareType []InsightStringFilter `pulumi:"malwareType"` + // The destination domain of network-related information about a finding. + NetworkDestinationDomain []InsightStringFilter `pulumi:"networkDestinationDomain"` + // The destination IPv4 address of network-related information about a finding. + NetworkDestinationIpV4 []InsightIpFilter `pulumi:"networkDestinationIpV4"` + // The destination IPv6 address of network-related information about a finding. + NetworkDestinationIpV6 []InsightIpFilter `pulumi:"networkDestinationIpV6"` + // The destination port of network-related information about a finding. + NetworkDestinationPort []InsightNumberFilter `pulumi:"networkDestinationPort"` + // Indicates the direction of network traffic associated with a finding. + NetworkDirection []InsightStringFilter `pulumi:"networkDirection"` + // The protocol of network-related information about a finding. + NetworkProtocol []InsightStringFilter `pulumi:"networkProtocol"` + // The source domain of network-related information about a finding. + NetworkSourceDomain []InsightStringFilter `pulumi:"networkSourceDomain"` + // The source IPv4 address of network-related information about a finding. + NetworkSourceIpV4 []InsightIpFilter `pulumi:"networkSourceIpV4"` + // The source IPv6 address of network-related information about a finding. + NetworkSourceIpV6 []InsightIpFilter `pulumi:"networkSourceIpV6"` + // The source media access control (MAC) address of network-related information about a finding. + NetworkSourceMac []InsightStringFilter `pulumi:"networkSourceMac"` + // The source port of network-related information about a finding. + NetworkSourcePort []InsightNumberFilter `pulumi:"networkSourcePort"` + // The text of a note. + NoteText []InsightStringFilter `pulumi:"noteText"` + // The timestamp of when the note was updated. + NoteUpdatedAt []InsightDateFilter `pulumi:"noteUpdatedAt"` + // The principal that created a note. + NoteUpdatedBy []InsightStringFilter `pulumi:"noteUpdatedBy"` + // A timestamp that identifies when the process was launched. + ProcessLaunchedAt []InsightDateFilter `pulumi:"processLaunchedAt"` + // The name of the process. + ProcessName []InsightStringFilter `pulumi:"processName"` + // The parent process ID. + ProcessParentPid []InsightNumberFilter `pulumi:"processParentPid"` + // The path to the process executable. + ProcessPath []InsightStringFilter `pulumi:"processPath"` + // The process ID. + ProcessPid []InsightNumberFilter `pulumi:"processPid"` + // A timestamp that identifies when the process was terminated. + ProcessTerminatedAt []InsightDateFilter `pulumi:"processTerminatedAt"` + // The ARN generated by Security Hub that uniquely identifies a third-party company (security findings provider) after this provider's product (solution that generates findings) is registered with Security Hub. + ProductArn []InsightStringFilter `pulumi:"productArn"` + // A data type where security findings providers can include additional solution-specific details that aren't part of the defined AwsSecurityFinding format. + ProductFields []InsightMapFilter `pulumi:"productFields"` + // The name of the solution (product) that generates findings. + ProductName []InsightStringFilter `pulumi:"productName"` + // The recommendation of what to do about the issue described in a finding. + RecommendationText []InsightStringFilter `pulumi:"recommendationText"` + // The updated record state for the finding. + RecordState []InsightStringFilter `pulumi:"recordState"` + // The Region from which the finding was generated. + Region []InsightStringFilter `pulumi:"region"` + // The solution-generated identifier for a related finding. + RelatedFindingsId []InsightStringFilter `pulumi:"relatedFindingsId"` + // The ARN of the solution that generated a related finding. + RelatedFindingsProductArn []InsightStringFilter `pulumi:"relatedFindingsProductArn"` + // The ARN of the application that is related to a finding. + ResourceApplicationArn []InsightStringFilter `pulumi:"resourceApplicationArn"` + // The name of the application that is related to a finding. + ResourceApplicationName []InsightStringFilter `pulumi:"resourceApplicationName"` + // The IAM profile ARN of the instance. + ResourceAwsEc2InstanceIamInstanceProfileArn []InsightStringFilter `pulumi:"resourceAwsEc2InstanceIamInstanceProfileArn"` + // The Amazon Machine Image (AMI) ID of the instance. + ResourceAwsEc2InstanceImageId []InsightStringFilter `pulumi:"resourceAwsEc2InstanceImageId"` + // The IPv4 addresses associated with the instance. + ResourceAwsEc2InstanceIpV4Addresses []InsightIpFilter `pulumi:"resourceAwsEc2InstanceIpV4Addresses"` + // The IPv6 addresses associated with the instance. + ResourceAwsEc2InstanceIpV6Addresses []InsightIpFilter `pulumi:"resourceAwsEc2InstanceIpV6Addresses"` + // The key name associated with the instance. + ResourceAwsEc2InstanceKeyName []InsightStringFilter `pulumi:"resourceAwsEc2InstanceKeyName"` + // The date and time the instance was launched. + ResourceAwsEc2InstanceLaunchedAt []InsightDateFilter `pulumi:"resourceAwsEc2InstanceLaunchedAt"` + // The identifier of the subnet that the instance was launched in. + ResourceAwsEc2InstanceSubnetId []InsightStringFilter `pulumi:"resourceAwsEc2InstanceSubnetId"` + // The instance type of the instance. + ResourceAwsEc2InstanceType []InsightStringFilter `pulumi:"resourceAwsEc2InstanceType"` + // The identifier of the VPC that the instance was launched in. + ResourceAwsEc2InstanceVpcId []InsightStringFilter `pulumi:"resourceAwsEc2InstanceVpcId"` + // The creation date/time of the IAM access key related to a finding. + ResourceAwsIamAccessKeyCreatedAt []InsightDateFilter `pulumi:"resourceAwsIamAccessKeyCreatedAt"` + // The name of the principal that is associated with an IAM access key. + ResourceAwsIamAccessKeyPrincipalName []InsightStringFilter `pulumi:"resourceAwsIamAccessKeyPrincipalName"` + // The status of the IAM access key related to a finding. + ResourceAwsIamAccessKeyStatus []InsightStringFilter `pulumi:"resourceAwsIamAccessKeyStatus"` + // The user associated with the IAM access key related to a finding. + ResourceAwsIamAccessKeyUserName []InsightStringFilter `pulumi:"resourceAwsIamAccessKeyUserName"` + // The name of an IAM user. + ResourceAwsIamUserUserName []InsightStringFilter `pulumi:"resourceAwsIamUserUserName"` + // The canonical user ID of the owner of the S3 bucket. + ResourceAwsS3BucketOwnerId []InsightStringFilter `pulumi:"resourceAwsS3BucketOwnerId"` + // The display name of the owner of the S3 bucket. + ResourceAwsS3BucketOwnerName []InsightStringFilter `pulumi:"resourceAwsS3BucketOwnerName"` + // The identifier of the image related to a finding. + ResourceContainerImageId []InsightStringFilter `pulumi:"resourceContainerImageId"` + // The name of the image related to a finding. + ResourceContainerImageName []InsightStringFilter `pulumi:"resourceContainerImageName"` + // A timestamp that identifies when the container was started. + ResourceContainerLaunchedAt []InsightDateFilter `pulumi:"resourceContainerLaunchedAt"` + // The name of the container related to a finding. + ResourceContainerName []InsightStringFilter `pulumi:"resourceContainerName"` + // The details of a resource that doesn't have a specific subfield for the resource type defined. + ResourceDetailsOther []InsightMapFilter `pulumi:"resourceDetailsOther"` + // The canonical identifier for the given resource type. + ResourceId []InsightStringFilter `pulumi:"resourceId"` + // The canonical AWS partition name that the Region is assigned to. + ResourcePartition []InsightStringFilter `pulumi:"resourcePartition"` + // The canonical AWS external Region name where this resource is located. + ResourceRegion []InsightStringFilter `pulumi:"resourceRegion"` + // A list of AWS tags associated with a resource at the time the finding was processed. + ResourceTags []InsightMapFilter `pulumi:"resourceTags"` + // Specifies the type of the resource that details are provided for. + ResourceType []InsightStringFilter `pulumi:"resourceType"` + // Indicates whether or not sample findings are included in the filter results. + Sample []InsightBooleanFilter `pulumi:"sample"` + // The label of a finding's severity. + SeverityLabel []InsightStringFilter `pulumi:"severityLabel"` + // The normalized severity of a finding. + SeverityNormalized []InsightNumberFilter `pulumi:"severityNormalized"` + // The native severity as defined by the security findings provider's solution that generated the finding. + SeverityProduct []InsightNumberFilter `pulumi:"severityProduct"` + // A URL that links to a page about the current finding in the security findings provider's solution. + SourceUrl []InsightStringFilter `pulumi:"sourceUrl"` + // The category of a threat intelligence indicator. + ThreatIntelIndicatorCategory []InsightStringFilter `pulumi:"threatIntelIndicatorCategory"` + // A timestamp that identifies the last observation of a threat intelligence indicator. + ThreatIntelIndicatorLastObservedAt []InsightDateFilter `pulumi:"threatIntelIndicatorLastObservedAt"` + // The source of the threat intelligence. + ThreatIntelIndicatorSource []InsightStringFilter `pulumi:"threatIntelIndicatorSource"` + // The URL for more details from the source of the threat intelligence. + ThreatIntelIndicatorSourceUrl []InsightStringFilter `pulumi:"threatIntelIndicatorSourceUrl"` + // The type of a threat intelligence indicator. + ThreatIntelIndicatorType []InsightStringFilter `pulumi:"threatIntelIndicatorType"` + // The value of a threat intelligence indicator. + ThreatIntelIndicatorValue []InsightStringFilter `pulumi:"threatIntelIndicatorValue"` + // A finding's title. + Title []InsightStringFilter `pulumi:"title"` + // A finding type in the format of namespace/category/classifier that classifies a finding. + Type []InsightStringFilter `pulumi:"type"` + // An ISO8601-formatted timestamp that indicates when the security findings provider last updated the finding record. + UpdatedAt []InsightDateFilter `pulumi:"updatedAt"` + // A list of name/value string pairs associated with the finding. + UserDefinedFields []InsightMapFilter `pulumi:"userDefinedFields"` + // The veracity of a finding. + VerificationState []InsightStringFilter `pulumi:"verificationState"` + // Indicates whether a software vulnerability in your environment has a known exploit. + VulnerabilitiesExploitAvailable []InsightStringFilter `pulumi:"vulnerabilitiesExploitAvailable"` + // Indicates whether a vulnerability is fixed in a newer version of the affected software packages. + VulnerabilitiesFixAvailable []InsightStringFilter `pulumi:"vulnerabilitiesFixAvailable"` + // The workflow state of a finding. + WorkflowState []InsightStringFilter `pulumi:"workflowState"` + // The status of the investigation into a finding. + WorkflowStatus []InsightStringFilter `pulumi:"workflowStatus"` +} + +// InsightAwsSecurityFindingFiltersInput is an input type that accepts InsightAwsSecurityFindingFiltersArgs and InsightAwsSecurityFindingFiltersOutput values. +// You can construct a concrete instance of `InsightAwsSecurityFindingFiltersInput` via: +// +// InsightAwsSecurityFindingFiltersArgs{...} +type InsightAwsSecurityFindingFiltersInput interface { + pulumi.Input + + ToInsightAwsSecurityFindingFiltersOutput() InsightAwsSecurityFindingFiltersOutput + ToInsightAwsSecurityFindingFiltersOutputWithContext(context.Context) InsightAwsSecurityFindingFiltersOutput +} + +// A collection of filters that are applied to all active findings aggregated by AWS Security Hub. +type InsightAwsSecurityFindingFiltersArgs struct { + // The AWS account ID in which a finding is generated. + AwsAccountId InsightStringFilterArrayInput `pulumi:"awsAccountId"` + // The name of the AWS account in which a finding is generated. + AwsAccountName InsightStringFilterArrayInput `pulumi:"awsAccountName"` + // The name of the findings provider (company) that owns the solution (product) that generates findings. + CompanyName InsightStringFilterArrayInput `pulumi:"companyName"` + // The unique identifier of a standard in which a control is enabled. + ComplianceAssociatedStandardsId InsightStringFilterArrayInput `pulumi:"complianceAssociatedStandardsId"` + // The unique identifier of a control across standards. + ComplianceSecurityControlId InsightStringFilterArrayInput `pulumi:"complianceSecurityControlId"` + // The name of a security control parameter. + ComplianceSecurityControlParametersName InsightStringFilterArrayInput `pulumi:"complianceSecurityControlParametersName"` + // The current value of a security control parameter. + ComplianceSecurityControlParametersValue InsightStringFilterArrayInput `pulumi:"complianceSecurityControlParametersValue"` + // Exclusive to findings that are generated as the result of a check run against a specific rule in a supported standard. + ComplianceStatus InsightStringFilterArrayInput `pulumi:"complianceStatus"` + // A finding's confidence. + Confidence InsightNumberFilterArrayInput `pulumi:"confidence"` + // An ISO8601-formatted timestamp that indicates when the security findings provider captured the potential security issue that a finding captured. + CreatedAt InsightDateFilterArrayInput `pulumi:"createdAt"` + // The level of importance assigned to the resources associated with the finding. + Criticality InsightNumberFilterArrayInput `pulumi:"criticality"` + // A finding's description. + Description InsightStringFilterArrayInput `pulumi:"description"` + // The finding provider value for the finding confidence. + FindingProviderFieldsConfidence InsightNumberFilterArrayInput `pulumi:"findingProviderFieldsConfidence"` + // The finding provider value for the level of importance assigned to the resources associated with the findings. + FindingProviderFieldsCriticality InsightNumberFilterArrayInput `pulumi:"findingProviderFieldsCriticality"` + // The finding identifier of a related finding that is identified by the finding provider. + FindingProviderFieldsRelatedFindingsId InsightStringFilterArrayInput `pulumi:"findingProviderFieldsRelatedFindingsId"` + // The ARN of the solution that generated a related finding that is identified by the finding provider. + FindingProviderFieldsRelatedFindingsProductArn InsightStringFilterArrayInput `pulumi:"findingProviderFieldsRelatedFindingsProductArn"` + // The finding provider value for the severity label. + FindingProviderFieldsSeverityLabel InsightStringFilterArrayInput `pulumi:"findingProviderFieldsSeverityLabel"` + // The finding provider's original value for the severity. + FindingProviderFieldsSeverityOriginal InsightStringFilterArrayInput `pulumi:"findingProviderFieldsSeverityOriginal"` + // One or more finding types that the finding provider assigned to the finding. + FindingProviderFieldsTypes InsightStringFilterArrayInput `pulumi:"findingProviderFieldsTypes"` + // An ISO8601-formatted timestamp that indicates when the security findings provider first observed the potential security issue that a finding captured. + FirstObservedAt InsightDateFilterArrayInput `pulumi:"firstObservedAt"` + // The identifier for the solution-specific component (a discrete unit of logic) that generated a finding. + GeneratorId InsightStringFilterArrayInput `pulumi:"generatorId"` + // The security findings provider-specific identifier for a finding. + Id InsightStringFilterArrayInput `pulumi:"id"` + // A keyword for a finding. + Keyword InsightKeywordFilterArrayInput `pulumi:"keyword"` + // An ISO8601-formatted timestamp that indicates when the security findings provider most recently observed the potential security issue that a finding captured. + LastObservedAt InsightDateFilterArrayInput `pulumi:"lastObservedAt"` + // The name of the malware that was observed. + MalwareName InsightStringFilterArrayInput `pulumi:"malwareName"` + // The filesystem path of the malware that was observed. + MalwarePath InsightStringFilterArrayInput `pulumi:"malwarePath"` + // The state of the malware that was observed. + MalwareState InsightStringFilterArrayInput `pulumi:"malwareState"` + // The type of the malware that was observed. + MalwareType InsightStringFilterArrayInput `pulumi:"malwareType"` + // The destination domain of network-related information about a finding. + NetworkDestinationDomain InsightStringFilterArrayInput `pulumi:"networkDestinationDomain"` + // The destination IPv4 address of network-related information about a finding. + NetworkDestinationIpV4 InsightIpFilterArrayInput `pulumi:"networkDestinationIpV4"` + // The destination IPv6 address of network-related information about a finding. + NetworkDestinationIpV6 InsightIpFilterArrayInput `pulumi:"networkDestinationIpV6"` + // The destination port of network-related information about a finding. + NetworkDestinationPort InsightNumberFilterArrayInput `pulumi:"networkDestinationPort"` + // Indicates the direction of network traffic associated with a finding. + NetworkDirection InsightStringFilterArrayInput `pulumi:"networkDirection"` + // The protocol of network-related information about a finding. + NetworkProtocol InsightStringFilterArrayInput `pulumi:"networkProtocol"` + // The source domain of network-related information about a finding. + NetworkSourceDomain InsightStringFilterArrayInput `pulumi:"networkSourceDomain"` + // The source IPv4 address of network-related information about a finding. + NetworkSourceIpV4 InsightIpFilterArrayInput `pulumi:"networkSourceIpV4"` + // The source IPv6 address of network-related information about a finding. + NetworkSourceIpV6 InsightIpFilterArrayInput `pulumi:"networkSourceIpV6"` + // The source media access control (MAC) address of network-related information about a finding. + NetworkSourceMac InsightStringFilterArrayInput `pulumi:"networkSourceMac"` + // The source port of network-related information about a finding. + NetworkSourcePort InsightNumberFilterArrayInput `pulumi:"networkSourcePort"` + // The text of a note. + NoteText InsightStringFilterArrayInput `pulumi:"noteText"` + // The timestamp of when the note was updated. + NoteUpdatedAt InsightDateFilterArrayInput `pulumi:"noteUpdatedAt"` + // The principal that created a note. + NoteUpdatedBy InsightStringFilterArrayInput `pulumi:"noteUpdatedBy"` + // A timestamp that identifies when the process was launched. + ProcessLaunchedAt InsightDateFilterArrayInput `pulumi:"processLaunchedAt"` + // The name of the process. + ProcessName InsightStringFilterArrayInput `pulumi:"processName"` + // The parent process ID. + ProcessParentPid InsightNumberFilterArrayInput `pulumi:"processParentPid"` + // The path to the process executable. + ProcessPath InsightStringFilterArrayInput `pulumi:"processPath"` + // The process ID. + ProcessPid InsightNumberFilterArrayInput `pulumi:"processPid"` + // A timestamp that identifies when the process was terminated. + ProcessTerminatedAt InsightDateFilterArrayInput `pulumi:"processTerminatedAt"` + // The ARN generated by Security Hub that uniquely identifies a third-party company (security findings provider) after this provider's product (solution that generates findings) is registered with Security Hub. + ProductArn InsightStringFilterArrayInput `pulumi:"productArn"` + // A data type where security findings providers can include additional solution-specific details that aren't part of the defined AwsSecurityFinding format. + ProductFields InsightMapFilterArrayInput `pulumi:"productFields"` + // The name of the solution (product) that generates findings. + ProductName InsightStringFilterArrayInput `pulumi:"productName"` + // The recommendation of what to do about the issue described in a finding. + RecommendationText InsightStringFilterArrayInput `pulumi:"recommendationText"` + // The updated record state for the finding. + RecordState InsightStringFilterArrayInput `pulumi:"recordState"` + // The Region from which the finding was generated. + Region InsightStringFilterArrayInput `pulumi:"region"` + // The solution-generated identifier for a related finding. + RelatedFindingsId InsightStringFilterArrayInput `pulumi:"relatedFindingsId"` + // The ARN of the solution that generated a related finding. + RelatedFindingsProductArn InsightStringFilterArrayInput `pulumi:"relatedFindingsProductArn"` + // The ARN of the application that is related to a finding. + ResourceApplicationArn InsightStringFilterArrayInput `pulumi:"resourceApplicationArn"` + // The name of the application that is related to a finding. + ResourceApplicationName InsightStringFilterArrayInput `pulumi:"resourceApplicationName"` + // The IAM profile ARN of the instance. + ResourceAwsEc2InstanceIamInstanceProfileArn InsightStringFilterArrayInput `pulumi:"resourceAwsEc2InstanceIamInstanceProfileArn"` + // The Amazon Machine Image (AMI) ID of the instance. + ResourceAwsEc2InstanceImageId InsightStringFilterArrayInput `pulumi:"resourceAwsEc2InstanceImageId"` + // The IPv4 addresses associated with the instance. + ResourceAwsEc2InstanceIpV4Addresses InsightIpFilterArrayInput `pulumi:"resourceAwsEc2InstanceIpV4Addresses"` + // The IPv6 addresses associated with the instance. + ResourceAwsEc2InstanceIpV6Addresses InsightIpFilterArrayInput `pulumi:"resourceAwsEc2InstanceIpV6Addresses"` + // The key name associated with the instance. + ResourceAwsEc2InstanceKeyName InsightStringFilterArrayInput `pulumi:"resourceAwsEc2InstanceKeyName"` + // The date and time the instance was launched. + ResourceAwsEc2InstanceLaunchedAt InsightDateFilterArrayInput `pulumi:"resourceAwsEc2InstanceLaunchedAt"` + // The identifier of the subnet that the instance was launched in. + ResourceAwsEc2InstanceSubnetId InsightStringFilterArrayInput `pulumi:"resourceAwsEc2InstanceSubnetId"` + // The instance type of the instance. + ResourceAwsEc2InstanceType InsightStringFilterArrayInput `pulumi:"resourceAwsEc2InstanceType"` + // The identifier of the VPC that the instance was launched in. + ResourceAwsEc2InstanceVpcId InsightStringFilterArrayInput `pulumi:"resourceAwsEc2InstanceVpcId"` + // The creation date/time of the IAM access key related to a finding. + ResourceAwsIamAccessKeyCreatedAt InsightDateFilterArrayInput `pulumi:"resourceAwsIamAccessKeyCreatedAt"` + // The name of the principal that is associated with an IAM access key. + ResourceAwsIamAccessKeyPrincipalName InsightStringFilterArrayInput `pulumi:"resourceAwsIamAccessKeyPrincipalName"` + // The status of the IAM access key related to a finding. + ResourceAwsIamAccessKeyStatus InsightStringFilterArrayInput `pulumi:"resourceAwsIamAccessKeyStatus"` + // The user associated with the IAM access key related to a finding. + ResourceAwsIamAccessKeyUserName InsightStringFilterArrayInput `pulumi:"resourceAwsIamAccessKeyUserName"` + // The name of an IAM user. + ResourceAwsIamUserUserName InsightStringFilterArrayInput `pulumi:"resourceAwsIamUserUserName"` + // The canonical user ID of the owner of the S3 bucket. + ResourceAwsS3BucketOwnerId InsightStringFilterArrayInput `pulumi:"resourceAwsS3BucketOwnerId"` + // The display name of the owner of the S3 bucket. + ResourceAwsS3BucketOwnerName InsightStringFilterArrayInput `pulumi:"resourceAwsS3BucketOwnerName"` + // The identifier of the image related to a finding. + ResourceContainerImageId InsightStringFilterArrayInput `pulumi:"resourceContainerImageId"` + // The name of the image related to a finding. + ResourceContainerImageName InsightStringFilterArrayInput `pulumi:"resourceContainerImageName"` + // A timestamp that identifies when the container was started. + ResourceContainerLaunchedAt InsightDateFilterArrayInput `pulumi:"resourceContainerLaunchedAt"` + // The name of the container related to a finding. + ResourceContainerName InsightStringFilterArrayInput `pulumi:"resourceContainerName"` + // The details of a resource that doesn't have a specific subfield for the resource type defined. + ResourceDetailsOther InsightMapFilterArrayInput `pulumi:"resourceDetailsOther"` + // The canonical identifier for the given resource type. + ResourceId InsightStringFilterArrayInput `pulumi:"resourceId"` + // The canonical AWS partition name that the Region is assigned to. + ResourcePartition InsightStringFilterArrayInput `pulumi:"resourcePartition"` + // The canonical AWS external Region name where this resource is located. + ResourceRegion InsightStringFilterArrayInput `pulumi:"resourceRegion"` + // A list of AWS tags associated with a resource at the time the finding was processed. + ResourceTags InsightMapFilterArrayInput `pulumi:"resourceTags"` + // Specifies the type of the resource that details are provided for. + ResourceType InsightStringFilterArrayInput `pulumi:"resourceType"` + // Indicates whether or not sample findings are included in the filter results. + Sample InsightBooleanFilterArrayInput `pulumi:"sample"` + // The label of a finding's severity. + SeverityLabel InsightStringFilterArrayInput `pulumi:"severityLabel"` + // The normalized severity of a finding. + SeverityNormalized InsightNumberFilterArrayInput `pulumi:"severityNormalized"` + // The native severity as defined by the security findings provider's solution that generated the finding. + SeverityProduct InsightNumberFilterArrayInput `pulumi:"severityProduct"` + // A URL that links to a page about the current finding in the security findings provider's solution. + SourceUrl InsightStringFilterArrayInput `pulumi:"sourceUrl"` + // The category of a threat intelligence indicator. + ThreatIntelIndicatorCategory InsightStringFilterArrayInput `pulumi:"threatIntelIndicatorCategory"` + // A timestamp that identifies the last observation of a threat intelligence indicator. + ThreatIntelIndicatorLastObservedAt InsightDateFilterArrayInput `pulumi:"threatIntelIndicatorLastObservedAt"` + // The source of the threat intelligence. + ThreatIntelIndicatorSource InsightStringFilterArrayInput `pulumi:"threatIntelIndicatorSource"` + // The URL for more details from the source of the threat intelligence. + ThreatIntelIndicatorSourceUrl InsightStringFilterArrayInput `pulumi:"threatIntelIndicatorSourceUrl"` + // The type of a threat intelligence indicator. + ThreatIntelIndicatorType InsightStringFilterArrayInput `pulumi:"threatIntelIndicatorType"` + // The value of a threat intelligence indicator. + ThreatIntelIndicatorValue InsightStringFilterArrayInput `pulumi:"threatIntelIndicatorValue"` + // A finding's title. + Title InsightStringFilterArrayInput `pulumi:"title"` + // A finding type in the format of namespace/category/classifier that classifies a finding. + Type InsightStringFilterArrayInput `pulumi:"type"` + // An ISO8601-formatted timestamp that indicates when the security findings provider last updated the finding record. + UpdatedAt InsightDateFilterArrayInput `pulumi:"updatedAt"` + // A list of name/value string pairs associated with the finding. + UserDefinedFields InsightMapFilterArrayInput `pulumi:"userDefinedFields"` + // The veracity of a finding. + VerificationState InsightStringFilterArrayInput `pulumi:"verificationState"` + // Indicates whether a software vulnerability in your environment has a known exploit. + VulnerabilitiesExploitAvailable InsightStringFilterArrayInput `pulumi:"vulnerabilitiesExploitAvailable"` + // Indicates whether a vulnerability is fixed in a newer version of the affected software packages. + VulnerabilitiesFixAvailable InsightStringFilterArrayInput `pulumi:"vulnerabilitiesFixAvailable"` + // The workflow state of a finding. + WorkflowState InsightStringFilterArrayInput `pulumi:"workflowState"` + // The status of the investigation into a finding. + WorkflowStatus InsightStringFilterArrayInput `pulumi:"workflowStatus"` +} + +func (InsightAwsSecurityFindingFiltersArgs) ElementType() reflect.Type { + return reflect.TypeOf((*InsightAwsSecurityFindingFilters)(nil)).Elem() +} + +func (i InsightAwsSecurityFindingFiltersArgs) ToInsightAwsSecurityFindingFiltersOutput() InsightAwsSecurityFindingFiltersOutput { + return i.ToInsightAwsSecurityFindingFiltersOutputWithContext(context.Background()) +} + +func (i InsightAwsSecurityFindingFiltersArgs) ToInsightAwsSecurityFindingFiltersOutputWithContext(ctx context.Context) InsightAwsSecurityFindingFiltersOutput { + return pulumi.ToOutputWithContext(ctx, i).(InsightAwsSecurityFindingFiltersOutput) +} + +// A collection of filters that are applied to all active findings aggregated by AWS Security Hub. +type InsightAwsSecurityFindingFiltersOutput struct{ *pulumi.OutputState } + +func (InsightAwsSecurityFindingFiltersOutput) ElementType() reflect.Type { + return reflect.TypeOf((*InsightAwsSecurityFindingFilters)(nil)).Elem() +} + +func (o InsightAwsSecurityFindingFiltersOutput) ToInsightAwsSecurityFindingFiltersOutput() InsightAwsSecurityFindingFiltersOutput { + return o +} + +func (o InsightAwsSecurityFindingFiltersOutput) ToInsightAwsSecurityFindingFiltersOutputWithContext(ctx context.Context) InsightAwsSecurityFindingFiltersOutput { + return o +} + +// The AWS account ID in which a finding is generated. +func (o InsightAwsSecurityFindingFiltersOutput) AwsAccountId() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.AwsAccountId }).(InsightStringFilterArrayOutput) +} + +// The name of the AWS account in which a finding is generated. +func (o InsightAwsSecurityFindingFiltersOutput) AwsAccountName() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.AwsAccountName }).(InsightStringFilterArrayOutput) +} + +// The name of the findings provider (company) that owns the solution (product) that generates findings. +func (o InsightAwsSecurityFindingFiltersOutput) CompanyName() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.CompanyName }).(InsightStringFilterArrayOutput) +} + +// The unique identifier of a standard in which a control is enabled. +func (o InsightAwsSecurityFindingFiltersOutput) ComplianceAssociatedStandardsId() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { + return v.ComplianceAssociatedStandardsId + }).(InsightStringFilterArrayOutput) +} + +// The unique identifier of a control across standards. +func (o InsightAwsSecurityFindingFiltersOutput) ComplianceSecurityControlId() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.ComplianceSecurityControlId }).(InsightStringFilterArrayOutput) +} + +// The name of a security control parameter. +func (o InsightAwsSecurityFindingFiltersOutput) ComplianceSecurityControlParametersName() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { + return v.ComplianceSecurityControlParametersName + }).(InsightStringFilterArrayOutput) +} + +// The current value of a security control parameter. +func (o InsightAwsSecurityFindingFiltersOutput) ComplianceSecurityControlParametersValue() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { + return v.ComplianceSecurityControlParametersValue + }).(InsightStringFilterArrayOutput) +} + +// Exclusive to findings that are generated as the result of a check run against a specific rule in a supported standard. +func (o InsightAwsSecurityFindingFiltersOutput) ComplianceStatus() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.ComplianceStatus }).(InsightStringFilterArrayOutput) +} + +// A finding's confidence. +func (o InsightAwsSecurityFindingFiltersOutput) Confidence() InsightNumberFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightNumberFilter { return v.Confidence }).(InsightNumberFilterArrayOutput) +} + +// An ISO8601-formatted timestamp that indicates when the security findings provider captured the potential security issue that a finding captured. +func (o InsightAwsSecurityFindingFiltersOutput) CreatedAt() InsightDateFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightDateFilter { return v.CreatedAt }).(InsightDateFilterArrayOutput) +} + +// The level of importance assigned to the resources associated with the finding. +func (o InsightAwsSecurityFindingFiltersOutput) Criticality() InsightNumberFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightNumberFilter { return v.Criticality }).(InsightNumberFilterArrayOutput) +} + +// A finding's description. +func (o InsightAwsSecurityFindingFiltersOutput) Description() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.Description }).(InsightStringFilterArrayOutput) +} + +// The finding provider value for the finding confidence. +func (o InsightAwsSecurityFindingFiltersOutput) FindingProviderFieldsConfidence() InsightNumberFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightNumberFilter { + return v.FindingProviderFieldsConfidence + }).(InsightNumberFilterArrayOutput) +} + +// The finding provider value for the level of importance assigned to the resources associated with the findings. +func (o InsightAwsSecurityFindingFiltersOutput) FindingProviderFieldsCriticality() InsightNumberFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightNumberFilter { + return v.FindingProviderFieldsCriticality + }).(InsightNumberFilterArrayOutput) +} + +// The finding identifier of a related finding that is identified by the finding provider. +func (o InsightAwsSecurityFindingFiltersOutput) FindingProviderFieldsRelatedFindingsId() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { + return v.FindingProviderFieldsRelatedFindingsId + }).(InsightStringFilterArrayOutput) +} + +// The ARN of the solution that generated a related finding that is identified by the finding provider. +func (o InsightAwsSecurityFindingFiltersOutput) FindingProviderFieldsRelatedFindingsProductArn() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { + return v.FindingProviderFieldsRelatedFindingsProductArn + }).(InsightStringFilterArrayOutput) +} + +// The finding provider value for the severity label. +func (o InsightAwsSecurityFindingFiltersOutput) FindingProviderFieldsSeverityLabel() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { + return v.FindingProviderFieldsSeverityLabel + }).(InsightStringFilterArrayOutput) +} + +// The finding provider's original value for the severity. +func (o InsightAwsSecurityFindingFiltersOutput) FindingProviderFieldsSeverityOriginal() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { + return v.FindingProviderFieldsSeverityOriginal + }).(InsightStringFilterArrayOutput) +} + +// One or more finding types that the finding provider assigned to the finding. +func (o InsightAwsSecurityFindingFiltersOutput) FindingProviderFieldsTypes() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.FindingProviderFieldsTypes }).(InsightStringFilterArrayOutput) +} + +// An ISO8601-formatted timestamp that indicates when the security findings provider first observed the potential security issue that a finding captured. +func (o InsightAwsSecurityFindingFiltersOutput) FirstObservedAt() InsightDateFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightDateFilter { return v.FirstObservedAt }).(InsightDateFilterArrayOutput) +} + +// The identifier for the solution-specific component (a discrete unit of logic) that generated a finding. +func (o InsightAwsSecurityFindingFiltersOutput) GeneratorId() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.GeneratorId }).(InsightStringFilterArrayOutput) +} + +// The security findings provider-specific identifier for a finding. +func (o InsightAwsSecurityFindingFiltersOutput) Id() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.Id }).(InsightStringFilterArrayOutput) +} + +// A keyword for a finding. +func (o InsightAwsSecurityFindingFiltersOutput) Keyword() InsightKeywordFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightKeywordFilter { return v.Keyword }).(InsightKeywordFilterArrayOutput) +} + +// An ISO8601-formatted timestamp that indicates when the security findings provider most recently observed the potential security issue that a finding captured. +func (o InsightAwsSecurityFindingFiltersOutput) LastObservedAt() InsightDateFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightDateFilter { return v.LastObservedAt }).(InsightDateFilterArrayOutput) +} + +// The name of the malware that was observed. +func (o InsightAwsSecurityFindingFiltersOutput) MalwareName() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.MalwareName }).(InsightStringFilterArrayOutput) +} + +// The filesystem path of the malware that was observed. +func (o InsightAwsSecurityFindingFiltersOutput) MalwarePath() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.MalwarePath }).(InsightStringFilterArrayOutput) +} + +// The state of the malware that was observed. +func (o InsightAwsSecurityFindingFiltersOutput) MalwareState() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.MalwareState }).(InsightStringFilterArrayOutput) +} + +// The type of the malware that was observed. +func (o InsightAwsSecurityFindingFiltersOutput) MalwareType() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.MalwareType }).(InsightStringFilterArrayOutput) +} + +// The destination domain of network-related information about a finding. +func (o InsightAwsSecurityFindingFiltersOutput) NetworkDestinationDomain() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.NetworkDestinationDomain }).(InsightStringFilterArrayOutput) +} + +// The destination IPv4 address of network-related information about a finding. +func (o InsightAwsSecurityFindingFiltersOutput) NetworkDestinationIpV4() InsightIpFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightIpFilter { return v.NetworkDestinationIpV4 }).(InsightIpFilterArrayOutput) +} + +// The destination IPv6 address of network-related information about a finding. +func (o InsightAwsSecurityFindingFiltersOutput) NetworkDestinationIpV6() InsightIpFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightIpFilter { return v.NetworkDestinationIpV6 }).(InsightIpFilterArrayOutput) +} + +// The destination port of network-related information about a finding. +func (o InsightAwsSecurityFindingFiltersOutput) NetworkDestinationPort() InsightNumberFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightNumberFilter { return v.NetworkDestinationPort }).(InsightNumberFilterArrayOutput) +} + +// Indicates the direction of network traffic associated with a finding. +func (o InsightAwsSecurityFindingFiltersOutput) NetworkDirection() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.NetworkDirection }).(InsightStringFilterArrayOutput) +} + +// The protocol of network-related information about a finding. +func (o InsightAwsSecurityFindingFiltersOutput) NetworkProtocol() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.NetworkProtocol }).(InsightStringFilterArrayOutput) +} + +// The source domain of network-related information about a finding. +func (o InsightAwsSecurityFindingFiltersOutput) NetworkSourceDomain() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.NetworkSourceDomain }).(InsightStringFilterArrayOutput) +} + +// The source IPv4 address of network-related information about a finding. +func (o InsightAwsSecurityFindingFiltersOutput) NetworkSourceIpV4() InsightIpFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightIpFilter { return v.NetworkSourceIpV4 }).(InsightIpFilterArrayOutput) +} + +// The source IPv6 address of network-related information about a finding. +func (o InsightAwsSecurityFindingFiltersOutput) NetworkSourceIpV6() InsightIpFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightIpFilter { return v.NetworkSourceIpV6 }).(InsightIpFilterArrayOutput) +} + +// The source media access control (MAC) address of network-related information about a finding. +func (o InsightAwsSecurityFindingFiltersOutput) NetworkSourceMac() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.NetworkSourceMac }).(InsightStringFilterArrayOutput) +} + +// The source port of network-related information about a finding. +func (o InsightAwsSecurityFindingFiltersOutput) NetworkSourcePort() InsightNumberFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightNumberFilter { return v.NetworkSourcePort }).(InsightNumberFilterArrayOutput) +} + +// The text of a note. +func (o InsightAwsSecurityFindingFiltersOutput) NoteText() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.NoteText }).(InsightStringFilterArrayOutput) +} + +// The timestamp of when the note was updated. +func (o InsightAwsSecurityFindingFiltersOutput) NoteUpdatedAt() InsightDateFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightDateFilter { return v.NoteUpdatedAt }).(InsightDateFilterArrayOutput) +} + +// The principal that created a note. +func (o InsightAwsSecurityFindingFiltersOutput) NoteUpdatedBy() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.NoteUpdatedBy }).(InsightStringFilterArrayOutput) +} + +// A timestamp that identifies when the process was launched. +func (o InsightAwsSecurityFindingFiltersOutput) ProcessLaunchedAt() InsightDateFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightDateFilter { return v.ProcessLaunchedAt }).(InsightDateFilterArrayOutput) +} + +// The name of the process. +func (o InsightAwsSecurityFindingFiltersOutput) ProcessName() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.ProcessName }).(InsightStringFilterArrayOutput) +} + +// The parent process ID. +func (o InsightAwsSecurityFindingFiltersOutput) ProcessParentPid() InsightNumberFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightNumberFilter { return v.ProcessParentPid }).(InsightNumberFilterArrayOutput) +} + +// The path to the process executable. +func (o InsightAwsSecurityFindingFiltersOutput) ProcessPath() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.ProcessPath }).(InsightStringFilterArrayOutput) +} + +// The process ID. +func (o InsightAwsSecurityFindingFiltersOutput) ProcessPid() InsightNumberFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightNumberFilter { return v.ProcessPid }).(InsightNumberFilterArrayOutput) +} + +// A timestamp that identifies when the process was terminated. +func (o InsightAwsSecurityFindingFiltersOutput) ProcessTerminatedAt() InsightDateFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightDateFilter { return v.ProcessTerminatedAt }).(InsightDateFilterArrayOutput) +} + +// The ARN generated by Security Hub that uniquely identifies a third-party company (security findings provider) after this provider's product (solution that generates findings) is registered with Security Hub. +func (o InsightAwsSecurityFindingFiltersOutput) ProductArn() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.ProductArn }).(InsightStringFilterArrayOutput) +} + +// A data type where security findings providers can include additional solution-specific details that aren't part of the defined AwsSecurityFinding format. +func (o InsightAwsSecurityFindingFiltersOutput) ProductFields() InsightMapFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightMapFilter { return v.ProductFields }).(InsightMapFilterArrayOutput) +} + +// The name of the solution (product) that generates findings. +func (o InsightAwsSecurityFindingFiltersOutput) ProductName() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.ProductName }).(InsightStringFilterArrayOutput) +} + +// The recommendation of what to do about the issue described in a finding. +func (o InsightAwsSecurityFindingFiltersOutput) RecommendationText() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.RecommendationText }).(InsightStringFilterArrayOutput) +} + +// The updated record state for the finding. +func (o InsightAwsSecurityFindingFiltersOutput) RecordState() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.RecordState }).(InsightStringFilterArrayOutput) +} + +// The Region from which the finding was generated. +func (o InsightAwsSecurityFindingFiltersOutput) Region() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.Region }).(InsightStringFilterArrayOutput) +} + +// The solution-generated identifier for a related finding. +func (o InsightAwsSecurityFindingFiltersOutput) RelatedFindingsId() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.RelatedFindingsId }).(InsightStringFilterArrayOutput) +} + +// The ARN of the solution that generated a related finding. +func (o InsightAwsSecurityFindingFiltersOutput) RelatedFindingsProductArn() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.RelatedFindingsProductArn }).(InsightStringFilterArrayOutput) +} + +// The ARN of the application that is related to a finding. +func (o InsightAwsSecurityFindingFiltersOutput) ResourceApplicationArn() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.ResourceApplicationArn }).(InsightStringFilterArrayOutput) +} + +// The name of the application that is related to a finding. +func (o InsightAwsSecurityFindingFiltersOutput) ResourceApplicationName() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.ResourceApplicationName }).(InsightStringFilterArrayOutput) +} + +// The IAM profile ARN of the instance. +func (o InsightAwsSecurityFindingFiltersOutput) ResourceAwsEc2InstanceIamInstanceProfileArn() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { + return v.ResourceAwsEc2InstanceIamInstanceProfileArn + }).(InsightStringFilterArrayOutput) +} + +// The Amazon Machine Image (AMI) ID of the instance. +func (o InsightAwsSecurityFindingFiltersOutput) ResourceAwsEc2InstanceImageId() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.ResourceAwsEc2InstanceImageId }).(InsightStringFilterArrayOutput) +} + +// The IPv4 addresses associated with the instance. +func (o InsightAwsSecurityFindingFiltersOutput) ResourceAwsEc2InstanceIpV4Addresses() InsightIpFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightIpFilter { + return v.ResourceAwsEc2InstanceIpV4Addresses + }).(InsightIpFilterArrayOutput) +} + +// The IPv6 addresses associated with the instance. +func (o InsightAwsSecurityFindingFiltersOutput) ResourceAwsEc2InstanceIpV6Addresses() InsightIpFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightIpFilter { + return v.ResourceAwsEc2InstanceIpV6Addresses + }).(InsightIpFilterArrayOutput) +} + +// The key name associated with the instance. +func (o InsightAwsSecurityFindingFiltersOutput) ResourceAwsEc2InstanceKeyName() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.ResourceAwsEc2InstanceKeyName }).(InsightStringFilterArrayOutput) +} + +// The date and time the instance was launched. +func (o InsightAwsSecurityFindingFiltersOutput) ResourceAwsEc2InstanceLaunchedAt() InsightDateFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightDateFilter { + return v.ResourceAwsEc2InstanceLaunchedAt + }).(InsightDateFilterArrayOutput) +} + +// The identifier of the subnet that the instance was launched in. +func (o InsightAwsSecurityFindingFiltersOutput) ResourceAwsEc2InstanceSubnetId() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { + return v.ResourceAwsEc2InstanceSubnetId + }).(InsightStringFilterArrayOutput) +} + +// The instance type of the instance. +func (o InsightAwsSecurityFindingFiltersOutput) ResourceAwsEc2InstanceType() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.ResourceAwsEc2InstanceType }).(InsightStringFilterArrayOutput) +} + +// The identifier of the VPC that the instance was launched in. +func (o InsightAwsSecurityFindingFiltersOutput) ResourceAwsEc2InstanceVpcId() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.ResourceAwsEc2InstanceVpcId }).(InsightStringFilterArrayOutput) +} + +// The creation date/time of the IAM access key related to a finding. +func (o InsightAwsSecurityFindingFiltersOutput) ResourceAwsIamAccessKeyCreatedAt() InsightDateFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightDateFilter { + return v.ResourceAwsIamAccessKeyCreatedAt + }).(InsightDateFilterArrayOutput) +} + +// The name of the principal that is associated with an IAM access key. +func (o InsightAwsSecurityFindingFiltersOutput) ResourceAwsIamAccessKeyPrincipalName() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { + return v.ResourceAwsIamAccessKeyPrincipalName + }).(InsightStringFilterArrayOutput) +} + +// The status of the IAM access key related to a finding. +func (o InsightAwsSecurityFindingFiltersOutput) ResourceAwsIamAccessKeyStatus() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.ResourceAwsIamAccessKeyStatus }).(InsightStringFilterArrayOutput) +} + +// The user associated with the IAM access key related to a finding. +func (o InsightAwsSecurityFindingFiltersOutput) ResourceAwsIamAccessKeyUserName() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { + return v.ResourceAwsIamAccessKeyUserName + }).(InsightStringFilterArrayOutput) +} + +// The name of an IAM user. +func (o InsightAwsSecurityFindingFiltersOutput) ResourceAwsIamUserUserName() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.ResourceAwsIamUserUserName }).(InsightStringFilterArrayOutput) +} + +// The canonical user ID of the owner of the S3 bucket. +func (o InsightAwsSecurityFindingFiltersOutput) ResourceAwsS3BucketOwnerId() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.ResourceAwsS3BucketOwnerId }).(InsightStringFilterArrayOutput) +} + +// The display name of the owner of the S3 bucket. +func (o InsightAwsSecurityFindingFiltersOutput) ResourceAwsS3BucketOwnerName() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.ResourceAwsS3BucketOwnerName }).(InsightStringFilterArrayOutput) +} + +// The identifier of the image related to a finding. +func (o InsightAwsSecurityFindingFiltersOutput) ResourceContainerImageId() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.ResourceContainerImageId }).(InsightStringFilterArrayOutput) +} + +// The name of the image related to a finding. +func (o InsightAwsSecurityFindingFiltersOutput) ResourceContainerImageName() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.ResourceContainerImageName }).(InsightStringFilterArrayOutput) +} + +// A timestamp that identifies when the container was started. +func (o InsightAwsSecurityFindingFiltersOutput) ResourceContainerLaunchedAt() InsightDateFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightDateFilter { return v.ResourceContainerLaunchedAt }).(InsightDateFilterArrayOutput) +} + +// The name of the container related to a finding. +func (o InsightAwsSecurityFindingFiltersOutput) ResourceContainerName() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.ResourceContainerName }).(InsightStringFilterArrayOutput) +} + +// The details of a resource that doesn't have a specific subfield for the resource type defined. +func (o InsightAwsSecurityFindingFiltersOutput) ResourceDetailsOther() InsightMapFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightMapFilter { return v.ResourceDetailsOther }).(InsightMapFilterArrayOutput) +} + +// The canonical identifier for the given resource type. +func (o InsightAwsSecurityFindingFiltersOutput) ResourceId() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.ResourceId }).(InsightStringFilterArrayOutput) +} + +// The canonical AWS partition name that the Region is assigned to. +func (o InsightAwsSecurityFindingFiltersOutput) ResourcePartition() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.ResourcePartition }).(InsightStringFilterArrayOutput) +} + +// The canonical AWS external Region name where this resource is located. +func (o InsightAwsSecurityFindingFiltersOutput) ResourceRegion() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.ResourceRegion }).(InsightStringFilterArrayOutput) +} + +// A list of AWS tags associated with a resource at the time the finding was processed. +func (o InsightAwsSecurityFindingFiltersOutput) ResourceTags() InsightMapFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightMapFilter { return v.ResourceTags }).(InsightMapFilterArrayOutput) +} + +// Specifies the type of the resource that details are provided for. +func (o InsightAwsSecurityFindingFiltersOutput) ResourceType() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.ResourceType }).(InsightStringFilterArrayOutput) +} + +// Indicates whether or not sample findings are included in the filter results. +func (o InsightAwsSecurityFindingFiltersOutput) Sample() InsightBooleanFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightBooleanFilter { return v.Sample }).(InsightBooleanFilterArrayOutput) +} + +// The label of a finding's severity. +func (o InsightAwsSecurityFindingFiltersOutput) SeverityLabel() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.SeverityLabel }).(InsightStringFilterArrayOutput) +} + +// The normalized severity of a finding. +func (o InsightAwsSecurityFindingFiltersOutput) SeverityNormalized() InsightNumberFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightNumberFilter { return v.SeverityNormalized }).(InsightNumberFilterArrayOutput) +} + +// The native severity as defined by the security findings provider's solution that generated the finding. +func (o InsightAwsSecurityFindingFiltersOutput) SeverityProduct() InsightNumberFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightNumberFilter { return v.SeverityProduct }).(InsightNumberFilterArrayOutput) +} + +// A URL that links to a page about the current finding in the security findings provider's solution. +func (o InsightAwsSecurityFindingFiltersOutput) SourceUrl() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.SourceUrl }).(InsightStringFilterArrayOutput) +} + +// The category of a threat intelligence indicator. +func (o InsightAwsSecurityFindingFiltersOutput) ThreatIntelIndicatorCategory() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.ThreatIntelIndicatorCategory }).(InsightStringFilterArrayOutput) +} + +// A timestamp that identifies the last observation of a threat intelligence indicator. +func (o InsightAwsSecurityFindingFiltersOutput) ThreatIntelIndicatorLastObservedAt() InsightDateFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightDateFilter { + return v.ThreatIntelIndicatorLastObservedAt + }).(InsightDateFilterArrayOutput) +} + +// The source of the threat intelligence. +func (o InsightAwsSecurityFindingFiltersOutput) ThreatIntelIndicatorSource() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.ThreatIntelIndicatorSource }).(InsightStringFilterArrayOutput) +} + +// The URL for more details from the source of the threat intelligence. +func (o InsightAwsSecurityFindingFiltersOutput) ThreatIntelIndicatorSourceUrl() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.ThreatIntelIndicatorSourceUrl }).(InsightStringFilterArrayOutput) +} + +// The type of a threat intelligence indicator. +func (o InsightAwsSecurityFindingFiltersOutput) ThreatIntelIndicatorType() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.ThreatIntelIndicatorType }).(InsightStringFilterArrayOutput) +} + +// The value of a threat intelligence indicator. +func (o InsightAwsSecurityFindingFiltersOutput) ThreatIntelIndicatorValue() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.ThreatIntelIndicatorValue }).(InsightStringFilterArrayOutput) +} + +// A finding's title. +func (o InsightAwsSecurityFindingFiltersOutput) Title() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.Title }).(InsightStringFilterArrayOutput) +} + +// A finding type in the format of namespace/category/classifier that classifies a finding. +func (o InsightAwsSecurityFindingFiltersOutput) Type() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.Type }).(InsightStringFilterArrayOutput) +} + +// An ISO8601-formatted timestamp that indicates when the security findings provider last updated the finding record. +func (o InsightAwsSecurityFindingFiltersOutput) UpdatedAt() InsightDateFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightDateFilter { return v.UpdatedAt }).(InsightDateFilterArrayOutput) +} + +// A list of name/value string pairs associated with the finding. +func (o InsightAwsSecurityFindingFiltersOutput) UserDefinedFields() InsightMapFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightMapFilter { return v.UserDefinedFields }).(InsightMapFilterArrayOutput) +} + +// The veracity of a finding. +func (o InsightAwsSecurityFindingFiltersOutput) VerificationState() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.VerificationState }).(InsightStringFilterArrayOutput) +} + +// Indicates whether a software vulnerability in your environment has a known exploit. +func (o InsightAwsSecurityFindingFiltersOutput) VulnerabilitiesExploitAvailable() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { + return v.VulnerabilitiesExploitAvailable + }).(InsightStringFilterArrayOutput) +} + +// Indicates whether a vulnerability is fixed in a newer version of the affected software packages. +func (o InsightAwsSecurityFindingFiltersOutput) VulnerabilitiesFixAvailable() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.VulnerabilitiesFixAvailable }).(InsightStringFilterArrayOutput) +} + +// The workflow state of a finding. +func (o InsightAwsSecurityFindingFiltersOutput) WorkflowState() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.WorkflowState }).(InsightStringFilterArrayOutput) +} + +// The status of the investigation into a finding. +func (o InsightAwsSecurityFindingFiltersOutput) WorkflowStatus() InsightStringFilterArrayOutput { + return o.ApplyT(func(v InsightAwsSecurityFindingFilters) []InsightStringFilter { return v.WorkflowStatus }).(InsightStringFilterArrayOutput) +} + +type InsightAwsSecurityFindingFiltersPtrOutput struct{ *pulumi.OutputState } + +func (InsightAwsSecurityFindingFiltersPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**InsightAwsSecurityFindingFilters)(nil)).Elem() +} + +func (o InsightAwsSecurityFindingFiltersPtrOutput) ToInsightAwsSecurityFindingFiltersPtrOutput() InsightAwsSecurityFindingFiltersPtrOutput { + return o +} + +func (o InsightAwsSecurityFindingFiltersPtrOutput) ToInsightAwsSecurityFindingFiltersPtrOutputWithContext(ctx context.Context) InsightAwsSecurityFindingFiltersPtrOutput { + return o +} + +func (o InsightAwsSecurityFindingFiltersPtrOutput) Elem() InsightAwsSecurityFindingFiltersOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) InsightAwsSecurityFindingFilters { + if v != nil { + return *v + } + var ret InsightAwsSecurityFindingFilters + return ret + }).(InsightAwsSecurityFindingFiltersOutput) +} + +// The AWS account ID in which a finding is generated. +func (o InsightAwsSecurityFindingFiltersPtrOutput) AwsAccountId() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.AwsAccountId + }).(InsightStringFilterArrayOutput) +} + +// The name of the AWS account in which a finding is generated. +func (o InsightAwsSecurityFindingFiltersPtrOutput) AwsAccountName() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.AwsAccountName + }).(InsightStringFilterArrayOutput) +} + +// The name of the findings provider (company) that owns the solution (product) that generates findings. +func (o InsightAwsSecurityFindingFiltersPtrOutput) CompanyName() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.CompanyName + }).(InsightStringFilterArrayOutput) +} + +// The unique identifier of a standard in which a control is enabled. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ComplianceAssociatedStandardsId() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.ComplianceAssociatedStandardsId + }).(InsightStringFilterArrayOutput) +} + +// The unique identifier of a control across standards. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ComplianceSecurityControlId() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.ComplianceSecurityControlId + }).(InsightStringFilterArrayOutput) +} + +// The name of a security control parameter. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ComplianceSecurityControlParametersName() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.ComplianceSecurityControlParametersName + }).(InsightStringFilterArrayOutput) +} + +// The current value of a security control parameter. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ComplianceSecurityControlParametersValue() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.ComplianceSecurityControlParametersValue + }).(InsightStringFilterArrayOutput) +} + +// Exclusive to findings that are generated as the result of a check run against a specific rule in a supported standard. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ComplianceStatus() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.ComplianceStatus + }).(InsightStringFilterArrayOutput) +} + +// A finding's confidence. +func (o InsightAwsSecurityFindingFiltersPtrOutput) Confidence() InsightNumberFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightNumberFilter { + if v == nil { + return nil + } + return v.Confidence + }).(InsightNumberFilterArrayOutput) +} + +// An ISO8601-formatted timestamp that indicates when the security findings provider captured the potential security issue that a finding captured. +func (o InsightAwsSecurityFindingFiltersPtrOutput) CreatedAt() InsightDateFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightDateFilter { + if v == nil { + return nil + } + return v.CreatedAt + }).(InsightDateFilterArrayOutput) +} + +// The level of importance assigned to the resources associated with the finding. +func (o InsightAwsSecurityFindingFiltersPtrOutput) Criticality() InsightNumberFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightNumberFilter { + if v == nil { + return nil + } + return v.Criticality + }).(InsightNumberFilterArrayOutput) +} + +// A finding's description. +func (o InsightAwsSecurityFindingFiltersPtrOutput) Description() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.Description + }).(InsightStringFilterArrayOutput) +} + +// The finding provider value for the finding confidence. +func (o InsightAwsSecurityFindingFiltersPtrOutput) FindingProviderFieldsConfidence() InsightNumberFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightNumberFilter { + if v == nil { + return nil + } + return v.FindingProviderFieldsConfidence + }).(InsightNumberFilterArrayOutput) +} + +// The finding provider value for the level of importance assigned to the resources associated with the findings. +func (o InsightAwsSecurityFindingFiltersPtrOutput) FindingProviderFieldsCriticality() InsightNumberFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightNumberFilter { + if v == nil { + return nil + } + return v.FindingProviderFieldsCriticality + }).(InsightNumberFilterArrayOutput) +} + +// The finding identifier of a related finding that is identified by the finding provider. +func (o InsightAwsSecurityFindingFiltersPtrOutput) FindingProviderFieldsRelatedFindingsId() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.FindingProviderFieldsRelatedFindingsId + }).(InsightStringFilterArrayOutput) +} + +// The ARN of the solution that generated a related finding that is identified by the finding provider. +func (o InsightAwsSecurityFindingFiltersPtrOutput) FindingProviderFieldsRelatedFindingsProductArn() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.FindingProviderFieldsRelatedFindingsProductArn + }).(InsightStringFilterArrayOutput) +} + +// The finding provider value for the severity label. +func (o InsightAwsSecurityFindingFiltersPtrOutput) FindingProviderFieldsSeverityLabel() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.FindingProviderFieldsSeverityLabel + }).(InsightStringFilterArrayOutput) +} + +// The finding provider's original value for the severity. +func (o InsightAwsSecurityFindingFiltersPtrOutput) FindingProviderFieldsSeverityOriginal() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.FindingProviderFieldsSeverityOriginal + }).(InsightStringFilterArrayOutput) +} + +// One or more finding types that the finding provider assigned to the finding. +func (o InsightAwsSecurityFindingFiltersPtrOutput) FindingProviderFieldsTypes() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.FindingProviderFieldsTypes + }).(InsightStringFilterArrayOutput) +} + +// An ISO8601-formatted timestamp that indicates when the security findings provider first observed the potential security issue that a finding captured. +func (o InsightAwsSecurityFindingFiltersPtrOutput) FirstObservedAt() InsightDateFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightDateFilter { + if v == nil { + return nil + } + return v.FirstObservedAt + }).(InsightDateFilterArrayOutput) +} + +// The identifier for the solution-specific component (a discrete unit of logic) that generated a finding. +func (o InsightAwsSecurityFindingFiltersPtrOutput) GeneratorId() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.GeneratorId + }).(InsightStringFilterArrayOutput) +} + +// The security findings provider-specific identifier for a finding. +func (o InsightAwsSecurityFindingFiltersPtrOutput) Id() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.Id + }).(InsightStringFilterArrayOutput) +} + +// A keyword for a finding. +func (o InsightAwsSecurityFindingFiltersPtrOutput) Keyword() InsightKeywordFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightKeywordFilter { + if v == nil { + return nil + } + return v.Keyword + }).(InsightKeywordFilterArrayOutput) +} + +// An ISO8601-formatted timestamp that indicates when the security findings provider most recently observed the potential security issue that a finding captured. +func (o InsightAwsSecurityFindingFiltersPtrOutput) LastObservedAt() InsightDateFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightDateFilter { + if v == nil { + return nil + } + return v.LastObservedAt + }).(InsightDateFilterArrayOutput) +} + +// The name of the malware that was observed. +func (o InsightAwsSecurityFindingFiltersPtrOutput) MalwareName() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.MalwareName + }).(InsightStringFilterArrayOutput) +} + +// The filesystem path of the malware that was observed. +func (o InsightAwsSecurityFindingFiltersPtrOutput) MalwarePath() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.MalwarePath + }).(InsightStringFilterArrayOutput) +} + +// The state of the malware that was observed. +func (o InsightAwsSecurityFindingFiltersPtrOutput) MalwareState() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.MalwareState + }).(InsightStringFilterArrayOutput) +} + +// The type of the malware that was observed. +func (o InsightAwsSecurityFindingFiltersPtrOutput) MalwareType() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.MalwareType + }).(InsightStringFilterArrayOutput) +} + +// The destination domain of network-related information about a finding. +func (o InsightAwsSecurityFindingFiltersPtrOutput) NetworkDestinationDomain() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.NetworkDestinationDomain + }).(InsightStringFilterArrayOutput) +} + +// The destination IPv4 address of network-related information about a finding. +func (o InsightAwsSecurityFindingFiltersPtrOutput) NetworkDestinationIpV4() InsightIpFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightIpFilter { + if v == nil { + return nil + } + return v.NetworkDestinationIpV4 + }).(InsightIpFilterArrayOutput) +} + +// The destination IPv6 address of network-related information about a finding. +func (o InsightAwsSecurityFindingFiltersPtrOutput) NetworkDestinationIpV6() InsightIpFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightIpFilter { + if v == nil { + return nil + } + return v.NetworkDestinationIpV6 + }).(InsightIpFilterArrayOutput) +} + +// The destination port of network-related information about a finding. +func (o InsightAwsSecurityFindingFiltersPtrOutput) NetworkDestinationPort() InsightNumberFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightNumberFilter { + if v == nil { + return nil + } + return v.NetworkDestinationPort + }).(InsightNumberFilterArrayOutput) +} + +// Indicates the direction of network traffic associated with a finding. +func (o InsightAwsSecurityFindingFiltersPtrOutput) NetworkDirection() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.NetworkDirection + }).(InsightStringFilterArrayOutput) +} + +// The protocol of network-related information about a finding. +func (o InsightAwsSecurityFindingFiltersPtrOutput) NetworkProtocol() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.NetworkProtocol + }).(InsightStringFilterArrayOutput) +} + +// The source domain of network-related information about a finding. +func (o InsightAwsSecurityFindingFiltersPtrOutput) NetworkSourceDomain() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.NetworkSourceDomain + }).(InsightStringFilterArrayOutput) +} + +// The source IPv4 address of network-related information about a finding. +func (o InsightAwsSecurityFindingFiltersPtrOutput) NetworkSourceIpV4() InsightIpFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightIpFilter { + if v == nil { + return nil + } + return v.NetworkSourceIpV4 + }).(InsightIpFilterArrayOutput) +} + +// The source IPv6 address of network-related information about a finding. +func (o InsightAwsSecurityFindingFiltersPtrOutput) NetworkSourceIpV6() InsightIpFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightIpFilter { + if v == nil { + return nil + } + return v.NetworkSourceIpV6 + }).(InsightIpFilterArrayOutput) +} + +// The source media access control (MAC) address of network-related information about a finding. +func (o InsightAwsSecurityFindingFiltersPtrOutput) NetworkSourceMac() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.NetworkSourceMac + }).(InsightStringFilterArrayOutput) +} + +// The source port of network-related information about a finding. +func (o InsightAwsSecurityFindingFiltersPtrOutput) NetworkSourcePort() InsightNumberFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightNumberFilter { + if v == nil { + return nil + } + return v.NetworkSourcePort + }).(InsightNumberFilterArrayOutput) +} + +// The text of a note. +func (o InsightAwsSecurityFindingFiltersPtrOutput) NoteText() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.NoteText + }).(InsightStringFilterArrayOutput) +} + +// The timestamp of when the note was updated. +func (o InsightAwsSecurityFindingFiltersPtrOutput) NoteUpdatedAt() InsightDateFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightDateFilter { + if v == nil { + return nil + } + return v.NoteUpdatedAt + }).(InsightDateFilterArrayOutput) +} + +// The principal that created a note. +func (o InsightAwsSecurityFindingFiltersPtrOutput) NoteUpdatedBy() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.NoteUpdatedBy + }).(InsightStringFilterArrayOutput) +} + +// A timestamp that identifies when the process was launched. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ProcessLaunchedAt() InsightDateFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightDateFilter { + if v == nil { + return nil + } + return v.ProcessLaunchedAt + }).(InsightDateFilterArrayOutput) +} + +// The name of the process. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ProcessName() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.ProcessName + }).(InsightStringFilterArrayOutput) +} + +// The parent process ID. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ProcessParentPid() InsightNumberFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightNumberFilter { + if v == nil { + return nil + } + return v.ProcessParentPid + }).(InsightNumberFilterArrayOutput) +} + +// The path to the process executable. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ProcessPath() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.ProcessPath + }).(InsightStringFilterArrayOutput) +} + +// The process ID. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ProcessPid() InsightNumberFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightNumberFilter { + if v == nil { + return nil + } + return v.ProcessPid + }).(InsightNumberFilterArrayOutput) +} + +// A timestamp that identifies when the process was terminated. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ProcessTerminatedAt() InsightDateFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightDateFilter { + if v == nil { + return nil + } + return v.ProcessTerminatedAt + }).(InsightDateFilterArrayOutput) +} + +// The ARN generated by Security Hub that uniquely identifies a third-party company (security findings provider) after this provider's product (solution that generates findings) is registered with Security Hub. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ProductArn() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.ProductArn + }).(InsightStringFilterArrayOutput) +} + +// A data type where security findings providers can include additional solution-specific details that aren't part of the defined AwsSecurityFinding format. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ProductFields() InsightMapFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightMapFilter { + if v == nil { + return nil + } + return v.ProductFields + }).(InsightMapFilterArrayOutput) +} + +// The name of the solution (product) that generates findings. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ProductName() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.ProductName + }).(InsightStringFilterArrayOutput) +} + +// The recommendation of what to do about the issue described in a finding. +func (o InsightAwsSecurityFindingFiltersPtrOutput) RecommendationText() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.RecommendationText + }).(InsightStringFilterArrayOutput) +} + +// The updated record state for the finding. +func (o InsightAwsSecurityFindingFiltersPtrOutput) RecordState() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.RecordState + }).(InsightStringFilterArrayOutput) +} + +// The Region from which the finding was generated. +func (o InsightAwsSecurityFindingFiltersPtrOutput) Region() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.Region + }).(InsightStringFilterArrayOutput) +} + +// The solution-generated identifier for a related finding. +func (o InsightAwsSecurityFindingFiltersPtrOutput) RelatedFindingsId() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.RelatedFindingsId + }).(InsightStringFilterArrayOutput) +} + +// The ARN of the solution that generated a related finding. +func (o InsightAwsSecurityFindingFiltersPtrOutput) RelatedFindingsProductArn() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.RelatedFindingsProductArn + }).(InsightStringFilterArrayOutput) +} + +// The ARN of the application that is related to a finding. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ResourceApplicationArn() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.ResourceApplicationArn + }).(InsightStringFilterArrayOutput) +} + +// The name of the application that is related to a finding. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ResourceApplicationName() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.ResourceApplicationName + }).(InsightStringFilterArrayOutput) +} + +// The IAM profile ARN of the instance. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ResourceAwsEc2InstanceIamInstanceProfileArn() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.ResourceAwsEc2InstanceIamInstanceProfileArn + }).(InsightStringFilterArrayOutput) +} + +// The Amazon Machine Image (AMI) ID of the instance. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ResourceAwsEc2InstanceImageId() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.ResourceAwsEc2InstanceImageId + }).(InsightStringFilterArrayOutput) +} + +// The IPv4 addresses associated with the instance. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ResourceAwsEc2InstanceIpV4Addresses() InsightIpFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightIpFilter { + if v == nil { + return nil + } + return v.ResourceAwsEc2InstanceIpV4Addresses + }).(InsightIpFilterArrayOutput) +} + +// The IPv6 addresses associated with the instance. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ResourceAwsEc2InstanceIpV6Addresses() InsightIpFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightIpFilter { + if v == nil { + return nil + } + return v.ResourceAwsEc2InstanceIpV6Addresses + }).(InsightIpFilterArrayOutput) +} + +// The key name associated with the instance. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ResourceAwsEc2InstanceKeyName() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.ResourceAwsEc2InstanceKeyName + }).(InsightStringFilterArrayOutput) +} + +// The date and time the instance was launched. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ResourceAwsEc2InstanceLaunchedAt() InsightDateFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightDateFilter { + if v == nil { + return nil + } + return v.ResourceAwsEc2InstanceLaunchedAt + }).(InsightDateFilterArrayOutput) +} + +// The identifier of the subnet that the instance was launched in. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ResourceAwsEc2InstanceSubnetId() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.ResourceAwsEc2InstanceSubnetId + }).(InsightStringFilterArrayOutput) +} + +// The instance type of the instance. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ResourceAwsEc2InstanceType() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.ResourceAwsEc2InstanceType + }).(InsightStringFilterArrayOutput) +} + +// The identifier of the VPC that the instance was launched in. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ResourceAwsEc2InstanceVpcId() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.ResourceAwsEc2InstanceVpcId + }).(InsightStringFilterArrayOutput) +} + +// The creation date/time of the IAM access key related to a finding. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ResourceAwsIamAccessKeyCreatedAt() InsightDateFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightDateFilter { + if v == nil { + return nil + } + return v.ResourceAwsIamAccessKeyCreatedAt + }).(InsightDateFilterArrayOutput) +} + +// The name of the principal that is associated with an IAM access key. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ResourceAwsIamAccessKeyPrincipalName() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.ResourceAwsIamAccessKeyPrincipalName + }).(InsightStringFilterArrayOutput) +} + +// The status of the IAM access key related to a finding. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ResourceAwsIamAccessKeyStatus() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.ResourceAwsIamAccessKeyStatus + }).(InsightStringFilterArrayOutput) +} + +// The user associated with the IAM access key related to a finding. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ResourceAwsIamAccessKeyUserName() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.ResourceAwsIamAccessKeyUserName + }).(InsightStringFilterArrayOutput) +} + +// The name of an IAM user. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ResourceAwsIamUserUserName() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.ResourceAwsIamUserUserName + }).(InsightStringFilterArrayOutput) +} + +// The canonical user ID of the owner of the S3 bucket. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ResourceAwsS3BucketOwnerId() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.ResourceAwsS3BucketOwnerId + }).(InsightStringFilterArrayOutput) +} + +// The display name of the owner of the S3 bucket. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ResourceAwsS3BucketOwnerName() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.ResourceAwsS3BucketOwnerName + }).(InsightStringFilterArrayOutput) +} + +// The identifier of the image related to a finding. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ResourceContainerImageId() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.ResourceContainerImageId + }).(InsightStringFilterArrayOutput) +} + +// The name of the image related to a finding. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ResourceContainerImageName() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.ResourceContainerImageName + }).(InsightStringFilterArrayOutput) +} + +// A timestamp that identifies when the container was started. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ResourceContainerLaunchedAt() InsightDateFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightDateFilter { + if v == nil { + return nil + } + return v.ResourceContainerLaunchedAt + }).(InsightDateFilterArrayOutput) +} + +// The name of the container related to a finding. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ResourceContainerName() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.ResourceContainerName + }).(InsightStringFilterArrayOutput) +} + +// The details of a resource that doesn't have a specific subfield for the resource type defined. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ResourceDetailsOther() InsightMapFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightMapFilter { + if v == nil { + return nil + } + return v.ResourceDetailsOther + }).(InsightMapFilterArrayOutput) +} + +// The canonical identifier for the given resource type. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ResourceId() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.ResourceId + }).(InsightStringFilterArrayOutput) +} + +// The canonical AWS partition name that the Region is assigned to. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ResourcePartition() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.ResourcePartition + }).(InsightStringFilterArrayOutput) +} + +// The canonical AWS external Region name where this resource is located. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ResourceRegion() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.ResourceRegion + }).(InsightStringFilterArrayOutput) +} + +// A list of AWS tags associated with a resource at the time the finding was processed. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ResourceTags() InsightMapFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightMapFilter { + if v == nil { + return nil + } + return v.ResourceTags + }).(InsightMapFilterArrayOutput) +} + +// Specifies the type of the resource that details are provided for. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ResourceType() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.ResourceType + }).(InsightStringFilterArrayOutput) +} + +// Indicates whether or not sample findings are included in the filter results. +func (o InsightAwsSecurityFindingFiltersPtrOutput) Sample() InsightBooleanFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightBooleanFilter { + if v == nil { + return nil + } + return v.Sample + }).(InsightBooleanFilterArrayOutput) +} + +// The label of a finding's severity. +func (o InsightAwsSecurityFindingFiltersPtrOutput) SeverityLabel() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.SeverityLabel + }).(InsightStringFilterArrayOutput) +} + +// The normalized severity of a finding. +func (o InsightAwsSecurityFindingFiltersPtrOutput) SeverityNormalized() InsightNumberFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightNumberFilter { + if v == nil { + return nil + } + return v.SeverityNormalized + }).(InsightNumberFilterArrayOutput) +} + +// The native severity as defined by the security findings provider's solution that generated the finding. +func (o InsightAwsSecurityFindingFiltersPtrOutput) SeverityProduct() InsightNumberFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightNumberFilter { + if v == nil { + return nil + } + return v.SeverityProduct + }).(InsightNumberFilterArrayOutput) +} + +// A URL that links to a page about the current finding in the security findings provider's solution. +func (o InsightAwsSecurityFindingFiltersPtrOutput) SourceUrl() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.SourceUrl + }).(InsightStringFilterArrayOutput) +} + +// The category of a threat intelligence indicator. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ThreatIntelIndicatorCategory() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.ThreatIntelIndicatorCategory + }).(InsightStringFilterArrayOutput) +} + +// A timestamp that identifies the last observation of a threat intelligence indicator. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ThreatIntelIndicatorLastObservedAt() InsightDateFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightDateFilter { + if v == nil { + return nil + } + return v.ThreatIntelIndicatorLastObservedAt + }).(InsightDateFilterArrayOutput) +} + +// The source of the threat intelligence. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ThreatIntelIndicatorSource() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.ThreatIntelIndicatorSource + }).(InsightStringFilterArrayOutput) +} + +// The URL for more details from the source of the threat intelligence. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ThreatIntelIndicatorSourceUrl() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.ThreatIntelIndicatorSourceUrl + }).(InsightStringFilterArrayOutput) +} + +// The type of a threat intelligence indicator. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ThreatIntelIndicatorType() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.ThreatIntelIndicatorType + }).(InsightStringFilterArrayOutput) +} + +// The value of a threat intelligence indicator. +func (o InsightAwsSecurityFindingFiltersPtrOutput) ThreatIntelIndicatorValue() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.ThreatIntelIndicatorValue + }).(InsightStringFilterArrayOutput) +} + +// A finding's title. +func (o InsightAwsSecurityFindingFiltersPtrOutput) Title() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.Title + }).(InsightStringFilterArrayOutput) +} + +// A finding type in the format of namespace/category/classifier that classifies a finding. +func (o InsightAwsSecurityFindingFiltersPtrOutput) Type() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.Type + }).(InsightStringFilterArrayOutput) +} + +// An ISO8601-formatted timestamp that indicates when the security findings provider last updated the finding record. +func (o InsightAwsSecurityFindingFiltersPtrOutput) UpdatedAt() InsightDateFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightDateFilter { + if v == nil { + return nil + } + return v.UpdatedAt + }).(InsightDateFilterArrayOutput) +} + +// A list of name/value string pairs associated with the finding. +func (o InsightAwsSecurityFindingFiltersPtrOutput) UserDefinedFields() InsightMapFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightMapFilter { + if v == nil { + return nil + } + return v.UserDefinedFields + }).(InsightMapFilterArrayOutput) +} + +// The veracity of a finding. +func (o InsightAwsSecurityFindingFiltersPtrOutput) VerificationState() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.VerificationState + }).(InsightStringFilterArrayOutput) +} + +// Indicates whether a software vulnerability in your environment has a known exploit. +func (o InsightAwsSecurityFindingFiltersPtrOutput) VulnerabilitiesExploitAvailable() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.VulnerabilitiesExploitAvailable + }).(InsightStringFilterArrayOutput) +} + +// Indicates whether a vulnerability is fixed in a newer version of the affected software packages. +func (o InsightAwsSecurityFindingFiltersPtrOutput) VulnerabilitiesFixAvailable() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.VulnerabilitiesFixAvailable + }).(InsightStringFilterArrayOutput) +} + +// The workflow state of a finding. +func (o InsightAwsSecurityFindingFiltersPtrOutput) WorkflowState() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.WorkflowState + }).(InsightStringFilterArrayOutput) +} + +// The status of the investigation into a finding. +func (o InsightAwsSecurityFindingFiltersPtrOutput) WorkflowStatus() InsightStringFilterArrayOutput { + return o.ApplyT(func(v *InsightAwsSecurityFindingFilters) []InsightStringFilter { + if v == nil { + return nil + } + return v.WorkflowStatus + }).(InsightStringFilterArrayOutput) +} + +// Boolean filter for querying findings. +type InsightBooleanFilter struct { + // The value of the boolean. + Value bool `pulumi:"value"` +} + +// InsightBooleanFilterInput is an input type that accepts InsightBooleanFilterArgs and InsightBooleanFilterOutput values. +// You can construct a concrete instance of `InsightBooleanFilterInput` via: +// +// InsightBooleanFilterArgs{...} +type InsightBooleanFilterInput interface { + pulumi.Input + + ToInsightBooleanFilterOutput() InsightBooleanFilterOutput + ToInsightBooleanFilterOutputWithContext(context.Context) InsightBooleanFilterOutput +} + +// Boolean filter for querying findings. +type InsightBooleanFilterArgs struct { + // The value of the boolean. + Value pulumi.BoolInput `pulumi:"value"` +} + +func (InsightBooleanFilterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*InsightBooleanFilter)(nil)).Elem() +} + +func (i InsightBooleanFilterArgs) ToInsightBooleanFilterOutput() InsightBooleanFilterOutput { + return i.ToInsightBooleanFilterOutputWithContext(context.Background()) +} + +func (i InsightBooleanFilterArgs) ToInsightBooleanFilterOutputWithContext(ctx context.Context) InsightBooleanFilterOutput { + return pulumi.ToOutputWithContext(ctx, i).(InsightBooleanFilterOutput) +} + +// InsightBooleanFilterArrayInput is an input type that accepts InsightBooleanFilterArray and InsightBooleanFilterArrayOutput values. +// You can construct a concrete instance of `InsightBooleanFilterArrayInput` via: +// +// InsightBooleanFilterArray{ InsightBooleanFilterArgs{...} } +type InsightBooleanFilterArrayInput interface { + pulumi.Input + + ToInsightBooleanFilterArrayOutput() InsightBooleanFilterArrayOutput + ToInsightBooleanFilterArrayOutputWithContext(context.Context) InsightBooleanFilterArrayOutput +} + +type InsightBooleanFilterArray []InsightBooleanFilterInput + +func (InsightBooleanFilterArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]InsightBooleanFilter)(nil)).Elem() +} + +func (i InsightBooleanFilterArray) ToInsightBooleanFilterArrayOutput() InsightBooleanFilterArrayOutput { + return i.ToInsightBooleanFilterArrayOutputWithContext(context.Background()) +} + +func (i InsightBooleanFilterArray) ToInsightBooleanFilterArrayOutputWithContext(ctx context.Context) InsightBooleanFilterArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(InsightBooleanFilterArrayOutput) +} + +// Boolean filter for querying findings. +type InsightBooleanFilterOutput struct{ *pulumi.OutputState } + +func (InsightBooleanFilterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*InsightBooleanFilter)(nil)).Elem() +} + +func (o InsightBooleanFilterOutput) ToInsightBooleanFilterOutput() InsightBooleanFilterOutput { + return o +} + +func (o InsightBooleanFilterOutput) ToInsightBooleanFilterOutputWithContext(ctx context.Context) InsightBooleanFilterOutput { + return o +} + +// The value of the boolean. +func (o InsightBooleanFilterOutput) Value() pulumi.BoolOutput { + return o.ApplyT(func(v InsightBooleanFilter) bool { return v.Value }).(pulumi.BoolOutput) +} + +type InsightBooleanFilterArrayOutput struct{ *pulumi.OutputState } + +func (InsightBooleanFilterArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]InsightBooleanFilter)(nil)).Elem() +} + +func (o InsightBooleanFilterArrayOutput) ToInsightBooleanFilterArrayOutput() InsightBooleanFilterArrayOutput { + return o +} + +func (o InsightBooleanFilterArrayOutput) ToInsightBooleanFilterArrayOutputWithContext(ctx context.Context) InsightBooleanFilterArrayOutput { + return o +} + +func (o InsightBooleanFilterArrayOutput) Index(i pulumi.IntInput) InsightBooleanFilterOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) InsightBooleanFilter { + return vs[0].([]InsightBooleanFilter)[vs[1].(int)] + }).(InsightBooleanFilterOutput) +} + +// A date filter for querying findings. +type InsightDateFilter struct { + DateRange *InsightDateRange `pulumi:"dateRange"` + End *string `pulumi:"end"` + Start *string `pulumi:"start"` +} + +// InsightDateFilterInput is an input type that accepts InsightDateFilterArgs and InsightDateFilterOutput values. +// You can construct a concrete instance of `InsightDateFilterInput` via: +// +// InsightDateFilterArgs{...} +type InsightDateFilterInput interface { + pulumi.Input + + ToInsightDateFilterOutput() InsightDateFilterOutput + ToInsightDateFilterOutputWithContext(context.Context) InsightDateFilterOutput +} + +// A date filter for querying findings. +type InsightDateFilterArgs struct { + DateRange InsightDateRangePtrInput `pulumi:"dateRange"` + End pulumi.StringPtrInput `pulumi:"end"` + Start pulumi.StringPtrInput `pulumi:"start"` +} + +func (InsightDateFilterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*InsightDateFilter)(nil)).Elem() +} + +func (i InsightDateFilterArgs) ToInsightDateFilterOutput() InsightDateFilterOutput { + return i.ToInsightDateFilterOutputWithContext(context.Background()) +} + +func (i InsightDateFilterArgs) ToInsightDateFilterOutputWithContext(ctx context.Context) InsightDateFilterOutput { + return pulumi.ToOutputWithContext(ctx, i).(InsightDateFilterOutput) +} + +// InsightDateFilterArrayInput is an input type that accepts InsightDateFilterArray and InsightDateFilterArrayOutput values. +// You can construct a concrete instance of `InsightDateFilterArrayInput` via: +// +// InsightDateFilterArray{ InsightDateFilterArgs{...} } +type InsightDateFilterArrayInput interface { + pulumi.Input + + ToInsightDateFilterArrayOutput() InsightDateFilterArrayOutput + ToInsightDateFilterArrayOutputWithContext(context.Context) InsightDateFilterArrayOutput +} + +type InsightDateFilterArray []InsightDateFilterInput + +func (InsightDateFilterArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]InsightDateFilter)(nil)).Elem() +} + +func (i InsightDateFilterArray) ToInsightDateFilterArrayOutput() InsightDateFilterArrayOutput { + return i.ToInsightDateFilterArrayOutputWithContext(context.Background()) +} + +func (i InsightDateFilterArray) ToInsightDateFilterArrayOutputWithContext(ctx context.Context) InsightDateFilterArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(InsightDateFilterArrayOutput) +} + +// A date filter for querying findings. +type InsightDateFilterOutput struct{ *pulumi.OutputState } + +func (InsightDateFilterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*InsightDateFilter)(nil)).Elem() +} + +func (o InsightDateFilterOutput) ToInsightDateFilterOutput() InsightDateFilterOutput { + return o +} + +func (o InsightDateFilterOutput) ToInsightDateFilterOutputWithContext(ctx context.Context) InsightDateFilterOutput { + return o +} + +func (o InsightDateFilterOutput) DateRange() InsightDateRangePtrOutput { + return o.ApplyT(func(v InsightDateFilter) *InsightDateRange { return v.DateRange }).(InsightDateRangePtrOutput) +} + +func (o InsightDateFilterOutput) End() pulumi.StringPtrOutput { + return o.ApplyT(func(v InsightDateFilter) *string { return v.End }).(pulumi.StringPtrOutput) +} + +func (o InsightDateFilterOutput) Start() pulumi.StringPtrOutput { + return o.ApplyT(func(v InsightDateFilter) *string { return v.Start }).(pulumi.StringPtrOutput) +} + +type InsightDateFilterArrayOutput struct{ *pulumi.OutputState } + +func (InsightDateFilterArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]InsightDateFilter)(nil)).Elem() +} + +func (o InsightDateFilterArrayOutput) ToInsightDateFilterArrayOutput() InsightDateFilterArrayOutput { + return o +} + +func (o InsightDateFilterArrayOutput) ToInsightDateFilterArrayOutputWithContext(ctx context.Context) InsightDateFilterArrayOutput { + return o +} + +func (o InsightDateFilterArrayOutput) Index(i pulumi.IntInput) InsightDateFilterOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) InsightDateFilter { + return vs[0].([]InsightDateFilter)[vs[1].(int)] + }).(InsightDateFilterOutput) +} + +// A date range for the date filter. +type InsightDateRange struct { + // A date range unit for the date filter. + Unit InsightDateRangeUnit `pulumi:"unit"` + // A date range value for the date filter. + Value float64 `pulumi:"value"` +} + +// InsightDateRangeInput is an input type that accepts InsightDateRangeArgs and InsightDateRangeOutput values. +// You can construct a concrete instance of `InsightDateRangeInput` via: +// +// InsightDateRangeArgs{...} +type InsightDateRangeInput interface { + pulumi.Input + + ToInsightDateRangeOutput() InsightDateRangeOutput + ToInsightDateRangeOutputWithContext(context.Context) InsightDateRangeOutput +} + +// A date range for the date filter. +type InsightDateRangeArgs struct { + // A date range unit for the date filter. + Unit InsightDateRangeUnitInput `pulumi:"unit"` + // A date range value for the date filter. + Value pulumi.Float64Input `pulumi:"value"` +} + +func (InsightDateRangeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*InsightDateRange)(nil)).Elem() +} + +func (i InsightDateRangeArgs) ToInsightDateRangeOutput() InsightDateRangeOutput { + return i.ToInsightDateRangeOutputWithContext(context.Background()) +} + +func (i InsightDateRangeArgs) ToInsightDateRangeOutputWithContext(ctx context.Context) InsightDateRangeOutput { + return pulumi.ToOutputWithContext(ctx, i).(InsightDateRangeOutput) +} + +func (i InsightDateRangeArgs) ToInsightDateRangePtrOutput() InsightDateRangePtrOutput { + return i.ToInsightDateRangePtrOutputWithContext(context.Background()) +} + +func (i InsightDateRangeArgs) ToInsightDateRangePtrOutputWithContext(ctx context.Context) InsightDateRangePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(InsightDateRangeOutput).ToInsightDateRangePtrOutputWithContext(ctx) +} + +// InsightDateRangePtrInput is an input type that accepts InsightDateRangeArgs, InsightDateRangePtr and InsightDateRangePtrOutput values. +// You can construct a concrete instance of `InsightDateRangePtrInput` via: +// +// InsightDateRangeArgs{...} +// +// or: +// +// nil +type InsightDateRangePtrInput interface { + pulumi.Input + + ToInsightDateRangePtrOutput() InsightDateRangePtrOutput + ToInsightDateRangePtrOutputWithContext(context.Context) InsightDateRangePtrOutput +} + +type insightDateRangePtrType InsightDateRangeArgs + +func InsightDateRangePtr(v *InsightDateRangeArgs) InsightDateRangePtrInput { + return (*insightDateRangePtrType)(v) +} + +func (*insightDateRangePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**InsightDateRange)(nil)).Elem() +} + +func (i *insightDateRangePtrType) ToInsightDateRangePtrOutput() InsightDateRangePtrOutput { + return i.ToInsightDateRangePtrOutputWithContext(context.Background()) +} + +func (i *insightDateRangePtrType) ToInsightDateRangePtrOutputWithContext(ctx context.Context) InsightDateRangePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(InsightDateRangePtrOutput) +} + +// A date range for the date filter. +type InsightDateRangeOutput struct{ *pulumi.OutputState } + +func (InsightDateRangeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*InsightDateRange)(nil)).Elem() +} + +func (o InsightDateRangeOutput) ToInsightDateRangeOutput() InsightDateRangeOutput { + return o +} + +func (o InsightDateRangeOutput) ToInsightDateRangeOutputWithContext(ctx context.Context) InsightDateRangeOutput { + return o +} + +func (o InsightDateRangeOutput) ToInsightDateRangePtrOutput() InsightDateRangePtrOutput { + return o.ToInsightDateRangePtrOutputWithContext(context.Background()) +} + +func (o InsightDateRangeOutput) ToInsightDateRangePtrOutputWithContext(ctx context.Context) InsightDateRangePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v InsightDateRange) *InsightDateRange { + return &v + }).(InsightDateRangePtrOutput) +} + +// A date range unit for the date filter. +func (o InsightDateRangeOutput) Unit() InsightDateRangeUnitOutput { + return o.ApplyT(func(v InsightDateRange) InsightDateRangeUnit { return v.Unit }).(InsightDateRangeUnitOutput) +} + +// A date range value for the date filter. +func (o InsightDateRangeOutput) Value() pulumi.Float64Output { + return o.ApplyT(func(v InsightDateRange) float64 { return v.Value }).(pulumi.Float64Output) +} + +type InsightDateRangePtrOutput struct{ *pulumi.OutputState } + +func (InsightDateRangePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**InsightDateRange)(nil)).Elem() +} + +func (o InsightDateRangePtrOutput) ToInsightDateRangePtrOutput() InsightDateRangePtrOutput { + return o +} + +func (o InsightDateRangePtrOutput) ToInsightDateRangePtrOutputWithContext(ctx context.Context) InsightDateRangePtrOutput { + return o +} + +func (o InsightDateRangePtrOutput) Elem() InsightDateRangeOutput { + return o.ApplyT(func(v *InsightDateRange) InsightDateRange { + if v != nil { + return *v + } + var ret InsightDateRange + return ret + }).(InsightDateRangeOutput) +} + +// A date range unit for the date filter. +func (o InsightDateRangePtrOutput) Unit() InsightDateRangeUnitPtrOutput { + return o.ApplyT(func(v *InsightDateRange) *InsightDateRangeUnit { + if v == nil { + return nil + } + return &v.Unit + }).(InsightDateRangeUnitPtrOutput) +} + +// A date range value for the date filter. +func (o InsightDateRangePtrOutput) Value() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *InsightDateRange) *float64 { + if v == nil { + return nil + } + return &v.Value + }).(pulumi.Float64PtrOutput) +} + +// The IP filter for querying findings. +type InsightIpFilter struct { + // A finding's CIDR value. + Cidr string `pulumi:"cidr"` +} + +// InsightIpFilterInput is an input type that accepts InsightIpFilterArgs and InsightIpFilterOutput values. +// You can construct a concrete instance of `InsightIpFilterInput` via: +// +// InsightIpFilterArgs{...} +type InsightIpFilterInput interface { + pulumi.Input + + ToInsightIpFilterOutput() InsightIpFilterOutput + ToInsightIpFilterOutputWithContext(context.Context) InsightIpFilterOutput +} + +// The IP filter for querying findings. +type InsightIpFilterArgs struct { + // A finding's CIDR value. + Cidr pulumi.StringInput `pulumi:"cidr"` +} + +func (InsightIpFilterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*InsightIpFilter)(nil)).Elem() +} + +func (i InsightIpFilterArgs) ToInsightIpFilterOutput() InsightIpFilterOutput { + return i.ToInsightIpFilterOutputWithContext(context.Background()) +} + +func (i InsightIpFilterArgs) ToInsightIpFilterOutputWithContext(ctx context.Context) InsightIpFilterOutput { + return pulumi.ToOutputWithContext(ctx, i).(InsightIpFilterOutput) +} + +// InsightIpFilterArrayInput is an input type that accepts InsightIpFilterArray and InsightIpFilterArrayOutput values. +// You can construct a concrete instance of `InsightIpFilterArrayInput` via: +// +// InsightIpFilterArray{ InsightIpFilterArgs{...} } +type InsightIpFilterArrayInput interface { + pulumi.Input + + ToInsightIpFilterArrayOutput() InsightIpFilterArrayOutput + ToInsightIpFilterArrayOutputWithContext(context.Context) InsightIpFilterArrayOutput +} + +type InsightIpFilterArray []InsightIpFilterInput + +func (InsightIpFilterArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]InsightIpFilter)(nil)).Elem() +} + +func (i InsightIpFilterArray) ToInsightIpFilterArrayOutput() InsightIpFilterArrayOutput { + return i.ToInsightIpFilterArrayOutputWithContext(context.Background()) +} + +func (i InsightIpFilterArray) ToInsightIpFilterArrayOutputWithContext(ctx context.Context) InsightIpFilterArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(InsightIpFilterArrayOutput) +} + +// The IP filter for querying findings. +type InsightIpFilterOutput struct{ *pulumi.OutputState } + +func (InsightIpFilterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*InsightIpFilter)(nil)).Elem() +} + +func (o InsightIpFilterOutput) ToInsightIpFilterOutput() InsightIpFilterOutput { + return o +} + +func (o InsightIpFilterOutput) ToInsightIpFilterOutputWithContext(ctx context.Context) InsightIpFilterOutput { + return o +} + +// A finding's CIDR value. +func (o InsightIpFilterOutput) Cidr() pulumi.StringOutput { + return o.ApplyT(func(v InsightIpFilter) string { return v.Cidr }).(pulumi.StringOutput) +} + +type InsightIpFilterArrayOutput struct{ *pulumi.OutputState } + +func (InsightIpFilterArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]InsightIpFilter)(nil)).Elem() +} + +func (o InsightIpFilterArrayOutput) ToInsightIpFilterArrayOutput() InsightIpFilterArrayOutput { + return o +} + +func (o InsightIpFilterArrayOutput) ToInsightIpFilterArrayOutputWithContext(ctx context.Context) InsightIpFilterArrayOutput { + return o +} + +func (o InsightIpFilterArrayOutput) Index(i pulumi.IntInput) InsightIpFilterOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) InsightIpFilter { + return vs[0].([]InsightIpFilter)[vs[1].(int)] + }).(InsightIpFilterOutput) +} + +// A keyword filter for querying findings. +type InsightKeywordFilter struct { + // A value for the keyword. + Value string `pulumi:"value"` +} + +// InsightKeywordFilterInput is an input type that accepts InsightKeywordFilterArgs and InsightKeywordFilterOutput values. +// You can construct a concrete instance of `InsightKeywordFilterInput` via: +// +// InsightKeywordFilterArgs{...} +type InsightKeywordFilterInput interface { + pulumi.Input + + ToInsightKeywordFilterOutput() InsightKeywordFilterOutput + ToInsightKeywordFilterOutputWithContext(context.Context) InsightKeywordFilterOutput +} + +// A keyword filter for querying findings. +type InsightKeywordFilterArgs struct { + // A value for the keyword. + Value pulumi.StringInput `pulumi:"value"` +} + +func (InsightKeywordFilterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*InsightKeywordFilter)(nil)).Elem() +} + +func (i InsightKeywordFilterArgs) ToInsightKeywordFilterOutput() InsightKeywordFilterOutput { + return i.ToInsightKeywordFilterOutputWithContext(context.Background()) +} + +func (i InsightKeywordFilterArgs) ToInsightKeywordFilterOutputWithContext(ctx context.Context) InsightKeywordFilterOutput { + return pulumi.ToOutputWithContext(ctx, i).(InsightKeywordFilterOutput) +} + +// InsightKeywordFilterArrayInput is an input type that accepts InsightKeywordFilterArray and InsightKeywordFilterArrayOutput values. +// You can construct a concrete instance of `InsightKeywordFilterArrayInput` via: +// +// InsightKeywordFilterArray{ InsightKeywordFilterArgs{...} } +type InsightKeywordFilterArrayInput interface { + pulumi.Input + + ToInsightKeywordFilterArrayOutput() InsightKeywordFilterArrayOutput + ToInsightKeywordFilterArrayOutputWithContext(context.Context) InsightKeywordFilterArrayOutput +} + +type InsightKeywordFilterArray []InsightKeywordFilterInput + +func (InsightKeywordFilterArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]InsightKeywordFilter)(nil)).Elem() +} + +func (i InsightKeywordFilterArray) ToInsightKeywordFilterArrayOutput() InsightKeywordFilterArrayOutput { + return i.ToInsightKeywordFilterArrayOutputWithContext(context.Background()) +} + +func (i InsightKeywordFilterArray) ToInsightKeywordFilterArrayOutputWithContext(ctx context.Context) InsightKeywordFilterArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(InsightKeywordFilterArrayOutput) +} + +// A keyword filter for querying findings. +type InsightKeywordFilterOutput struct{ *pulumi.OutputState } + +func (InsightKeywordFilterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*InsightKeywordFilter)(nil)).Elem() +} + +func (o InsightKeywordFilterOutput) ToInsightKeywordFilterOutput() InsightKeywordFilterOutput { + return o +} + +func (o InsightKeywordFilterOutput) ToInsightKeywordFilterOutputWithContext(ctx context.Context) InsightKeywordFilterOutput { + return o +} + +// A value for the keyword. +func (o InsightKeywordFilterOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v InsightKeywordFilter) string { return v.Value }).(pulumi.StringOutput) +} + +type InsightKeywordFilterArrayOutput struct{ *pulumi.OutputState } + +func (InsightKeywordFilterArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]InsightKeywordFilter)(nil)).Elem() +} + +func (o InsightKeywordFilterArrayOutput) ToInsightKeywordFilterArrayOutput() InsightKeywordFilterArrayOutput { + return o +} + +func (o InsightKeywordFilterArrayOutput) ToInsightKeywordFilterArrayOutputWithContext(ctx context.Context) InsightKeywordFilterArrayOutput { + return o +} + +func (o InsightKeywordFilterArrayOutput) Index(i pulumi.IntInput) InsightKeywordFilterOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) InsightKeywordFilter { + return vs[0].([]InsightKeywordFilter)[vs[1].(int)] + }).(InsightKeywordFilterOutput) +} + +// A map filter for filtering AWS Security Hub findings. +type InsightMapFilter struct { + // The condition to apply to the key value when filtering Security Hub findings with a map filter. + Comparison InsightMapFilterComparison `pulumi:"comparison"` + Key string `pulumi:"key"` + Value string `pulumi:"value"` +} + +// InsightMapFilterInput is an input type that accepts InsightMapFilterArgs and InsightMapFilterOutput values. +// You can construct a concrete instance of `InsightMapFilterInput` via: +// +// InsightMapFilterArgs{...} +type InsightMapFilterInput interface { + pulumi.Input + + ToInsightMapFilterOutput() InsightMapFilterOutput + ToInsightMapFilterOutputWithContext(context.Context) InsightMapFilterOutput +} + +// A map filter for filtering AWS Security Hub findings. +type InsightMapFilterArgs struct { + // The condition to apply to the key value when filtering Security Hub findings with a map filter. + Comparison InsightMapFilterComparisonInput `pulumi:"comparison"` + Key pulumi.StringInput `pulumi:"key"` + Value pulumi.StringInput `pulumi:"value"` +} + +func (InsightMapFilterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*InsightMapFilter)(nil)).Elem() +} + +func (i InsightMapFilterArgs) ToInsightMapFilterOutput() InsightMapFilterOutput { + return i.ToInsightMapFilterOutputWithContext(context.Background()) +} + +func (i InsightMapFilterArgs) ToInsightMapFilterOutputWithContext(ctx context.Context) InsightMapFilterOutput { + return pulumi.ToOutputWithContext(ctx, i).(InsightMapFilterOutput) +} + +// InsightMapFilterArrayInput is an input type that accepts InsightMapFilterArray and InsightMapFilterArrayOutput values. +// You can construct a concrete instance of `InsightMapFilterArrayInput` via: +// +// InsightMapFilterArray{ InsightMapFilterArgs{...} } +type InsightMapFilterArrayInput interface { + pulumi.Input + + ToInsightMapFilterArrayOutput() InsightMapFilterArrayOutput + ToInsightMapFilterArrayOutputWithContext(context.Context) InsightMapFilterArrayOutput +} + +type InsightMapFilterArray []InsightMapFilterInput + +func (InsightMapFilterArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]InsightMapFilter)(nil)).Elem() +} + +func (i InsightMapFilterArray) ToInsightMapFilterArrayOutput() InsightMapFilterArrayOutput { + return i.ToInsightMapFilterArrayOutputWithContext(context.Background()) +} + +func (i InsightMapFilterArray) ToInsightMapFilterArrayOutputWithContext(ctx context.Context) InsightMapFilterArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(InsightMapFilterArrayOutput) +} + +// A map filter for filtering AWS Security Hub findings. +type InsightMapFilterOutput struct{ *pulumi.OutputState } + +func (InsightMapFilterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*InsightMapFilter)(nil)).Elem() +} + +func (o InsightMapFilterOutput) ToInsightMapFilterOutput() InsightMapFilterOutput { + return o +} + +func (o InsightMapFilterOutput) ToInsightMapFilterOutputWithContext(ctx context.Context) InsightMapFilterOutput { + return o +} + +// The condition to apply to the key value when filtering Security Hub findings with a map filter. +func (o InsightMapFilterOutput) Comparison() InsightMapFilterComparisonOutput { + return o.ApplyT(func(v InsightMapFilter) InsightMapFilterComparison { return v.Comparison }).(InsightMapFilterComparisonOutput) +} + +func (o InsightMapFilterOutput) Key() pulumi.StringOutput { + return o.ApplyT(func(v InsightMapFilter) string { return v.Key }).(pulumi.StringOutput) +} + +func (o InsightMapFilterOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v InsightMapFilter) string { return v.Value }).(pulumi.StringOutput) +} + +type InsightMapFilterArrayOutput struct{ *pulumi.OutputState } + +func (InsightMapFilterArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]InsightMapFilter)(nil)).Elem() +} + +func (o InsightMapFilterArrayOutput) ToInsightMapFilterArrayOutput() InsightMapFilterArrayOutput { + return o +} + +func (o InsightMapFilterArrayOutput) ToInsightMapFilterArrayOutputWithContext(ctx context.Context) InsightMapFilterArrayOutput { + return o +} + +func (o InsightMapFilterArrayOutput) Index(i pulumi.IntInput) InsightMapFilterOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) InsightMapFilter { + return vs[0].([]InsightMapFilter)[vs[1].(int)] + }).(InsightMapFilterOutput) +} + +// A number filter for querying findings. +type InsightNumberFilter struct { + // The equal-to condition to be applied to a single field when querying for findings. + Eq *float64 `pulumi:"eq"` + // The greater-than-equal condition to be applied to a single field when querying for findings. + Gte *float64 `pulumi:"gte"` + // The less-than-equal condition to be applied to a single field when querying for findings. + Lte *float64 `pulumi:"lte"` +} + +// InsightNumberFilterInput is an input type that accepts InsightNumberFilterArgs and InsightNumberFilterOutput values. +// You can construct a concrete instance of `InsightNumberFilterInput` via: +// +// InsightNumberFilterArgs{...} +type InsightNumberFilterInput interface { + pulumi.Input + + ToInsightNumberFilterOutput() InsightNumberFilterOutput + ToInsightNumberFilterOutputWithContext(context.Context) InsightNumberFilterOutput +} + +// A number filter for querying findings. +type InsightNumberFilterArgs struct { + // The equal-to condition to be applied to a single field when querying for findings. + Eq pulumi.Float64PtrInput `pulumi:"eq"` + // The greater-than-equal condition to be applied to a single field when querying for findings. + Gte pulumi.Float64PtrInput `pulumi:"gte"` + // The less-than-equal condition to be applied to a single field when querying for findings. + Lte pulumi.Float64PtrInput `pulumi:"lte"` +} + +func (InsightNumberFilterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*InsightNumberFilter)(nil)).Elem() +} + +func (i InsightNumberFilterArgs) ToInsightNumberFilterOutput() InsightNumberFilterOutput { + return i.ToInsightNumberFilterOutputWithContext(context.Background()) +} + +func (i InsightNumberFilterArgs) ToInsightNumberFilterOutputWithContext(ctx context.Context) InsightNumberFilterOutput { + return pulumi.ToOutputWithContext(ctx, i).(InsightNumberFilterOutput) +} + +// InsightNumberFilterArrayInput is an input type that accepts InsightNumberFilterArray and InsightNumberFilterArrayOutput values. +// You can construct a concrete instance of `InsightNumberFilterArrayInput` via: +// +// InsightNumberFilterArray{ InsightNumberFilterArgs{...} } +type InsightNumberFilterArrayInput interface { + pulumi.Input + + ToInsightNumberFilterArrayOutput() InsightNumberFilterArrayOutput + ToInsightNumberFilterArrayOutputWithContext(context.Context) InsightNumberFilterArrayOutput +} + +type InsightNumberFilterArray []InsightNumberFilterInput + +func (InsightNumberFilterArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]InsightNumberFilter)(nil)).Elem() +} + +func (i InsightNumberFilterArray) ToInsightNumberFilterArrayOutput() InsightNumberFilterArrayOutput { + return i.ToInsightNumberFilterArrayOutputWithContext(context.Background()) +} + +func (i InsightNumberFilterArray) ToInsightNumberFilterArrayOutputWithContext(ctx context.Context) InsightNumberFilterArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(InsightNumberFilterArrayOutput) +} + +// A number filter for querying findings. +type InsightNumberFilterOutput struct{ *pulumi.OutputState } + +func (InsightNumberFilterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*InsightNumberFilter)(nil)).Elem() +} + +func (o InsightNumberFilterOutput) ToInsightNumberFilterOutput() InsightNumberFilterOutput { + return o +} + +func (o InsightNumberFilterOutput) ToInsightNumberFilterOutputWithContext(ctx context.Context) InsightNumberFilterOutput { + return o +} + +// The equal-to condition to be applied to a single field when querying for findings. +func (o InsightNumberFilterOutput) Eq() pulumi.Float64PtrOutput { + return o.ApplyT(func(v InsightNumberFilter) *float64 { return v.Eq }).(pulumi.Float64PtrOutput) +} + +// The greater-than-equal condition to be applied to a single field when querying for findings. +func (o InsightNumberFilterOutput) Gte() pulumi.Float64PtrOutput { + return o.ApplyT(func(v InsightNumberFilter) *float64 { return v.Gte }).(pulumi.Float64PtrOutput) +} + +// The less-than-equal condition to be applied to a single field when querying for findings. +func (o InsightNumberFilterOutput) Lte() pulumi.Float64PtrOutput { + return o.ApplyT(func(v InsightNumberFilter) *float64 { return v.Lte }).(pulumi.Float64PtrOutput) +} + +type InsightNumberFilterArrayOutput struct{ *pulumi.OutputState } + +func (InsightNumberFilterArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]InsightNumberFilter)(nil)).Elem() +} + +func (o InsightNumberFilterArrayOutput) ToInsightNumberFilterArrayOutput() InsightNumberFilterArrayOutput { + return o +} + +func (o InsightNumberFilterArrayOutput) ToInsightNumberFilterArrayOutputWithContext(ctx context.Context) InsightNumberFilterArrayOutput { + return o +} + +func (o InsightNumberFilterArrayOutput) Index(i pulumi.IntInput) InsightNumberFilterOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) InsightNumberFilter { + return vs[0].([]InsightNumberFilter)[vs[1].(int)] + }).(InsightNumberFilterOutput) +} + +// A string filter for filtering AWS Security Hub findings. +type InsightStringFilter struct { + Comparison InsightStringFilterComparison `pulumi:"comparison"` + Value string `pulumi:"value"` +} + +// InsightStringFilterInput is an input type that accepts InsightStringFilterArgs and InsightStringFilterOutput values. +// You can construct a concrete instance of `InsightStringFilterInput` via: +// +// InsightStringFilterArgs{...} +type InsightStringFilterInput interface { + pulumi.Input + + ToInsightStringFilterOutput() InsightStringFilterOutput + ToInsightStringFilterOutputWithContext(context.Context) InsightStringFilterOutput +} + +// A string filter for filtering AWS Security Hub findings. +type InsightStringFilterArgs struct { + Comparison InsightStringFilterComparisonInput `pulumi:"comparison"` + Value pulumi.StringInput `pulumi:"value"` +} + +func (InsightStringFilterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*InsightStringFilter)(nil)).Elem() +} + +func (i InsightStringFilterArgs) ToInsightStringFilterOutput() InsightStringFilterOutput { + return i.ToInsightStringFilterOutputWithContext(context.Background()) +} + +func (i InsightStringFilterArgs) ToInsightStringFilterOutputWithContext(ctx context.Context) InsightStringFilterOutput { + return pulumi.ToOutputWithContext(ctx, i).(InsightStringFilterOutput) +} + +// InsightStringFilterArrayInput is an input type that accepts InsightStringFilterArray and InsightStringFilterArrayOutput values. +// You can construct a concrete instance of `InsightStringFilterArrayInput` via: +// +// InsightStringFilterArray{ InsightStringFilterArgs{...} } +type InsightStringFilterArrayInput interface { + pulumi.Input + + ToInsightStringFilterArrayOutput() InsightStringFilterArrayOutput + ToInsightStringFilterArrayOutputWithContext(context.Context) InsightStringFilterArrayOutput +} + +type InsightStringFilterArray []InsightStringFilterInput + +func (InsightStringFilterArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]InsightStringFilter)(nil)).Elem() +} + +func (i InsightStringFilterArray) ToInsightStringFilterArrayOutput() InsightStringFilterArrayOutput { + return i.ToInsightStringFilterArrayOutputWithContext(context.Background()) +} + +func (i InsightStringFilterArray) ToInsightStringFilterArrayOutputWithContext(ctx context.Context) InsightStringFilterArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(InsightStringFilterArrayOutput) +} + +// A string filter for filtering AWS Security Hub findings. +type InsightStringFilterOutput struct{ *pulumi.OutputState } + +func (InsightStringFilterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*InsightStringFilter)(nil)).Elem() +} + +func (o InsightStringFilterOutput) ToInsightStringFilterOutput() InsightStringFilterOutput { + return o +} + +func (o InsightStringFilterOutput) ToInsightStringFilterOutputWithContext(ctx context.Context) InsightStringFilterOutput { + return o +} + +func (o InsightStringFilterOutput) Comparison() InsightStringFilterComparisonOutput { + return o.ApplyT(func(v InsightStringFilter) InsightStringFilterComparison { return v.Comparison }).(InsightStringFilterComparisonOutput) +} + +func (o InsightStringFilterOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v InsightStringFilter) string { return v.Value }).(pulumi.StringOutput) +} + +type InsightStringFilterArrayOutput struct{ *pulumi.OutputState } + +func (InsightStringFilterArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]InsightStringFilter)(nil)).Elem() +} + +func (o InsightStringFilterArrayOutput) ToInsightStringFilterArrayOutput() InsightStringFilterArrayOutput { + return o +} + +func (o InsightStringFilterArrayOutput) ToInsightStringFilterArrayOutputWithContext(ctx context.Context) InsightStringFilterArrayOutput { + return o +} + +func (o InsightStringFilterArrayOutput) Index(i pulumi.IntInput) InsightStringFilterOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) InsightStringFilter { + return vs[0].([]InsightStringFilter)[vs[1].(int)] + }).(InsightStringFilterOutput) +} + // Provides details about an individual security control. For a list of ASH controls, see [controls reference](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-controls-reference.html) in the *User Guide*. type StandardsControl struct { // A user-defined reason for changing a control's enablement status in a specified standard. If you are disabling a control, then this property is required. @@ -2123,6 +5108,23 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*AutomationRulesFindingFieldsUpdateInput)(nil)).Elem(), AutomationRulesFindingFieldsUpdateArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AutomationRulesFindingFiltersInput)(nil)).Elem(), AutomationRulesFindingFiltersArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AutomationRulesFindingFiltersPtrInput)(nil)).Elem(), AutomationRulesFindingFiltersArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*InsightAwsSecurityFindingFiltersInput)(nil)).Elem(), InsightAwsSecurityFindingFiltersArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*InsightBooleanFilterInput)(nil)).Elem(), InsightBooleanFilterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*InsightBooleanFilterArrayInput)(nil)).Elem(), InsightBooleanFilterArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*InsightDateFilterInput)(nil)).Elem(), InsightDateFilterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*InsightDateFilterArrayInput)(nil)).Elem(), InsightDateFilterArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*InsightDateRangeInput)(nil)).Elem(), InsightDateRangeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*InsightDateRangePtrInput)(nil)).Elem(), InsightDateRangeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*InsightIpFilterInput)(nil)).Elem(), InsightIpFilterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*InsightIpFilterArrayInput)(nil)).Elem(), InsightIpFilterArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*InsightKeywordFilterInput)(nil)).Elem(), InsightKeywordFilterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*InsightKeywordFilterArrayInput)(nil)).Elem(), InsightKeywordFilterArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*InsightMapFilterInput)(nil)).Elem(), InsightMapFilterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*InsightMapFilterArrayInput)(nil)).Elem(), InsightMapFilterArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*InsightNumberFilterInput)(nil)).Elem(), InsightNumberFilterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*InsightNumberFilterArrayInput)(nil)).Elem(), InsightNumberFilterArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*InsightStringFilterInput)(nil)).Elem(), InsightStringFilterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*InsightStringFilterArrayInput)(nil)).Elem(), InsightStringFilterArray{}) pulumi.RegisterInputType(reflect.TypeOf((*StandardsControlInput)(nil)).Elem(), StandardsControlArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*StandardsControlArrayInput)(nil)).Elem(), StandardsControlArray{}) pulumi.RegisterOutputType(AutomationRuleDateFilterOutput{}) @@ -2148,6 +5150,24 @@ func init() { pulumi.RegisterOutputType(AutomationRulesFindingFieldsUpdateOutput{}) pulumi.RegisterOutputType(AutomationRulesFindingFiltersOutput{}) pulumi.RegisterOutputType(AutomationRulesFindingFiltersPtrOutput{}) + pulumi.RegisterOutputType(InsightAwsSecurityFindingFiltersOutput{}) + pulumi.RegisterOutputType(InsightAwsSecurityFindingFiltersPtrOutput{}) + pulumi.RegisterOutputType(InsightBooleanFilterOutput{}) + pulumi.RegisterOutputType(InsightBooleanFilterArrayOutput{}) + pulumi.RegisterOutputType(InsightDateFilterOutput{}) + pulumi.RegisterOutputType(InsightDateFilterArrayOutput{}) + pulumi.RegisterOutputType(InsightDateRangeOutput{}) + pulumi.RegisterOutputType(InsightDateRangePtrOutput{}) + pulumi.RegisterOutputType(InsightIpFilterOutput{}) + pulumi.RegisterOutputType(InsightIpFilterArrayOutput{}) + pulumi.RegisterOutputType(InsightKeywordFilterOutput{}) + pulumi.RegisterOutputType(InsightKeywordFilterArrayOutput{}) + pulumi.RegisterOutputType(InsightMapFilterOutput{}) + pulumi.RegisterOutputType(InsightMapFilterArrayOutput{}) + pulumi.RegisterOutputType(InsightNumberFilterOutput{}) + pulumi.RegisterOutputType(InsightNumberFilterArrayOutput{}) + pulumi.RegisterOutputType(InsightStringFilterOutput{}) + pulumi.RegisterOutputType(InsightStringFilterArrayOutput{}) pulumi.RegisterOutputType(StandardsControlOutput{}) pulumi.RegisterOutputType(StandardsControlArrayOutput{}) } 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/go/aws/ssm/getParameter.go b/sdk/go/aws/ssm/getParameter.go index 5899af84b3..a43607ab59 100644 --- a/sdk/go/aws/ssm/getParameter.go +++ b/sdk/go/aws/ssm/getParameter.go @@ -28,7 +28,7 @@ func LookupParameter(ctx *pulumi.Context, args *LookupParameterArgs, opts ...pul type LookupParameterArgs struct { // The name of the parameter. - // The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` + // The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` Name string `pulumi:"name"` } @@ -57,7 +57,7 @@ func LookupParameterOutput(ctx *pulumi.Context, args LookupParameterOutputArgs, type LookupParameterOutputArgs struct { // The name of the parameter. - // The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` + // The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` Name pulumi.StringInput `pulumi:"name"` } diff --git a/sdk/go/aws/ssm/parameter.go b/sdk/go/aws/ssm/parameter.go index 64c3807ad0..fce903a975 100644 --- a/sdk/go/aws/ssm/parameter.go +++ b/sdk/go/aws/ssm/parameter.go @@ -219,7 +219,7 @@ type Parameter struct { // Information about the parameter. Description pulumi.StringPtrOutput `pulumi:"description"` // The name of the parameter. - // The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` + // The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` Name pulumi.StringPtrOutput `pulumi:"name"` // Information about the policies assigned to a parameter. // [Assigning parameter policies](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-policies.html) in the *User Guide*. @@ -292,7 +292,7 @@ type parameterArgs struct { // Information about the parameter. Description *string `pulumi:"description"` // The name of the parameter. - // The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` + // The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` Name *string `pulumi:"name"` // Information about the policies assigned to a parameter. // [Assigning parameter policies](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-policies.html) in the *User Guide*. @@ -317,7 +317,7 @@ type ParameterArgs struct { // Information about the parameter. Description pulumi.StringPtrInput // The name of the parameter. - // The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` + // The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` Name pulumi.StringPtrInput // Information about the policies assigned to a parameter. // [Assigning parameter policies](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-policies.html) in the *User Guide*. diff --git a/sdk/go/aws/verifiedpermissions/pulumiTypes.go b/sdk/go/aws/verifiedpermissions/pulumiTypes.go index ad8e93343b..0d1c3b520c 100644 --- a/sdk/go/aws/verifiedpermissions/pulumiTypes.go +++ b/sdk/go/aws/verifiedpermissions/pulumiTypes.go @@ -13,9 +13,143 @@ import ( var _ = internal.GetEnvOrDefault +type IdentitySourceCognitoGroupConfiguration struct { + GroupEntityType string `pulumi:"groupEntityType"` +} + +// IdentitySourceCognitoGroupConfigurationInput is an input type that accepts IdentitySourceCognitoGroupConfigurationArgs and IdentitySourceCognitoGroupConfigurationOutput values. +// You can construct a concrete instance of `IdentitySourceCognitoGroupConfigurationInput` via: +// +// IdentitySourceCognitoGroupConfigurationArgs{...} +type IdentitySourceCognitoGroupConfigurationInput interface { + pulumi.Input + + ToIdentitySourceCognitoGroupConfigurationOutput() IdentitySourceCognitoGroupConfigurationOutput + ToIdentitySourceCognitoGroupConfigurationOutputWithContext(context.Context) IdentitySourceCognitoGroupConfigurationOutput +} + +type IdentitySourceCognitoGroupConfigurationArgs struct { + GroupEntityType pulumi.StringInput `pulumi:"groupEntityType"` +} + +func (IdentitySourceCognitoGroupConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*IdentitySourceCognitoGroupConfiguration)(nil)).Elem() +} + +func (i IdentitySourceCognitoGroupConfigurationArgs) ToIdentitySourceCognitoGroupConfigurationOutput() IdentitySourceCognitoGroupConfigurationOutput { + return i.ToIdentitySourceCognitoGroupConfigurationOutputWithContext(context.Background()) +} + +func (i IdentitySourceCognitoGroupConfigurationArgs) ToIdentitySourceCognitoGroupConfigurationOutputWithContext(ctx context.Context) IdentitySourceCognitoGroupConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(IdentitySourceCognitoGroupConfigurationOutput) +} + +func (i IdentitySourceCognitoGroupConfigurationArgs) ToIdentitySourceCognitoGroupConfigurationPtrOutput() IdentitySourceCognitoGroupConfigurationPtrOutput { + return i.ToIdentitySourceCognitoGroupConfigurationPtrOutputWithContext(context.Background()) +} + +func (i IdentitySourceCognitoGroupConfigurationArgs) ToIdentitySourceCognitoGroupConfigurationPtrOutputWithContext(ctx context.Context) IdentitySourceCognitoGroupConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(IdentitySourceCognitoGroupConfigurationOutput).ToIdentitySourceCognitoGroupConfigurationPtrOutputWithContext(ctx) +} + +// IdentitySourceCognitoGroupConfigurationPtrInput is an input type that accepts IdentitySourceCognitoGroupConfigurationArgs, IdentitySourceCognitoGroupConfigurationPtr and IdentitySourceCognitoGroupConfigurationPtrOutput values. +// You can construct a concrete instance of `IdentitySourceCognitoGroupConfigurationPtrInput` via: +// +// IdentitySourceCognitoGroupConfigurationArgs{...} +// +// or: +// +// nil +type IdentitySourceCognitoGroupConfigurationPtrInput interface { + pulumi.Input + + ToIdentitySourceCognitoGroupConfigurationPtrOutput() IdentitySourceCognitoGroupConfigurationPtrOutput + ToIdentitySourceCognitoGroupConfigurationPtrOutputWithContext(context.Context) IdentitySourceCognitoGroupConfigurationPtrOutput +} + +type identitySourceCognitoGroupConfigurationPtrType IdentitySourceCognitoGroupConfigurationArgs + +func IdentitySourceCognitoGroupConfigurationPtr(v *IdentitySourceCognitoGroupConfigurationArgs) IdentitySourceCognitoGroupConfigurationPtrInput { + return (*identitySourceCognitoGroupConfigurationPtrType)(v) +} + +func (*identitySourceCognitoGroupConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**IdentitySourceCognitoGroupConfiguration)(nil)).Elem() +} + +func (i *identitySourceCognitoGroupConfigurationPtrType) ToIdentitySourceCognitoGroupConfigurationPtrOutput() IdentitySourceCognitoGroupConfigurationPtrOutput { + return i.ToIdentitySourceCognitoGroupConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *identitySourceCognitoGroupConfigurationPtrType) ToIdentitySourceCognitoGroupConfigurationPtrOutputWithContext(ctx context.Context) IdentitySourceCognitoGroupConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(IdentitySourceCognitoGroupConfigurationPtrOutput) +} + +type IdentitySourceCognitoGroupConfigurationOutput struct{ *pulumi.OutputState } + +func (IdentitySourceCognitoGroupConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*IdentitySourceCognitoGroupConfiguration)(nil)).Elem() +} + +func (o IdentitySourceCognitoGroupConfigurationOutput) ToIdentitySourceCognitoGroupConfigurationOutput() IdentitySourceCognitoGroupConfigurationOutput { + return o +} + +func (o IdentitySourceCognitoGroupConfigurationOutput) ToIdentitySourceCognitoGroupConfigurationOutputWithContext(ctx context.Context) IdentitySourceCognitoGroupConfigurationOutput { + return o +} + +func (o IdentitySourceCognitoGroupConfigurationOutput) ToIdentitySourceCognitoGroupConfigurationPtrOutput() IdentitySourceCognitoGroupConfigurationPtrOutput { + return o.ToIdentitySourceCognitoGroupConfigurationPtrOutputWithContext(context.Background()) +} + +func (o IdentitySourceCognitoGroupConfigurationOutput) ToIdentitySourceCognitoGroupConfigurationPtrOutputWithContext(ctx context.Context) IdentitySourceCognitoGroupConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v IdentitySourceCognitoGroupConfiguration) *IdentitySourceCognitoGroupConfiguration { + return &v + }).(IdentitySourceCognitoGroupConfigurationPtrOutput) +} + +func (o IdentitySourceCognitoGroupConfigurationOutput) GroupEntityType() pulumi.StringOutput { + return o.ApplyT(func(v IdentitySourceCognitoGroupConfiguration) string { return v.GroupEntityType }).(pulumi.StringOutput) +} + +type IdentitySourceCognitoGroupConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (IdentitySourceCognitoGroupConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**IdentitySourceCognitoGroupConfiguration)(nil)).Elem() +} + +func (o IdentitySourceCognitoGroupConfigurationPtrOutput) ToIdentitySourceCognitoGroupConfigurationPtrOutput() IdentitySourceCognitoGroupConfigurationPtrOutput { + return o +} + +func (o IdentitySourceCognitoGroupConfigurationPtrOutput) ToIdentitySourceCognitoGroupConfigurationPtrOutputWithContext(ctx context.Context) IdentitySourceCognitoGroupConfigurationPtrOutput { + return o +} + +func (o IdentitySourceCognitoGroupConfigurationPtrOutput) Elem() IdentitySourceCognitoGroupConfigurationOutput { + return o.ApplyT(func(v *IdentitySourceCognitoGroupConfiguration) IdentitySourceCognitoGroupConfiguration { + if v != nil { + return *v + } + var ret IdentitySourceCognitoGroupConfiguration + return ret + }).(IdentitySourceCognitoGroupConfigurationOutput) +} + +func (o IdentitySourceCognitoGroupConfigurationPtrOutput) GroupEntityType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *IdentitySourceCognitoGroupConfiguration) *string { + if v == nil { + return nil + } + return &v.GroupEntityType + }).(pulumi.StringPtrOutput) +} + type IdentitySourceCognitoUserPoolConfiguration struct { - ClientIds []string `pulumi:"clientIds"` - UserPoolArn string `pulumi:"userPoolArn"` + ClientIds []string `pulumi:"clientIds"` + GroupConfiguration *IdentitySourceCognitoGroupConfiguration `pulumi:"groupConfiguration"` + UserPoolArn string `pulumi:"userPoolArn"` } // IdentitySourceCognitoUserPoolConfigurationInput is an input type that accepts IdentitySourceCognitoUserPoolConfigurationArgs and IdentitySourceCognitoUserPoolConfigurationOutput values. @@ -30,8 +164,9 @@ type IdentitySourceCognitoUserPoolConfigurationInput interface { } type IdentitySourceCognitoUserPoolConfigurationArgs struct { - ClientIds pulumi.StringArrayInput `pulumi:"clientIds"` - UserPoolArn pulumi.StringInput `pulumi:"userPoolArn"` + ClientIds pulumi.StringArrayInput `pulumi:"clientIds"` + GroupConfiguration IdentitySourceCognitoGroupConfigurationPtrInput `pulumi:"groupConfiguration"` + UserPoolArn pulumi.StringInput `pulumi:"userPoolArn"` } func (IdentitySourceCognitoUserPoolConfigurationArgs) ElementType() reflect.Type { @@ -64,6 +199,12 @@ func (o IdentitySourceCognitoUserPoolConfigurationOutput) ClientIds() pulumi.Str return o.ApplyT(func(v IdentitySourceCognitoUserPoolConfiguration) []string { return v.ClientIds }).(pulumi.StringArrayOutput) } +func (o IdentitySourceCognitoUserPoolConfigurationOutput) GroupConfiguration() IdentitySourceCognitoGroupConfigurationPtrOutput { + return o.ApplyT(func(v IdentitySourceCognitoUserPoolConfiguration) *IdentitySourceCognitoGroupConfiguration { + return v.GroupConfiguration + }).(IdentitySourceCognitoGroupConfigurationPtrOutput) +} + func (o IdentitySourceCognitoUserPoolConfigurationOutput) UserPoolArn() pulumi.StringOutput { return o.ApplyT(func(v IdentitySourceCognitoUserPoolConfiguration) string { return v.UserPoolArn }).(pulumi.StringOutput) } @@ -101,6 +242,15 @@ func (o IdentitySourceCognitoUserPoolConfigurationPtrOutput) ClientIds() pulumi. }).(pulumi.StringArrayOutput) } +func (o IdentitySourceCognitoUserPoolConfigurationPtrOutput) GroupConfiguration() IdentitySourceCognitoGroupConfigurationPtrOutput { + return o.ApplyT(func(v *IdentitySourceCognitoUserPoolConfiguration) *IdentitySourceCognitoGroupConfiguration { + if v == nil { + return nil + } + return v.GroupConfiguration + }).(IdentitySourceCognitoGroupConfigurationPtrOutput) +} + func (o IdentitySourceCognitoUserPoolConfigurationPtrOutput) UserPoolArn() pulumi.StringPtrOutput { return o.ApplyT(func(v *IdentitySourceCognitoUserPoolConfiguration) *string { if v == nil { @@ -1028,6 +1178,8 @@ func (o PolicyTemplateLinkedPolicyDefinitionPtrOutput) Resource() PolicyEntityId } func init() { + pulumi.RegisterInputType(reflect.TypeOf((*IdentitySourceCognitoGroupConfigurationInput)(nil)).Elem(), IdentitySourceCognitoGroupConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*IdentitySourceCognitoGroupConfigurationPtrInput)(nil)).Elem(), IdentitySourceCognitoGroupConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*IdentitySourceCognitoUserPoolConfigurationInput)(nil)).Elem(), IdentitySourceCognitoUserPoolConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*IdentitySourceConfigurationInput)(nil)).Elem(), IdentitySourceConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PolicyDefinition0PropertiesInput)(nil)).Elem(), PolicyDefinition0PropertiesArgs{}) @@ -1039,6 +1191,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*PolicyStoreSchemaDefinitionPtrInput)(nil)).Elem(), PolicyStoreSchemaDefinitionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PolicyStoreValidationSettingsInput)(nil)).Elem(), PolicyStoreValidationSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PolicyTemplateLinkedPolicyDefinitionInput)(nil)).Elem(), PolicyTemplateLinkedPolicyDefinitionArgs{}) + pulumi.RegisterOutputType(IdentitySourceCognitoGroupConfigurationOutput{}) + pulumi.RegisterOutputType(IdentitySourceCognitoGroupConfigurationPtrOutput{}) pulumi.RegisterOutputType(IdentitySourceCognitoUserPoolConfigurationOutput{}) pulumi.RegisterOutputType(IdentitySourceCognitoUserPoolConfigurationPtrOutput{}) pulumi.RegisterOutputType(IdentitySourceConfigurationOutput{}) diff --git a/sdk/nodejs/amplify/domain.ts b/sdk/nodejs/amplify/domain.ts index e6852ec81e..10f3a7de61 100644 --- a/sdk/nodejs/amplify/domain.ts +++ b/sdk/nodejs/amplify/domain.ts @@ -41,7 +41,7 @@ export class Domain extends pulumi.CustomResource { public /*out*/ readonly arn!: pulumi.Output; public readonly autoSubDomainCreationPatterns!: pulumi.Output; public readonly autoSubDomainIamRole!: pulumi.Output; - public readonly certificate!: pulumi.Output; + public /*out*/ readonly certificate!: pulumi.Output; public /*out*/ readonly certificateRecord!: pulumi.Output; public readonly certificateSettings!: pulumi.Output; public readonly domainName!: pulumi.Output; @@ -49,7 +49,7 @@ export class Domain extends pulumi.CustomResource { public readonly enableAutoSubDomain!: pulumi.Output; public /*out*/ readonly statusReason!: pulumi.Output; public readonly subDomainSettings!: pulumi.Output; - public readonly updateStatus!: pulumi.Output; + public /*out*/ readonly updateStatus!: pulumi.Output; /** * Create a Domain resource with the given unique name, arguments, and options. @@ -71,16 +71,16 @@ export class Domain extends pulumi.CustomResource { resourceInputs["appId"] = args ? args.appId : undefined; resourceInputs["autoSubDomainCreationPatterns"] = args ? args.autoSubDomainCreationPatterns : undefined; resourceInputs["autoSubDomainIamRole"] = args ? args.autoSubDomainIamRole : undefined; - resourceInputs["certificate"] = args ? args.certificate : undefined; resourceInputs["certificateSettings"] = args ? args.certificateSettings : undefined; resourceInputs["domainName"] = args ? args.domainName : undefined; resourceInputs["enableAutoSubDomain"] = args ? args.enableAutoSubDomain : undefined; resourceInputs["subDomainSettings"] = args ? args.subDomainSettings : undefined; - resourceInputs["updateStatus"] = args ? args.updateStatus : undefined; resourceInputs["arn"] = undefined /*out*/; + resourceInputs["certificate"] = undefined /*out*/; resourceInputs["certificateRecord"] = undefined /*out*/; resourceInputs["domainStatus"] = undefined /*out*/; resourceInputs["statusReason"] = undefined /*out*/; + resourceInputs["updateStatus"] = undefined /*out*/; } else { resourceInputs["appId"] = undefined /*out*/; resourceInputs["arn"] = undefined /*out*/; @@ -110,10 +110,8 @@ export interface DomainArgs { appId: pulumi.Input; autoSubDomainCreationPatterns?: pulumi.Input[]>; autoSubDomainIamRole?: pulumi.Input; - certificate?: pulumi.Input; certificateSettings?: pulumi.Input; domainName?: pulumi.Input; enableAutoSubDomain?: pulumi.Input; subDomainSettings: pulumi.Input[]>; - updateStatus?: pulumi.Input; } diff --git a/sdk/nodejs/amplify/getDomain.ts b/sdk/nodejs/amplify/getDomain.ts index 3176051eda..a32567273d 100644 --- a/sdk/nodejs/amplify/getDomain.ts +++ b/sdk/nodejs/amplify/getDomain.ts @@ -28,7 +28,6 @@ export interface GetDomainResult { readonly autoSubDomainIamRole?: string; readonly certificate?: outputs.amplify.DomainCertificate; readonly certificateRecord?: string; - readonly certificateSettings?: outputs.amplify.DomainCertificateSettings; readonly domainStatus?: string; readonly enableAutoSubDomain?: boolean; readonly statusReason?: string; 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/dataSource.ts b/sdk/nodejs/bedrock/dataSource.ts new file mode 100644 index 0000000000..4f447175dd --- /dev/null +++ b/sdk/nodejs/bedrock/dataSource.ts @@ -0,0 +1,134 @@ +// *** 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::DataSource Resource Type + */ +export class DataSource extends pulumi.CustomResource { + /** + * Get an existing DataSource 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): DataSource { + return new DataSource(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:bedrock:DataSource'; + + /** + * Returns true if the given object is an instance of DataSource. 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 DataSource { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === DataSource.__pulumiType; + } + + /** + * The time at which the data source was created. + */ + public /*out*/ readonly createdAt!: pulumi.Output; + public readonly dataSourceConfiguration!: pulumi.Output; + /** + * Identifier for a resource. + */ + public /*out*/ readonly dataSourceId!: pulumi.Output; + public /*out*/ readonly dataSourceStatus!: pulumi.Output; + /** + * Description of the Resource. + */ + public readonly description!: pulumi.Output; + /** + * The unique identifier of the knowledge base to which to add the data source. + */ + public readonly knowledgeBaseId!: pulumi.Output; + /** + * The name of the data source. + */ + public readonly name!: pulumi.Output; + public readonly serverSideEncryptionConfiguration!: pulumi.Output; + /** + * The time at which the knowledge base was last updated. + */ + public /*out*/ readonly updatedAt!: pulumi.Output; + public readonly vectorIngestionConfiguration!: pulumi.Output; + + /** + * Create a DataSource 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: DataSourceArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.dataSourceConfiguration === undefined) && !opts.urn) { + throw new Error("Missing required property 'dataSourceConfiguration'"); + } + if ((!args || args.knowledgeBaseId === undefined) && !opts.urn) { + throw new Error("Missing required property 'knowledgeBaseId'"); + } + resourceInputs["dataSourceConfiguration"] = args ? args.dataSourceConfiguration : undefined; + resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["knowledgeBaseId"] = args ? args.knowledgeBaseId : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["serverSideEncryptionConfiguration"] = args ? args.serverSideEncryptionConfiguration : undefined; + resourceInputs["vectorIngestionConfiguration"] = args ? args.vectorIngestionConfiguration : undefined; + resourceInputs["createdAt"] = undefined /*out*/; + resourceInputs["dataSourceId"] = undefined /*out*/; + resourceInputs["dataSourceStatus"] = undefined /*out*/; + resourceInputs["updatedAt"] = undefined /*out*/; + } else { + resourceInputs["createdAt"] = undefined /*out*/; + resourceInputs["dataSourceConfiguration"] = undefined /*out*/; + resourceInputs["dataSourceId"] = undefined /*out*/; + resourceInputs["dataSourceStatus"] = undefined /*out*/; + resourceInputs["description"] = undefined /*out*/; + resourceInputs["knowledgeBaseId"] = undefined /*out*/; + resourceInputs["name"] = undefined /*out*/; + resourceInputs["serverSideEncryptionConfiguration"] = undefined /*out*/; + resourceInputs["updatedAt"] = undefined /*out*/; + resourceInputs["vectorIngestionConfiguration"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const replaceOnChanges = { replaceOnChanges: ["knowledgeBaseId", "vectorIngestionConfiguration"] }; + opts = pulumi.mergeOptions(opts, replaceOnChanges); + super(DataSource.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a DataSource resource. + */ +export interface DataSourceArgs { + dataSourceConfiguration: pulumi.Input; + /** + * Description of the Resource. + */ + description?: pulumi.Input; + /** + * The unique identifier of the knowledge base to which to add the data source. + */ + knowledgeBaseId: pulumi.Input; + /** + * The name of the data source. + */ + name?: pulumi.Input; + serverSideEncryptionConfiguration?: pulumi.Input; + vectorIngestionConfiguration?: 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/getDataSource.ts b/sdk/nodejs/bedrock/getDataSource.ts new file mode 100644 index 0000000000..b285e3cf2b --- /dev/null +++ b/sdk/nodejs/bedrock/getDataSource.ts @@ -0,0 +1,74 @@ +// *** 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::DataSource Resource Type + */ +export function getDataSource(args: GetDataSourceArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:bedrock:getDataSource", { + "dataSourceId": args.dataSourceId, + "knowledgeBaseId": args.knowledgeBaseId, + }, opts); +} + +export interface GetDataSourceArgs { + /** + * Identifier for a resource. + */ + dataSourceId: string; + /** + * The unique identifier of the knowledge base to which to add the data source. + */ + knowledgeBaseId: string; +} + +export interface GetDataSourceResult { + /** + * The time at which the data source was created. + */ + readonly createdAt?: string; + readonly dataSourceConfiguration?: outputs.bedrock.DataSourceConfiguration; + /** + * Identifier for a resource. + */ + readonly dataSourceId?: string; + readonly dataSourceStatus?: enums.bedrock.DataSourceStatus; + /** + * Description of the Resource. + */ + readonly description?: string; + /** + * The name of the data source. + */ + readonly name?: string; + readonly serverSideEncryptionConfiguration?: outputs.bedrock.DataSourceServerSideEncryptionConfiguration; + /** + * The time at which the knowledge base was last updated. + */ + readonly updatedAt?: string; +} +/** + * Definition of AWS::Bedrock::DataSource Resource Type + */ +export function getDataSourceOutput(args: GetDataSourceOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getDataSource(a, opts)) +} + +export interface GetDataSourceOutputArgs { + /** + * Identifier for a resource. + */ + dataSourceId: pulumi.Input; + /** + * The unique identifier of the knowledge base to which to add the data source. + */ + knowledgeBaseId: pulumi.Input; +} diff --git a/sdk/nodejs/bedrock/getKnowledgeBase.ts b/sdk/nodejs/bedrock/getKnowledgeBase.ts new file mode 100644 index 0000000000..3f0c3b474f --- /dev/null +++ b/sdk/nodejs/bedrock/getKnowledgeBase.ts @@ -0,0 +1,76 @@ +// *** 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::KnowledgeBase Resource Type + */ +export function getKnowledgeBase(args: GetKnowledgeBaseArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:bedrock:getKnowledgeBase", { + "knowledgeBaseId": args.knowledgeBaseId, + }, opts); +} + +export interface GetKnowledgeBaseArgs { + /** + * The unique identifier of the knowledge base. + */ + knowledgeBaseId: string; +} + +export interface GetKnowledgeBaseResult { + /** + * The time at which the knowledge base was created. + */ + readonly createdAt?: string; + /** + * Description of the Resource. + */ + readonly description?: string; + /** + * A list of reasons that the API operation on the knowledge base failed. + */ + readonly failureReasons?: string[]; + /** + * The ARN of the knowledge base. + */ + readonly knowledgeBaseArn?: string; + /** + * The unique identifier of the knowledge base. + */ + readonly knowledgeBaseId?: string; + /** + * The name of the knowledge base. + */ + readonly name?: string; + /** + * The ARN of the IAM role with permissions to invoke API operations on the knowledge base. The ARN must begin with AmazonBedrockExecutionRoleForKnowledgeBase_ + */ + readonly roleArn?: string; + readonly status?: enums.bedrock.KnowledgeBaseStatus; + readonly tags?: {[key: string]: string}; + /** + * The time at which the knowledge base was last updated. + */ + readonly updatedAt?: string; +} +/** + * Definition of AWS::Bedrock::KnowledgeBase Resource Type + */ +export function getKnowledgeBaseOutput(args: GetKnowledgeBaseOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getKnowledgeBase(a, opts)) +} + +export interface GetKnowledgeBaseOutputArgs { + /** + * The unique identifier of the knowledge base. + */ + knowledgeBaseId: pulumi.Input; +} diff --git a/sdk/nodejs/bedrock/index.ts b/sdk/nodejs/bedrock/index.ts new file mode 100644 index 0000000000..79a0c03915 --- /dev/null +++ b/sdk/nodejs/bedrock/index.ts @@ -0,0 +1,69 @@ +// *** 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 { DataSourceArgs } from "./dataSource"; +export type DataSource = import("./dataSource").DataSource; +export const DataSource: typeof import("./dataSource").DataSource = null as any; +utilities.lazyLoad(exports, ["DataSource"], () => require("./dataSource")); + +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 { GetDataSourceArgs, GetDataSourceResult, GetDataSourceOutputArgs } from "./getDataSource"; +export const getDataSource: typeof import("./getDataSource").getDataSource = null as any; +export const getDataSourceOutput: typeof import("./getDataSource").getDataSourceOutput = null as any; +utilities.lazyLoad(exports, ["getDataSource","getDataSourceOutput"], () => require("./getDataSource")); + +export { GetKnowledgeBaseArgs, GetKnowledgeBaseResult, GetKnowledgeBaseOutputArgs } from "./getKnowledgeBase"; +export const getKnowledgeBase: typeof import("./getKnowledgeBase").getKnowledgeBase = null as any; +export const getKnowledgeBaseOutput: typeof import("./getKnowledgeBase").getKnowledgeBaseOutput = null as any; +utilities.lazyLoad(exports, ["getKnowledgeBase","getKnowledgeBaseOutput"], () => require("./getKnowledgeBase")); + +export { KnowledgeBaseArgs } from "./knowledgeBase"; +export type KnowledgeBase = import("./knowledgeBase").KnowledgeBase; +export const KnowledgeBase: typeof import("./knowledgeBase").KnowledgeBase = null as any; +utilities.lazyLoad(exports, ["KnowledgeBase"], () => require("./knowledgeBase")); + + +// Export 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 }) + case "aws-native:bedrock:DataSource": + return new DataSource(name, undefined, { urn }) + case "aws-native:bedrock:KnowledgeBase": + return new KnowledgeBase(name, undefined, { urn }) + default: + throw new Error(`unknown resource type ${type}`); + } + }, +}; +pulumi.runtime.registerResourceModule("aws-native", "bedrock", _module) diff --git a/sdk/nodejs/bedrock/knowledgeBase.ts b/sdk/nodejs/bedrock/knowledgeBase.ts new file mode 100644 index 0000000000..652fe00fcd --- /dev/null +++ b/sdk/nodejs/bedrock/knowledgeBase.ts @@ -0,0 +1,149 @@ +// *** 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::KnowledgeBase Resource Type + */ +export class KnowledgeBase extends pulumi.CustomResource { + /** + * Get an existing KnowledgeBase 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): KnowledgeBase { + return new KnowledgeBase(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:bedrock:KnowledgeBase'; + + /** + * Returns true if the given object is an instance of KnowledgeBase. 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 KnowledgeBase { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === KnowledgeBase.__pulumiType; + } + + /** + * The time at which the knowledge base was created. + */ + public /*out*/ readonly createdAt!: pulumi.Output; + /** + * Description of the Resource. + */ + public readonly description!: pulumi.Output; + /** + * A list of reasons that the API operation on the knowledge base failed. + */ + public /*out*/ readonly failureReasons!: pulumi.Output; + /** + * The ARN of the knowledge base. + */ + public /*out*/ readonly knowledgeBaseArn!: pulumi.Output; + public readonly knowledgeBaseConfiguration!: pulumi.Output; + /** + * The unique identifier of the knowledge base. + */ + public /*out*/ readonly knowledgeBaseId!: pulumi.Output; + /** + * The name of the knowledge base. + */ + public readonly name!: pulumi.Output; + /** + * The ARN of the IAM role with permissions to invoke API operations on the knowledge base. The ARN must begin with AmazonBedrockExecutionRoleForKnowledgeBase_ + */ + public readonly roleArn!: pulumi.Output; + public /*out*/ readonly status!: pulumi.Output; + public readonly storageConfiguration!: pulumi.Output; + public readonly tags!: pulumi.Output<{[key: string]: string} | undefined>; + /** + * The time at which the knowledge base was last updated. + */ + public /*out*/ readonly updatedAt!: pulumi.Output; + + /** + * Create a KnowledgeBase 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: KnowledgeBaseArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.knowledgeBaseConfiguration === undefined) && !opts.urn) { + throw new Error("Missing required property 'knowledgeBaseConfiguration'"); + } + if ((!args || args.roleArn === undefined) && !opts.urn) { + throw new Error("Missing required property 'roleArn'"); + } + if ((!args || args.storageConfiguration === undefined) && !opts.urn) { + throw new Error("Missing required property 'storageConfiguration'"); + } + resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["knowledgeBaseConfiguration"] = args ? args.knowledgeBaseConfiguration : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["roleArn"] = args ? args.roleArn : undefined; + resourceInputs["storageConfiguration"] = args ? args.storageConfiguration : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["createdAt"] = undefined /*out*/; + resourceInputs["failureReasons"] = undefined /*out*/; + resourceInputs["knowledgeBaseArn"] = undefined /*out*/; + resourceInputs["knowledgeBaseId"] = undefined /*out*/; + resourceInputs["status"] = undefined /*out*/; + resourceInputs["updatedAt"] = undefined /*out*/; + } else { + resourceInputs["createdAt"] = undefined /*out*/; + resourceInputs["description"] = undefined /*out*/; + resourceInputs["failureReasons"] = undefined /*out*/; + resourceInputs["knowledgeBaseArn"] = undefined /*out*/; + resourceInputs["knowledgeBaseConfiguration"] = undefined /*out*/; + resourceInputs["knowledgeBaseId"] = undefined /*out*/; + resourceInputs["name"] = undefined /*out*/; + resourceInputs["roleArn"] = undefined /*out*/; + resourceInputs["status"] = undefined /*out*/; + resourceInputs["storageConfiguration"] = undefined /*out*/; + resourceInputs["tags"] = undefined /*out*/; + resourceInputs["updatedAt"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const replaceOnChanges = { replaceOnChanges: ["knowledgeBaseConfiguration", "storageConfiguration"] }; + opts = pulumi.mergeOptions(opts, replaceOnChanges); + super(KnowledgeBase.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a KnowledgeBase resource. + */ +export interface KnowledgeBaseArgs { + /** + * Description of the Resource. + */ + description?: pulumi.Input; + knowledgeBaseConfiguration: pulumi.Input; + /** + * The name of the knowledge base. + */ + name?: pulumi.Input; + /** + * The ARN of the IAM role with permissions to invoke API operations on the knowledge base. The ARN must begin with AmazonBedrockExecutionRoleForKnowledgeBase_ + */ + roleArn: pulumi.Input; + storageConfiguration: pulumi.Input; + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; +} diff --git a/sdk/nodejs/cleanroomsml/getTrainingDataset.ts b/sdk/nodejs/cleanroomsml/getTrainingDataset.ts new file mode 100644 index 0000000000..10f84d0264 --- /dev/null +++ b/sdk/nodejs/cleanroomsml/getTrainingDataset.ts @@ -0,0 +1,42 @@ +// *** 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::CleanRoomsML::TrainingDataset Resource Type + */ +export function getTrainingDataset(args: GetTrainingDatasetArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:cleanroomsml:getTrainingDataset", { + "trainingDatasetArn": args.trainingDatasetArn, + }, opts); +} + +export interface GetTrainingDatasetArgs { + trainingDatasetArn: string; +} + +export interface GetTrainingDatasetResult { + readonly status?: enums.cleanroomsml.TrainingDatasetStatus; + /** + * An arbitrary set of tags (key-value pairs) for this cleanrooms-ml training dataset. + */ + readonly tags?: outputs.Tag[]; + readonly trainingDatasetArn?: string; +} +/** + * Definition of AWS::CleanRoomsML::TrainingDataset Resource Type + */ +export function getTrainingDatasetOutput(args: GetTrainingDatasetOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getTrainingDataset(a, opts)) +} + +export interface GetTrainingDatasetOutputArgs { + trainingDatasetArn: pulumi.Input; +} diff --git a/sdk/nodejs/cleanroomsml/index.ts b/sdk/nodejs/cleanroomsml/index.ts new file mode 100644 index 0000000000..717e5a9cbc --- /dev/null +++ b/sdk/nodejs/cleanroomsml/index.ts @@ -0,0 +1,33 @@ +// *** 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 { GetTrainingDatasetArgs, GetTrainingDatasetResult, GetTrainingDatasetOutputArgs } from "./getTrainingDataset"; +export const getTrainingDataset: typeof import("./getTrainingDataset").getTrainingDataset = null as any; +export const getTrainingDatasetOutput: typeof import("./getTrainingDataset").getTrainingDatasetOutput = null as any; +utilities.lazyLoad(exports, ["getTrainingDataset","getTrainingDatasetOutput"], () => require("./getTrainingDataset")); + +export { TrainingDatasetArgs } from "./trainingDataset"; +export type TrainingDataset = import("./trainingDataset").TrainingDataset; +export const TrainingDataset: typeof import("./trainingDataset").TrainingDataset = null as any; +utilities.lazyLoad(exports, ["TrainingDataset"], () => require("./trainingDataset")); + + +// Export enums: +export * from "../types/enums/cleanroomsml"; + +const _module = { + version: utilities.getVersion(), + construct: (name: string, type: string, urn: string): pulumi.Resource => { + switch (type) { + case "aws-native:cleanroomsml:TrainingDataset": + return new TrainingDataset(name, undefined, { urn }) + default: + throw new Error(`unknown resource type ${type}`); + } + }, +}; +pulumi.runtime.registerResourceModule("aws-native", "cleanroomsml", _module) diff --git a/sdk/nodejs/cleanroomsml/trainingDataset.ts b/sdk/nodejs/cleanroomsml/trainingDataset.ts new file mode 100644 index 0000000000..9b8832e9db --- /dev/null +++ b/sdk/nodejs/cleanroomsml/trainingDataset.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"; + +/** + * Definition of AWS::CleanRoomsML::TrainingDataset Resource Type + */ +export class TrainingDataset extends pulumi.CustomResource { + /** + * Get an existing TrainingDataset 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): TrainingDataset { + return new TrainingDataset(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:cleanroomsml:TrainingDataset'; + + /** + * Returns true if the given object is an instance of TrainingDataset. 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 TrainingDataset { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === TrainingDataset.__pulumiType; + } + + public readonly description!: pulumi.Output; + public readonly name!: pulumi.Output; + public readonly roleArn!: pulumi.Output; + public /*out*/ readonly status!: pulumi.Output; + /** + * An arbitrary set of tags (key-value pairs) for this cleanrooms-ml training dataset. + */ + public readonly tags!: pulumi.Output; + public readonly trainingData!: pulumi.Output; + public /*out*/ readonly trainingDatasetArn!: pulumi.Output; + + /** + * Create a TrainingDataset 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: TrainingDatasetArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.roleArn === undefined) && !opts.urn) { + throw new Error("Missing required property 'roleArn'"); + } + if ((!args || args.trainingData === undefined) && !opts.urn) { + throw new Error("Missing required property 'trainingData'"); + } + resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["roleArn"] = args ? args.roleArn : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["trainingData"] = args ? args.trainingData : undefined; + resourceInputs["status"] = undefined /*out*/; + resourceInputs["trainingDatasetArn"] = undefined /*out*/; + } else { + resourceInputs["description"] = undefined /*out*/; + resourceInputs["name"] = undefined /*out*/; + resourceInputs["roleArn"] = undefined /*out*/; + resourceInputs["status"] = undefined /*out*/; + resourceInputs["tags"] = undefined /*out*/; + resourceInputs["trainingData"] = undefined /*out*/; + resourceInputs["trainingDatasetArn"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const replaceOnChanges = { replaceOnChanges: ["description", "name", "roleArn", "trainingData[*]"] }; + opts = pulumi.mergeOptions(opts, replaceOnChanges); + super(TrainingDataset.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a TrainingDataset resource. + */ +export interface TrainingDatasetArgs { + description?: pulumi.Input; + name?: pulumi.Input; + roleArn: pulumi.Input; + /** + * An arbitrary set of tags (key-value pairs) for this cleanrooms-ml training dataset. + */ + tags?: pulumi.Input[]>; + trainingData: pulumi.Input[]>; +} diff --git a/sdk/nodejs/cloudwatch/alarm.ts b/sdk/nodejs/cloudwatch/alarm.ts index 4a22db9d74..f549466341 100644 --- a/sdk/nodejs/cloudwatch/alarm.ts +++ b/sdk/nodejs/cloudwatch/alarm.ts @@ -8,7 +8,9 @@ import * as enums from "../types/enums"; import * as utilities from "../utilities"; /** - * Resource Type definition for AWS::CloudWatch::Alarm + * The ``AWS::CloudWatch::Alarm`` type specifies an alarm and associates it with the specified metric or metric math expression. + * When this operation creates an alarm, the alarm state is immediately set to ``INSUFFICIENT_DATA``. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed. + * When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm. */ export class Alarm extends pulumi.CustomResource { /** @@ -42,7 +44,7 @@ export class Alarm extends pulumi.CustomResource { */ public readonly actionsEnabled!: pulumi.Output; /** - * The list of actions to execute when this alarm transitions into an ALARM state from any other state. + * The list of actions to execute when this alarm transitions into an ALARM state from any other state. Specify each action as an Amazon Resource Name (ARN). For more information about creating alarms and the actions that you can specify, see [PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html) in the *API Reference*. */ public readonly alarmActions!: pulumi.Output; /** @@ -50,79 +52,90 @@ export class Alarm extends pulumi.CustomResource { */ public readonly alarmDescription!: pulumi.Output; /** - * The name of the alarm. + * The name of the alarm. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the alarm name. + * 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. */ public readonly alarmName!: pulumi.Output; - /** - * Amazon Resource Name is a unique name for each resource. - */ public /*out*/ readonly arn!: pulumi.Output; /** - * The arithmetic operation to use when comparing the specified statistic and threshold. + * The arithmetic operation to use when comparing the specified statistic and threshold. The specified statistic value is used as the first operand. */ public readonly comparisonOperator!: pulumi.Output; /** - * The number of datapoints that must be breaching to trigger the alarm. + * The number of datapoints that must be breaching to trigger the alarm. This is used only if you are setting an "M out of N" alarm. In that case, this value is the M, and the value that you set for ``EvaluationPeriods`` is the N value. For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*. + * If you omit this parameter, CW uses the same value here that you set for ``EvaluationPeriods``, and the alarm goes to alarm state if that many consecutive periods are breaching. */ public readonly datapointsToAlarm!: pulumi.Output; /** - * The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify Dimensions. Instead, you use Metrics. + * The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify ``Dimensions``. Instead, you use ``Metrics``. */ public readonly dimensions!: pulumi.Output; /** - * Used only for alarms based on percentiles. + * Used only for alarms based on percentiles. If ``ignore``, the alarm state does not change during periods with too few data points to be statistically significant. If ``evaluate`` or this parameter is not used, the alarm is always evaluated and possibly changes state no matter how many data points are available. */ public readonly evaluateLowSampleCountPercentile!: pulumi.Output; /** - * The number of periods over which data is compared to the specified threshold. + * The number of periods over which data is compared to the specified threshold. If you are setting an alarm that requires that a number of consecutive data points be breaching to trigger the alarm, this value specifies that number. If you are setting an "M out of N" alarm, this value is the N, and ``DatapointsToAlarm`` is the M. + * For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*. */ public readonly evaluationPeriods!: pulumi.Output; /** * The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100. + * For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both. + * For an alarm based on a math expression, you can't specify ``ExtendedStatistic``. Instead, you use ``Metrics``. */ public readonly extendedStatistic!: pulumi.Output; /** - * The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state. + * The actions to execute when this alarm transitions to the ``INSUFFICIENT_DATA`` state from any other state. Each action is specified as an Amazon Resource Name (ARN). */ public readonly insufficientDataActions!: pulumi.Output; /** - * The name of the metric associated with the alarm. + * The name of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you use ``Metrics`` instead and you can't specify ``MetricName``. */ public readonly metricName!: pulumi.Output; /** - * An array that enables you to create an alarm based on the result of a metric math expression. + * An array that enables you to create an alarm based on the result of a metric math expression. Each item in the array either retrieves a metric or performs a math expression. + * If you specify the ``Metrics`` parameter, you cannot specify ``MetricName``, ``Dimensions``, ``Period``, ``Namespace``, ``Statistic``, ``ExtendedStatistic``, or ``Unit``. */ public readonly metrics!: pulumi.Output; /** - * The namespace of the metric associated with the alarm. + * The namespace of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you can't specify ``Namespace`` and you use ``Metrics`` instead. + * For a list of namespaces for metrics from AWS services, see [Services That Publish Metrics.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) */ public readonly namespace!: pulumi.Output; /** - * The actions to execute when this alarm transitions to the OK state from any other state. + * The actions to execute when this alarm transitions to the ``OK`` state from any other state. Each action is specified as an Amazon Resource Name (ARN). */ public readonly okActions!: pulumi.Output; /** - * The period in seconds, over which the statistic is applied. + * The period, in seconds, over which the statistic is applied. This is required for an alarm based on a metric. Valid values are 10, 30, 60, and any multiple of 60. + * For an alarm based on a math expression, you can't specify ``Period``, and instead you use the ``Metrics`` parameter. + * *Minimum:* 10 */ public readonly period!: pulumi.Output; /** - * The statistic for the metric associated with the alarm, other than percentile. + * The statistic for the metric associated with the alarm, other than percentile. For percentile statistics, use ``ExtendedStatistic``. + * For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both. + * For an alarm based on a math expression, you can't specify ``Statistic``. Instead, you use ``Metrics``. */ public readonly statistic!: pulumi.Output; + public readonly tags!: pulumi.Output; /** - * In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm. + * The value to compare with the specified statistic. */ public readonly threshold!: pulumi.Output; /** - * In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm. + * In an alarm based on an anomaly detection model, this is the ID of the ``ANOMALY_DETECTION_BAND`` function used as the threshold for the alarm. */ public readonly thresholdMetricId!: pulumi.Output; /** - * Sets how this alarm is to handle missing data points. Valid values are breaching, notBreaching, ignore, and missing. + * Sets how this alarm is to handle missing data points. Valid values are ``breaching``, ``notBreaching``, ``ignore``, and ``missing``. For more information, see [Configuring How Alarms Treat Missing Data](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data) in the *Amazon User Guide*. + * If you omit this parameter, the default behavior of ``missing`` is used. */ public readonly treatMissingData!: pulumi.Output; /** - * The unit of the metric associated with the alarm. + * The unit of the metric associated with the alarm. Specify this only if you are creating an alarm based on a single metric. Do not specify this if you are specifying a ``Metrics`` array. + * You can specify the following values: 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, or None. */ public readonly unit!: pulumi.Output; @@ -160,6 +173,7 @@ export class Alarm extends pulumi.CustomResource { resourceInputs["okActions"] = args ? args.okActions : undefined; resourceInputs["period"] = args ? args.period : undefined; resourceInputs["statistic"] = args ? args.statistic : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; resourceInputs["threshold"] = args ? args.threshold : undefined; resourceInputs["thresholdMetricId"] = args ? args.thresholdMetricId : undefined; resourceInputs["treatMissingData"] = args ? args.treatMissingData : undefined; @@ -184,6 +198,7 @@ export class Alarm extends pulumi.CustomResource { resourceInputs["okActions"] = undefined /*out*/; resourceInputs["period"] = undefined /*out*/; resourceInputs["statistic"] = undefined /*out*/; + resourceInputs["tags"] = undefined /*out*/; resourceInputs["threshold"] = undefined /*out*/; resourceInputs["thresholdMetricId"] = undefined /*out*/; resourceInputs["treatMissingData"] = undefined /*out*/; @@ -205,7 +220,7 @@ export interface AlarmArgs { */ actionsEnabled?: pulumi.Input; /** - * The list of actions to execute when this alarm transitions into an ALARM state from any other state. + * The list of actions to execute when this alarm transitions into an ALARM state from any other state. Specify each action as an Amazon Resource Name (ARN). For more information about creating alarms and the actions that you can specify, see [PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html) in the *API Reference*. */ alarmActions?: pulumi.Input[]>; /** @@ -213,75 +228,89 @@ export interface AlarmArgs { */ alarmDescription?: pulumi.Input; /** - * The name of the alarm. + * The name of the alarm. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the alarm name. + * 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. */ alarmName?: pulumi.Input; /** - * The arithmetic operation to use when comparing the specified statistic and threshold. + * The arithmetic operation to use when comparing the specified statistic and threshold. The specified statistic value is used as the first operand. */ comparisonOperator: pulumi.Input; /** - * The number of datapoints that must be breaching to trigger the alarm. + * The number of datapoints that must be breaching to trigger the alarm. This is used only if you are setting an "M out of N" alarm. In that case, this value is the M, and the value that you set for ``EvaluationPeriods`` is the N value. For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*. + * If you omit this parameter, CW uses the same value here that you set for ``EvaluationPeriods``, and the alarm goes to alarm state if that many consecutive periods are breaching. */ datapointsToAlarm?: pulumi.Input; /** - * The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify Dimensions. Instead, you use Metrics. + * The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify ``Dimensions``. Instead, you use ``Metrics``. */ dimensions?: pulumi.Input[]>; /** - * Used only for alarms based on percentiles. + * Used only for alarms based on percentiles. If ``ignore``, the alarm state does not change during periods with too few data points to be statistically significant. If ``evaluate`` or this parameter is not used, the alarm is always evaluated and possibly changes state no matter how many data points are available. */ evaluateLowSampleCountPercentile?: pulumi.Input; /** - * The number of periods over which data is compared to the specified threshold. + * The number of periods over which data is compared to the specified threshold. If you are setting an alarm that requires that a number of consecutive data points be breaching to trigger the alarm, this value specifies that number. If you are setting an "M out of N" alarm, this value is the N, and ``DatapointsToAlarm`` is the M. + * For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*. */ evaluationPeriods: pulumi.Input; /** * The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100. + * For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both. + * For an alarm based on a math expression, you can't specify ``ExtendedStatistic``. Instead, you use ``Metrics``. */ extendedStatistic?: pulumi.Input; /** - * The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state. + * The actions to execute when this alarm transitions to the ``INSUFFICIENT_DATA`` state from any other state. Each action is specified as an Amazon Resource Name (ARN). */ insufficientDataActions?: pulumi.Input[]>; /** - * The name of the metric associated with the alarm. + * The name of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you use ``Metrics`` instead and you can't specify ``MetricName``. */ metricName?: pulumi.Input; /** - * An array that enables you to create an alarm based on the result of a metric math expression. + * An array that enables you to create an alarm based on the result of a metric math expression. Each item in the array either retrieves a metric or performs a math expression. + * If you specify the ``Metrics`` parameter, you cannot specify ``MetricName``, ``Dimensions``, ``Period``, ``Namespace``, ``Statistic``, ``ExtendedStatistic``, or ``Unit``. */ metrics?: pulumi.Input[]>; /** - * The namespace of the metric associated with the alarm. + * The namespace of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you can't specify ``Namespace`` and you use ``Metrics`` instead. + * For a list of namespaces for metrics from AWS services, see [Services That Publish Metrics.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) */ namespace?: pulumi.Input; /** - * The actions to execute when this alarm transitions to the OK state from any other state. + * The actions to execute when this alarm transitions to the ``OK`` state from any other state. Each action is specified as an Amazon Resource Name (ARN). */ okActions?: pulumi.Input[]>; /** - * The period in seconds, over which the statistic is applied. + * The period, in seconds, over which the statistic is applied. This is required for an alarm based on a metric. Valid values are 10, 30, 60, and any multiple of 60. + * For an alarm based on a math expression, you can't specify ``Period``, and instead you use the ``Metrics`` parameter. + * *Minimum:* 10 */ period?: pulumi.Input; /** - * The statistic for the metric associated with the alarm, other than percentile. + * The statistic for the metric associated with the alarm, other than percentile. For percentile statistics, use ``ExtendedStatistic``. + * For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both. + * For an alarm based on a math expression, you can't specify ``Statistic``. Instead, you use ``Metrics``. */ statistic?: pulumi.Input; + tags?: pulumi.Input[]>; /** - * In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm. + * The value to compare with the specified statistic. */ threshold?: pulumi.Input; /** - * In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm. + * In an alarm based on an anomaly detection model, this is the ID of the ``ANOMALY_DETECTION_BAND`` function used as the threshold for the alarm. */ thresholdMetricId?: pulumi.Input; /** - * Sets how this alarm is to handle missing data points. Valid values are breaching, notBreaching, ignore, and missing. + * Sets how this alarm is to handle missing data points. Valid values are ``breaching``, ``notBreaching``, ``ignore``, and ``missing``. For more information, see [Configuring How Alarms Treat Missing Data](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data) in the *Amazon User Guide*. + * If you omit this parameter, the default behavior of ``missing`` is used. */ treatMissingData?: pulumi.Input; /** - * The unit of the metric associated with the alarm. + * The unit of the metric associated with the alarm. Specify this only if you are creating an alarm based on a single metric. Do not specify this if you are specifying a ``Metrics`` array. + * You can specify the following values: 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, or None. */ unit?: pulumi.Input; } diff --git a/sdk/nodejs/cloudwatch/compositeAlarm.ts b/sdk/nodejs/cloudwatch/compositeAlarm.ts index 47767a75a0..0bc01be5a5 100644 --- a/sdk/nodejs/cloudwatch/compositeAlarm.ts +++ b/sdk/nodejs/cloudwatch/compositeAlarm.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"; /** @@ -78,6 +81,10 @@ export class CompositeAlarm extends pulumi.CustomResource { * The actions to execute when this alarm transitions to the OK state from any other state. Each action is specified as an Amazon Resource Name (ARN). */ public readonly okActions!: pulumi.Output; + /** + * A list of key-value pairs to associate with the composite alarm. You can associate as many as 50 tags with an alarm. + */ + public readonly tags!: pulumi.Output; /** * Create a CompositeAlarm resource with the given unique name, arguments, and options. @@ -103,6 +110,7 @@ export class CompositeAlarm extends pulumi.CustomResource { resourceInputs["alarmRule"] = args ? args.alarmRule : undefined; resourceInputs["insufficientDataActions"] = args ? args.insufficientDataActions : undefined; resourceInputs["okActions"] = args ? args.okActions : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; resourceInputs["arn"] = undefined /*out*/; } else { resourceInputs["actionsEnabled"] = undefined /*out*/; @@ -116,6 +124,7 @@ export class CompositeAlarm extends pulumi.CustomResource { resourceInputs["arn"] = undefined /*out*/; resourceInputs["insufficientDataActions"] = undefined /*out*/; resourceInputs["okActions"] = undefined /*out*/; + resourceInputs["tags"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); const replaceOnChanges = { replaceOnChanges: ["alarmName"] }; @@ -168,4 +177,8 @@ export interface CompositeAlarmArgs { * The actions to execute when this alarm transitions to the OK state from any other state. Each action is specified as an Amazon Resource Name (ARN). */ okActions?: pulumi.Input[]>; + /** + * A list of key-value pairs to associate with the composite alarm. You can associate as many as 50 tags with an alarm. + */ + tags?: pulumi.Input[]>; } diff --git a/sdk/nodejs/cloudwatch/getAlarm.ts b/sdk/nodejs/cloudwatch/getAlarm.ts index a2ffec1cbd..d6cac0a73e 100644 --- a/sdk/nodejs/cloudwatch/getAlarm.ts +++ b/sdk/nodejs/cloudwatch/getAlarm.ts @@ -8,7 +8,9 @@ import * as enums from "../types/enums"; import * as utilities from "../utilities"; /** - * Resource Type definition for AWS::CloudWatch::Alarm + * The ``AWS::CloudWatch::Alarm`` type specifies an alarm and associates it with the specified metric or metric math expression. + * When this operation creates an alarm, the alarm state is immediately set to ``INSUFFICIENT_DATA``. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed. + * When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm. */ export function getAlarm(args: GetAlarmArgs, opts?: pulumi.InvokeOptions): Promise { @@ -20,7 +22,8 @@ export function getAlarm(args: GetAlarmArgs, opts?: pulumi.InvokeOptions): Promi export interface GetAlarmArgs { /** - * The name of the alarm. + * The name of the alarm. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the alarm name. + * 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. */ alarmName: string; } @@ -31,88 +34,100 @@ export interface GetAlarmResult { */ readonly actionsEnabled?: boolean; /** - * The list of actions to execute when this alarm transitions into an ALARM state from any other state. + * The list of actions to execute when this alarm transitions into an ALARM state from any other state. Specify each action as an Amazon Resource Name (ARN). For more information about creating alarms and the actions that you can specify, see [PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html) in the *API Reference*. */ readonly alarmActions?: string[]; /** * The description of the alarm. */ readonly alarmDescription?: string; - /** - * Amazon Resource Name is a unique name for each resource. - */ readonly arn?: string; /** - * The arithmetic operation to use when comparing the specified statistic and threshold. + * The arithmetic operation to use when comparing the specified statistic and threshold. The specified statistic value is used as the first operand. */ readonly comparisonOperator?: string; /** - * The number of datapoints that must be breaching to trigger the alarm. + * The number of datapoints that must be breaching to trigger the alarm. This is used only if you are setting an "M out of N" alarm. In that case, this value is the M, and the value that you set for ``EvaluationPeriods`` is the N value. For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*. + * If you omit this parameter, CW uses the same value here that you set for ``EvaluationPeriods``, and the alarm goes to alarm state if that many consecutive periods are breaching. */ readonly datapointsToAlarm?: number; /** - * The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify Dimensions. Instead, you use Metrics. + * The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify ``Dimensions``. Instead, you use ``Metrics``. */ readonly dimensions?: outputs.cloudwatch.AlarmDimension[]; /** - * Used only for alarms based on percentiles. + * Used only for alarms based on percentiles. If ``ignore``, the alarm state does not change during periods with too few data points to be statistically significant. If ``evaluate`` or this parameter is not used, the alarm is always evaluated and possibly changes state no matter how many data points are available. */ readonly evaluateLowSampleCountPercentile?: string; /** - * The number of periods over which data is compared to the specified threshold. + * The number of periods over which data is compared to the specified threshold. If you are setting an alarm that requires that a number of consecutive data points be breaching to trigger the alarm, this value specifies that number. If you are setting an "M out of N" alarm, this value is the N, and ``DatapointsToAlarm`` is the M. + * For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*. */ readonly evaluationPeriods?: number; /** * The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100. + * For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both. + * For an alarm based on a math expression, you can't specify ``ExtendedStatistic``. Instead, you use ``Metrics``. */ readonly extendedStatistic?: string; /** - * The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state. + * The actions to execute when this alarm transitions to the ``INSUFFICIENT_DATA`` state from any other state. Each action is specified as an Amazon Resource Name (ARN). */ readonly insufficientDataActions?: string[]; /** - * The name of the metric associated with the alarm. + * The name of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you use ``Metrics`` instead and you can't specify ``MetricName``. */ readonly metricName?: string; /** - * An array that enables you to create an alarm based on the result of a metric math expression. + * An array that enables you to create an alarm based on the result of a metric math expression. Each item in the array either retrieves a metric or performs a math expression. + * If you specify the ``Metrics`` parameter, you cannot specify ``MetricName``, ``Dimensions``, ``Period``, ``Namespace``, ``Statistic``, ``ExtendedStatistic``, or ``Unit``. */ readonly metrics?: outputs.cloudwatch.AlarmMetricDataQuery[]; /** - * The namespace of the metric associated with the alarm. + * The namespace of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you can't specify ``Namespace`` and you use ``Metrics`` instead. + * For a list of namespaces for metrics from AWS services, see [Services That Publish Metrics.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) */ readonly namespace?: string; /** - * The actions to execute when this alarm transitions to the OK state from any other state. + * The actions to execute when this alarm transitions to the ``OK`` state from any other state. Each action is specified as an Amazon Resource Name (ARN). */ readonly okActions?: string[]; /** - * The period in seconds, over which the statistic is applied. + * The period, in seconds, over which the statistic is applied. This is required for an alarm based on a metric. Valid values are 10, 30, 60, and any multiple of 60. + * For an alarm based on a math expression, you can't specify ``Period``, and instead you use the ``Metrics`` parameter. + * *Minimum:* 10 */ readonly period?: number; /** - * The statistic for the metric associated with the alarm, other than percentile. + * The statistic for the metric associated with the alarm, other than percentile. For percentile statistics, use ``ExtendedStatistic``. + * For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both. + * For an alarm based on a math expression, you can't specify ``Statistic``. Instead, you use ``Metrics``. */ readonly statistic?: string; + readonly tags?: outputs.Tag[]; /** - * In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm. + * The value to compare with the specified statistic. */ readonly threshold?: number; /** - * In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm. + * In an alarm based on an anomaly detection model, this is the ID of the ``ANOMALY_DETECTION_BAND`` function used as the threshold for the alarm. */ readonly thresholdMetricId?: string; /** - * Sets how this alarm is to handle missing data points. Valid values are breaching, notBreaching, ignore, and missing. + * Sets how this alarm is to handle missing data points. Valid values are ``breaching``, ``notBreaching``, ``ignore``, and ``missing``. For more information, see [Configuring How Alarms Treat Missing Data](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data) in the *Amazon User Guide*. + * If you omit this parameter, the default behavior of ``missing`` is used. */ readonly treatMissingData?: string; /** - * The unit of the metric associated with the alarm. + * The unit of the metric associated with the alarm. Specify this only if you are creating an alarm based on a single metric. Do not specify this if you are specifying a ``Metrics`` array. + * You can specify the following values: 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, or None. */ readonly unit?: string; } /** - * Resource Type definition for AWS::CloudWatch::Alarm + * The ``AWS::CloudWatch::Alarm`` type specifies an alarm and associates it with the specified metric or metric math expression. + * When this operation creates an alarm, the alarm state is immediately set to ``INSUFFICIENT_DATA``. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed. + * When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm. */ export function getAlarmOutput(args: GetAlarmOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { return pulumi.output(args).apply((a: any) => getAlarm(a, opts)) @@ -120,7 +135,8 @@ export function getAlarmOutput(args: GetAlarmOutputArgs, opts?: pulumi.InvokeOpt export interface GetAlarmOutputArgs { /** - * The name of the alarm. + * The name of the alarm. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the alarm name. + * 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. */ alarmName: pulumi.Input; } diff --git a/sdk/nodejs/cloudwatch/getCompositeAlarm.ts b/sdk/nodejs/cloudwatch/getCompositeAlarm.ts index 1d7763376a..ae9f04fb71 100644 --- a/sdk/nodejs/cloudwatch/getCompositeAlarm.ts +++ b/sdk/nodejs/cloudwatch/getCompositeAlarm.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"; /** @@ -63,6 +66,10 @@ export interface GetCompositeAlarmResult { * The actions to execute when this alarm transitions to the OK state from any other state. Each action is specified as an Amazon Resource Name (ARN). */ readonly okActions?: string[]; + /** + * A list of key-value pairs to associate with the composite alarm. You can associate as many as 50 tags with an alarm. + */ + readonly tags?: outputs.Tag[]; } /** * The AWS::CloudWatch::CompositeAlarm type specifies an alarm which aggregates the states of other Alarms (Metric or Composite Alarms) as defined by the AlarmRule expression 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/deadline/farm.ts b/sdk/nodejs/deadline/farm.ts new file mode 100644 index 0000000000..d0a26113ab --- /dev/null +++ b/sdk/nodejs/deadline/farm.ts @@ -0,0 +1,83 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * Definition of AWS::Deadline::Farm Resource Type + */ +export class Farm extends pulumi.CustomResource { + /** + * Get an existing Farm 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): Farm { + return new Farm(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:deadline:Farm'; + + /** + * Returns true if the given object is an instance of Farm. 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 Farm { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Farm.__pulumiType; + } + + public /*out*/ readonly arn!: pulumi.Output; + public readonly description!: pulumi.Output; + public readonly displayName!: pulumi.Output; + public /*out*/ readonly farmId!: pulumi.Output; + public readonly kmsKeyArn!: pulumi.Output; + + /** + * Create a Farm 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: FarmArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.displayName === undefined) && !opts.urn) { + throw new Error("Missing required property 'displayName'"); + } + resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["displayName"] = args ? args.displayName : undefined; + resourceInputs["kmsKeyArn"] = args ? args.kmsKeyArn : undefined; + resourceInputs["arn"] = undefined /*out*/; + resourceInputs["farmId"] = undefined /*out*/; + } else { + resourceInputs["arn"] = undefined /*out*/; + resourceInputs["description"] = undefined /*out*/; + resourceInputs["displayName"] = undefined /*out*/; + resourceInputs["farmId"] = undefined /*out*/; + resourceInputs["kmsKeyArn"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const replaceOnChanges = { replaceOnChanges: ["kmsKeyArn"] }; + opts = pulumi.mergeOptions(opts, replaceOnChanges); + super(Farm.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a Farm resource. + */ +export interface FarmArgs { + description?: pulumi.Input; + displayName: pulumi.Input; + kmsKeyArn?: pulumi.Input; +} diff --git a/sdk/nodejs/deadline/fleet.ts b/sdk/nodejs/deadline/fleet.ts new file mode 100644 index 0000000000..c5424baf0b --- /dev/null +++ b/sdk/nodejs/deadline/fleet.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"; + +/** + * Definition of AWS::Deadline::Fleet Resource Type + */ +export class Fleet extends pulumi.CustomResource { + /** + * Get an existing Fleet 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): Fleet { + return new Fleet(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:deadline:Fleet'; + + /** + * Returns true if the given object is an instance of Fleet. 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 Fleet { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Fleet.__pulumiType; + } + + public /*out*/ readonly arn!: pulumi.Output; + public /*out*/ readonly capabilities!: pulumi.Output; + public readonly configuration!: pulumi.Output; + public readonly description!: pulumi.Output; + public readonly displayName!: pulumi.Output; + public readonly farmId!: pulumi.Output; + public /*out*/ readonly fleetId!: pulumi.Output; + public readonly maxWorkerCount!: pulumi.Output; + public readonly minWorkerCount!: pulumi.Output; + public readonly roleArn!: pulumi.Output; + public /*out*/ readonly status!: pulumi.Output; + public /*out*/ readonly workerCount!: pulumi.Output; + + /** + * Create a Fleet 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: FleetArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.configuration === undefined) && !opts.urn) { + throw new Error("Missing required property 'configuration'"); + } + if ((!args || args.displayName === undefined) && !opts.urn) { + throw new Error("Missing required property 'displayName'"); + } + if ((!args || args.maxWorkerCount === undefined) && !opts.urn) { + throw new Error("Missing required property 'maxWorkerCount'"); + } + if ((!args || args.roleArn === undefined) && !opts.urn) { + throw new Error("Missing required property 'roleArn'"); + } + resourceInputs["configuration"] = args ? args.configuration : undefined; + resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["displayName"] = args ? args.displayName : undefined; + resourceInputs["farmId"] = args ? args.farmId : undefined; + resourceInputs["maxWorkerCount"] = args ? args.maxWorkerCount : undefined; + resourceInputs["minWorkerCount"] = args ? args.minWorkerCount : undefined; + resourceInputs["roleArn"] = args ? args.roleArn : undefined; + resourceInputs["arn"] = undefined /*out*/; + resourceInputs["capabilities"] = undefined /*out*/; + resourceInputs["fleetId"] = undefined /*out*/; + resourceInputs["status"] = undefined /*out*/; + resourceInputs["workerCount"] = undefined /*out*/; + } else { + resourceInputs["arn"] = undefined /*out*/; + resourceInputs["capabilities"] = undefined /*out*/; + resourceInputs["configuration"] = undefined /*out*/; + resourceInputs["description"] = undefined /*out*/; + resourceInputs["displayName"] = undefined /*out*/; + resourceInputs["farmId"] = undefined /*out*/; + resourceInputs["fleetId"] = undefined /*out*/; + resourceInputs["maxWorkerCount"] = undefined /*out*/; + resourceInputs["minWorkerCount"] = undefined /*out*/; + resourceInputs["roleArn"] = undefined /*out*/; + resourceInputs["status"] = undefined /*out*/; + resourceInputs["workerCount"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const replaceOnChanges = { replaceOnChanges: ["farmId"] }; + opts = pulumi.mergeOptions(opts, replaceOnChanges); + super(Fleet.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a Fleet resource. + */ +export interface FleetArgs { + configuration: pulumi.Input; + description?: pulumi.Input; + displayName: pulumi.Input; + farmId?: pulumi.Input; + maxWorkerCount: pulumi.Input; + minWorkerCount?: pulumi.Input; + roleArn: pulumi.Input; +} diff --git a/sdk/nodejs/deadline/getFarm.ts b/sdk/nodejs/deadline/getFarm.ts new file mode 100644 index 0000000000..6317282b87 --- /dev/null +++ b/sdk/nodejs/deadline/getFarm.ts @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * Definition of AWS::Deadline::Farm Resource Type + */ +export function getFarm(args: GetFarmArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:deadline:getFarm", { + "arn": args.arn, + }, opts); +} + +export interface GetFarmArgs { + arn: string; +} + +export interface GetFarmResult { + readonly arn?: string; + readonly description?: string; + readonly displayName?: string; + readonly farmId?: string; +} +/** + * Definition of AWS::Deadline::Farm Resource Type + */ +export function getFarmOutput(args: GetFarmOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getFarm(a, opts)) +} + +export interface GetFarmOutputArgs { + arn: pulumi.Input; +} diff --git a/sdk/nodejs/deadline/getFleet.ts b/sdk/nodejs/deadline/getFleet.ts new file mode 100644 index 0000000000..5806f9fe5a --- /dev/null +++ b/sdk/nodejs/deadline/getFleet.ts @@ -0,0 +1,47 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as enums from "../types/enums"; +import * as utilities from "../utilities"; + +/** + * Definition of AWS::Deadline::Fleet Resource Type + */ +export function getFleet(args: GetFleetArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:deadline:getFleet", { + "arn": args.arn, + }, opts); +} + +export interface GetFleetArgs { + arn: string; +} + +export interface GetFleetResult { + readonly arn?: string; + readonly capabilities?: outputs.deadline.FleetCapabilities; + readonly configuration?: outputs.deadline.FleetConfiguration0Properties | outputs.deadline.FleetConfiguration1Properties; + readonly description?: string; + readonly displayName?: string; + readonly fleetId?: string; + readonly maxWorkerCount?: number; + readonly minWorkerCount?: number; + readonly roleArn?: string; + readonly status?: enums.deadline.FleetStatus; + readonly workerCount?: number; +} +/** + * Definition of AWS::Deadline::Fleet Resource Type + */ +export function getFleetOutput(args: GetFleetOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getFleet(a, opts)) +} + +export interface GetFleetOutputArgs { + arn: pulumi.Input; +} diff --git a/sdk/nodejs/deadline/getLicenseEndpoint.ts b/sdk/nodejs/deadline/getLicenseEndpoint.ts new file mode 100644 index 0000000000..e5b7b7c711 --- /dev/null +++ b/sdk/nodejs/deadline/getLicenseEndpoint.ts @@ -0,0 +1,41 @@ +// *** 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::Deadline::LicenseEndpoint Resource Type + */ +export function getLicenseEndpoint(args: GetLicenseEndpointArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:deadline:getLicenseEndpoint", { + "arn": args.arn, + }, opts); +} + +export interface GetLicenseEndpointArgs { + arn: string; +} + +export interface GetLicenseEndpointResult { + readonly arn?: string; + readonly dnsName?: string; + readonly licenseEndpointId?: string; + readonly status?: enums.deadline.LicenseEndpointStatus; + readonly statusMessage?: string; +} +/** + * Definition of AWS::Deadline::LicenseEndpoint Resource Type + */ +export function getLicenseEndpointOutput(args: GetLicenseEndpointOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getLicenseEndpoint(a, opts)) +} + +export interface GetLicenseEndpointOutputArgs { + arn: pulumi.Input; +} diff --git a/sdk/nodejs/deadline/getMeteredProduct.ts b/sdk/nodejs/deadline/getMeteredProduct.ts new file mode 100644 index 0000000000..88cf7aa4f9 --- /dev/null +++ b/sdk/nodejs/deadline/getMeteredProduct.ts @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * Definition of AWS::Deadline::MeteredProduct Resource Type + */ +export function getMeteredProduct(args: GetMeteredProductArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:deadline:getMeteredProduct", { + "arn": args.arn, + }, opts); +} + +export interface GetMeteredProductArgs { + arn: string; +} + +export interface GetMeteredProductResult { + readonly arn?: string; + readonly family?: string; + readonly port?: number; + readonly vendor?: string; +} +/** + * Definition of AWS::Deadline::MeteredProduct Resource Type + */ +export function getMeteredProductOutput(args: GetMeteredProductOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getMeteredProduct(a, opts)) +} + +export interface GetMeteredProductOutputArgs { + arn: pulumi.Input; +} diff --git a/sdk/nodejs/deadline/getQueue.ts b/sdk/nodejs/deadline/getQueue.ts new file mode 100644 index 0000000000..48345545bc --- /dev/null +++ b/sdk/nodejs/deadline/getQueue.ts @@ -0,0 +1,46 @@ +// *** 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::Deadline::Queue Resource Type + */ +export function getQueue(args: GetQueueArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:deadline:getQueue", { + "arn": args.arn, + }, opts); +} + +export interface GetQueueArgs { + arn: string; +} + +export interface GetQueueResult { + readonly allowedStorageProfileIds?: string[]; + readonly arn?: string; + readonly defaultBudgetAction?: enums.deadline.QueueDefaultQueueBudgetAction; + readonly description?: string; + readonly displayName?: string; + readonly jobAttachmentSettings?: outputs.deadline.QueueJobAttachmentSettings; + readonly jobRunAsUser?: outputs.deadline.QueueJobRunAsUser; + readonly queueId?: string; + readonly requiredFileSystemLocationNames?: string[]; + readonly roleArn?: string; +} +/** + * Definition of AWS::Deadline::Queue Resource Type + */ +export function getQueueOutput(args: GetQueueOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getQueue(a, opts)) +} + +export interface GetQueueOutputArgs { + arn: pulumi.Input; +} diff --git a/sdk/nodejs/deadline/getQueueEnvironment.ts b/sdk/nodejs/deadline/getQueueEnvironment.ts new file mode 100644 index 0000000000..343d34a47e --- /dev/null +++ b/sdk/nodejs/deadline/getQueueEnvironment.ts @@ -0,0 +1,47 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as enums from "../types/enums"; +import * as utilities from "../utilities"; + +/** + * Definition of AWS::Deadline::QueueEnvironment Resource Type + */ +export function getQueueEnvironment(args: GetQueueEnvironmentArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:deadline:getQueueEnvironment", { + "farmId": args.farmId, + "queueEnvironmentId": args.queueEnvironmentId, + "queueId": args.queueId, + }, opts); +} + +export interface GetQueueEnvironmentArgs { + farmId: string; + queueEnvironmentId: string; + queueId: string; +} + +export interface GetQueueEnvironmentResult { + readonly name?: string; + readonly priority?: number; + readonly queueEnvironmentId?: string; + readonly template?: string; + readonly templateType?: enums.deadline.QueueEnvironmentEnvironmentTemplateType; +} +/** + * Definition of AWS::Deadline::QueueEnvironment Resource Type + */ +export function getQueueEnvironmentOutput(args: GetQueueEnvironmentOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getQueueEnvironment(a, opts)) +} + +export interface GetQueueEnvironmentOutputArgs { + farmId: pulumi.Input; + queueEnvironmentId: pulumi.Input; + queueId: pulumi.Input; +} diff --git a/sdk/nodejs/deadline/getStorageProfile.ts b/sdk/nodejs/deadline/getStorageProfile.ts new file mode 100644 index 0000000000..4b9e8653ce --- /dev/null +++ b/sdk/nodejs/deadline/getStorageProfile.ts @@ -0,0 +1,43 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as enums from "../types/enums"; +import * as utilities from "../utilities"; + +/** + * Definition of AWS::Deadline::StorageProfile Resource Type + */ +export function getStorageProfile(args: GetStorageProfileArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:deadline:getStorageProfile", { + "farmId": args.farmId, + "storageProfileId": args.storageProfileId, + }, opts); +} + +export interface GetStorageProfileArgs { + farmId: string; + storageProfileId: string; +} + +export interface GetStorageProfileResult { + readonly displayName?: string; + readonly fileSystemLocations?: outputs.deadline.StorageProfileFileSystemLocation[]; + readonly osFamily?: enums.deadline.StorageProfileOperatingSystemFamily; + readonly storageProfileId?: string; +} +/** + * Definition of AWS::Deadline::StorageProfile Resource Type + */ +export function getStorageProfileOutput(args: GetStorageProfileOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getStorageProfile(a, opts)) +} + +export interface GetStorageProfileOutputArgs { + farmId: pulumi.Input; + storageProfileId: pulumi.Input; +} diff --git a/sdk/nodejs/deadline/index.ts b/sdk/nodejs/deadline/index.ts new file mode 100644 index 0000000000..d0fdde6226 --- /dev/null +++ b/sdk/nodejs/deadline/index.ts @@ -0,0 +1,112 @@ +// *** 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 { FarmArgs } from "./farm"; +export type Farm = import("./farm").Farm; +export const Farm: typeof import("./farm").Farm = null as any; +utilities.lazyLoad(exports, ["Farm"], () => require("./farm")); + +export { FleetArgs } from "./fleet"; +export type Fleet = import("./fleet").Fleet; +export const Fleet: typeof import("./fleet").Fleet = null as any; +utilities.lazyLoad(exports, ["Fleet"], () => require("./fleet")); + +export { GetFarmArgs, GetFarmResult, GetFarmOutputArgs } from "./getFarm"; +export const getFarm: typeof import("./getFarm").getFarm = null as any; +export const getFarmOutput: typeof import("./getFarm").getFarmOutput = null as any; +utilities.lazyLoad(exports, ["getFarm","getFarmOutput"], () => require("./getFarm")); + +export { GetFleetArgs, GetFleetResult, GetFleetOutputArgs } from "./getFleet"; +export const getFleet: typeof import("./getFleet").getFleet = null as any; +export const getFleetOutput: typeof import("./getFleet").getFleetOutput = null as any; +utilities.lazyLoad(exports, ["getFleet","getFleetOutput"], () => require("./getFleet")); + +export { GetLicenseEndpointArgs, GetLicenseEndpointResult, GetLicenseEndpointOutputArgs } from "./getLicenseEndpoint"; +export const getLicenseEndpoint: typeof import("./getLicenseEndpoint").getLicenseEndpoint = null as any; +export const getLicenseEndpointOutput: typeof import("./getLicenseEndpoint").getLicenseEndpointOutput = null as any; +utilities.lazyLoad(exports, ["getLicenseEndpoint","getLicenseEndpointOutput"], () => require("./getLicenseEndpoint")); + +export { GetMeteredProductArgs, GetMeteredProductResult, GetMeteredProductOutputArgs } from "./getMeteredProduct"; +export const getMeteredProduct: typeof import("./getMeteredProduct").getMeteredProduct = null as any; +export const getMeteredProductOutput: typeof import("./getMeteredProduct").getMeteredProductOutput = null as any; +utilities.lazyLoad(exports, ["getMeteredProduct","getMeteredProductOutput"], () => require("./getMeteredProduct")); + +export { GetQueueArgs, GetQueueResult, GetQueueOutputArgs } from "./getQueue"; +export const getQueue: typeof import("./getQueue").getQueue = null as any; +export const getQueueOutput: typeof import("./getQueue").getQueueOutput = null as any; +utilities.lazyLoad(exports, ["getQueue","getQueueOutput"], () => require("./getQueue")); + +export { GetQueueEnvironmentArgs, GetQueueEnvironmentResult, GetQueueEnvironmentOutputArgs } from "./getQueueEnvironment"; +export const getQueueEnvironment: typeof import("./getQueueEnvironment").getQueueEnvironment = null as any; +export const getQueueEnvironmentOutput: typeof import("./getQueueEnvironment").getQueueEnvironmentOutput = null as any; +utilities.lazyLoad(exports, ["getQueueEnvironment","getQueueEnvironmentOutput"], () => require("./getQueueEnvironment")); + +export { GetStorageProfileArgs, GetStorageProfileResult, GetStorageProfileOutputArgs } from "./getStorageProfile"; +export const getStorageProfile: typeof import("./getStorageProfile").getStorageProfile = null as any; +export const getStorageProfileOutput: typeof import("./getStorageProfile").getStorageProfileOutput = null as any; +utilities.lazyLoad(exports, ["getStorageProfile","getStorageProfileOutput"], () => require("./getStorageProfile")); + +export { LicenseEndpointArgs } from "./licenseEndpoint"; +export type LicenseEndpoint = import("./licenseEndpoint").LicenseEndpoint; +export const LicenseEndpoint: typeof import("./licenseEndpoint").LicenseEndpoint = null as any; +utilities.lazyLoad(exports, ["LicenseEndpoint"], () => require("./licenseEndpoint")); + +export { MeteredProductArgs } from "./meteredProduct"; +export type MeteredProduct = import("./meteredProduct").MeteredProduct; +export const MeteredProduct: typeof import("./meteredProduct").MeteredProduct = null as any; +utilities.lazyLoad(exports, ["MeteredProduct"], () => require("./meteredProduct")); + +export { QueueArgs } from "./queue"; +export type Queue = import("./queue").Queue; +export const Queue: typeof import("./queue").Queue = null as any; +utilities.lazyLoad(exports, ["Queue"], () => require("./queue")); + +export { QueueEnvironmentArgs } from "./queueEnvironment"; +export type QueueEnvironment = import("./queueEnvironment").QueueEnvironment; +export const QueueEnvironment: typeof import("./queueEnvironment").QueueEnvironment = null as any; +utilities.lazyLoad(exports, ["QueueEnvironment"], () => require("./queueEnvironment")); + +export { QueueFleetAssociationArgs } from "./queueFleetAssociation"; +export type QueueFleetAssociation = import("./queueFleetAssociation").QueueFleetAssociation; +export const QueueFleetAssociation: typeof import("./queueFleetAssociation").QueueFleetAssociation = null as any; +utilities.lazyLoad(exports, ["QueueFleetAssociation"], () => require("./queueFleetAssociation")); + +export { StorageProfileArgs } from "./storageProfile"; +export type StorageProfile = import("./storageProfile").StorageProfile; +export const StorageProfile: typeof import("./storageProfile").StorageProfile = null as any; +utilities.lazyLoad(exports, ["StorageProfile"], () => require("./storageProfile")); + + +// Export enums: +export * from "../types/enums/deadline"; + +const _module = { + version: utilities.getVersion(), + construct: (name: string, type: string, urn: string): pulumi.Resource => { + switch (type) { + case "aws-native:deadline:Farm": + return new Farm(name, undefined, { urn }) + case "aws-native:deadline:Fleet": + return new Fleet(name, undefined, { urn }) + case "aws-native:deadline:LicenseEndpoint": + return new LicenseEndpoint(name, undefined, { urn }) + case "aws-native:deadline:MeteredProduct": + return new MeteredProduct(name, undefined, { urn }) + case "aws-native:deadline:Queue": + return new Queue(name, undefined, { urn }) + case "aws-native:deadline:QueueEnvironment": + return new QueueEnvironment(name, undefined, { urn }) + case "aws-native:deadline:QueueFleetAssociation": + return new QueueFleetAssociation(name, undefined, { urn }) + case "aws-native:deadline:StorageProfile": + return new StorageProfile(name, undefined, { urn }) + default: + throw new Error(`unknown resource type ${type}`); + } + }, +}; +pulumi.runtime.registerResourceModule("aws-native", "deadline", _module) diff --git a/sdk/nodejs/deadline/licenseEndpoint.ts b/sdk/nodejs/deadline/licenseEndpoint.ts new file mode 100644 index 0000000000..e25d416b07 --- /dev/null +++ b/sdk/nodejs/deadline/licenseEndpoint.ts @@ -0,0 +1,101 @@ +// *** 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::Deadline::LicenseEndpoint Resource Type + */ +export class LicenseEndpoint extends pulumi.CustomResource { + /** + * Get an existing LicenseEndpoint 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): LicenseEndpoint { + return new LicenseEndpoint(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:deadline:LicenseEndpoint'; + + /** + * Returns true if the given object is an instance of LicenseEndpoint. 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 LicenseEndpoint { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === LicenseEndpoint.__pulumiType; + } + + public /*out*/ readonly arn!: pulumi.Output; + public /*out*/ readonly dnsName!: pulumi.Output; + public /*out*/ readonly licenseEndpointId!: pulumi.Output; + public readonly securityGroupIds!: pulumi.Output; + public /*out*/ readonly status!: pulumi.Output; + public /*out*/ readonly statusMessage!: pulumi.Output; + public readonly subnetIds!: pulumi.Output; + public readonly vpcId!: pulumi.Output; + + /** + * Create a LicenseEndpoint 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: LicenseEndpointArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.securityGroupIds === undefined) && !opts.urn) { + throw new Error("Missing required property 'securityGroupIds'"); + } + if ((!args || args.subnetIds === undefined) && !opts.urn) { + throw new Error("Missing required property 'subnetIds'"); + } + if ((!args || args.vpcId === undefined) && !opts.urn) { + throw new Error("Missing required property 'vpcId'"); + } + resourceInputs["securityGroupIds"] = args ? args.securityGroupIds : undefined; + resourceInputs["subnetIds"] = args ? args.subnetIds : undefined; + resourceInputs["vpcId"] = args ? args.vpcId : undefined; + resourceInputs["arn"] = undefined /*out*/; + resourceInputs["dnsName"] = undefined /*out*/; + resourceInputs["licenseEndpointId"] = undefined /*out*/; + resourceInputs["status"] = undefined /*out*/; + resourceInputs["statusMessage"] = undefined /*out*/; + } else { + resourceInputs["arn"] = undefined /*out*/; + resourceInputs["dnsName"] = undefined /*out*/; + resourceInputs["licenseEndpointId"] = undefined /*out*/; + resourceInputs["securityGroupIds"] = undefined /*out*/; + resourceInputs["status"] = undefined /*out*/; + resourceInputs["statusMessage"] = undefined /*out*/; + resourceInputs["subnetIds"] = undefined /*out*/; + resourceInputs["vpcId"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const replaceOnChanges = { replaceOnChanges: ["securityGroupIds[*]", "subnetIds[*]", "vpcId"] }; + opts = pulumi.mergeOptions(opts, replaceOnChanges); + super(LicenseEndpoint.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a LicenseEndpoint resource. + */ +export interface LicenseEndpointArgs { + securityGroupIds: pulumi.Input[]>; + subnetIds: pulumi.Input[]>; + vpcId: pulumi.Input; +} diff --git a/sdk/nodejs/deadline/meteredProduct.ts b/sdk/nodejs/deadline/meteredProduct.ts new file mode 100644 index 0000000000..0f20effc11 --- /dev/null +++ b/sdk/nodejs/deadline/meteredProduct.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 utilities from "../utilities"; + +/** + * Definition of AWS::Deadline::MeteredProduct Resource Type + */ +export class MeteredProduct extends pulumi.CustomResource { + /** + * Get an existing MeteredProduct 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): MeteredProduct { + return new MeteredProduct(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:deadline:MeteredProduct'; + + /** + * Returns true if the given object is an instance of MeteredProduct. 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 MeteredProduct { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === MeteredProduct.__pulumiType; + } + + public /*out*/ readonly arn!: pulumi.Output; + public readonly family!: pulumi.Output; + public readonly licenseEndpointId!: pulumi.Output; + public readonly port!: pulumi.Output; + public readonly productId!: pulumi.Output; + public readonly vendor!: pulumi.Output; + + /** + * Create a MeteredProduct 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?: MeteredProductArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + resourceInputs["family"] = args ? args.family : undefined; + resourceInputs["licenseEndpointId"] = args ? args.licenseEndpointId : undefined; + resourceInputs["port"] = args ? args.port : undefined; + resourceInputs["productId"] = args ? args.productId : undefined; + resourceInputs["vendor"] = args ? args.vendor : undefined; + resourceInputs["arn"] = undefined /*out*/; + } else { + resourceInputs["arn"] = undefined /*out*/; + resourceInputs["family"] = undefined /*out*/; + resourceInputs["licenseEndpointId"] = undefined /*out*/; + resourceInputs["port"] = undefined /*out*/; + resourceInputs["productId"] = undefined /*out*/; + resourceInputs["vendor"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const replaceOnChanges = { replaceOnChanges: ["licenseEndpointId", "productId"] }; + opts = pulumi.mergeOptions(opts, replaceOnChanges); + super(MeteredProduct.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a MeteredProduct resource. + */ +export interface MeteredProductArgs { + family?: pulumi.Input; + licenseEndpointId?: pulumi.Input; + port?: pulumi.Input; + productId?: pulumi.Input; + vendor?: pulumi.Input; +} diff --git a/sdk/nodejs/deadline/queue.ts b/sdk/nodejs/deadline/queue.ts new file mode 100644 index 0000000000..11f086fcc0 --- /dev/null +++ b/sdk/nodejs/deadline/queue.ts @@ -0,0 +1,110 @@ +// *** 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::Deadline::Queue Resource Type + */ +export class Queue extends pulumi.CustomResource { + /** + * Get an existing Queue 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): Queue { + return new Queue(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:deadline:Queue'; + + /** + * Returns true if the given object is an instance of Queue. 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 Queue { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Queue.__pulumiType; + } + + public readonly allowedStorageProfileIds!: pulumi.Output; + public /*out*/ readonly arn!: pulumi.Output; + public readonly defaultBudgetAction!: pulumi.Output; + public readonly description!: pulumi.Output; + public readonly displayName!: pulumi.Output; + public readonly farmId!: pulumi.Output; + public readonly jobAttachmentSettings!: pulumi.Output; + public readonly jobRunAsUser!: pulumi.Output; + public /*out*/ readonly queueId!: pulumi.Output; + public readonly requiredFileSystemLocationNames!: pulumi.Output; + public readonly roleArn!: pulumi.Output; + + /** + * Create a Queue 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: QueueArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.displayName === undefined) && !opts.urn) { + throw new Error("Missing required property 'displayName'"); + } + resourceInputs["allowedStorageProfileIds"] = args ? args.allowedStorageProfileIds : undefined; + resourceInputs["defaultBudgetAction"] = args ? args.defaultBudgetAction : undefined; + resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["displayName"] = args ? args.displayName : undefined; + resourceInputs["farmId"] = args ? args.farmId : undefined; + resourceInputs["jobAttachmentSettings"] = args ? args.jobAttachmentSettings : undefined; + resourceInputs["jobRunAsUser"] = args ? args.jobRunAsUser : undefined; + resourceInputs["requiredFileSystemLocationNames"] = args ? args.requiredFileSystemLocationNames : undefined; + resourceInputs["roleArn"] = args ? args.roleArn : undefined; + resourceInputs["arn"] = undefined /*out*/; + resourceInputs["queueId"] = undefined /*out*/; + } else { + resourceInputs["allowedStorageProfileIds"] = undefined /*out*/; + resourceInputs["arn"] = undefined /*out*/; + resourceInputs["defaultBudgetAction"] = undefined /*out*/; + resourceInputs["description"] = undefined /*out*/; + resourceInputs["displayName"] = undefined /*out*/; + resourceInputs["farmId"] = undefined /*out*/; + resourceInputs["jobAttachmentSettings"] = undefined /*out*/; + resourceInputs["jobRunAsUser"] = undefined /*out*/; + resourceInputs["queueId"] = undefined /*out*/; + resourceInputs["requiredFileSystemLocationNames"] = undefined /*out*/; + resourceInputs["roleArn"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const replaceOnChanges = { replaceOnChanges: ["farmId"] }; + opts = pulumi.mergeOptions(opts, replaceOnChanges); + super(Queue.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a Queue resource. + */ +export interface QueueArgs { + allowedStorageProfileIds?: pulumi.Input[]>; + defaultBudgetAction?: pulumi.Input; + description?: pulumi.Input; + displayName: pulumi.Input; + farmId?: pulumi.Input; + jobAttachmentSettings?: pulumi.Input; + jobRunAsUser?: pulumi.Input; + requiredFileSystemLocationNames?: pulumi.Input[]>; + roleArn?: pulumi.Input; +} diff --git a/sdk/nodejs/deadline/queueEnvironment.ts b/sdk/nodejs/deadline/queueEnvironment.ts new file mode 100644 index 0000000000..420bb3aa6c --- /dev/null +++ b/sdk/nodejs/deadline/queueEnvironment.ts @@ -0,0 +1,106 @@ +// *** 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::Deadline::QueueEnvironment Resource Type + */ +export class QueueEnvironment extends pulumi.CustomResource { + /** + * Get an existing QueueEnvironment 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): QueueEnvironment { + return new QueueEnvironment(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:deadline:QueueEnvironment'; + + /** + * Returns true if the given object is an instance of QueueEnvironment. 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 QueueEnvironment { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === QueueEnvironment.__pulumiType; + } + + public readonly farmId!: pulumi.Output; + public /*out*/ readonly name!: pulumi.Output; + public readonly priority!: pulumi.Output; + public /*out*/ readonly queueEnvironmentId!: pulumi.Output; + public readonly queueId!: pulumi.Output; + public readonly template!: pulumi.Output; + public readonly templateType!: pulumi.Output; + + /** + * Create a QueueEnvironment 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: QueueEnvironmentArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.farmId === undefined) && !opts.urn) { + throw new Error("Missing required property 'farmId'"); + } + if ((!args || args.priority === undefined) && !opts.urn) { + throw new Error("Missing required property 'priority'"); + } + if ((!args || args.queueId === undefined) && !opts.urn) { + throw new Error("Missing required property 'queueId'"); + } + if ((!args || args.template === undefined) && !opts.urn) { + throw new Error("Missing required property 'template'"); + } + if ((!args || args.templateType === undefined) && !opts.urn) { + throw new Error("Missing required property 'templateType'"); + } + resourceInputs["farmId"] = args ? args.farmId : undefined; + resourceInputs["priority"] = args ? args.priority : undefined; + resourceInputs["queueId"] = args ? args.queueId : undefined; + resourceInputs["template"] = args ? args.template : undefined; + resourceInputs["templateType"] = args ? args.templateType : undefined; + resourceInputs["name"] = undefined /*out*/; + resourceInputs["queueEnvironmentId"] = undefined /*out*/; + } else { + resourceInputs["farmId"] = undefined /*out*/; + resourceInputs["name"] = undefined /*out*/; + resourceInputs["priority"] = undefined /*out*/; + resourceInputs["queueEnvironmentId"] = undefined /*out*/; + resourceInputs["queueId"] = undefined /*out*/; + resourceInputs["template"] = undefined /*out*/; + resourceInputs["templateType"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const replaceOnChanges = { replaceOnChanges: ["farmId", "queueId"] }; + opts = pulumi.mergeOptions(opts, replaceOnChanges); + super(QueueEnvironment.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a QueueEnvironment resource. + */ +export interface QueueEnvironmentArgs { + farmId: pulumi.Input; + priority: pulumi.Input; + queueId: pulumi.Input; + template: pulumi.Input; + templateType: pulumi.Input; +} diff --git a/sdk/nodejs/deadline/queueFleetAssociation.ts b/sdk/nodejs/deadline/queueFleetAssociation.ts new file mode 100644 index 0000000000..89416d5de4 --- /dev/null +++ b/sdk/nodejs/deadline/queueFleetAssociation.ts @@ -0,0 +1,83 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * Definition of AWS::Deadline::QueueFleetAssociation Resource Type + */ +export class QueueFleetAssociation extends pulumi.CustomResource { + /** + * Get an existing QueueFleetAssociation 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): QueueFleetAssociation { + return new QueueFleetAssociation(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:deadline:QueueFleetAssociation'; + + /** + * Returns true if the given object is an instance of QueueFleetAssociation. 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 QueueFleetAssociation { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === QueueFleetAssociation.__pulumiType; + } + + public readonly farmId!: pulumi.Output; + public readonly fleetId!: pulumi.Output; + public readonly queueId!: pulumi.Output; + + /** + * Create a QueueFleetAssociation 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: QueueFleetAssociationArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.farmId === undefined) && !opts.urn) { + throw new Error("Missing required property 'farmId'"); + } + if ((!args || args.fleetId === undefined) && !opts.urn) { + throw new Error("Missing required property 'fleetId'"); + } + if ((!args || args.queueId === undefined) && !opts.urn) { + throw new Error("Missing required property 'queueId'"); + } + resourceInputs["farmId"] = args ? args.farmId : undefined; + resourceInputs["fleetId"] = args ? args.fleetId : undefined; + resourceInputs["queueId"] = args ? args.queueId : undefined; + } else { + resourceInputs["farmId"] = undefined /*out*/; + resourceInputs["fleetId"] = undefined /*out*/; + resourceInputs["queueId"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const replaceOnChanges = { replaceOnChanges: ["farmId", "fleetId", "queueId"] }; + opts = pulumi.mergeOptions(opts, replaceOnChanges); + super(QueueFleetAssociation.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a QueueFleetAssociation resource. + */ +export interface QueueFleetAssociationArgs { + farmId: pulumi.Input; + fleetId: pulumi.Input; + queueId: pulumi.Input; +} diff --git a/sdk/nodejs/deadline/storageProfile.ts b/sdk/nodejs/deadline/storageProfile.ts new file mode 100644 index 0000000000..d2521eabf7 --- /dev/null +++ b/sdk/nodejs/deadline/storageProfile.ts @@ -0,0 +1,90 @@ +// *** 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::Deadline::StorageProfile Resource Type + */ +export class StorageProfile extends pulumi.CustomResource { + /** + * Get an existing StorageProfile 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): StorageProfile { + return new StorageProfile(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:deadline:StorageProfile'; + + /** + * Returns true if the given object is an instance of StorageProfile. 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 StorageProfile { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === StorageProfile.__pulumiType; + } + + public readonly displayName!: pulumi.Output; + public readonly farmId!: pulumi.Output; + public readonly fileSystemLocations!: pulumi.Output; + public readonly osFamily!: pulumi.Output; + public /*out*/ readonly storageProfileId!: pulumi.Output; + + /** + * Create a StorageProfile 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: StorageProfileArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.displayName === undefined) && !opts.urn) { + throw new Error("Missing required property 'displayName'"); + } + if ((!args || args.osFamily === undefined) && !opts.urn) { + throw new Error("Missing required property 'osFamily'"); + } + resourceInputs["displayName"] = args ? args.displayName : undefined; + resourceInputs["farmId"] = args ? args.farmId : undefined; + resourceInputs["fileSystemLocations"] = args ? args.fileSystemLocations : undefined; + resourceInputs["osFamily"] = args ? args.osFamily : undefined; + resourceInputs["storageProfileId"] = undefined /*out*/; + } else { + resourceInputs["displayName"] = undefined /*out*/; + resourceInputs["farmId"] = undefined /*out*/; + resourceInputs["fileSystemLocations"] = undefined /*out*/; + resourceInputs["osFamily"] = undefined /*out*/; + resourceInputs["storageProfileId"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const replaceOnChanges = { replaceOnChanges: ["farmId"] }; + opts = pulumi.mergeOptions(opts, replaceOnChanges); + super(StorageProfile.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a StorageProfile resource. + */ +export interface StorageProfileArgs { + displayName: pulumi.Input; + farmId?: pulumi.Input; + fileSystemLocations?: pulumi.Input[]>; + osFamily: pulumi.Input; +} 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..f0b82729ad 100644 --- a/sdk/nodejs/dynamodb/getTable.ts +++ b/sdk/nodejs/dynamodb/getTable.ts @@ -10,7 +10,7 @@ import * as utilities from "../utilities"; /** * The ``AWS::DynamoDB::Table`` resource creates a DDB table. For more information, see [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) in the *API Reference*. * You should be aware of the following behaviors when working with DDB tables: - * + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). + * + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). * * Our guidance is to use the latest schema documented here for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. */ @@ -85,6 +85,11 @@ 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; + /** + * A resource-based policy document that contains permissions to add to the specified table. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + * When you attach a resource-based policy while creating a table, the policy creation is *strongly consistent*. For information about the considerations that you should keep in mind while attaching a resource-based policy, see [Resource-based policy considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html). + */ + readonly resourcePolicy?: outputs.dynamodb.TableResourcePolicy; /** * Specifies the settings to enable server-side encryption. */ @@ -112,7 +117,7 @@ export interface GetTableResult { /** * The ``AWS::DynamoDB::Table`` resource creates a DDB table. For more information, see [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) in the *API Reference*. * You should be aware of the following behaviors when working with DDB tables: - * + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). + * + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). * * Our guidance is to use the latest schema documented here for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. */ diff --git a/sdk/nodejs/dynamodb/table.ts b/sdk/nodejs/dynamodb/table.ts index 83f8cab2e4..e28ea05988 100644 --- a/sdk/nodejs/dynamodb/table.ts +++ b/sdk/nodejs/dynamodb/table.ts @@ -10,7 +10,7 @@ import * as utilities from "../utilities"; /** * The ``AWS::DynamoDB::Table`` resource creates a DDB table. For more information, see [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) in the *API Reference*. * You should be aware of the following behaviors when working with DDB tables: - * + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). + * + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). * * Our guidance is to use the latest schema documented here for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. * @@ -328,6 +328,11 @@ 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; + /** + * A resource-based policy document that contains permissions to add to the specified table. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + * When you attach a resource-based policy while creating a table, the policy creation is *strongly consistent*. For information about the considerations that you should keep in mind while attaching a resource-based policy, see [Resource-based policy considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html). + */ + public readonly resourcePolicy!: pulumi.Output; /** * Specifies the settings to enable server-side encryption. */ @@ -382,6 +387,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 +409,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 +487,11 @@ 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; + /** + * A resource-based policy document that contains permissions to add to the specified table. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + * When you attach a resource-based policy while creating a table, the policy creation is *strongly consistent*. For information about the considerations that you should keep in mind while attaching a resource-based policy, see [Resource-based policy considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html). + */ + 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/getNatGateway.ts b/sdk/nodejs/ec2/getNatGateway.ts index 09a4fdd0f4..1abcf1d69c 100644 --- a/sdk/nodejs/ec2/getNatGateway.ts +++ b/sdk/nodejs/ec2/getNatGateway.ts @@ -11,7 +11,7 @@ import * as utilities from "../utilities"; * Specifies a network address translation (NAT) gateway in the specified subnet. You can create either a public NAT gateway or a private NAT gateway. The default is a public NAT gateway. If you create a public NAT gateway, you must specify an elastic IP address. * With a NAT gateway, instances in a private subnet can connect to the internet, other AWS services, or an on-premises network using the IP address of the NAT gateway. For more information, see [NAT gateways](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) in the *Amazon VPC User Guide*. * If you add a default route (``AWS::EC2::Route`` resource) that points to a NAT gateway, specify the NAT gateway ID for the route's ``NatGatewayId`` property. - * When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*. + * When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*. */ export function getNatGateway(args: GetNatGatewayArgs, opts?: pulumi.InvokeOptions): Promise { @@ -33,12 +33,12 @@ export interface GetNatGatewayResult { readonly secondaryAllocationIds?: string[]; /** * [Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*. - * ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. + * ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. */ readonly secondaryPrivateIpAddressCount?: number; /** * Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*. - * ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. + * ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. */ readonly secondaryPrivateIpAddresses?: string[]; /** @@ -50,7 +50,7 @@ export interface GetNatGatewayResult { * Specifies a network address translation (NAT) gateway in the specified subnet. You can create either a public NAT gateway or a private NAT gateway. The default is a public NAT gateway. If you create a public NAT gateway, you must specify an elastic IP address. * With a NAT gateway, instances in a private subnet can connect to the internet, other AWS services, or an on-premises network using the IP address of the NAT gateway. For more information, see [NAT gateways](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) in the *Amazon VPC User Guide*. * If you add a default route (``AWS::EC2::Route`` resource) that points to a NAT gateway, specify the NAT gateway ID for the route's ``NatGatewayId`` property. - * When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*. + * When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*. */ export function getNatGatewayOutput(args: GetNatGatewayOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { return pulumi.output(args).apply((a: any) => getNatGateway(a, opts)) diff --git a/sdk/nodejs/ec2/getSecurityGroupEgress.ts b/sdk/nodejs/ec2/getSecurityGroupEgress.ts index 8c67dcf88c..d4ce008f8a 100644 --- a/sdk/nodejs/ec2/getSecurityGroupEgress.ts +++ b/sdk/nodejs/ec2/getSecurityGroupEgress.ts @@ -7,9 +7,9 @@ import * as utilities from "../utilities"; /** * Adds the specified outbound (egress) rule to a security group. * An outbound rule permits instances to send traffic to the specified IPv4 or IPv6 address range, the IP addresses that are specified by a prefix list, or the instances that are associated with a destination security group. For more information, see [Security group rules](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html). - * You must specify exactly one of the following destinations: an IPv4 or IPv6 address range, a prefix list, or a security group. Otherwise, the stack launches successfully but the rule is not added to the security group. + * You must specify exactly one of the following destinations: an IPv4 address range, an IPv6 address range, a prefix list, or a security group. * You must specify a protocol for each rule (for example, TCP). If the protocol is TCP or UDP, you must also specify a port or port range. If the protocol is ICMP or ICMPv6, you must also specify the ICMP/ICMPv6 type and code. To specify all types or all codes, use -1. - * Rule changes are propagated to instances associated with the security group as quickly as possible + * Rule changes are propagated to instances associated with the security group as quickly as possible. However, a small delay might occur. */ export function getSecurityGroupEgress(args: GetSecurityGroupEgressArgs, opts?: pulumi.InvokeOptions): Promise { @@ -34,9 +34,9 @@ export interface GetSecurityGroupEgressResult { /** * Adds the specified outbound (egress) rule to a security group. * An outbound rule permits instances to send traffic to the specified IPv4 or IPv6 address range, the IP addresses that are specified by a prefix list, or the instances that are associated with a destination security group. For more information, see [Security group rules](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html). - * You must specify exactly one of the following destinations: an IPv4 or IPv6 address range, a prefix list, or a security group. Otherwise, the stack launches successfully but the rule is not added to the security group. + * You must specify exactly one of the following destinations: an IPv4 address range, an IPv6 address range, a prefix list, or a security group. * You must specify a protocol for each rule (for example, TCP). If the protocol is TCP or UDP, you must also specify a port or port range. If the protocol is ICMP or ICMPv6, you must also specify the ICMP/ICMPv6 type and code. To specify all types or all codes, use -1. - * Rule changes are propagated to instances associated with the security group as quickly as possible + * Rule changes are propagated to instances associated with the security group as quickly as possible. However, a small delay might occur. */ export function getSecurityGroupEgressOutput(args: GetSecurityGroupEgressOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { return pulumi.output(args).apply((a: any) => getSecurityGroupEgress(a, opts)) 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/natGateway.ts b/sdk/nodejs/ec2/natGateway.ts index 2e718df3c9..31ee9be1da 100644 --- a/sdk/nodejs/ec2/natGateway.ts +++ b/sdk/nodejs/ec2/natGateway.ts @@ -11,7 +11,7 @@ import * as utilities from "../utilities"; * Specifies a network address translation (NAT) gateway in the specified subnet. You can create either a public NAT gateway or a private NAT gateway. The default is a public NAT gateway. If you create a public NAT gateway, you must specify an elastic IP address. * With a NAT gateway, instances in a private subnet can connect to the internet, other AWS services, or an on-premises network using the IP address of the NAT gateway. For more information, see [NAT gateways](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) in the *Amazon VPC User Guide*. * If you add a default route (``AWS::EC2::Route`` resource) that points to a NAT gateway, specify the NAT gateway ID for the route's ``NatGatewayId`` property. - * When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*. + * When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*. */ export class NatGateway extends pulumi.CustomResource { /** @@ -63,12 +63,12 @@ export class NatGateway extends pulumi.CustomResource { public readonly secondaryAllocationIds!: pulumi.Output; /** * [Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*. - * ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. + * ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. */ public readonly secondaryPrivateIpAddressCount!: pulumi.Output; /** * Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*. - * ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. + * ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. */ public readonly secondaryPrivateIpAddresses!: pulumi.Output; /** @@ -149,12 +149,12 @@ export interface NatGatewayArgs { secondaryAllocationIds?: pulumi.Input[]>; /** * [Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*. - * ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. + * ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. */ secondaryPrivateIpAddressCount?: pulumi.Input; /** * Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*. - * ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. + * ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. */ secondaryPrivateIpAddresses?: pulumi.Input[]>; /** diff --git a/sdk/nodejs/ec2/securityGroupEgress.ts b/sdk/nodejs/ec2/securityGroupEgress.ts index 944ba613e8..2267304bd6 100644 --- a/sdk/nodejs/ec2/securityGroupEgress.ts +++ b/sdk/nodejs/ec2/securityGroupEgress.ts @@ -7,9 +7,9 @@ import * as utilities from "../utilities"; /** * Adds the specified outbound (egress) rule to a security group. * An outbound rule permits instances to send traffic to the specified IPv4 or IPv6 address range, the IP addresses that are specified by a prefix list, or the instances that are associated with a destination security group. For more information, see [Security group rules](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html). - * You must specify exactly one of the following destinations: an IPv4 or IPv6 address range, a prefix list, or a security group. Otherwise, the stack launches successfully but the rule is not added to the security group. + * You must specify exactly one of the following destinations: an IPv4 address range, an IPv6 address range, a prefix list, or a security group. * You must specify a protocol for each rule (for example, TCP). If the protocol is TCP or UDP, you must also specify a port or port range. If the protocol is ICMP or ICMPv6, you must also specify the ICMP/ICMPv6 type and code. To specify all types or all codes, use -1. - * Rule changes are propagated to instances associated with the security group as quickly as possible + * Rule changes are propagated to instances associated with the security group as quickly as possible. However, a small delay might occur. */ export class SecurityGroupEgress extends pulumi.CustomResource { /** @@ -41,13 +41,13 @@ export class SecurityGroupEgress extends pulumi.CustomResource { public /*out*/ readonly awsId!: pulumi.Output; /** * The IPv4 address range, in CIDR format. - * You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + * You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. * For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*. */ public readonly cidrIp!: pulumi.Output; /** * The IPv6 address range, in CIDR format. - * You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + * You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. * For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*. */ public readonly cidrIpv6!: pulumi.Output; @@ -57,13 +57,13 @@ export class SecurityGroupEgress extends pulumi.CustomResource { */ public readonly description!: pulumi.Output; /** - * The prefix list IDs for an AWS service. This is the AWS service that you want to access through a VPC endpoint from instances associated with the security group. - * You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + * The prefix list IDs for an AWS service. This is the AWS service to access through a VPC endpoint from instances associated with the security group. + * You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. */ public readonly destinationPrefixListId!: pulumi.Output; /** * The ID of the security group. - * You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + * You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. */ public readonly destinationSecurityGroupId!: pulumi.Output; /** @@ -136,13 +136,13 @@ export class SecurityGroupEgress extends pulumi.CustomResource { export interface SecurityGroupEgressArgs { /** * The IPv4 address range, in CIDR format. - * You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + * You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. * For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*. */ cidrIp?: pulumi.Input; /** * The IPv6 address range, in CIDR format. - * You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + * You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. * For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*. */ cidrIpv6?: pulumi.Input; @@ -152,13 +152,13 @@ export interface SecurityGroupEgressArgs { */ description?: pulumi.Input; /** - * The prefix list IDs for an AWS service. This is the AWS service that you want to access through a VPC endpoint from instances associated with the security group. - * You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + * The prefix list IDs for an AWS service. This is the AWS service to access through a VPC endpoint from instances associated with the security group. + * You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. */ destinationPrefixListId?: pulumi.Input; /** * The ID of the security group. - * You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + * You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. */ destinationSecurityGroupId?: pulumi.Input; /** 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/ecs/getTaskDefinition.ts b/sdk/nodejs/ecs/getTaskDefinition.ts index b49541643f..5c6c38d43f 100644 --- a/sdk/nodejs/ecs/getTaskDefinition.ts +++ b/sdk/nodejs/ecs/getTaskDefinition.ts @@ -10,7 +10,9 @@ import * as utilities from "../utilities"; /** * Registers a new task definition from the supplied ``family`` and ``containerDefinitions``. Optionally, you can add data volumes to your containers with the ``volumes`` parameter. For more information about task definition parameters and defaults, see [Amazon ECS Task Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) in the *Amazon Elastic Container Service Developer Guide*. * You can specify a role for your task with the ``taskRoleArn`` parameter. When you specify a role for a task, its containers can then use the latest versions of the CLI or SDKs to make API requests to the AWS services that are specified in the policy that's associated with the role. For more information, see [IAM Roles for Tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*. - * You can specify a Docker networking mode for the containers in your task definition with the ``networkMod + * You can specify a Docker networking mode for the containers in your task definition with the ``networkMode`` parameter. The available network modes correspond to those described in [Network settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#/network-settings) in the Docker run reference. If you specify the ``awsvpc`` network mode, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*. + * In the following example or examples, the Authorization header contents (``AUTHPARAMS``) must be replaced with an AWS Signature Version 4 signature. For more information, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the *General Reference*. + * You only need to learn how to sign HTTP requests if you intend to create them manually. When you use the [](https://docs.aws.amazon.com/cli/) or one of the [SDKs](https://docs.aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you, with the access key that you specify when you configure the tools. When you use these tools, you don't have to sign requests yourself. */ export function getTaskDefinition(args: GetTaskDefinitionArgs, opts?: pulumi.InvokeOptions): Promise { @@ -34,7 +36,7 @@ export interface GetTaskDefinitionResult { * + Maximum value length - 256 Unicode characters in UTF-8 * + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. * + Tag keys and values are case-sensitive. - * + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values + * + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. */ readonly tags?: outputs.Tag[]; readonly taskDefinitionArn?: string; @@ -42,7 +44,9 @@ export interface GetTaskDefinitionResult { /** * Registers a new task definition from the supplied ``family`` and ``containerDefinitions``. Optionally, you can add data volumes to your containers with the ``volumes`` parameter. For more information about task definition parameters and defaults, see [Amazon ECS Task Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) in the *Amazon Elastic Container Service Developer Guide*. * You can specify a role for your task with the ``taskRoleArn`` parameter. When you specify a role for a task, its containers can then use the latest versions of the CLI or SDKs to make API requests to the AWS services that are specified in the policy that's associated with the role. For more information, see [IAM Roles for Tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*. - * You can specify a Docker networking mode for the containers in your task definition with the ``networkMod + * You can specify a Docker networking mode for the containers in your task definition with the ``networkMode`` parameter. The available network modes correspond to those described in [Network settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#/network-settings) in the Docker run reference. If you specify the ``awsvpc`` network mode, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*. + * In the following example or examples, the Authorization header contents (``AUTHPARAMS``) must be replaced with an AWS Signature Version 4 signature. For more information, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the *General Reference*. + * You only need to learn how to sign HTTP requests if you intend to create them manually. When you use the [](https://docs.aws.amazon.com/cli/) or one of the [SDKs](https://docs.aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you, with the access key that you specify when you configure the tools. When you use these tools, you don't have to sign requests yourself. */ export function getTaskDefinitionOutput(args: GetTaskDefinitionOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { return pulumi.output(args).apply((a: any) => getTaskDefinition(a, opts)) diff --git a/sdk/nodejs/ecs/taskDefinition.ts b/sdk/nodejs/ecs/taskDefinition.ts index 2fa737d70a..7040b480c1 100644 --- a/sdk/nodejs/ecs/taskDefinition.ts +++ b/sdk/nodejs/ecs/taskDefinition.ts @@ -10,7 +10,9 @@ import * as utilities from "../utilities"; /** * Registers a new task definition from the supplied ``family`` and ``containerDefinitions``. Optionally, you can add data volumes to your containers with the ``volumes`` parameter. For more information about task definition parameters and defaults, see [Amazon ECS Task Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) in the *Amazon Elastic Container Service Developer Guide*. * You can specify a role for your task with the ``taskRoleArn`` parameter. When you specify a role for a task, its containers can then use the latest versions of the CLI or SDKs to make API requests to the AWS services that are specified in the policy that's associated with the role. For more information, see [IAM Roles for Tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*. - * You can specify a Docker networking mode for the containers in your task definition with the ``networkMod + * You can specify a Docker networking mode for the containers in your task definition with the ``networkMode`` parameter. The available network modes correspond to those described in [Network settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#/network-settings) in the Docker run reference. If you specify the ``awsvpc`` network mode, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*. + * In the following example or examples, the Authorization header contents (``AUTHPARAMS``) must be replaced with an AWS Signature Version 4 signature. For more information, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the *General Reference*. + * You only need to learn how to sign HTTP requests if you intend to create them manually. When you use the [](https://docs.aws.amazon.com/cli/) or one of the [SDKs](https://docs.aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you, with the access key that you specify when you configure the tools. When you use these tools, you don't have to sign requests yourself. * * ## Example Usage * ### Example @@ -229,7 +231,10 @@ export class TaskDefinition extends pulumi.CustomResource { * + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) * + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) * + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - * + 8192 (8 vCPU) - Available ``memory`` va + * + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments + * This option requires Linux platform ``1.4.0`` or later. + * + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments + * This option requires Linux platform ``1.4.0`` or later. */ public readonly cpu!: pulumi.Output; /** @@ -252,7 +257,12 @@ export class TaskDefinition extends pulumi.CustomResource { public readonly inferenceAccelerators!: pulumi.Output; /** * The IPC resource namespace to use for the containers in the task. The valid values are ``host``, ``task``, or ``none``. If ``host`` is specified, then all containers within the tasks that specified the ``host`` IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If ``task`` is specified, all containers within the specified task share the same IPC resources. If ``none`` is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see [IPC settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#ipc-settings---ipc) in the *Docker run reference*. - * If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more inform + * If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/). + * If you are setting namespaced kernel parameters using ``systemControls`` for the containers in the task, the following will apply to your IPC resource namespace. For more information, see [System Controls](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html) in the *Amazon Elastic Container Service Developer Guide*. + * + For tasks that use the ``host`` IPC mode, IPC namespace related ``systemControls`` are not supported. + * + For tasks that use the ``task`` IPC mode, IPC namespace related ``systemControls`` will apply to all containers within a task. + * + * This parameter is not supported for Windows containers or tasks run on FARGATElong. */ public readonly ipcMode!: pulumi.Output; /** @@ -261,13 +271,23 @@ export class TaskDefinition extends pulumi.CustomResource { * If your tasks runs on FARGATElong, this field is required. You must use one of the following values. The value you choose determines your range of valid values for the ``cpu`` parameter. * + 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available ``cpu`` values: 256 (.25 vCPU) * + 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available ``cpu`` values: 512 (.5 vCPU) - * + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` va + * + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` values: 1024 (1 vCPU) + * + Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 2048 (2 vCPU) + * + Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 4096 (4 vCPU) + * + Between 16 GB and 60 GB in 4 GB increments - Available ``cpu`` values: 8192 (8 vCPU) + * This option requires Linux platform ``1.4.0`` or later. + * + Between 32GB and 120 GB in 8 GB increments - Available ``cpu`` values: 16384 (16 vCPU) + * This option requires Linux platform ``1.4.0`` or later. */ public readonly memory!: pulumi.Output; /** * The Docker networking mode to use for the containers in the task. The valid values are ``none``, ``bridge``, ``awsvpc``, and ``host``. If no network mode is specified, the default is ``bridge``. * For Amazon ECS tasks on Fargate, the ``awsvpc`` network mode is required. For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, ```` or ``awsvpc`` can be used. If the network mode is set to ``none``, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The ``host`` and ``awsvpc`` network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the ``bridge`` mode. - * With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elasti + * With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elastic network interface port (for the ``awsvpc`` network mode), so you cannot take advantage of dynamic host port mappings. + * When using the ``host`` network mode, you should not run containers using the root user (UID 0). It is considered best practice to use a non-root user. + * If the network mode is ``awsvpc``, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration value when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*. + * If the network mode is ``host``, you cannot run multiple instantiations of the same task on a single container instance when port mappings are used. + * For more information, see [Network settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#network-settings) in the *Docker run reference*. */ public readonly networkMode!: pulumi.Output; /** @@ -275,7 +295,9 @@ export class TaskDefinition extends pulumi.CustomResource { * If ``host`` is specified, all containers within the tasks that specified the ``host`` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance. * If ``task`` is specified, all containers within the specified task share the same process namespace. * If no value is specified, the default is a private namespace for each container. For more information, see [PID settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#pid-settings---pid) in the *Docker run reference*. - * If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://doc + * If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/). + * This parameter is not supported for Windows containers. + * This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate. */ public readonly pidMode!: pulumi.Output; /** @@ -306,7 +328,7 @@ export class TaskDefinition extends pulumi.CustomResource { * + Maximum value length - 256 Unicode characters in UTF-8 * + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. * + Tag keys and values are case-sensitive. - * + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values + * + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. */ public readonly tags!: pulumi.Output; public /*out*/ readonly taskDefinitionArn!: pulumi.Output; @@ -393,7 +415,10 @@ export interface TaskDefinitionArgs { * + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) * + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) * + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - * + 8192 (8 vCPU) - Available ``memory`` va + * + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments + * This option requires Linux platform ``1.4.0`` or later. + * + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments + * This option requires Linux platform ``1.4.0`` or later. */ cpu?: pulumi.Input; /** @@ -416,7 +441,12 @@ export interface TaskDefinitionArgs { inferenceAccelerators?: pulumi.Input[]>; /** * The IPC resource namespace to use for the containers in the task. The valid values are ``host``, ``task``, or ``none``. If ``host`` is specified, then all containers within the tasks that specified the ``host`` IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If ``task`` is specified, all containers within the specified task share the same IPC resources. If ``none`` is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see [IPC settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#ipc-settings---ipc) in the *Docker run reference*. - * If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more inform + * If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/). + * If you are setting namespaced kernel parameters using ``systemControls`` for the containers in the task, the following will apply to your IPC resource namespace. For more information, see [System Controls](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html) in the *Amazon Elastic Container Service Developer Guide*. + * + For tasks that use the ``host`` IPC mode, IPC namespace related ``systemControls`` are not supported. + * + For tasks that use the ``task`` IPC mode, IPC namespace related ``systemControls`` will apply to all containers within a task. + * + * This parameter is not supported for Windows containers or tasks run on FARGATElong. */ ipcMode?: pulumi.Input; /** @@ -425,13 +455,23 @@ export interface TaskDefinitionArgs { * If your tasks runs on FARGATElong, this field is required. You must use one of the following values. The value you choose determines your range of valid values for the ``cpu`` parameter. * + 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available ``cpu`` values: 256 (.25 vCPU) * + 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available ``cpu`` values: 512 (.5 vCPU) - * + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` va + * + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` values: 1024 (1 vCPU) + * + Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 2048 (2 vCPU) + * + Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 4096 (4 vCPU) + * + Between 16 GB and 60 GB in 4 GB increments - Available ``cpu`` values: 8192 (8 vCPU) + * This option requires Linux platform ``1.4.0`` or later. + * + Between 32GB and 120 GB in 8 GB increments - Available ``cpu`` values: 16384 (16 vCPU) + * This option requires Linux platform ``1.4.0`` or later. */ memory?: pulumi.Input; /** * The Docker networking mode to use for the containers in the task. The valid values are ``none``, ``bridge``, ``awsvpc``, and ``host``. If no network mode is specified, the default is ``bridge``. * For Amazon ECS tasks on Fargate, the ``awsvpc`` network mode is required. For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, ```` or ``awsvpc`` can be used. If the network mode is set to ``none``, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The ``host`` and ``awsvpc`` network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the ``bridge`` mode. - * With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elasti + * With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elastic network interface port (for the ``awsvpc`` network mode), so you cannot take advantage of dynamic host port mappings. + * When using the ``host`` network mode, you should not run containers using the root user (UID 0). It is considered best practice to use a non-root user. + * If the network mode is ``awsvpc``, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration value when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*. + * If the network mode is ``host``, you cannot run multiple instantiations of the same task on a single container instance when port mappings are used. + * For more information, see [Network settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#network-settings) in the *Docker run reference*. */ networkMode?: pulumi.Input; /** @@ -439,7 +479,9 @@ export interface TaskDefinitionArgs { * If ``host`` is specified, all containers within the tasks that specified the ``host`` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance. * If ``task`` is specified, all containers within the specified task share the same process namespace. * If no value is specified, the default is a private namespace for each container. For more information, see [PID settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#pid-settings---pid) in the *Docker run reference*. - * If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://doc + * If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/). + * This parameter is not supported for Windows containers. + * This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate. */ pidMode?: pulumi.Input; /** @@ -470,7 +512,7 @@ export interface TaskDefinitionArgs { * + Maximum value length - 256 Unicode characters in UTF-8 * + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. * + Tag keys and values are case-sensitive. - * + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values + * + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. */ tags?: pulumi.Input[]>; /** diff --git a/sdk/nodejs/entityresolution/getIdNamespace.ts b/sdk/nodejs/entityresolution/getIdNamespace.ts new file mode 100644 index 0000000000..5b7dd2c885 --- /dev/null +++ b/sdk/nodejs/entityresolution/getIdNamespace.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"; + +/** + * IdNamespace defined in AWS Entity Resolution service + */ +export function getIdNamespace(args: GetIdNamespaceArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:entityresolution:getIdNamespace", { + "idNamespaceName": args.idNamespaceName, + }, opts); +} + +export interface GetIdNamespaceArgs { + idNamespaceName: string; +} + +export interface GetIdNamespaceResult { + /** + * The date and time when the IdNamespace was created + */ + readonly createdAt?: string; + readonly description?: string; + readonly idMappingWorkflowProperties?: outputs.entityresolution.IdNamespaceIdMappingWorkflowProperties[]; + /** + * The arn associated with the IdNamespace + */ + readonly idNamespaceArn?: string; + readonly inputSourceConfig?: outputs.entityresolution.IdNamespaceInputSource[]; + readonly roleArn?: string; + readonly tags?: outputs.Tag[]; + readonly type?: enums.entityresolution.IdNamespaceType; + /** + * The date and time when the IdNamespace was updated + */ + readonly updatedAt?: string; +} +/** + * IdNamespace defined in AWS Entity Resolution service + */ +export function getIdNamespaceOutput(args: GetIdNamespaceOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getIdNamespace(a, opts)) +} + +export interface GetIdNamespaceOutputArgs { + idNamespaceName: pulumi.Input; +} diff --git a/sdk/nodejs/entityresolution/getPolicyStatement.ts b/sdk/nodejs/entityresolution/getPolicyStatement.ts new file mode 100644 index 0000000000..7148e1faf6 --- /dev/null +++ b/sdk/nodejs/entityresolution/getPolicyStatement.ts @@ -0,0 +1,43 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as enums from "../types/enums"; +import * as utilities from "../utilities"; + +/** + * Policy Statement defined in AWS Entity Resolution Service + */ +export function getPolicyStatement(args: GetPolicyStatementArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:entityresolution:getPolicyStatement", { + "arn": args.arn, + "statementId": args.statementId, + }, opts); +} + +export interface GetPolicyStatementArgs { + arn: string; + statementId: string; +} + +export interface GetPolicyStatementResult { + readonly action?: string[]; + readonly condition?: string; + readonly effect?: enums.entityresolution.PolicyStatementStatementEffect; + readonly principal?: string[]; +} +/** + * Policy Statement defined in AWS Entity Resolution Service + */ +export function getPolicyStatementOutput(args: GetPolicyStatementOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getPolicyStatement(a, opts)) +} + +export interface GetPolicyStatementOutputArgs { + arn: pulumi.Input; + statementId: 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/entityresolution/idNamespace.ts b/sdk/nodejs/entityresolution/idNamespace.ts new file mode 100644 index 0000000000..94b202f2cc --- /dev/null +++ b/sdk/nodejs/entityresolution/idNamespace.ts @@ -0,0 +1,114 @@ +// *** 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"; + +/** + * IdNamespace defined in AWS Entity Resolution service + */ +export class IdNamespace extends pulumi.CustomResource { + /** + * Get an existing IdNamespace 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): IdNamespace { + return new IdNamespace(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:entityresolution:IdNamespace'; + + /** + * Returns true if the given object is an instance of IdNamespace. 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 IdNamespace { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === IdNamespace.__pulumiType; + } + + /** + * The date and time when the IdNamespace was created + */ + public /*out*/ readonly createdAt!: pulumi.Output; + public readonly description!: pulumi.Output; + public readonly idMappingWorkflowProperties!: pulumi.Output; + /** + * The arn associated with the IdNamespace + */ + public /*out*/ readonly idNamespaceArn!: pulumi.Output; + public readonly idNamespaceName!: pulumi.Output; + public readonly inputSourceConfig!: pulumi.Output; + public readonly roleArn!: pulumi.Output; + public readonly tags!: pulumi.Output; + public readonly type!: pulumi.Output; + /** + * The date and time when the IdNamespace was updated + */ + public /*out*/ readonly updatedAt!: pulumi.Output; + + /** + * Create a IdNamespace 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: IdNamespaceArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.type === undefined) && !opts.urn) { + throw new Error("Missing required property 'type'"); + } + resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["idMappingWorkflowProperties"] = args ? args.idMappingWorkflowProperties : undefined; + resourceInputs["idNamespaceName"] = args ? args.idNamespaceName : undefined; + resourceInputs["inputSourceConfig"] = args ? args.inputSourceConfig : undefined; + resourceInputs["roleArn"] = args ? args.roleArn : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["type"] = args ? args.type : undefined; + resourceInputs["createdAt"] = undefined /*out*/; + resourceInputs["idNamespaceArn"] = undefined /*out*/; + resourceInputs["updatedAt"] = undefined /*out*/; + } else { + resourceInputs["createdAt"] = undefined /*out*/; + resourceInputs["description"] = undefined /*out*/; + resourceInputs["idMappingWorkflowProperties"] = undefined /*out*/; + resourceInputs["idNamespaceArn"] = undefined /*out*/; + resourceInputs["idNamespaceName"] = undefined /*out*/; + resourceInputs["inputSourceConfig"] = undefined /*out*/; + resourceInputs["roleArn"] = undefined /*out*/; + resourceInputs["tags"] = undefined /*out*/; + resourceInputs["type"] = undefined /*out*/; + resourceInputs["updatedAt"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const replaceOnChanges = { replaceOnChanges: ["idNamespaceName"] }; + opts = pulumi.mergeOptions(opts, replaceOnChanges); + super(IdNamespace.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a IdNamespace resource. + */ +export interface IdNamespaceArgs { + description?: pulumi.Input; + idMappingWorkflowProperties?: pulumi.Input[]>; + idNamespaceName?: pulumi.Input; + inputSourceConfig?: pulumi.Input[]>; + roleArn?: pulumi.Input; + tags?: pulumi.Input[]>; + type: pulumi.Input; +} diff --git a/sdk/nodejs/entityresolution/index.ts b/sdk/nodejs/entityresolution/index.ts index a8b7d59dc9..950674df98 100644 --- a/sdk/nodejs/entityresolution/index.ts +++ b/sdk/nodejs/entityresolution/index.ts @@ -10,11 +10,21 @@ export const getIdMappingWorkflow: typeof import("./getIdMappingWorkflow").getId export const getIdMappingWorkflowOutput: typeof import("./getIdMappingWorkflow").getIdMappingWorkflowOutput = null as any; utilities.lazyLoad(exports, ["getIdMappingWorkflow","getIdMappingWorkflowOutput"], () => require("./getIdMappingWorkflow")); +export { GetIdNamespaceArgs, GetIdNamespaceResult, GetIdNamespaceOutputArgs } from "./getIdNamespace"; +export const getIdNamespace: typeof import("./getIdNamespace").getIdNamespace = null as any; +export const getIdNamespaceOutput: typeof import("./getIdNamespace").getIdNamespaceOutput = null as any; +utilities.lazyLoad(exports, ["getIdNamespace","getIdNamespaceOutput"], () => require("./getIdNamespace")); + export { GetMatchingWorkflowArgs, GetMatchingWorkflowResult, GetMatchingWorkflowOutputArgs } from "./getMatchingWorkflow"; export const getMatchingWorkflow: typeof import("./getMatchingWorkflow").getMatchingWorkflow = null as any; export const getMatchingWorkflowOutput: typeof import("./getMatchingWorkflow").getMatchingWorkflowOutput = null as any; utilities.lazyLoad(exports, ["getMatchingWorkflow","getMatchingWorkflowOutput"], () => require("./getMatchingWorkflow")); +export { GetPolicyStatementArgs, GetPolicyStatementResult, GetPolicyStatementOutputArgs } from "./getPolicyStatement"; +export const getPolicyStatement: typeof import("./getPolicyStatement").getPolicyStatement = null as any; +export const getPolicyStatementOutput: typeof import("./getPolicyStatement").getPolicyStatementOutput = null as any; +utilities.lazyLoad(exports, ["getPolicyStatement","getPolicyStatementOutput"], () => require("./getPolicyStatement")); + export { GetSchemaMappingArgs, GetSchemaMappingResult, GetSchemaMappingOutputArgs } from "./getSchemaMapping"; export const getSchemaMapping: typeof import("./getSchemaMapping").getSchemaMapping = null as any; export const getSchemaMappingOutput: typeof import("./getSchemaMapping").getSchemaMappingOutput = null as any; @@ -25,11 +35,21 @@ export type IdMappingWorkflow = import("./idMappingWorkflow").IdMappingWorkflow; export const IdMappingWorkflow: typeof import("./idMappingWorkflow").IdMappingWorkflow = null as any; utilities.lazyLoad(exports, ["IdMappingWorkflow"], () => require("./idMappingWorkflow")); +export { IdNamespaceArgs } from "./idNamespace"; +export type IdNamespace = import("./idNamespace").IdNamespace; +export const IdNamespace: typeof import("./idNamespace").IdNamespace = null as any; +utilities.lazyLoad(exports, ["IdNamespace"], () => require("./idNamespace")); + export { MatchingWorkflowArgs } from "./matchingWorkflow"; export type MatchingWorkflow = import("./matchingWorkflow").MatchingWorkflow; export const MatchingWorkflow: typeof import("./matchingWorkflow").MatchingWorkflow = null as any; utilities.lazyLoad(exports, ["MatchingWorkflow"], () => require("./matchingWorkflow")); +export { PolicyStatementArgs } from "./policyStatement"; +export type PolicyStatement = import("./policyStatement").PolicyStatement; +export const PolicyStatement: typeof import("./policyStatement").PolicyStatement = null as any; +utilities.lazyLoad(exports, ["PolicyStatement"], () => require("./policyStatement")); + export { SchemaMappingArgs } from "./schemaMapping"; export type SchemaMapping = import("./schemaMapping").SchemaMapping; export const SchemaMapping: typeof import("./schemaMapping").SchemaMapping = null as any; @@ -45,8 +65,12 @@ const _module = { switch (type) { case "aws-native:entityresolution:IdMappingWorkflow": return new IdMappingWorkflow(name, undefined, { urn }) + case "aws-native:entityresolution:IdNamespace": + return new IdNamespace(name, undefined, { urn }) case "aws-native:entityresolution:MatchingWorkflow": return new MatchingWorkflow(name, undefined, { urn }) + case "aws-native:entityresolution:PolicyStatement": + return new PolicyStatement(name, undefined, { urn }) case "aws-native:entityresolution:SchemaMapping": return new SchemaMapping(name, undefined, { urn }) default: diff --git a/sdk/nodejs/entityresolution/policyStatement.ts b/sdk/nodejs/entityresolution/policyStatement.ts new file mode 100644 index 0000000000..f43315a0c8 --- /dev/null +++ b/sdk/nodejs/entityresolution/policyStatement.ts @@ -0,0 +1,95 @@ +// *** 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"; + +/** + * Policy Statement defined in AWS Entity Resolution Service + */ +export class PolicyStatement extends pulumi.CustomResource { + /** + * Get an existing PolicyStatement 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): PolicyStatement { + return new PolicyStatement(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:entityresolution:PolicyStatement'; + + /** + * Returns true if the given object is an instance of PolicyStatement. 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 PolicyStatement { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === PolicyStatement.__pulumiType; + } + + public readonly action!: pulumi.Output; + public readonly arn!: pulumi.Output; + public readonly condition!: pulumi.Output; + public readonly effect!: pulumi.Output; + public readonly principal!: pulumi.Output; + public readonly statementId!: pulumi.Output; + + /** + * Create a PolicyStatement 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: PolicyStatementArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.arn === undefined) && !opts.urn) { + throw new Error("Missing required property 'arn'"); + } + if ((!args || args.statementId === undefined) && !opts.urn) { + throw new Error("Missing required property 'statementId'"); + } + resourceInputs["action"] = args ? args.action : undefined; + resourceInputs["arn"] = args ? args.arn : undefined; + resourceInputs["condition"] = args ? args.condition : undefined; + resourceInputs["effect"] = args ? args.effect : undefined; + resourceInputs["principal"] = args ? args.principal : undefined; + resourceInputs["statementId"] = args ? args.statementId : undefined; + } else { + resourceInputs["action"] = undefined /*out*/; + resourceInputs["arn"] = undefined /*out*/; + resourceInputs["condition"] = undefined /*out*/; + resourceInputs["effect"] = undefined /*out*/; + resourceInputs["principal"] = undefined /*out*/; + resourceInputs["statementId"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const replaceOnChanges = { replaceOnChanges: ["arn", "statementId"] }; + opts = pulumi.mergeOptions(opts, replaceOnChanges); + super(PolicyStatement.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a PolicyStatement resource. + */ +export interface PolicyStatementArgs { + action?: pulumi.Input[]>; + arn: pulumi.Input; + condition?: pulumi.Input; + effect?: pulumi.Input; + principal?: pulumi.Input[]>; + statementId: 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..1458f70ce4 100644 --- a/sdk/nodejs/index.ts +++ b/sdk/nodejs/index.ts @@ -88,18 +88,21 @@ 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"; import * as certificatemanager from "./certificatemanager"; import * as chatbot from "./chatbot"; import * as cleanrooms from "./cleanrooms"; +import * as cleanroomsml from "./cleanroomsml"; import * as cloudformation from "./cloudformation"; import * as cloudfront from "./cloudfront"; 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"; @@ -118,6 +121,7 @@ import * as databrew from "./databrew"; import * as datapipeline from "./datapipeline"; import * as datasync from "./datasync"; import * as datazone from "./datazone"; +import * as deadline from "./deadline"; import * as detective from "./detective"; import * as devicefarm from "./devicefarm"; import * as devopsguru from "./devopsguru"; @@ -242,6 +246,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,18 +300,21 @@ export { backup, backupgateway, batch, + bedrock, budgets, cassandra, ce, certificatemanager, chatbot, cleanrooms, + cleanroomsml, cloudformation, cloudfront, cloudtrail, cloudwatch, codeartifact, codebuild, + codeconnections, codedeploy, codeguruprofiler, codegurureviewer, @@ -325,6 +333,7 @@ export { datapipeline, datasync, datazone, + deadline, detective, devicefarm, devopsguru, @@ -449,6 +458,7 @@ export { scheduler, secretsmanager, securityhub, + securitylake, servicecatalog, servicecatalogappregistry, ses, diff --git a/sdk/nodejs/ivs/encoderConfiguration.ts b/sdk/nodejs/ivs/encoderConfiguration.ts new file mode 100644 index 0000000000..02b8305cc3 --- /dev/null +++ b/sdk/nodejs/ivs/encoderConfiguration.ts @@ -0,0 +1,101 @@ +// *** 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::IVS::EncoderConfiguration. + */ +export class EncoderConfiguration extends pulumi.CustomResource { + /** + * Get an existing EncoderConfiguration 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): EncoderConfiguration { + return new EncoderConfiguration(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:ivs:EncoderConfiguration'; + + /** + * Returns true if the given object is an instance of EncoderConfiguration. 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 EncoderConfiguration { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === EncoderConfiguration.__pulumiType; + } + + /** + * Encoder configuration identifier. + */ + public /*out*/ readonly arn!: pulumi.Output; + /** + * Encoder configuration name. + */ + public readonly name!: pulumi.Output; + /** + * An array of key-value pairs to apply to this resource. + */ + public readonly tags!: pulumi.Output; + /** + * Video configuration. Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps + */ + public readonly video!: pulumi.Output; + + /** + * Create a EncoderConfiguration 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?: EncoderConfigurationArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["video"] = args ? args.video : undefined; + resourceInputs["arn"] = undefined /*out*/; + } else { + resourceInputs["arn"] = undefined /*out*/; + resourceInputs["name"] = undefined /*out*/; + resourceInputs["tags"] = undefined /*out*/; + resourceInputs["video"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const replaceOnChanges = { replaceOnChanges: ["name", "video"] }; + opts = pulumi.mergeOptions(opts, replaceOnChanges); + super(EncoderConfiguration.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a EncoderConfiguration resource. + */ +export interface EncoderConfigurationArgs { + /** + * Encoder configuration name. + */ + name?: pulumi.Input; + /** + * An array of key-value pairs to apply to this resource. + */ + tags?: pulumi.Input[]>; + /** + * Video configuration. Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps + */ + video?: pulumi.Input; +} diff --git a/sdk/nodejs/ivs/getEncoderConfiguration.ts b/sdk/nodejs/ivs/getEncoderConfiguration.ts new file mode 100644 index 0000000000..c6cf90185a --- /dev/null +++ b/sdk/nodejs/ivs/getEncoderConfiguration.ts @@ -0,0 +1,50 @@ +// *** 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::IVS::EncoderConfiguration. + */ +export function getEncoderConfiguration(args: GetEncoderConfigurationArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:ivs:getEncoderConfiguration", { + "arn": args.arn, + }, opts); +} + +export interface GetEncoderConfigurationArgs { + /** + * Encoder configuration identifier. + */ + arn: string; +} + +export interface GetEncoderConfigurationResult { + /** + * Encoder configuration identifier. + */ + readonly arn?: string; + /** + * An array of key-value pairs to apply to this resource. + */ + readonly tags?: outputs.Tag[]; +} +/** + * Resource Type definition for AWS::IVS::EncoderConfiguration. + */ +export function getEncoderConfigurationOutput(args: GetEncoderConfigurationOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getEncoderConfiguration(a, opts)) +} + +export interface GetEncoderConfigurationOutputArgs { + /** + * Encoder configuration identifier. + */ + arn: pulumi.Input; +} diff --git a/sdk/nodejs/ivs/getPlaybackRestrictionPolicy.ts b/sdk/nodejs/ivs/getPlaybackRestrictionPolicy.ts new file mode 100644 index 0000000000..f17651fbf2 --- /dev/null +++ b/sdk/nodejs/ivs/getPlaybackRestrictionPolicy.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"; + +/** + * Resource Type definition for AWS::IVS::PlaybackRestrictionPolicy. + */ +export function getPlaybackRestrictionPolicy(args: GetPlaybackRestrictionPolicyArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:ivs:getPlaybackRestrictionPolicy", { + "arn": args.arn, + }, opts); +} + +export interface GetPlaybackRestrictionPolicyArgs { + /** + * Playback-restriction-policy identifier. + */ + arn: string; +} + +export interface GetPlaybackRestrictionPolicyResult { + /** + * A list of country codes that control geoblocking restriction. Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries (an empty array). + */ + readonly allowedCountries?: string[]; + /** + * A list of origin sites that control CORS restriction. Allowed values are the same as valid values of the Origin header defined at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin + */ + readonly allowedOrigins?: string[]; + /** + * Playback-restriction-policy identifier. + */ + readonly arn?: string; + /** + * Whether channel playback is constrained by origin site. + */ + readonly enableStrictOriginEnforcement?: boolean; + /** + * Playback-restriction-policy name. + */ + readonly name?: string; + /** + * An array of key-value pairs to apply to this resource. + */ + readonly tags?: outputs.Tag[]; +} +/** + * Resource Type definition for AWS::IVS::PlaybackRestrictionPolicy. + */ +export function getPlaybackRestrictionPolicyOutput(args: GetPlaybackRestrictionPolicyOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getPlaybackRestrictionPolicy(a, opts)) +} + +export interface GetPlaybackRestrictionPolicyOutputArgs { + /** + * Playback-restriction-policy identifier. + */ + arn: pulumi.Input; +} diff --git a/sdk/nodejs/ivs/getStorageConfiguration.ts b/sdk/nodejs/ivs/getStorageConfiguration.ts new file mode 100644 index 0000000000..ceb34760f1 --- /dev/null +++ b/sdk/nodejs/ivs/getStorageConfiguration.ts @@ -0,0 +1,50 @@ +// *** 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::IVS::StorageConfiguration + */ +export function getStorageConfiguration(args: GetStorageConfigurationArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:ivs:getStorageConfiguration", { + "arn": args.arn, + }, opts); +} + +export interface GetStorageConfigurationArgs { + /** + * Storage Configuration ARN is automatically generated on creation and assigned as the unique identifier. + */ + arn: string; +} + +export interface GetStorageConfigurationResult { + /** + * Storage Configuration ARN is automatically generated on creation and assigned as the unique identifier. + */ + readonly arn?: string; + /** + * A list of key-value pairs that contain metadata for the asset model. + */ + readonly tags?: outputs.Tag[]; +} +/** + * Resource Type definition for AWS::IVS::StorageConfiguration + */ +export function getStorageConfigurationOutput(args: GetStorageConfigurationOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getStorageConfiguration(a, opts)) +} + +export interface GetStorageConfigurationOutputArgs { + /** + * Storage Configuration ARN is automatically generated on creation and assigned as the unique identifier. + */ + arn: pulumi.Input; +} diff --git a/sdk/nodejs/ivs/index.ts b/sdk/nodejs/ivs/index.ts index 27add25574..c481ccdcdb 100644 --- a/sdk/nodejs/ivs/index.ts +++ b/sdk/nodejs/ivs/index.ts @@ -10,16 +10,31 @@ export type Channel = import("./channel").Channel; export const Channel: typeof import("./channel").Channel = null as any; utilities.lazyLoad(exports, ["Channel"], () => require("./channel")); +export { EncoderConfigurationArgs } from "./encoderConfiguration"; +export type EncoderConfiguration = import("./encoderConfiguration").EncoderConfiguration; +export const EncoderConfiguration: typeof import("./encoderConfiguration").EncoderConfiguration = null as any; +utilities.lazyLoad(exports, ["EncoderConfiguration"], () => require("./encoderConfiguration")); + export { GetChannelArgs, GetChannelResult, GetChannelOutputArgs } from "./getChannel"; export const getChannel: typeof import("./getChannel").getChannel = null as any; export const getChannelOutput: typeof import("./getChannel").getChannelOutput = null as any; utilities.lazyLoad(exports, ["getChannel","getChannelOutput"], () => require("./getChannel")); +export { GetEncoderConfigurationArgs, GetEncoderConfigurationResult, GetEncoderConfigurationOutputArgs } from "./getEncoderConfiguration"; +export const getEncoderConfiguration: typeof import("./getEncoderConfiguration").getEncoderConfiguration = null as any; +export const getEncoderConfigurationOutput: typeof import("./getEncoderConfiguration").getEncoderConfigurationOutput = null as any; +utilities.lazyLoad(exports, ["getEncoderConfiguration","getEncoderConfigurationOutput"], () => require("./getEncoderConfiguration")); + export { GetPlaybackKeyPairArgs, GetPlaybackKeyPairResult, GetPlaybackKeyPairOutputArgs } from "./getPlaybackKeyPair"; export const getPlaybackKeyPair: typeof import("./getPlaybackKeyPair").getPlaybackKeyPair = null as any; export const getPlaybackKeyPairOutput: typeof import("./getPlaybackKeyPair").getPlaybackKeyPairOutput = null as any; utilities.lazyLoad(exports, ["getPlaybackKeyPair","getPlaybackKeyPairOutput"], () => require("./getPlaybackKeyPair")); +export { GetPlaybackRestrictionPolicyArgs, GetPlaybackRestrictionPolicyResult, GetPlaybackRestrictionPolicyOutputArgs } from "./getPlaybackRestrictionPolicy"; +export const getPlaybackRestrictionPolicy: typeof import("./getPlaybackRestrictionPolicy").getPlaybackRestrictionPolicy = null as any; +export const getPlaybackRestrictionPolicyOutput: typeof import("./getPlaybackRestrictionPolicy").getPlaybackRestrictionPolicyOutput = null as any; +utilities.lazyLoad(exports, ["getPlaybackRestrictionPolicy","getPlaybackRestrictionPolicyOutput"], () => require("./getPlaybackRestrictionPolicy")); + export { GetRecordingConfigurationArgs, GetRecordingConfigurationResult, GetRecordingConfigurationOutputArgs } from "./getRecordingConfiguration"; export const getRecordingConfiguration: typeof import("./getRecordingConfiguration").getRecordingConfiguration = null as any; export const getRecordingConfigurationOutput: typeof import("./getRecordingConfiguration").getRecordingConfigurationOutput = null as any; @@ -30,6 +45,11 @@ export const getStage: typeof import("./getStage").getStage = null as any; export const getStageOutput: typeof import("./getStage").getStageOutput = null as any; utilities.lazyLoad(exports, ["getStage","getStageOutput"], () => require("./getStage")); +export { GetStorageConfigurationArgs, GetStorageConfigurationResult, GetStorageConfigurationOutputArgs } from "./getStorageConfiguration"; +export const getStorageConfiguration: typeof import("./getStorageConfiguration").getStorageConfiguration = null as any; +export const getStorageConfigurationOutput: typeof import("./getStorageConfiguration").getStorageConfigurationOutput = null as any; +utilities.lazyLoad(exports, ["getStorageConfiguration","getStorageConfigurationOutput"], () => require("./getStorageConfiguration")); + export { GetStreamKeyArgs, GetStreamKeyResult, GetStreamKeyOutputArgs } from "./getStreamKey"; export const getStreamKey: typeof import("./getStreamKey").getStreamKey = null as any; export const getStreamKeyOutput: typeof import("./getStreamKey").getStreamKeyOutput = null as any; @@ -40,6 +60,11 @@ export type PlaybackKeyPair = import("./playbackKeyPair").PlaybackKeyPair; export const PlaybackKeyPair: typeof import("./playbackKeyPair").PlaybackKeyPair = null as any; utilities.lazyLoad(exports, ["PlaybackKeyPair"], () => require("./playbackKeyPair")); +export { PlaybackRestrictionPolicyArgs } from "./playbackRestrictionPolicy"; +export type PlaybackRestrictionPolicy = import("./playbackRestrictionPolicy").PlaybackRestrictionPolicy; +export const PlaybackRestrictionPolicy: typeof import("./playbackRestrictionPolicy").PlaybackRestrictionPolicy = null as any; +utilities.lazyLoad(exports, ["PlaybackRestrictionPolicy"], () => require("./playbackRestrictionPolicy")); + export { RecordingConfigurationArgs } from "./recordingConfiguration"; export type RecordingConfiguration = import("./recordingConfiguration").RecordingConfiguration; export const RecordingConfiguration: typeof import("./recordingConfiguration").RecordingConfiguration = null as any; @@ -50,6 +75,11 @@ export type Stage = import("./stage").Stage; export const Stage: typeof import("./stage").Stage = null as any; utilities.lazyLoad(exports, ["Stage"], () => require("./stage")); +export { StorageConfigurationArgs } from "./storageConfiguration"; +export type StorageConfiguration = import("./storageConfiguration").StorageConfiguration; +export const StorageConfiguration: typeof import("./storageConfiguration").StorageConfiguration = null as any; +utilities.lazyLoad(exports, ["StorageConfiguration"], () => require("./storageConfiguration")); + export { StreamKeyArgs } from "./streamKey"; export type StreamKey = import("./streamKey").StreamKey; export const StreamKey: typeof import("./streamKey").StreamKey = null as any; @@ -65,12 +95,18 @@ const _module = { switch (type) { case "aws-native:ivs:Channel": return new Channel(name, undefined, { urn }) + case "aws-native:ivs:EncoderConfiguration": + return new EncoderConfiguration(name, undefined, { urn }) case "aws-native:ivs:PlaybackKeyPair": return new PlaybackKeyPair(name, undefined, { urn }) + case "aws-native:ivs:PlaybackRestrictionPolicy": + return new PlaybackRestrictionPolicy(name, undefined, { urn }) case "aws-native:ivs:RecordingConfiguration": return new RecordingConfiguration(name, undefined, { urn }) case "aws-native:ivs:Stage": return new Stage(name, undefined, { urn }) + case "aws-native:ivs:StorageConfiguration": + return new StorageConfiguration(name, undefined, { urn }) case "aws-native:ivs:StreamKey": return new StreamKey(name, undefined, { urn }) default: diff --git a/sdk/nodejs/ivs/playbackRestrictionPolicy.ts b/sdk/nodejs/ivs/playbackRestrictionPolicy.ts new file mode 100644 index 0000000000..6a3a5d226f --- /dev/null +++ b/sdk/nodejs/ivs/playbackRestrictionPolicy.ts @@ -0,0 +1,125 @@ +// *** 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::IVS::PlaybackRestrictionPolicy. + */ +export class PlaybackRestrictionPolicy extends pulumi.CustomResource { + /** + * Get an existing PlaybackRestrictionPolicy 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): PlaybackRestrictionPolicy { + return new PlaybackRestrictionPolicy(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:ivs:PlaybackRestrictionPolicy'; + + /** + * Returns true if the given object is an instance of PlaybackRestrictionPolicy. 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 PlaybackRestrictionPolicy { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === PlaybackRestrictionPolicy.__pulumiType; + } + + /** + * A list of country codes that control geoblocking restriction. Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries (an empty array). + */ + public readonly allowedCountries!: pulumi.Output; + /** + * A list of origin sites that control CORS restriction. Allowed values are the same as valid values of the Origin header defined at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin + */ + public readonly allowedOrigins!: pulumi.Output; + /** + * Playback-restriction-policy identifier. + */ + public /*out*/ readonly arn!: pulumi.Output; + /** + * Whether channel playback is constrained by origin site. + */ + public readonly enableStrictOriginEnforcement!: pulumi.Output; + /** + * Playback-restriction-policy name. + */ + public readonly name!: pulumi.Output; + /** + * An array of key-value pairs to apply to this resource. + */ + public readonly tags!: pulumi.Output; + + /** + * Create a PlaybackRestrictionPolicy 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: PlaybackRestrictionPolicyArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.allowedCountries === undefined) && !opts.urn) { + throw new Error("Missing required property 'allowedCountries'"); + } + if ((!args || args.allowedOrigins === undefined) && !opts.urn) { + throw new Error("Missing required property 'allowedOrigins'"); + } + resourceInputs["allowedCountries"] = args ? args.allowedCountries : undefined; + resourceInputs["allowedOrigins"] = args ? args.allowedOrigins : undefined; + resourceInputs["enableStrictOriginEnforcement"] = args ? args.enableStrictOriginEnforcement : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["arn"] = undefined /*out*/; + } else { + resourceInputs["allowedCountries"] = undefined /*out*/; + resourceInputs["allowedOrigins"] = undefined /*out*/; + resourceInputs["arn"] = undefined /*out*/; + resourceInputs["enableStrictOriginEnforcement"] = undefined /*out*/; + resourceInputs["name"] = undefined /*out*/; + resourceInputs["tags"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(PlaybackRestrictionPolicy.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a PlaybackRestrictionPolicy resource. + */ +export interface PlaybackRestrictionPolicyArgs { + /** + * A list of country codes that control geoblocking restriction. Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries (an empty array). + */ + allowedCountries: pulumi.Input[]>; + /** + * A list of origin sites that control CORS restriction. Allowed values are the same as valid values of the Origin header defined at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin + */ + allowedOrigins: pulumi.Input[]>; + /** + * Whether channel playback is constrained by origin site. + */ + enableStrictOriginEnforcement?: pulumi.Input; + /** + * Playback-restriction-policy name. + */ + name?: pulumi.Input; + /** + * An array of key-value pairs to apply to this resource. + */ + tags?: pulumi.Input[]>; +} diff --git a/sdk/nodejs/ivs/storageConfiguration.ts b/sdk/nodejs/ivs/storageConfiguration.ts new file mode 100644 index 0000000000..6a55eaaa2d --- /dev/null +++ b/sdk/nodejs/ivs/storageConfiguration.ts @@ -0,0 +1,98 @@ +// *** 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::IVS::StorageConfiguration + */ +export class StorageConfiguration extends pulumi.CustomResource { + /** + * Get an existing StorageConfiguration 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): StorageConfiguration { + return new StorageConfiguration(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:ivs:StorageConfiguration'; + + /** + * Returns true if the given object is an instance of StorageConfiguration. 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 StorageConfiguration { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === StorageConfiguration.__pulumiType; + } + + /** + * Storage Configuration ARN is automatically generated on creation and assigned as the unique identifier. + */ + public /*out*/ readonly arn!: pulumi.Output; + /** + * Storage Configuration Name. + */ + public readonly name!: pulumi.Output; + public readonly s3!: pulumi.Output; + /** + * A list of key-value pairs that contain metadata for the asset model. + */ + public readonly tags!: pulumi.Output; + + /** + * Create a StorageConfiguration 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: StorageConfigurationArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.s3 === undefined) && !opts.urn) { + throw new Error("Missing required property 's3'"); + } + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["s3"] = args ? args.s3 : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["arn"] = undefined /*out*/; + } else { + resourceInputs["arn"] = undefined /*out*/; + resourceInputs["name"] = undefined /*out*/; + resourceInputs["s3"] = undefined /*out*/; + resourceInputs["tags"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const replaceOnChanges = { replaceOnChanges: ["name", "s3"] }; + opts = pulumi.mergeOptions(opts, replaceOnChanges); + super(StorageConfiguration.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a StorageConfiguration resource. + */ +export interface StorageConfigurationArgs { + /** + * Storage Configuration Name. + */ + name?: pulumi.Input; + s3: pulumi.Input; + /** + * A list of key-value pairs that contain metadata for the asset model. + */ + tags?: pulumi.Input[]>; +} 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..95e640dc06 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..3a0d357ad5 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/mediatailor/channel.ts b/sdk/nodejs/mediatailor/channel.ts index 733068a78d..3e16169da2 100644 --- a/sdk/nodejs/mediatailor/channel.ts +++ b/sdk/nodejs/mediatailor/channel.ts @@ -41,6 +41,10 @@ export class Channel extends pulumi.CustomResource { *

The ARN of the channel.

*/ public /*out*/ readonly arn!: pulumi.Output; + /** + *

The list of audiences defined in channel.

+ */ + public readonly audiences!: pulumi.Output; public readonly channelName!: pulumi.Output; public readonly fillerSlate!: pulumi.Output; public readonly logConfiguration!: pulumi.Output; @@ -73,6 +77,7 @@ export class Channel extends pulumi.CustomResource { if ((!args || args.playbackMode === undefined) && !opts.urn) { throw new Error("Missing required property 'playbackMode'"); } + resourceInputs["audiences"] = args ? args.audiences : undefined; resourceInputs["channelName"] = args ? args.channelName : undefined; resourceInputs["fillerSlate"] = args ? args.fillerSlate : undefined; resourceInputs["logConfiguration"] = args ? args.logConfiguration : undefined; @@ -84,6 +89,7 @@ export class Channel extends pulumi.CustomResource { resourceInputs["arn"] = undefined /*out*/; } else { resourceInputs["arn"] = undefined /*out*/; + resourceInputs["audiences"] = undefined /*out*/; resourceInputs["channelName"] = undefined /*out*/; resourceInputs["fillerSlate"] = undefined /*out*/; resourceInputs["logConfiguration"] = undefined /*out*/; @@ -104,6 +110,10 @@ export class Channel extends pulumi.CustomResource { * The set of arguments for constructing a Channel resource. */ export interface ChannelArgs { + /** + *

The list of audiences defined in channel.

+ */ + audiences?: pulumi.Input[]>; channelName?: pulumi.Input; fillerSlate?: pulumi.Input; logConfiguration?: pulumi.Input; diff --git a/sdk/nodejs/mediatailor/getChannel.ts b/sdk/nodejs/mediatailor/getChannel.ts index 0e649512f4..45e99e34c5 100644 --- a/sdk/nodejs/mediatailor/getChannel.ts +++ b/sdk/nodejs/mediatailor/getChannel.ts @@ -27,6 +27,10 @@ export interface GetChannelResult { *

The ARN of the channel.

*/ readonly arn?: string; + /** + *

The list of audiences defined in channel.

+ */ + readonly audiences?: string[]; readonly fillerSlate?: outputs.mediatailor.ChannelSlateSource; readonly logConfiguration?: outputs.mediatailor.ChannelLogConfigurationForChannel; readonly playbackMode?: enums.mediatailor.ChannelPlaybackMode; diff --git a/sdk/nodejs/rds/customDbEngineVersion.ts b/sdk/nodejs/rds/customDbEngineVersion.ts index a65e443380..09c5e98f28 100644 --- a/sdk/nodejs/rds/customDbEngineVersion.ts +++ b/sdk/nodejs/rds/customDbEngineVersion.ts @@ -40,7 +40,7 @@ export class CustomDbEngineVersion extends pulumi.CustomResource { /** * The name of an Amazon S3 bucket that contains database installation files for your CEV. For example, a valid bucket name is `my-custom-installation-files`. */ - public readonly databaseInstallationFilesS3BucketName!: pulumi.Output; + public readonly databaseInstallationFilesS3BucketName!: pulumi.Output; /** * The Amazon S3 directory that contains the database installation files for your CEV. For example, a valid bucket name is `123456789012/cev1`. If this setting isn't specified, no prefix is assumed. */ @@ -61,6 +61,10 @@ export class CustomDbEngineVersion extends pulumi.CustomResource { * The name of your CEV. The name format is 19.customized_string . For example, a valid name is 19.my_cev1. This setting is required for RDS Custom for Oracle, but optional for Amazon RDS. The combination of Engine and EngineVersion is unique per customer per Region. */ public readonly engineVersion!: pulumi.Output; + /** + * The identifier of Amazon Machine Image (AMI) used for CEV. + */ + public readonly imageId!: pulumi.Output; /** * The AWS KMS key identifier for an encrypted CEV. A symmetric KMS key is required for RDS Custom, but optional for Amazon RDS. */ @@ -69,6 +73,10 @@ export class CustomDbEngineVersion extends pulumi.CustomResource { * The CEV manifest, which is a JSON document that describes the installation .zip files stored in Amazon S3. Specify the name/value pairs in a file or a quoted string. RDS Custom applies the patches in the order in which they are listed. */ public readonly manifest!: pulumi.Output; + /** + * The identifier of the source custom engine version. + */ + public readonly sourceCustomDbEngineVersionIdentifier!: pulumi.Output; /** * The availability status to be assigned to the CEV. */ @@ -77,6 +85,10 @@ export class CustomDbEngineVersion extends pulumi.CustomResource { * An array of key-value pairs to apply to this resource. */ public readonly tags!: pulumi.Output; + /** + * A value that indicates whether AWS provided latest image is applied automatically to the Custom Engine Version. By default, AWS provided latest image is applied automatically. This value is only applied on create. + */ + public readonly useAwsProvidedLatestImage!: pulumi.Output; /** * Create a CustomDbEngineVersion resource with the given unique name, arguments, and options. @@ -89,9 +101,6 @@ export class CustomDbEngineVersion extends pulumi.CustomResource { let resourceInputs: pulumi.Inputs = {}; opts = opts || {}; if (!opts.id) { - if ((!args || args.databaseInstallationFilesS3BucketName === undefined) && !opts.urn) { - throw new Error("Missing required property 'databaseInstallationFilesS3BucketName'"); - } if ((!args || args.engine === undefined) && !opts.urn) { throw new Error("Missing required property 'engine'"); } @@ -103,10 +112,13 @@ export class CustomDbEngineVersion extends pulumi.CustomResource { resourceInputs["description"] = args ? args.description : undefined; resourceInputs["engine"] = args ? args.engine : undefined; resourceInputs["engineVersion"] = args ? args.engineVersion : undefined; + resourceInputs["imageId"] = args ? args.imageId : undefined; resourceInputs["kmsKeyId"] = args ? args.kmsKeyId : undefined; resourceInputs["manifest"] = args ? args.manifest : undefined; + resourceInputs["sourceCustomDbEngineVersionIdentifier"] = args ? args.sourceCustomDbEngineVersionIdentifier : undefined; resourceInputs["status"] = args ? args.status : undefined; resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["useAwsProvidedLatestImage"] = args ? args.useAwsProvidedLatestImage : undefined; resourceInputs["dbEngineVersionArn"] = undefined /*out*/; } else { resourceInputs["databaseInstallationFilesS3BucketName"] = undefined /*out*/; @@ -115,13 +127,16 @@ export class CustomDbEngineVersion extends pulumi.CustomResource { resourceInputs["description"] = undefined /*out*/; resourceInputs["engine"] = undefined /*out*/; resourceInputs["engineVersion"] = undefined /*out*/; + resourceInputs["imageId"] = undefined /*out*/; resourceInputs["kmsKeyId"] = undefined /*out*/; resourceInputs["manifest"] = undefined /*out*/; + resourceInputs["sourceCustomDbEngineVersionIdentifier"] = undefined /*out*/; resourceInputs["status"] = undefined /*out*/; resourceInputs["tags"] = undefined /*out*/; + resourceInputs["useAwsProvidedLatestImage"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const replaceOnChanges = { replaceOnChanges: ["databaseInstallationFilesS3BucketName", "databaseInstallationFilesS3Prefix", "engine", "engineVersion", "kmsKeyId", "manifest"] }; + const replaceOnChanges = { replaceOnChanges: ["databaseInstallationFilesS3BucketName", "databaseInstallationFilesS3Prefix", "engine", "engineVersion", "imageId", "kmsKeyId", "manifest", "sourceCustomDbEngineVersionIdentifier", "useAwsProvidedLatestImage"] }; opts = pulumi.mergeOptions(opts, replaceOnChanges); super(CustomDbEngineVersion.__pulumiType, name, resourceInputs, opts); } @@ -134,7 +149,7 @@ export interface CustomDbEngineVersionArgs { /** * The name of an Amazon S3 bucket that contains database installation files for your CEV. For example, a valid bucket name is `my-custom-installation-files`. */ - databaseInstallationFilesS3BucketName: pulumi.Input; + databaseInstallationFilesS3BucketName?: pulumi.Input; /** * The Amazon S3 directory that contains the database installation files for your CEV. For example, a valid bucket name is `123456789012/cev1`. If this setting isn't specified, no prefix is assumed. */ @@ -151,6 +166,10 @@ export interface CustomDbEngineVersionArgs { * The name of your CEV. The name format is 19.customized_string . For example, a valid name is 19.my_cev1. This setting is required for RDS Custom for Oracle, but optional for Amazon RDS. The combination of Engine and EngineVersion is unique per customer per Region. */ engineVersion: pulumi.Input; + /** + * The identifier of Amazon Machine Image (AMI) used for CEV. + */ + imageId?: pulumi.Input; /** * The AWS KMS key identifier for an encrypted CEV. A symmetric KMS key is required for RDS Custom, but optional for Amazon RDS. */ @@ -159,6 +178,10 @@ export interface CustomDbEngineVersionArgs { * The CEV manifest, which is a JSON document that describes the installation .zip files stored in Amazon S3. Specify the name/value pairs in a file or a quoted string. RDS Custom applies the patches in the order in which they are listed. */ manifest?: pulumi.Input; + /** + * The identifier of the source custom engine version. + */ + sourceCustomDbEngineVersionIdentifier?: pulumi.Input; /** * The availability status to be assigned to the CEV. */ @@ -167,4 +190,8 @@ export interface CustomDbEngineVersionArgs { * An array of key-value pairs to apply to this resource. */ tags?: pulumi.Input[]>; + /** + * A value that indicates whether AWS provided latest image is applied automatically to the Custom Engine Version. By default, AWS provided latest image is applied automatically. This value is only applied on create. + */ + useAwsProvidedLatestImage?: 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/route53/getHostedZone.ts b/sdk/nodejs/route53/getHostedZone.ts index 5055ea24fb..68d19c3c75 100644 --- a/sdk/nodejs/route53/getHostedZone.ts +++ b/sdk/nodejs/route53/getHostedZone.ts @@ -63,7 +63,7 @@ export interface GetHostedZoneResult { readonly queryLoggingConfig?: outputs.route53.HostedZoneQueryLoggingConfig; /** * *Private hosted zones:* A complex type that contains information about the VPCs that are associated with the specified hosted zone. - * For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + * For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. */ readonly vpcs?: outputs.route53.HostedZoneVpc[]; } diff --git a/sdk/nodejs/route53/hostedZone.ts b/sdk/nodejs/route53/hostedZone.ts index 21c50c900a..1b4db8c252 100644 --- a/sdk/nodejs/route53/hostedZone.ts +++ b/sdk/nodejs/route53/hostedZone.ts @@ -82,7 +82,7 @@ export class HostedZone extends pulumi.CustomResource { public readonly queryLoggingConfig!: pulumi.Output; /** * *Private hosted zones:* A complex type that contains information about the VPCs that are associated with the specified hosted zone. - * For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + * For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. */ public readonly vpcs!: pulumi.Output; @@ -152,7 +152,7 @@ export interface HostedZoneArgs { queryLoggingConfig?: pulumi.Input; /** * *Private hosted zones:* A complex type that contains information about the VPCs that are associated with the specified hosted zone. - * For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + * For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. */ vpcs?: pulumi.Input[]>; } diff --git a/sdk/nodejs/sagemaker/appImageConfig.ts b/sdk/nodejs/sagemaker/appImageConfig.ts index 52a3e86970..2822d12b76 100644 --- a/sdk/nodejs/sagemaker/appImageConfig.ts +++ b/sdk/nodejs/sagemaker/appImageConfig.ts @@ -45,6 +45,10 @@ export class AppImageConfig extends pulumi.CustomResource { * The Name of the AppImageConfig. */ public readonly appImageConfigName!: pulumi.Output; + /** + * The CodeEditorAppImageConfig. + */ + public readonly codeEditorAppImageConfig!: pulumi.Output; /** * The JupyterLabAppImageConfig. */ @@ -70,6 +74,7 @@ export class AppImageConfig extends pulumi.CustomResource { opts = opts || {}; if (!opts.id) { resourceInputs["appImageConfigName"] = args ? args.appImageConfigName : undefined; + resourceInputs["codeEditorAppImageConfig"] = args ? args.codeEditorAppImageConfig : undefined; resourceInputs["jupyterLabAppImageConfig"] = args ? args.jupyterLabAppImageConfig : undefined; resourceInputs["kernelGatewayImageConfig"] = args ? args.kernelGatewayImageConfig : undefined; resourceInputs["tags"] = args ? args.tags : undefined; @@ -77,6 +82,7 @@ export class AppImageConfig extends pulumi.CustomResource { } else { resourceInputs["appImageConfigArn"] = undefined /*out*/; resourceInputs["appImageConfigName"] = undefined /*out*/; + resourceInputs["codeEditorAppImageConfig"] = undefined /*out*/; resourceInputs["jupyterLabAppImageConfig"] = undefined /*out*/; resourceInputs["kernelGatewayImageConfig"] = undefined /*out*/; resourceInputs["tags"] = undefined /*out*/; @@ -96,6 +102,10 @@ export interface AppImageConfigArgs { * The Name of the AppImageConfig. */ appImageConfigName?: pulumi.Input; + /** + * The CodeEditorAppImageConfig. + */ + codeEditorAppImageConfig?: pulumi.Input; /** * The JupyterLabAppImageConfig. */ diff --git a/sdk/nodejs/sagemaker/getAppImageConfig.ts b/sdk/nodejs/sagemaker/getAppImageConfig.ts index b9093645fd..7232310f54 100644 --- a/sdk/nodejs/sagemaker/getAppImageConfig.ts +++ b/sdk/nodejs/sagemaker/getAppImageConfig.ts @@ -30,6 +30,10 @@ export interface GetAppImageConfigResult { * The Amazon Resource Name (ARN) of the AppImageConfig. */ readonly appImageConfigArn?: string; + /** + * The CodeEditorAppImageConfig. + */ + readonly codeEditorAppImageConfig?: outputs.sagemaker.AppImageConfigCodeEditorAppImageConfig; /** * The JupyterLabAppImageConfig. */ diff --git a/sdk/nodejs/securityhub/delegatedAdmin.ts b/sdk/nodejs/securityhub/delegatedAdmin.ts new file mode 100644 index 0000000000..0f20bd7eab --- /dev/null +++ b/sdk/nodejs/securityhub/delegatedAdmin.ts @@ -0,0 +1,90 @@ +// *** 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 AWS::SecurityHub::DelegatedAdmin resource represents the AWS Security Hub delegated admin account in your organization. One delegated admin resource is allowed to create for the organization in each region in which you configure the AdminAccountId. + */ +export class DelegatedAdmin extends pulumi.CustomResource { + /** + * Get an existing DelegatedAdmin 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): DelegatedAdmin { + return new DelegatedAdmin(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:securityhub:DelegatedAdmin'; + + /** + * Returns true if the given object is an instance of DelegatedAdmin. 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 DelegatedAdmin { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === DelegatedAdmin.__pulumiType; + } + + /** + * The Amazon Web Services account identifier of the account to designate as the Security Hub administrator account + */ + public readonly adminAccountId!: pulumi.Output; + /** + * The identifier of the DelegatedAdmin being created and assigned as the unique identifier + */ + public /*out*/ readonly delegatedAdminIdentifier!: pulumi.Output; + /** + * The current status of the Security Hub administrator account. Indicates whether the account is currently enabled as a Security Hub administrator + */ + public /*out*/ readonly status!: pulumi.Output; + + /** + * Create a DelegatedAdmin 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: DelegatedAdminArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.adminAccountId === undefined) && !opts.urn) { + throw new Error("Missing required property 'adminAccountId'"); + } + resourceInputs["adminAccountId"] = args ? args.adminAccountId : undefined; + resourceInputs["delegatedAdminIdentifier"] = undefined /*out*/; + resourceInputs["status"] = undefined /*out*/; + } else { + resourceInputs["adminAccountId"] = undefined /*out*/; + resourceInputs["delegatedAdminIdentifier"] = undefined /*out*/; + resourceInputs["status"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const replaceOnChanges = { replaceOnChanges: ["adminAccountId"] }; + opts = pulumi.mergeOptions(opts, replaceOnChanges); + super(DelegatedAdmin.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a DelegatedAdmin resource. + */ +export interface DelegatedAdminArgs { + /** + * The Amazon Web Services account identifier of the account to designate as the Security Hub administrator account + */ + adminAccountId: pulumi.Input; +} diff --git a/sdk/nodejs/securityhub/getDelegatedAdmin.ts b/sdk/nodejs/securityhub/getDelegatedAdmin.ts new file mode 100644 index 0000000000..8e220e6043 --- /dev/null +++ b/sdk/nodejs/securityhub/getDelegatedAdmin.ts @@ -0,0 +1,50 @@ +// *** 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 AWS::SecurityHub::DelegatedAdmin resource represents the AWS Security Hub delegated admin account in your organization. One delegated admin resource is allowed to create for the organization in each region in which you configure the AdminAccountId. + */ +export function getDelegatedAdmin(args: GetDelegatedAdminArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:securityhub:getDelegatedAdmin", { + "delegatedAdminIdentifier": args.delegatedAdminIdentifier, + }, opts); +} + +export interface GetDelegatedAdminArgs { + /** + * The identifier of the DelegatedAdmin being created and assigned as the unique identifier + */ + delegatedAdminIdentifier: string; +} + +export interface GetDelegatedAdminResult { + /** + * The identifier of the DelegatedAdmin being created and assigned as the unique identifier + */ + readonly delegatedAdminIdentifier?: string; + /** + * The current status of the Security Hub administrator account. Indicates whether the account is currently enabled as a Security Hub administrator + */ + readonly status?: enums.securityhub.DelegatedAdminStatus; +} +/** + * The AWS::SecurityHub::DelegatedAdmin resource represents the AWS Security Hub delegated admin account in your organization. One delegated admin resource is allowed to create for the organization in each region in which you configure the AdminAccountId. + */ +export function getDelegatedAdminOutput(args: GetDelegatedAdminOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getDelegatedAdmin(a, opts)) +} + +export interface GetDelegatedAdminOutputArgs { + /** + * The identifier of the DelegatedAdmin being created and assigned as the unique identifier + */ + delegatedAdminIdentifier: pulumi.Input; +} diff --git a/sdk/nodejs/securityhub/getInsight.ts b/sdk/nodejs/securityhub/getInsight.ts new file mode 100644 index 0000000000..c5f1ae8ad2 --- /dev/null +++ b/sdk/nodejs/securityhub/getInsight.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"; + +/** + * The AWS::SecurityHub::Insight resource represents the AWS Security Hub Insight in your account. An AWS Security Hub insight is a collection of related findings. + */ +export function getInsight(args: GetInsightArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:securityhub:getInsight", { + "insightArn": args.insightArn, + }, opts); +} + +export interface GetInsightArgs { + /** + * The ARN of a Security Hub insight + */ + insightArn: string; +} + +export interface GetInsightResult { + /** + * One or more attributes used to filter the findings included in the insight + */ + readonly filters?: outputs.securityhub.InsightAwsSecurityFindingFilters; + /** + * The grouping attribute for the insight's findings + */ + readonly groupByAttribute?: string; + /** + * The ARN of a Security Hub insight + */ + readonly insightArn?: string; + /** + * The name of a Security Hub insight + */ + readonly name?: string; +} +/** + * The AWS::SecurityHub::Insight resource represents the AWS Security Hub Insight in your account. An AWS Security Hub insight is a collection of related findings. + */ +export function getInsightOutput(args: GetInsightOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getInsight(a, opts)) +} + +export interface GetInsightOutputArgs { + /** + * The ARN of a Security Hub insight + */ + insightArn: pulumi.Input; +} diff --git a/sdk/nodejs/securityhub/getProductSubscription.ts b/sdk/nodejs/securityhub/getProductSubscription.ts new file mode 100644 index 0000000000..47f4d9b3cc --- /dev/null +++ b/sdk/nodejs/securityhub/getProductSubscription.ts @@ -0,0 +1,43 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * The AWS::SecurityHub::ProductSubscription resource represents a subscription to a service that is allowed to generate findings for your Security Hub account. One product subscription resource is created for each product enabled. + */ +export function getProductSubscription(args: GetProductSubscriptionArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:securityhub:getProductSubscription", { + "productSubscriptionArn": args.productSubscriptionArn, + }, opts); +} + +export interface GetProductSubscriptionArgs { + /** + * The ARN of the product subscription for the account + */ + productSubscriptionArn: string; +} + +export interface GetProductSubscriptionResult { + /** + * The ARN of the product subscription for the account + */ + readonly productSubscriptionArn?: string; +} +/** + * The AWS::SecurityHub::ProductSubscription resource represents a subscription to a service that is allowed to generate findings for your Security Hub account. One product subscription resource is created for each product enabled. + */ +export function getProductSubscriptionOutput(args: GetProductSubscriptionOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getProductSubscription(a, opts)) +} + +export interface GetProductSubscriptionOutputArgs { + /** + * The ARN of the product subscription for the account + */ + productSubscriptionArn: pulumi.Input; +} diff --git a/sdk/nodejs/securityhub/index.ts b/sdk/nodejs/securityhub/index.ts index e3bbb0a1c1..a4ca79556a 100644 --- a/sdk/nodejs/securityhub/index.ts +++ b/sdk/nodejs/securityhub/index.ts @@ -10,16 +10,36 @@ export type AutomationRule = import("./automationRule").AutomationRule; export const AutomationRule: typeof import("./automationRule").AutomationRule = null as any; utilities.lazyLoad(exports, ["AutomationRule"], () => require("./automationRule")); +export { DelegatedAdminArgs } from "./delegatedAdmin"; +export type DelegatedAdmin = import("./delegatedAdmin").DelegatedAdmin; +export const DelegatedAdmin: typeof import("./delegatedAdmin").DelegatedAdmin = null as any; +utilities.lazyLoad(exports, ["DelegatedAdmin"], () => require("./delegatedAdmin")); + export { GetAutomationRuleArgs, GetAutomationRuleResult, GetAutomationRuleOutputArgs } from "./getAutomationRule"; export const getAutomationRule: typeof import("./getAutomationRule").getAutomationRule = null as any; export const getAutomationRuleOutput: typeof import("./getAutomationRule").getAutomationRuleOutput = null as any; utilities.lazyLoad(exports, ["getAutomationRule","getAutomationRuleOutput"], () => require("./getAutomationRule")); +export { GetDelegatedAdminArgs, GetDelegatedAdminResult, GetDelegatedAdminOutputArgs } from "./getDelegatedAdmin"; +export const getDelegatedAdmin: typeof import("./getDelegatedAdmin").getDelegatedAdmin = null as any; +export const getDelegatedAdminOutput: typeof import("./getDelegatedAdmin").getDelegatedAdminOutput = null as any; +utilities.lazyLoad(exports, ["getDelegatedAdmin","getDelegatedAdminOutput"], () => require("./getDelegatedAdmin")); + export { GetHubArgs, GetHubResult, GetHubOutputArgs } from "./getHub"; export const getHub: typeof import("./getHub").getHub = null as any; export const getHubOutput: typeof import("./getHub").getHubOutput = null as any; utilities.lazyLoad(exports, ["getHub","getHubOutput"], () => require("./getHub")); +export { GetInsightArgs, GetInsightResult, GetInsightOutputArgs } from "./getInsight"; +export const getInsight: typeof import("./getInsight").getInsight = null as any; +export const getInsightOutput: typeof import("./getInsight").getInsightOutput = null as any; +utilities.lazyLoad(exports, ["getInsight","getInsightOutput"], () => require("./getInsight")); + +export { GetProductSubscriptionArgs, GetProductSubscriptionResult, GetProductSubscriptionOutputArgs } from "./getProductSubscription"; +export const getProductSubscription: typeof import("./getProductSubscription").getProductSubscription = null as any; +export const getProductSubscriptionOutput: typeof import("./getProductSubscription").getProductSubscriptionOutput = null as any; +utilities.lazyLoad(exports, ["getProductSubscription","getProductSubscriptionOutput"], () => require("./getProductSubscription")); + export { GetStandardArgs, GetStandardResult, GetStandardOutputArgs } from "./getStandard"; export const getStandard: typeof import("./getStandard").getStandard = null as any; export const getStandardOutput: typeof import("./getStandard").getStandardOutput = null as any; @@ -30,6 +50,16 @@ export type Hub = import("./hub").Hub; export const Hub: typeof import("./hub").Hub = null as any; utilities.lazyLoad(exports, ["Hub"], () => require("./hub")); +export { InsightArgs } from "./insight"; +export type Insight = import("./insight").Insight; +export const Insight: typeof import("./insight").Insight = null as any; +utilities.lazyLoad(exports, ["Insight"], () => require("./insight")); + +export { ProductSubscriptionArgs } from "./productSubscription"; +export type ProductSubscription = import("./productSubscription").ProductSubscription; +export const ProductSubscription: typeof import("./productSubscription").ProductSubscription = null as any; +utilities.lazyLoad(exports, ["ProductSubscription"], () => require("./productSubscription")); + export { StandardArgs } from "./standard"; export type Standard = import("./standard").Standard; export const Standard: typeof import("./standard").Standard = null as any; @@ -45,8 +75,14 @@ const _module = { switch (type) { case "aws-native:securityhub:AutomationRule": return new AutomationRule(name, undefined, { urn }) + case "aws-native:securityhub:DelegatedAdmin": + return new DelegatedAdmin(name, undefined, { urn }) case "aws-native:securityhub:Hub": return new Hub(name, undefined, { urn }) + case "aws-native:securityhub:Insight": + return new Insight(name, undefined, { urn }) + case "aws-native:securityhub:ProductSubscription": + return new ProductSubscription(name, undefined, { urn }) case "aws-native:securityhub:Standard": return new Standard(name, undefined, { urn }) default: diff --git a/sdk/nodejs/securityhub/insight.ts b/sdk/nodejs/securityhub/insight.ts new file mode 100644 index 0000000000..d36ba08875 --- /dev/null +++ b/sdk/nodejs/securityhub/insight.ts @@ -0,0 +1,105 @@ +// *** 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 AWS::SecurityHub::Insight resource represents the AWS Security Hub Insight in your account. An AWS Security Hub insight is a collection of related findings. + */ +export class Insight extends pulumi.CustomResource { + /** + * Get an existing Insight 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): Insight { + return new Insight(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:securityhub:Insight'; + + /** + * Returns true if the given object is an instance of Insight. 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 Insight { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Insight.__pulumiType; + } + + /** + * One or more attributes used to filter the findings included in the insight + */ + public readonly filters!: pulumi.Output; + /** + * The grouping attribute for the insight's findings + */ + public readonly groupByAttribute!: pulumi.Output; + /** + * The ARN of a Security Hub insight + */ + public /*out*/ readonly insightArn!: pulumi.Output; + /** + * The name of a Security Hub insight + */ + public readonly name!: pulumi.Output; + + /** + * Create a Insight 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: InsightArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.filters === undefined) && !opts.urn) { + throw new Error("Missing required property 'filters'"); + } + if ((!args || args.groupByAttribute === undefined) && !opts.urn) { + throw new Error("Missing required property 'groupByAttribute'"); + } + resourceInputs["filters"] = args ? args.filters : undefined; + resourceInputs["groupByAttribute"] = args ? args.groupByAttribute : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["insightArn"] = undefined /*out*/; + } else { + resourceInputs["filters"] = undefined /*out*/; + resourceInputs["groupByAttribute"] = undefined /*out*/; + resourceInputs["insightArn"] = undefined /*out*/; + resourceInputs["name"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(Insight.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a Insight resource. + */ +export interface InsightArgs { + /** + * One or more attributes used to filter the findings included in the insight + */ + filters: pulumi.Input; + /** + * The grouping attribute for the insight's findings + */ + groupByAttribute: pulumi.Input; + /** + * The name of a Security Hub insight + */ + name?: pulumi.Input; +} diff --git a/sdk/nodejs/securityhub/productSubscription.ts b/sdk/nodejs/securityhub/productSubscription.ts new file mode 100644 index 0000000000..79824ea70d --- /dev/null +++ b/sdk/nodejs/securityhub/productSubscription.ts @@ -0,0 +1,81 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * The AWS::SecurityHub::ProductSubscription resource represents a subscription to a service that is allowed to generate findings for your Security Hub account. One product subscription resource is created for each product enabled. + */ +export class ProductSubscription extends pulumi.CustomResource { + /** + * Get an existing ProductSubscription 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): ProductSubscription { + return new ProductSubscription(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:securityhub:ProductSubscription'; + + /** + * Returns true if the given object is an instance of ProductSubscription. 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 ProductSubscription { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === ProductSubscription.__pulumiType; + } + + /** + * The generic ARN of the product being subscribed to + */ + public readonly productArn!: pulumi.Output; + /** + * The ARN of the product subscription for the account + */ + public /*out*/ readonly productSubscriptionArn!: pulumi.Output; + + /** + * Create a ProductSubscription 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: ProductSubscriptionArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.productArn === undefined) && !opts.urn) { + throw new Error("Missing required property 'productArn'"); + } + resourceInputs["productArn"] = args ? args.productArn : undefined; + resourceInputs["productSubscriptionArn"] = undefined /*out*/; + } else { + resourceInputs["productArn"] = undefined /*out*/; + resourceInputs["productSubscriptionArn"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const replaceOnChanges = { replaceOnChanges: ["productArn"] }; + opts = pulumi.mergeOptions(opts, replaceOnChanges); + super(ProductSubscription.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a ProductSubscription resource. + */ +export interface ProductSubscriptionArgs { + /** + * The generic ARN of the product being subscribed to + */ + productArn: pulumi.Input; +} 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/ssm/getParameter.ts b/sdk/nodejs/ssm/getParameter.ts index a4b2927f4b..6d2de4f666 100644 --- a/sdk/nodejs/ssm/getParameter.ts +++ b/sdk/nodejs/ssm/getParameter.ts @@ -24,7 +24,7 @@ export function getParameter(args: GetParameterArgs, opts?: pulumi.InvokeOptions export interface GetParameterArgs { /** * The name of the parameter. - * The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` + * The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` */ name: string; } @@ -57,7 +57,7 @@ export function getParameterOutput(args: GetParameterOutputArgs, opts?: pulumi.I export interface GetParameterOutputArgs { /** * The name of the parameter. - * The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` + * The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` */ name: pulumi.Input; } diff --git a/sdk/nodejs/ssm/parameter.ts b/sdk/nodejs/ssm/parameter.ts index fd41579098..e0fd7b64a0 100644 --- a/sdk/nodejs/ssm/parameter.ts +++ b/sdk/nodejs/ssm/parameter.ts @@ -162,7 +162,7 @@ export class Parameter extends pulumi.CustomResource { public readonly description!: pulumi.Output; /** * The name of the parameter. - * The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` + * The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` */ public readonly name!: pulumi.Output; /** @@ -250,7 +250,7 @@ export interface ParameterArgs { description?: pulumi.Input; /** * The name of the parameter. - * The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` + * The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` */ name?: pulumi.Input; /** diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index 7408a01660..c481a24000 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,15 @@ "batch/jobDefinition.ts", "batch/jobQueue.ts", "batch/schedulingPolicy.ts", + "bedrock/agent.ts", + "bedrock/agentAlias.ts", + "bedrock/dataSource.ts", + "bedrock/getAgent.ts", + "bedrock/getAgentAlias.ts", + "bedrock/getDataSource.ts", + "bedrock/getKnowledgeBase.ts", + "bedrock/index.ts", + "bedrock/knowledgeBase.ts", "budgets/budgetsAction.ts", "budgets/getBudgetsAction.ts", "budgets/index.ts", @@ -271,6 +284,9 @@ "cleanrooms/getMembership.ts", "cleanrooms/index.ts", "cleanrooms/membership.ts", + "cleanroomsml/getTrainingDataset.ts", + "cleanroomsml/index.ts", + "cleanroomsml/trainingDataset.ts", "cloudformation/getHookDefaultVersion.ts", "cloudformation/getHookTypeConfig.ts", "cloudformation/getHookVersion.ts", @@ -340,12 +356,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", @@ -543,6 +564,22 @@ "datazone/index.ts", "datazone/project.ts", "datazone/subscriptionTarget.ts", + "deadline/farm.ts", + "deadline/fleet.ts", + "deadline/getFarm.ts", + "deadline/getFleet.ts", + "deadline/getLicenseEndpoint.ts", + "deadline/getMeteredProduct.ts", + "deadline/getQueue.ts", + "deadline/getQueueEnvironment.ts", + "deadline/getStorageProfile.ts", + "deadline/index.ts", + "deadline/licenseEndpoint.ts", + "deadline/meteredProduct.ts", + "deadline/queue.ts", + "deadline/queueEnvironment.ts", + "deadline/queueFleetAssociation.ts", + "deadline/storageProfile.ts", "detective/getGraph.ts", "detective/getMemberInvitation.ts", "detective/getOrganizationAdmin.ts", @@ -661,7 +698,6 @@ "ec2/getTransitGatewayMulticastGroupSource.ts", "ec2/getTransitGatewayPeeringAttachment.ts", "ec2/getTransitGatewayRouteTable.ts", - "ec2/getTransitGatewayRouteTableAssociation.ts", "ec2/getTransitGatewayVpcAttachment.ts", "ec2/getVerifiedAccessEndpoint.ts", "ec2/getVerifiedAccessGroup.ts", @@ -840,11 +876,15 @@ "emrserverless/getApplication.ts", "emrserverless/index.ts", "entityresolution/getIdMappingWorkflow.ts", + "entityresolution/getIdNamespace.ts", "entityresolution/getMatchingWorkflow.ts", + "entityresolution/getPolicyStatement.ts", "entityresolution/getSchemaMapping.ts", "entityresolution/idMappingWorkflow.ts", + "entityresolution/idNamespace.ts", "entityresolution/index.ts", "entityresolution/matchingWorkflow.ts", + "entityresolution/policyStatement.ts", "entityresolution/schemaMapping.ts", "events/apiDestination.ts", "events/archive.ts", @@ -1181,15 +1221,21 @@ "iotwireless/wirelessDevice.ts", "iotwireless/wirelessGateway.ts", "ivs/channel.ts", + "ivs/encoderConfiguration.ts", "ivs/getChannel.ts", + "ivs/getEncoderConfiguration.ts", "ivs/getPlaybackKeyPair.ts", + "ivs/getPlaybackRestrictionPolicy.ts", "ivs/getRecordingConfiguration.ts", "ivs/getStage.ts", + "ivs/getStorageConfiguration.ts", "ivs/getStreamKey.ts", "ivs/index.ts", "ivs/playbackKeyPair.ts", + "ivs/playbackRestrictionPolicy.ts", "ivs/recordingConfiguration.ts", "ivs/stage.ts", + "ivs/storageConfiguration.ts", "ivs/streamKey.ts", "ivschat/getLoggingConfiguration.ts", "ivschat/getRoom.ts", @@ -1197,8 +1243,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", @@ -1849,12 +1899,25 @@ "secretsmanager/index.ts", "secretsmanager/secret.ts", "securityhub/automationRule.ts", + "securityhub/delegatedAdmin.ts", "securityhub/getAutomationRule.ts", + "securityhub/getDelegatedAdmin.ts", "securityhub/getHub.ts", + "securityhub/getInsight.ts", + "securityhub/getProductSubscription.ts", "securityhub/getStandard.ts", "securityhub/hub.ts", "securityhub/index.ts", + "securityhub/insight.ts", + "securityhub/productSubscription.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,16 +2063,20 @@ "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", "types/enums/cleanrooms/index.ts", + "types/enums/cleanroomsml/index.ts", "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", @@ -2018,6 +2085,7 @@ "types/enums/databrew/index.ts", "types/enums/datasync/index.ts", "types/enums/datazone/index.ts", + "types/enums/deadline/index.ts", "types/enums/devicefarm/index.ts", "types/enums/devopsguru/index.ts", "types/enums/dms/index.ts", @@ -2116,6 +2184,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/arczonalshift/index.ts b/sdk/nodejs/types/enums/arczonalshift/index.ts index d64eb7b6da..58aba66653 100644 --- a/sdk/nodejs/types/enums/arczonalshift/index.ts +++ b/sdk/nodejs/types/enums/arczonalshift/index.ts @@ -10,7 +10,6 @@ export type ZonalAutoshiftConfigurationControlConditionType = (typeof ZonalAutos export const ZonalAutoshiftConfigurationZonalAutoshiftStatus = { Enabled: "ENABLED", - Disabled: "DISABLED", } as const; export type ZonalAutoshiftConfigurationZonalAutoshiftStatus = (typeof ZonalAutoshiftConfigurationZonalAutoshiftStatus)[keyof typeof ZonalAutoshiftConfigurationZonalAutoshiftStatus]; diff --git a/sdk/nodejs/types/enums/bedrock/index.ts b/sdk/nodejs/types/enums/bedrock/index.ts new file mode 100644 index 0000000000..8bbd3d6240 --- /dev/null +++ b/sdk/nodejs/types/enums/bedrock/index.ts @@ -0,0 +1,155 @@ +// *** 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]; + +export const DataSourceChunkingStrategy = { + FixedSize: "FIXED_SIZE", + None: "NONE", +} as const; + +/** + * Knowledge base can split your source data into chunks. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried. You have the following options for chunking your data. If you opt for NONE, then you may want to pre-process your files by splitting them up such that each file corresponds to a chunk. + */ +export type DataSourceChunkingStrategy = (typeof DataSourceChunkingStrategy)[keyof typeof DataSourceChunkingStrategy]; + +export const DataSourceStatus = { + Available: "AVAILABLE", + Deleting: "DELETING", +} as const; + +/** + * The status of a data source. + */ +export type DataSourceStatus = (typeof DataSourceStatus)[keyof typeof DataSourceStatus]; + +export const DataSourceType = { + S3: "S3", +} as const; + +/** + * The type of the data source location. + */ +export type DataSourceType = (typeof DataSourceType)[keyof typeof DataSourceType]; + +export const KnowledgeBaseStatus = { + Creating: "CREATING", + Active: "ACTIVE", + Deleting: "DELETING", + Updating: "UPDATING", + Failed: "FAILED", +} as const; + +/** + * The status of a knowledge base. + */ +export type KnowledgeBaseStatus = (typeof KnowledgeBaseStatus)[keyof typeof KnowledgeBaseStatus]; + +export const KnowledgeBaseStorageType = { + OpensearchServerless: "OPENSEARCH_SERVERLESS", + Pinecone: "PINECONE", + Rds: "RDS", +} as const; + +/** + * The storage type of a knowledge base. + */ +export type KnowledgeBaseStorageType = (typeof KnowledgeBaseStorageType)[keyof typeof KnowledgeBaseStorageType]; + +export const KnowledgeBaseType = { + Vector: "VECTOR", +} as const; + +/** + * The type of a knowledge base. + */ +export type KnowledgeBaseType = (typeof KnowledgeBaseType)[keyof typeof KnowledgeBaseType]; 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/cleanroomsml/index.ts b/sdk/nodejs/types/enums/cleanroomsml/index.ts new file mode 100644 index 0000000000..85d59ddfec --- /dev/null +++ b/sdk/nodejs/types/enums/cleanroomsml/index.ts @@ -0,0 +1,25 @@ +// *** 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 TrainingDatasetColumnType = { + UserId: "USER_ID", + ItemId: "ITEM_ID", + Timestamp: "TIMESTAMP", + CategoricalFeature: "CATEGORICAL_FEATURE", + NumericalFeature: "NUMERICAL_FEATURE", +} as const; + +export type TrainingDatasetColumnType = (typeof TrainingDatasetColumnType)[keyof typeof TrainingDatasetColumnType]; + +export const TrainingDatasetDatasetType = { + Interactions: "INTERACTIONS", +} as const; + +export type TrainingDatasetDatasetType = (typeof TrainingDatasetDatasetType)[keyof typeof TrainingDatasetDatasetType]; + +export const TrainingDatasetStatus = { + Active: "ACTIVE", +} as const; + +export type TrainingDatasetStatus = (typeof TrainingDatasetStatus)[keyof typeof TrainingDatasetStatus]; 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/deadline/index.ts b/sdk/nodejs/types/enums/deadline/index.ts new file mode 100644 index 0000000000..76b221bd08 --- /dev/null +++ b/sdk/nodejs/types/enums/deadline/index.ts @@ -0,0 +1,101 @@ +// *** 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 FleetAcceleratorType = { + Gpu: "gpu", +} as const; + +export type FleetAcceleratorType = (typeof FleetAcceleratorType)[keyof typeof FleetAcceleratorType]; + +export const FleetAutoScalingMode = { + NoScaling: "NO_SCALING", + EventBasedAutoScaling: "EVENT_BASED_AUTO_SCALING", +} as const; + +export type FleetAutoScalingMode = (typeof FleetAutoScalingMode)[keyof typeof FleetAutoScalingMode]; + +export const FleetCpuArchitectureType = { + X8664: "x86_64", + Arm64: "arm64", +} as const; + +export type FleetCpuArchitectureType = (typeof FleetCpuArchitectureType)[keyof typeof FleetCpuArchitectureType]; + +export const FleetCustomerManagedFleetOperatingSystemFamily = { + Windows: "WINDOWS", + Linux: "LINUX", + Macos: "MACOS", +} as const; + +export type FleetCustomerManagedFleetOperatingSystemFamily = (typeof FleetCustomerManagedFleetOperatingSystemFamily)[keyof typeof FleetCustomerManagedFleetOperatingSystemFamily]; + +export const FleetEc2MarketType = { + OnDemand: "on-demand", + Spot: "spot", +} as const; + +export type FleetEc2MarketType = (typeof FleetEc2MarketType)[keyof typeof FleetEc2MarketType]; + +export const FleetServiceManagedFleetOperatingSystemFamily = { + Windows: "WINDOWS", + Linux: "LINUX", +} as const; + +export type FleetServiceManagedFleetOperatingSystemFamily = (typeof FleetServiceManagedFleetOperatingSystemFamily)[keyof typeof FleetServiceManagedFleetOperatingSystemFamily]; + +export const FleetStatus = { + Active: "ACTIVE", + CreateInProgress: "CREATE_IN_PROGRESS", + UpdateInProgress: "UPDATE_IN_PROGRESS", + CreateFailed: "CREATE_FAILED", + UpdateFailed: "UPDATE_FAILED", +} as const; + +export type FleetStatus = (typeof FleetStatus)[keyof typeof FleetStatus]; + +export const LicenseEndpointStatus = { + CreateInProgress: "CREATE_IN_PROGRESS", + DeleteInProgress: "DELETE_IN_PROGRESS", + Ready: "READY", + NotReady: "NOT_READY", +} as const; + +export type LicenseEndpointStatus = (typeof LicenseEndpointStatus)[keyof typeof LicenseEndpointStatus]; + +export const QueueDefaultQueueBudgetAction = { + None: "NONE", + StopSchedulingAndCompleteTasks: "STOP_SCHEDULING_AND_COMPLETE_TASKS", + StopSchedulingAndCancelTasks: "STOP_SCHEDULING_AND_CANCEL_TASKS", +} as const; + +export type QueueDefaultQueueBudgetAction = (typeof QueueDefaultQueueBudgetAction)[keyof typeof QueueDefaultQueueBudgetAction]; + +export const QueueEnvironmentEnvironmentTemplateType = { + Json: "JSON", + Yaml: "YAML", +} as const; + +export type QueueEnvironmentEnvironmentTemplateType = (typeof QueueEnvironmentEnvironmentTemplateType)[keyof typeof QueueEnvironmentEnvironmentTemplateType]; + +export const QueueRunAs = { + QueueConfiguredUser: "QUEUE_CONFIGURED_USER", + WorkerAgentUser: "WORKER_AGENT_USER", +} as const; + +export type QueueRunAs = (typeof QueueRunAs)[keyof typeof QueueRunAs]; + +export const StorageProfileFileSystemLocationType = { + Shared: "SHARED", + Local: "LOCAL", +} as const; + +export type StorageProfileFileSystemLocationType = (typeof StorageProfileFileSystemLocationType)[keyof typeof StorageProfileFileSystemLocationType]; + +export const StorageProfileOperatingSystemFamily = { + Windows: "WINDOWS", + Linux: "LINUX", + Macos: "MACOS", +} as const; + +export type StorageProfileOperatingSystemFamily = (typeof StorageProfileOperatingSystemFamily)[keyof typeof StorageProfileOperatingSystemFamily]; diff --git a/sdk/nodejs/types/enums/ecs/index.ts b/sdk/nodejs/types/enums/ecs/index.ts index 48ad8a6ebc..e942af3a39 100644 --- a/sdk/nodejs/types/enums/ecs/index.ts +++ b/sdk/nodejs/types/enums/ecs/index.ts @@ -165,7 +165,7 @@ export const TaskDefinitionPortMappingAppProtocol = { * The application protocol that's used for the port mapping. This parameter only applies to Service Connect. We recommend that you set this parameter to be consistent with the protocol that your application uses. If you set this parameter, Amazon ECS adds protocol-specific connection handling to the Service Connect proxy. If you set this parameter, Amazon ECS adds protocol-specific telemetry in the Amazon ECS console and CloudWatch. * If you don't set a value for this parameter, then TCP is used. However, Amazon ECS doesn't add protocol-specific telemetry for TCP. * ``appProtocol`` is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment. - * Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS se + * Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. */ export type TaskDefinitionPortMappingAppProtocol = (typeof TaskDefinitionPortMappingAppProtocol)[keyof typeof TaskDefinitionPortMappingAppProtocol]; 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..9883bd5b21 100644 --- a/sdk/nodejs/types/enums/entityresolution/index.ts +++ b/sdk/nodejs/types/enums/entityresolution/index.ts @@ -8,6 +8,26 @@ 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 IdNamespaceIdMappingWorkflowPropertiesIdMappingType = { + Provider: "PROVIDER", +} as const; + +export type IdNamespaceIdMappingWorkflowPropertiesIdMappingType = (typeof IdNamespaceIdMappingWorkflowPropertiesIdMappingType)[keyof typeof IdNamespaceIdMappingWorkflowPropertiesIdMappingType]; + +export const IdNamespaceType = { + Source: "SOURCE", + Target: "TARGET", +} as const; + +export type IdNamespaceType = (typeof IdNamespaceType)[keyof typeof IdNamespaceType]; + export const MatchingWorkflowResolutionTechniquesResolutionType = { RuleMatching: "RULE_MATCHING", MlMatching: "ML_MATCHING", @@ -23,6 +43,13 @@ export const MatchingWorkflowRuleBasedPropertiesAttributeMatchingModel = { export type MatchingWorkflowRuleBasedPropertiesAttributeMatchingModel = (typeof MatchingWorkflowRuleBasedPropertiesAttributeMatchingModel)[keyof typeof MatchingWorkflowRuleBasedPropertiesAttributeMatchingModel]; +export const PolicyStatementStatementEffect = { + Allow: "Allow", + Deny: "Deny", +} as const; + +export type PolicyStatementStatementEffect = (typeof PolicyStatementStatementEffect)[keyof typeof PolicyStatementStatementEffect]; + export const SchemaMappingSchemaAttributeType = { Name: "NAME", NameFirst: "NAME_FIRST", diff --git a/sdk/nodejs/types/enums/index.ts b/sdk/nodejs/types/enums/index.ts index 0307b068a0..160fb8a5ea 100644 --- a/sdk/nodejs/types/enums/index.ts +++ b/sdk/nodejs/types/enums/index.ts @@ -15,16 +15,20 @@ 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"; import * as cleanrooms from "./cleanrooms"; +import * as cleanroomsml from "./cleanroomsml"; 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"; @@ -33,6 +37,7 @@ import * as customerprofiles from "./customerprofiles"; import * as databrew from "./databrew"; import * as datasync from "./datasync"; import * as datazone from "./datazone"; +import * as deadline from "./deadline"; import * as devicefarm from "./devicefarm"; import * as devopsguru from "./devopsguru"; import * as dms from "./dms"; @@ -130,6 +135,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,16 +172,20 @@ export { b2bi, backup, batch, + bedrock, budgets, cassandra, ce, cleanrooms, + cleanroomsml, cloudformation, cloudfront, cloudtrail, + codeartifact, codebuild, codeguruprofiler, codegurureviewer, + codestarconnections, codestarnotifications, comprehend, connect, @@ -184,6 +194,7 @@ export { databrew, datasync, datazone, + deadline, devicefarm, devopsguru, dms, @@ -281,6 +292,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/lambda/index.ts b/sdk/nodejs/types/enums/lambda/index.ts index 9b56fc5c6c..af064a649c 100644 --- a/sdk/nodejs/types/enums/lambda/index.ts +++ b/sdk/nodejs/types/enums/lambda/index.ts @@ -104,11 +104,11 @@ export const FunctionRuntimeManagementConfigUpdateRuntimeOn = { /** * Specify the runtime update mode. - * + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates. - * + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date. - * + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback). - * - * *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual`` + * + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates. + * + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date. + * + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback). + * + * *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual`` */ export type FunctionRuntimeManagementConfigUpdateRuntimeOn = (typeof FunctionRuntimeManagementConfigUpdateRuntimeOn)[keyof typeof FunctionRuntimeManagementConfigUpdateRuntimeOn]; diff --git a/sdk/nodejs/types/enums/logs/index.ts b/sdk/nodejs/types/enums/logs/index.ts index ea3f6c68d1..6543a5a6ad 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/securityhub/index.ts b/sdk/nodejs/types/enums/securityhub/index.ts index ae30ad0e08..b4c924b7a6 100644 --- a/sdk/nodejs/types/enums/securityhub/index.ts +++ b/sdk/nodejs/types/enums/securityhub/index.ts @@ -74,3 +74,44 @@ export const AutomationRulesFindingFieldsUpdateVerificationState = { } as const; export type AutomationRulesFindingFieldsUpdateVerificationState = (typeof AutomationRulesFindingFieldsUpdateVerificationState)[keyof typeof AutomationRulesFindingFieldsUpdateVerificationState]; + +export const DelegatedAdminStatus = { + Enabled: "ENABLED", + DisableInProgress: "DISABLE_IN_PROGRESS", +} as const; + +/** + * The current status of the Security Hub administrator account. Indicates whether the account is currently enabled as a Security Hub administrator + */ +export type DelegatedAdminStatus = (typeof DelegatedAdminStatus)[keyof typeof DelegatedAdminStatus]; + +export const InsightDateRangeUnit = { + Days: "DAYS", +} as const; + +/** + * A date range unit for the date filter. + */ +export type InsightDateRangeUnit = (typeof InsightDateRangeUnit)[keyof typeof InsightDateRangeUnit]; + +export const InsightMapFilterComparison = { + Equals: "EQUALS", + NotEquals: "NOT_EQUALS", +} as const; + +/** + * The condition to apply to the key value when filtering Security Hub findings with a map filter. + */ +export type InsightMapFilterComparison = (typeof InsightMapFilterComparison)[keyof typeof InsightMapFilterComparison]; + +export const InsightStringFilterComparison = { + Equals: "EQUALS", + Prefix: "PREFIX", + NotEquals: "NOT_EQUALS", + PrefixNotEquals: "PREFIX_NOT_EQUALS", +} as const; + +/** + * The condition to apply to a string value when filtering Security Hub findings. + */ +export type InsightStringFilterComparison = (typeof InsightStringFilterComparison)[keyof typeof InsightStringFilterComparison]; 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..a5de8a2d63 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -659,12 +659,6 @@ export namespace amplify { value: pulumi.Input; } - export interface DomainCertificateArgs { - certificateArn?: pulumi.Input; - certificateType?: pulumi.Input; - certificateVerificationDnsRecord?: pulumi.Input; - } - export interface DomainCertificateSettingsArgs { certificateType?: pulumi.Input; customCertificateArn?: pulumi.Input; @@ -2624,6 +2618,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 +3728,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 +5313,348 @@ 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; + } + + /** + * Details about how to chunk the documents in the data source. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried. + */ + export interface DataSourceChunkingConfigurationArgs { + chunkingStrategy: pulumi.Input; + fixedSizeChunkingConfiguration?: pulumi.Input; + } + + /** + * Specifies a raw data source location to ingest. + */ + export interface DataSourceConfigurationArgs { + s3Configuration: pulumi.Input; + type: pulumi.Input; + } + + /** + * Configurations for when you choose fixed-size chunking. If you set the chunkingStrategy as NONE, exclude this field. + */ + export interface DataSourceFixedSizeChunkingConfigurationArgs { + /** + * The maximum number of tokens to include in a chunk. + */ + maxTokens: pulumi.Input; + /** + * The percentage of overlap between adjacent chunks of a data source. + */ + overlapPercentage: pulumi.Input; + } + + /** + * Contains information about the S3 configuration of the data source. + */ + export interface DataSourceS3DataSourceConfigurationArgs { + /** + * The ARN of the bucket that contains the data source. + */ + bucketArn: pulumi.Input; + /** + * A list of S3 prefixes that define the object containing the data sources. + */ + inclusionPrefixes?: pulumi.Input[]>; + } + + /** + * Contains details about the server-side encryption for the data source. + */ + export interface DataSourceServerSideEncryptionConfigurationArgs { + /** + * The ARN of the AWS KMS key used to encrypt the resource. + */ + kmsKeyArn?: pulumi.Input; + } + + /** + * Details about how to chunk the documents in the data source. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried. + */ + export interface DataSourceVectorIngestionConfigurationArgs { + chunkingConfiguration?: pulumi.Input; + } + + /** + * Contains details about the embeddings model used for the knowledge base. + */ + export interface KnowledgeBaseConfigurationArgs { + type: pulumi.Input; + vectorKnowledgeBaseConfiguration: pulumi.Input; + } + + /** + * Contains the storage configuration of the knowledge base in Amazon OpenSearch Service. + */ + export interface KnowledgeBaseOpenSearchServerlessConfigurationArgs { + /** + * The ARN of the OpenSearch Service vector store. + */ + collectionArn: pulumi.Input; + fieldMapping: pulumi.Input; + /** + * The name of the vector store. + */ + vectorIndexName: pulumi.Input; + } + + /** + * A mapping of Bedrock Knowledge Base fields to OpenSearch Serverless field names + */ + export interface KnowledgeBaseOpenSearchServerlessFieldMappingArgs { + /** + * The name of the field in which Amazon Bedrock stores metadata about the vector store. + */ + metadataField: pulumi.Input; + /** + * The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. + */ + textField: pulumi.Input; + /** + * The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources. + */ + vectorField: pulumi.Input; + } + + /** + * Contains the storage configuration of the knowledge base in Pinecone. + */ + export interface KnowledgeBasePineconeConfigurationArgs { + /** + * The endpoint URL for your index management page. + */ + connectionString: pulumi.Input; + /** + * The ARN of the secret that you created in AWS Secrets Manager that is linked to your Pinecone API key. + */ + credentialsSecretArn: pulumi.Input; + fieldMapping: pulumi.Input; + /** + * The namespace to be used to write new data to your database. + */ + namespace?: pulumi.Input; + } + + /** + * Contains the names of the fields to which to map information about the vector store. + */ + export interface KnowledgeBasePineconeFieldMappingArgs { + /** + * The name of the field in which Amazon Bedrock stores metadata about the vector store. + */ + metadataField: pulumi.Input; + /** + * The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. + */ + textField: pulumi.Input; + } + + /** + * Contains details about the storage configuration of the knowledge base in Amazon RDS. For more information, see Create a vector index in Amazon RDS. + */ + export interface KnowledgeBaseRdsConfigurationArgs { + /** + * The ARN of the secret that you created in AWS Secrets Manager that is linked to your Amazon RDS database. + */ + credentialsSecretArn: pulumi.Input; + /** + * The name of your Amazon RDS database. + */ + databaseName: pulumi.Input; + fieldMapping: pulumi.Input; + /** + * The ARN of the vector store. + */ + resourceArn: pulumi.Input; + /** + * The name of the table in the database. + */ + tableName: pulumi.Input; + } + + /** + * Contains the names of the fields to which to map information about the vector store. + */ + export interface KnowledgeBaseRdsFieldMappingArgs { + /** + * The name of the field in which Amazon Bedrock stores metadata about the vector store. + */ + metadataField: pulumi.Input; + /** + * The name of the field in which Amazon Bedrock stores the ID for each entry. + */ + primaryKeyField: pulumi.Input; + /** + * The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. + */ + textField: pulumi.Input; + /** + * The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources. + */ + vectorField: pulumi.Input; + } + + /** + * The vector store service in which the knowledge base is stored. + */ + export interface KnowledgeBaseStorageConfigurationArgs { + opensearchServerlessConfiguration?: pulumi.Input; + pineconeConfiguration?: pulumi.Input; + rdsConfiguration?: pulumi.Input; + type: pulumi.Input; + } + + /** + * Contains details about the model used to create vector embeddings for the knowledge base. + */ + export interface KnowledgeBaseVectorKnowledgeBaseConfigurationArgs { + /** + * The ARN of the model used to create vector embeddings for the knowledge base. + */ + embeddingModelArn: pulumi.Input; + } +} + export namespace budgets { export interface BudgetsActionActionThresholdArgs { type: pulumi.Input; @@ -5471,6 +5877,7 @@ export namespace cleanrooms { export interface ConfiguredTableAnalysisRuleCustomArgs { allowedAnalyses: pulumi.Input[]>; allowedAnalysisProviders?: pulumi.Input[]>; + differentialPrivacy?: pulumi.Input; } export interface ConfiguredTableAnalysisRuleListArgs { @@ -5495,6 +5902,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; @@ -5529,6 +5944,34 @@ export namespace cleanrooms { } +export namespace cleanroomsml { + export interface TrainingDatasetColumnSchemaArgs { + columnName: pulumi.Input; + columnTypes: pulumi.Input[]>; + } + + export interface TrainingDatasetDataSourceArgs { + glueDataSource: pulumi.Input; + } + + export interface TrainingDatasetDatasetArgs { + inputConfig: pulumi.Input; + type: pulumi.Input; + } + + export interface TrainingDatasetDatasetInputConfigArgs { + dataSource: pulumi.Input; + schema: pulumi.Input[]>; + } + + export interface TrainingDatasetGlueDataSourceArgs { + catalogId?: pulumi.Input; + databaseName: pulumi.Input; + tableName: pulumi.Input; + } + +} + export namespace cloudformation { export interface HookVersionLoggingConfigArgs { /** @@ -5724,7 +6167,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 +6200,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 +6210,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 +6225,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 +6279,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 +6324,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 +6339,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 +6382,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 +6391,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 +6399,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 +6445,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 +6518,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 +6528,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 +6543,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 +6590,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 +6606,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 +6909,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 +6933,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 +6973,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 +6983,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; } @@ -6865,39 +7340,40 @@ export namespace cloudtrail { export namespace cloudwatch { /** - * Dimensions are arbitrary name/value pairs that can be associated with a CloudWatch metric. + * Dimension is an embedded property of the ``AWS::CloudWatch::Alarm`` type. Dimensions are name/value pairs that can be associated with a CW metric. You can specify a maximum of 10 dimensions for a given metric. */ export interface AlarmDimensionArgs { /** - * The name of the dimension. + * The name of the dimension, from 1–255 characters in length. This dimension name must have been included when the metric was published. */ name: pulumi.Input; /** - * The value for the dimension. + * The value for the dimension, from 1–255 characters in length. */ value: pulumi.Input; } /** - * The Metric property type represents a specific metric. + * The ``Metric`` property type represents a specific metric. ``Metric`` is a property of the [MetricStat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricstat.html) property type. */ export interface AlarmMetricArgs { /** - * The dimensions for the metric. + * The metric dimensions that you want to be used for the metric that the alarm will watch. */ dimensions?: pulumi.Input[]>; /** - * The name of the metric. + * The name of the metric that you want the alarm to watch. This is a required field. */ metricName?: pulumi.Input; /** - * The namespace of the metric. + * The namespace of the metric that the alarm will watch. */ namespace?: pulumi.Input; } /** - * This property type specifies the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a math expression on metric data. + * The ``MetricDataQuery`` property type specifies the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a math expression on metric data. + * Any expression used must return a single time series. For more information, see [Metric Math Syntax and Functions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) in the *User Guide*. */ export interface AlarmMetricDataQueryArgs { /** @@ -6905,33 +7381,38 @@ export namespace cloudwatch { */ accountId?: pulumi.Input; /** - * The math expression to be performed on the returned data. + * The math expression to be performed on the returned data, if this object is performing a math expression. This expression can use the ``Id`` of the other metrics to refer to those metrics, and can also use the ``Id`` of other expressions to use the result of those expressions. For more information about metric math expressions, see [Metric Math Syntax and Functions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) in the *User Guide*. + * Within each MetricDataQuery object, you must specify either ``Expression`` or ``MetricStat`` but not both. */ expression?: pulumi.Input; /** - * A short name used to tie this object to the results in the response. + * A short name used to tie this object to the results in the response. This name must be unique within a single call to ``GetMetricData``. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscore. The first character must be a lowercase letter. */ id: pulumi.Input; /** - * A human-readable label for this metric or expression. + * A human-readable label for this metric or expression. This is especially useful if this is an expression, so that you know what the value represents. If the metric or expression is shown in a CW dashboard widget, the label is shown. If ``Label`` is omitted, CW generates a default. */ label?: pulumi.Input; /** - * The metric to be returned, along with statistics, period, and units. + * The metric to be returned, along with statistics, period, and units. Use this parameter only if this object is retrieving a metric and not performing a math expression on returned data. + * Within one MetricDataQuery object, you must specify either ``Expression`` or ``MetricStat`` but not both. */ metricStat?: pulumi.Input; /** - * The period in seconds, over which the statistic is applied. + * The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a ``PutMetricData`` operation that includes a ``StorageResolution of 1 second``. */ period?: pulumi.Input; /** * This option indicates whether to return the timestamps and raw data values of this metric. + * When you create an alarm based on a metric math expression, specify ``True`` for this value for only the one math expression that the alarm is based on. You must specify ``False`` for ``ReturnData`` for all the other metrics and expressions used in the alarm. + * This field is required. */ returnData?: pulumi.Input; } /** * This structure defines the metric to be returned, along with the statistics, period, and units. + * ``MetricStat`` is a property of the [MetricDataQuery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html) property type. */ export interface AlarmMetricStatArgs { /** @@ -6939,15 +7420,20 @@ export namespace cloudwatch { */ metric: pulumi.Input; /** - * The granularity, in seconds, of the returned data points. + * The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a ``PutMetricData`` call that includes a ``StorageResolution`` of 1 second. + * If the ``StartTime`` parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned: + * + Start time between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute). + * + Start time between 15 and 63 days ago - Use a multiple of 300 seconds (5 minutes). + * + Start time greater than 63 days ago - Use a multiple of 3600 seconds (1 hour). */ period: pulumi.Input; /** - * The statistic to return. + * The statistic to return. It can include any CW statistic or extended statistic. For a list of valid values, see the table in [Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the *User Guide*. */ stat: pulumi.Input; /** - * The unit to use for the returned data points. + * The unit to use for the returned data points. + * Valid values are: 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, or None. */ unit?: pulumi.Input; } @@ -6997,11 +7483,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 +8695,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. */ @@ -9986,6 +10516,119 @@ export namespace datazone { } } +export namespace deadline { + export interface FleetAcceleratorCountRangeArgs { + max?: pulumi.Input; + min: pulumi.Input; + } + + export interface FleetAcceleratorTotalMemoryMiBRangeArgs { + max?: pulumi.Input; + min: pulumi.Input; + } + + export interface FleetAmountCapabilityArgs { + max?: pulumi.Input; + min: pulumi.Input; + name: pulumi.Input; + } + + export interface FleetAttributeCapabilityArgs { + name: pulumi.Input; + values: pulumi.Input[]>; + } + + export interface FleetConfiguration0PropertiesArgs { + customerManaged: pulumi.Input; + } + + export interface FleetConfiguration1PropertiesArgs { + serviceManagedEc2: pulumi.Input; + } + + export interface FleetCustomerManagedFleetConfigurationArgs { + mode: pulumi.Input; + storageProfileId?: pulumi.Input; + workerCapabilities: pulumi.Input; + } + + export interface FleetCustomerManagedWorkerCapabilitiesArgs { + acceleratorCount?: pulumi.Input; + acceleratorTotalMemoryMiB?: pulumi.Input; + acceleratorTypes?: pulumi.Input[]>; + cpuArchitectureType: pulumi.Input; + customAmounts?: pulumi.Input[]>; + customAttributes?: pulumi.Input[]>; + memoryMiB: pulumi.Input; + osFamily: pulumi.Input; + vCpuCount: pulumi.Input; + } + + export interface FleetEc2EbsVolumeArgs { + iops?: pulumi.Input; + sizeGiB?: pulumi.Input; + throughputMiB?: pulumi.Input; + } + + export interface FleetMemoryMiBRangeArgs { + max?: pulumi.Input; + min: pulumi.Input; + } + + export interface FleetServiceManagedEc2FleetConfigurationArgs { + instanceCapabilities: pulumi.Input; + instanceMarketOptions: pulumi.Input; + } + + export interface FleetServiceManagedEc2InstanceCapabilitiesArgs { + allowedInstanceTypes?: pulumi.Input[]>; + cpuArchitectureType: pulumi.Input; + customAmounts?: pulumi.Input[]>; + customAttributes?: pulumi.Input[]>; + excludedInstanceTypes?: pulumi.Input[]>; + memoryMiB: pulumi.Input; + osFamily: pulumi.Input; + rootEbsVolume?: pulumi.Input; + vCpuCount: pulumi.Input; + } + + export interface FleetServiceManagedEc2InstanceMarketOptionsArgs { + type: pulumi.Input; + } + + export interface FleetVCpuCountRangeArgs { + max?: pulumi.Input; + min: pulumi.Input; + } + + export interface QueueJobAttachmentSettingsArgs { + rootPrefix: pulumi.Input; + s3BucketName: pulumi.Input; + } + + export interface QueueJobRunAsUserArgs { + posix?: pulumi.Input; + runAs: pulumi.Input; + windows?: pulumi.Input; + } + + export interface QueuePosixUserArgs { + group: pulumi.Input; + user: pulumi.Input; + } + + export interface QueueWindowsUserArgs { + passwordArn: pulumi.Input; + user: pulumi.Input; + } + + export interface StorageProfileFileSystemLocationArgs { + name: pulumi.Input; + path: pulumi.Input; + type: pulumi.Input; + } +} + export namespace detective { } @@ -10284,6 +10927,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 +10938,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 +11186,25 @@ export namespace dynamodb { writeCapacityUnits: pulumi.Input; } + /** + * Creates or updates a resource-based policy document that contains the permissions for DDB resources, such as a table, its indexes, and stream. Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource. + * In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + * While defining resource-based policies in your CFNshort templates, the following considerations apply: + * + The maximum size supported for a resource-based policy document in JSON format is 20 KB. DDB counts whitespaces when calculating the size of a policy against this limit. + * + Resource-based policies don't support [drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html#). If you update a policy outside of the CFNshort stack template, you'll need to update the CFNshort stack with the changes. + * + Resource-based policies don't support out-of-band changes. If you add, update, or delete a policy outside of the CFNshort template, the change won't be overwritten if there are no changes to the policy within the template. + * For example, say that your template contains a resource-based policy, which you later update outside of the template. If you don't make any changes to the policy in the template, the updated policy in DDB won’t be synced with the policy in the template. + * Conversely, say that your template doesn’t contain a resource-based policy, but you add a policy outside of the template. This policy won’t be removed from DDB as long as you don’t add it to the template. When you add a policy to the template and update the stack, the existing policy in DDB will be updated to match the one defined in the template. + * + * For a full list of all considerations, see [Resource-based policy considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html). + */ + export interface TableResourcePolicyArgs { + /** + * A resource-based policy document that contains permissions to add to the specified DDB table, index, or both. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + */ + policyDocument: any; + } + /** * The S3 bucket that is being imported from. */ @@ -10574,6 +11246,11 @@ export namespace dynamodb { * Represents the DynamoDB Streams configuration for a table in DynamoDB. */ export interface TableStreamSpecificationArgs { + /** + * Creates or updates a resource-based policy document that contains the permissions for DDB resources, such as a table's streams. Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource. + * In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + */ + 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. @@ -10590,7 +11267,7 @@ export namespace dynamodb { export interface TableTimeToLiveSpecificationArgs { /** * The name of the TTL attribute used to store the expiration time for items in the table. - * + The ``AttributeName`` property is required when enabling the TTL, or when TTL is already enabled. + * + The ``AttributeName`` property is required when enabling the TTL, or when TTL is already enabled. * + To update this property, you must first disable TTL and then enable TTL with the new attribute name. */ attributeName?: pulumi.Input; @@ -11316,7 +11993,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 +12114,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 +12196,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 +12233,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 +12363,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 +12391,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 +12404,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 +12473,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 +12774,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 +12944,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; @@ -12278,7 +12962,6 @@ export namespace ec2 { destinationSecurityGroupId?: pulumi.Input; fromPort?: pulumi.Input; ipProtocol: pulumi.Input; - sourceSecurityGroupId?: pulumi.Input; toPort?: pulumi.Input; } @@ -13568,7 +14251,12 @@ export namespace ecs { * The number of ``cpu`` units reserved for the container. This parameter maps to ``CpuShares`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cpu-shares`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). * This field is optional for tasks using the Fargate launch type, and the only requirement is that the total amount of CPU reserved for all containers within a task be lower than the task-level ``cpu`` value. * You can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the [Amazon EC2 Instances](https://docs.aws.amazon.com/ec2/instance-types/) detail page by 1,024. - * Linux containers share unallocated CPU units with other containers on the cont + * Linux containers share unallocated CPU units with other containers on the container instance with the same ratio as their allocated amount. For example, if you run a single-container task on a single-core instance type with 512 CPU units specified for that container, and that's the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time. However, if you launched another copy of the same task on that container instance, each task is guaranteed a minimum of 512 CPU units when needed. Moreover, each container could float to higher CPU usage if the other container was not using it. If both tasks were 100% active all of the time, they would be limited to 512 CPU units. + * On Linux container instances, the Docker daemon on the container instance uses the CPU value to calculate the relative CPU share ratios for running containers. For more information, see [CPU share constraint](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#cpu-share-constraint) in the Docker documentation. The minimum valid CPU share value that the Linux kernel allows is 2. However, the CPU parameter isn't required, and you can use CPU values below 2 in your container definitions. For CPU values below 2 (including null), the behavior varies based on your Amazon ECS container agent version: + * + *Agent versions less than or equal to 1.1.0:* Null and zero CPU values are passed to Docker as 0, which Docker then converts to 1,024 CPU shares. CPU values of 1 are passed to Docker as 1, which the Linux kernel converts to two CPU shares. + * + *Agent versions greater than or equal to 1.2.0:* Null, zero, and CPU values of 1 are passed to Docker as 2. + * + * On Windows container instances, the CPU limit is enforced as an absolute limit, or a quota. Windows containers only have access to the specified amount of CPU that's described in the task definition. A null or zero CPU value is passed to Docker as ``0``, which Windows interprets as 1% of one CPU. */ cpu?: pulumi.Input; /** @@ -13576,12 +14264,17 @@ export namespace ecs { * There are two formats for each ARN. * + credentialspecdomainless:MyARN You use credentialspecdomainless:MyARN to provide a CredSpec with an additional section for a secret in . You provide the login credentials to the domain in the secret. Each task that runs on any container instance can join different domains. You can use this format without joining the container instance to a domain. + credentialspec:MyARN You use credentialspec:MyARN to provide a CredSpec for a single domain. You must join the container instance to the domain before you start any tasks that use this task definition. * In both formats, replace ``MyARN`` with the ARN in SSM or Amazon S3. - * If you provide a ``credentialspecdomainless:MyARN``, the ``credspec`` must + * If you provide a ``credentialspecdomainless:MyARN``, the ``credspec`` must provide a ARN in ASMlong for a secret containing the username, password, and the domain to connect to. For better security, the instance isn't joined to the domain for domainless authentication. Other applications on the instance can't use the domainless credentials. You can use this parameter to run tasks on the same instance, even it the tasks need to join different domains. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) and [Using gMSAs for Linux Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html). */ credentialSpecs?: pulumi.Input[]>; /** * The dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed. - * For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [ + * For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + * For tasks using the Fargate launch type, the task or service requires the following platforms: + * + Linux platform version ``1.3.0`` or later. + * + Windows platform version ``1.0.0`` or later. + * + * If the task definition is used in a blue/green deployment that uses [AWS::CodeDeploy::DeploymentGroup BlueGreenDeploymentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-bluegreendeploymentconfiguration.html), the ``dependsOn`` parameter is not supported. For more information see [Issue #680](https://docs.aws.amazon.com/https://github.com/aws-cloudformation/cloudformation-coverage-roadmap/issues/680) on the on the GitHub website. */ dependsOn?: pulumi.Input[]>; /** @@ -13607,7 +14300,10 @@ export namespace ecs { * A list of strings to provide custom configuration for multiple security systems. For more information about valid values, see [Docker Run Security Configuration](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). This field isn't valid for containers in tasks using the Fargate launch type. * For Linux tasks on EC2, this parameter can be used to reference custom labels for SELinux and AppArmor multi-level security systems. * For any tasks on EC2, this parameter can be used to reference a credential spec file that configures a container for Active Directory authentication. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) and [Using gMSAs for Linux Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html) in the *Amazon Elastic Container Service Developer Guide*. - * This parameter maps to ``SecurityOpt`` in the [Create a co + * This parameter maps to ``SecurityOpt`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--security-opt`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + * The Amazon ECS container agent running on a container instance must register with the ``ECS_SELINUX_CAPABLE=true`` or ``ECS_APPARMOR_CAPABLE=true`` environment variables before containers placed on that instance can use these security options. For more information, see [Amazon ECS Container Agent Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*. + * For more information about valid values, see [Docker Run Security Configuration](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + * Valid values: "no-new-privileges" | "apparmor:PROFILE" | "label:value" | "credentialspec:CredentialSpecFilePath" */ dockerSecurityOptions?: pulumi.Input[]>; /** @@ -13623,7 +14319,7 @@ export namespace ecs { /** * A list of files containing the environment variables to pass to a container. This parameter maps to the ``--env-file`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). * You can specify up to ten environment files. The file must have a ``.env`` file extension. Each line in an environment file contains an environment variable in ``VARIABLE=VALUE`` format. Lines beginning with ``#`` are treated as comments and are ignored. For more information about the environment variable file syntax, see [Declare default environment variables in file](https://docs.aws.amazon.com/https://docs.docker.com/compose/env-file/). - * If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend t + * If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Specifying Environment Variables](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) in the *Amazon Elastic Container Service Developer Guide*. */ environmentFiles?: pulumi.Input[]>; /** @@ -13651,7 +14347,11 @@ export namespace ecs { hostname?: pulumi.Input; /** * The image used to start a container. This string is passed directly to the Docker daemon. By default, images in the Docker Hub registry are available. Other repositories are specified with either ``repository-url/image:tag`` or ``repository-url/image@digest``. Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to ``Image`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``IMAGE`` parameter of [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - * + When a new task starts, the Amazon ECS container agent pulls the latest version of the specified image and tag for the container to use. However, subsequent updates to a repository image + * + When a new task starts, the Amazon ECS container agent pulls the latest version of the specified image and tag for the container to use. However, subsequent updates to a repository image aren't propagated to already running tasks. + * + Images in Amazon ECR repositories can be specified by either using the full ``registry/repository:tag`` or ``registry/repository@digest``. For example, ``012345678910.dkr.ecr..amazonaws.com/:latest`` or ``012345678910.dkr.ecr..amazonaws.com/@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE``. + * + Images in official repositories on Docker Hub use a single name (for example, ``ubuntu`` or ``mongo``). + * + Images in other repositories on Docker Hub are qualified with an organization name (for example, ``amazon/amazon-ecs-agent``). + * + Images in other online repositories are qualified further by a domain name (for example, ``quay.io/assemblyline/ubuntu``). */ image: pulumi.Input; /** @@ -13660,7 +14360,8 @@ export namespace ecs { interactive?: pulumi.Input; /** * The ``links`` parameter allows containers to communicate with each other without the need for port mappings. This parameter is only supported if the network mode of a task definition is ``bridge``. The ``name:internalName`` construct is analogous to ``name:alias`` in Docker links. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. For more information about linking Docker containers, go to [Legacy container links](https://docs.aws.amazon.com/https://docs.docker.com/network/links/) in the Docker documentation. This parameter maps to ``Links`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--link`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - * This parameter is not supported for W + * This parameter is not supported for Windows containers. + * Containers that are collocated on a single container instance may be able to communicate with each other without requiring links or host port mappings. Network isolation is achieved on the container instance using security groups and VPC settings. */ links?: pulumi.Input[]>; /** @@ -13670,18 +14371,26 @@ export namespace ecs { linuxParameters?: pulumi.Input; /** * The log configuration specification for the container. - * This parameter maps to ``LogConfig`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--log-driver`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). By default, containers use the same logging driver that the Docker daemon uses. However, the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.aws.amazon.com/htt + * This parameter maps to ``LogConfig`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--log-driver`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). By default, containers use the same logging driver that the Docker daemon uses. However, the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.aws.amazon.com/https://docs.docker.com/engine/admin/logging/overview/) in the Docker documentation. + * Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon (shown in the [LogConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_LogConfiguration.html) data type). Additional log drivers may be available in future releases of the Amazon ECS container agent. + * This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'`` + * The Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the ``ECS_AVAILABLE_LOGGING_DRIVERS`` environment variable before containers placed on that instance can use these log configuration options. For more information, see [Amazon ECS Container Agent Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*. */ logConfiguration?: pulumi.Input; /** * The amount (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. The total amount of memory reserved for all containers within a task must be lower than the task ``memory`` value, if one is specified. This parameter maps to ``Memory`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). * If using the Fargate launch type, this parameter is optional. - * If using the EC2 launch type, you must specify either a task-level memory value or a container-level memory value. If you specify both a container-level ``memory`` and ``memoryReservation`` value, ``memory`` must be greater than ``memoryReserva + * If using the EC2 launch type, you must specify either a task-level memory value or a container-level memory value. If you specify both a container-level ``memory`` and ``memoryReservation`` value, ``memory`` must be greater than ``memoryReservation``. If you specify ``memoryReservation``, then that value is subtracted from the available memory resources for the container instance where the container is placed. Otherwise, the value of ``memory`` is used. + * The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container, so you should not specify fewer than 6 MiB of memory for your containers. + * The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container, so you should not specify fewer than 4 MiB of memory for your containers. */ memory?: pulumi.Input; /** * The soft limit (in MiB) of memory to reserve for the container. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit. However, your container can consume more memory when it needs to, up to either the hard limit specified with the ``memory`` parameter (if applicable), or all of the available memory on the container instance, whichever comes first. This parameter maps to ``MemoryReservation`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory-reservation`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - * If a task-level memory value is not specified, you must specify a non-zero integer for one or both of ``memory`` or ``memoryReservation`` in a container definiti + * If a task-level memory value is not specified, you must specify a non-zero integer for one or both of ``memory`` or ``memoryReservation`` in a container definition. If you specify both, ``memory`` must be greater than ``memoryReservation``. If you specify ``memoryReservation``, then that value is subtracted from the available memory resources for the container instance where the container is placed. Otherwise, the value of ``memory`` is used. + * For example, if your container normally uses 128 MiB of memory, but occasionally bursts to 256 MiB of memory for short periods of time, you can set a ``memoryReservation`` of 128 MiB, and a ``memory`` hard limit of 300 MiB. This configuration would allow the container to only reserve 128 MiB of memory from the remaining resources on the container instance, but also allow the container to consume more memory resources when needed. + * The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container. So, don't specify less than 6 MiB of memory for your containers. + * The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container. So, don't specify less than 4 MiB of memory for your containers. */ memoryReservation?: pulumi.Input; /** @@ -13698,7 +14407,8 @@ export namespace ecs { * The list of port mappings for the container. Port mappings allow containers to access ports on the host container instance to send or receive traffic. * For task definitions that use the ``awsvpc`` network mode, you should only specify the ``containerPort``. The ``hostPort`` can be left blank or it must be the same value as the ``containerPort``. * Port mappings on Windows use the ``NetNAT`` gateway address rather than ``localhost``. There is no loopback for port mappings on Windows, so you cannot access a container's mapped port from the host itself. - * This parameter maps to ``PortBindings`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--publish`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). If the network mode of a task definition is set to + * This parameter maps to ``PortBindings`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--publish`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). If the network mode of a task definition is set to ``none``, then you can't specify port mappings. If the network mode of a task definition is set to ``host``, then host ports must either be undefined or they must match the container port in the port mapping. + * After a task reaches the ``RUNNING`` status, manual and automatic host and container port assignments are visible in the *Network Bindings* section of a container description for a selected task in the Amazon ECS console. The assignments are also visible in the ``networkBindings`` section [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) responses. */ portMappings?: pulumi.Input[]>; /** @@ -13734,7 +14444,8 @@ export namespace ecs { * + Linux platform version ``1.3.0`` or later. * + Windows platform version ``1.0.0`` or later. * - * For tasks using the EC2 launch type, your container instances require at least version ``1.26.0`` of the container agent to use a container start timeout value. However + * For tasks using the EC2 launch type, your container instances require at least version ``1.26.0`` of the container agent to use a container start timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version ``1.26.0-1`` of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + * The valid values are 2-120 seconds. */ startTimeout?: pulumi.Input; /** @@ -13744,7 +14455,8 @@ export namespace ecs { * + Windows platform version ``1.0.0`` or later. * * The max stop timeout value is 120 seconds and if the parameter is not specified, the default value of 30 seconds is used. - * For tasks that use the EC2 launch type, if the ``stopTimeout`` parameter isn't specified, the value set for the Amazon ECS container agent configuration variable ``ECS_CONTAINER_STOP_TIMEOUT`` is used. If neither the ``stopTimeout`` parameter or the ``ECS_CONTAINER_STOP_TIMEOUT`` agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to use a container stop timeout value. However, we recomm + * For tasks that use the EC2 launch type, if the ``stopTimeout`` parameter isn't specified, the value set for the Amazon ECS container agent configuration variable ``ECS_CONTAINER_STOP_TIMEOUT`` is used. If neither the ``stopTimeout`` parameter or the ``ECS_CONTAINER_STOP_TIMEOUT`` agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to use a container stop timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + * The valid values are 2-120 seconds. */ stopTimeout?: pulumi.Input; /** @@ -13782,7 +14494,8 @@ export namespace ecs { /** * The ``ContainerDependency`` property specifies the dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed. - * Your Amazon ECS container instances require at least version 1.26.0 of the container agent to enable container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you are using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For m + * Your Amazon ECS container instances require at least version 1.26.0 of the container agent to enable container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you are using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + * For tasks using the Fargate launch type, this parameter requires that the task or service uses platform version 1.3.0 or later. */ export interface TaskDefinitionContainerDependencyArgs { /** @@ -13790,7 +14503,7 @@ export namespace ecs { * + ``START`` - This condition emulates the behavior of links and volumes today. It validates that a dependent container is started before permitting other containers to start. * + ``COMPLETE`` - This condition validates that a dependent container runs to completion (exits) before permitting other containers to start. This can be useful for nonessential containers that run a script and then exit. This condition can't be set on an essential container. * + ``SUCCESS`` - This condition is the same as ``COMPLETE``, but it also requires that the container exits with a ``zero`` status. This condition can't be set on an essential container. - * + ``HEALTHY`` - This condition validates that the dependent container passes its Docker health check before permitting other containers to start. This requires that the dependent container has health checks configured. This condition is confi + * + ``HEALTHY`` - This condition validates that the dependent container passes its Docker health check before permitting other containers to start. This requires that the dependent container has health checks configured. This condition is confirmed only at task startup. */ condition?: pulumi.Input; /** @@ -13873,13 +14586,20 @@ export namespace ecs { /** * A list of files containing the environment variables to pass to a container. You can specify up to ten environment files. The file must have a ``.env`` file extension. Each line in an environment file should contain an environment variable in ``VARIABLE=VALUE`` format. Lines beginning with ``#`` are treated as comments and are ignored. - * If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Specifying environment variables](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) in the *Amazon Elastic Container Service Developer Guide*. + * If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Use a file to pass environment variables to a container](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/use-environment-file.html) in the *Amazon Elastic Container Service Developer Guide*. + * Environment variable files are objects in Amazon S3 and all Amazon S3 security considerations apply. * You must use the following platforms for the Fargate launch type: - * + Linux platform version ``1.4.0`` or la + * + Linux platform version ``1.4.0`` or later. + * + Windows platform version ``1.0.0`` or later. + * + * Consider the following when using the Fargate launch type: + * + The file is handled like a native Docker env-file. + * + There is no support for shell escape handling. + * + The container entry point interperts the ``VARIABLE`` values. */ export interface TaskDefinitionEnvironmentFileArgs { /** - * The file type to use. The only supported value is ``s3``. + * The file type to use. Environment files are objects in Amazon S3. The only supported value is ``s3``. */ type?: pulumi.Input; /** @@ -13896,11 +14616,22 @@ export namespace ecs { */ export interface TaskDefinitionEphemeralStorageArgs { /** - * The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``21`` GiB and the maximum supported value is ``200`` GiB. + * The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``20`` GiB and the maximum supported value is ``200`` GiB. */ sizeInGiB?: pulumi.Input; } + export interface TaskDefinitionFSxAuthorizationConfigArgs { + credentialsParameter: pulumi.Input; + domain: pulumi.Input; + } + + export interface TaskDefinitionFSxWindowsFileServerVolumeConfigurationArgs { + authorizationConfig?: pulumi.Input; + fileSystemId: pulumi.Input; + rootDirectory: pulumi.Input; + } + /** * The FireLens configuration for the container. This is used to specify and configure a log router for container logs. For more information, see [Custom log routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*. */ @@ -13908,9 +14639,9 @@ export namespace ecs { /** * The options to use when configuring the log router. This field is optional and can be used to add additional metadata, such as the task, task definition, cluster, and container instance details to the log event. * If specified, valid option keys are: - * + ``enable-ecs-log-metadata``, which can be ``true`` or ``false`` - * + ``config-file-type``, which can be ``s3`` or ``file`` - * + ``config-file-value``, which is either an S3 ARN or a file path + * + ``enable-ecs-log-metadata``, which can be ``true`` or ``false`` + * + ``config-file-type``, which can be ``s3`` or ``file`` + * + ``config-file-value``, which is either an S3 ARN or a file path */ options?: pulumi.Input<{[key: string]: pulumi.Input}>; /** @@ -13922,7 +14653,11 @@ export namespace ecs { /** * The ``HealthCheck`` property specifies an object representing a container health check. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image (such as those specified in a parent image or from the image's Dockerfile). This configuration maps to the ``HEALTHCHECK`` parameter of [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). * The Amazon ECS container agent only monitors and reports on the health checks specified in the task definition. Amazon ECS does not monitor Docker health checks that are embedded in a container image and not specified in the container definition. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image. - * If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a servi + * If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a service, if the task reports as unhealthy then the task will be stopped and the service scheduler will replace it. + * The following are notes about container health check support: + * + Container health checks require version 1.17.0 or greater of the Amazon ECS container agent. For more information, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html). + * + Container health checks are supported for Fargate tasks if you are using platform version 1.1.0 or greater. For more information, see [Platform Versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). + * + Container health checks are not supported for tasks that are part of a service that is configured to use a Classic Load Balancer. */ export interface TaskDefinitionHealthCheckArgs { /** @@ -13993,18 +14728,18 @@ export namespace ecs { } /** - * The ``KernelCapabilities`` property specifies the Linux capabilities for the container that are added to or dropped from the default configuration that is provided by Docker. For more information on the default capabilities and the non-default available capabilities, see [Runtime privilege and Linux capabilities](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) in the *Docker run reference*. For more detailed information on these Linux capabilities, see the [capabilities(7)](https://docs.aws.amazon.com/http://man7.org/linux/man-pages/man7/capabilities.7.html) Linux manual page. + * The Linux capabilities to add or remove from the default Docker configuration for a container defined in the task definition. For more information about the default capabilities and the non-default available capabilities, see [Runtime privilege and Linux capabilities](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) in the *Docker run reference*. For more detailed information about these Linux capabilities, see the [capabilities(7)](https://docs.aws.amazon.com/http://man7.org/linux/man-pages/man7/capabilities.7.html) Linux manual page. */ export interface TaskDefinitionKernelCapabilitiesArgs { /** * The Linux capabilities for the container that have been added to the default configuration provided by Docker. This parameter maps to ``CapAdd`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-add`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). * Tasks launched on FARGATElong only support adding the ``SYS_PTRACE`` kernel capability. - * Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" + * Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"`` */ add?: pulumi.Input[]>; /** * The Linux capabilities for the container that have been removed from the default configuration provided by Docker. This parameter maps to ``CapDrop`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-drop`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - * Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" + * Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"`` */ drop?: pulumi.Input[]>; } @@ -14076,7 +14811,7 @@ export namespace ecs { * For tasks hosted on Amazon EC2 instances, the supported log drivers are ``awslogs``, ``fluentd``, ``gelf``, ``json-file``, ``journald``, ``logentries``,``syslog``, ``splunk``, and ``awsfirelens``. * For more information about using the ``awslogs`` log driver, see [Using the awslogs log driver](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html) in the *Amazon Elastic Container Service Developer Guide*. * For more information about using the ``awsfirelens`` log driver, see [Custom log routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*. - * If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs + * If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs-agent) and customize it to work with that driver. We encourage you to submit pull requests for changes that you would like to have included. However, we don't currently provide support for running modified copies of this software. */ logDriver: pulumi.Input; /** @@ -14132,7 +14867,7 @@ export namespace ecs { * The application protocol that's used for the port mapping. This parameter only applies to Service Connect. We recommend that you set this parameter to be consistent with the protocol that your application uses. If you set this parameter, Amazon ECS adds protocol-specific connection handling to the Service Connect proxy. If you set this parameter, Amazon ECS adds protocol-specific telemetry in the Amazon ECS console and CloudWatch. * If you don't set a value for this parameter, then TCP is used. However, Amazon ECS doesn't add protocol-specific telemetry for TCP. * ``appProtocol`` is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment. - * Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS se + * Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. */ appProtocol?: pulumi.Input; /** @@ -14151,7 +14886,17 @@ export namespace ecs { * + You can specify a maximum of 100 port ranges per container. * + You do not specify a ``hostPortRange``. The value of the ``hostPortRange`` is set as follows: * + For containers in a task with the ``awsvpc`` network mode, the ``hostPortRange`` is set to the same value as the ``containerPortRange``. This is a static mapping strategy. - * + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open host + * + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open host ports from the default ephemeral range and passes it to docker to bind them to the container ports. + * + * + The ``containerPortRange`` valid values are between 1 and 65535. + * + A port can only be included in one port mapping per container. + * + You cannot specify overlapping port ranges. + * + The first port in the range must be less than last port in the range. + * + Docker recommends that you turn off the docker-proxy in the Docker daemon config file when you have a large number of ports. + * For more information, see [Issue #11185](https://docs.aws.amazon.com/https://github.com/moby/moby/issues/11185) on the Github website. + * For information about how to turn off the docker-proxy in the Docker daemon config file, see [Docker daemon](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/bootstrap_container_instance.html#bootstrap_docker_daemon) in the *Amazon ECS Developer Guide*. + * + * You can call [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) to view the ``hostPortRange`` which are the host ports that are bound to the container ports. */ containerPortRange?: pulumi.Input; /** @@ -14161,7 +14906,9 @@ export namespace ecs { * + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open ports on the host and automatically binds them to the container ports. This is a dynamic mapping strategy. * * If you use containers in a task with the ``awsvpc`` or ``host`` network mode, the ``hostPort`` can either be left blank or set to the same value as the ``containerPort``. - * If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0``) while specifying a ``containerPort`` and your container automatically + * If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0``) while specifying a ``containerPort`` and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version. + * The default ephemeral port range for Docker version 1.6.0 and later is listed on the instance under ``/proc/sys/net/ipv4/ip_local_port_range``. If this kernel parameter is unavailable, the default ephemeral port range from 49153 through 65535 (Linux) or 49152 through 65535 (Windows) is used. Do not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range. + * The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678-51680. Any host port that was previously specified in a running task is also reserved while the task is running. That is, after a task stops, the host port is released. The current reserved ports are displayed in the ``remainingResources`` of [DescribeContainerInstances](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html) output. A container instance can have up to 100 reserved ports at a time. This number includes the default reserved ports. Automatically assigned ports aren't included in the 100 reserved ports quota. */ hostPort?: pulumi.Input; /** @@ -14190,7 +14937,9 @@ export namespace ecs { * + ``IgnoredGID`` - (Required) The group ID (GID) of the proxy container as defined by the ``user`` parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If ``IgnoredUID`` is specified, this field can be empty. * + ``AppPorts`` - (Required) The list of ports that the application uses. Network traffic to these ports is forwarded to the ``ProxyIngressPort`` and ``ProxyEgressPort``. * + ``ProxyIngressPort`` - (Required) Specifies the port that incoming traffic to the ``AppPorts`` is directed to. - * + ``ProxyEgressPort`` - (Required) Specifies the port that outgoi + * + ``ProxyEgressPort`` - (Required) Specifies the port that outgoing traffic from the ``AppPorts`` is directed to. + * + ``EgressIgnoredPorts`` - (Required) The egress traffic going to the specified ports is ignored and not redirected to the ``ProxyEgressPort``. It can be an empty list. + * + ``EgressIgnoredIPs`` - (Required) The egress traffic going to the specified IP addresses is ignored and not redirected to the ``ProxyEgressPort``. It can be an empty list. */ proxyConfigurationProperties?: pulumi.Input[]>; /** @@ -14265,7 +15014,15 @@ export namespace ecs { /** * A list of namespaced kernel parameters to set in the container. This parameter maps to ``Sysctls`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--sysctl`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). For example, you can configure ``net.ipv4.tcp_keepalive_time`` setting to maintain longer lived connections. * We don't recommend that you specify network-related ``systemControls`` parameters for multiple containers in a single task that also uses either the ``awsvpc`` or ``host`` network mode. Doing this has the following disadvantages: - * + For tasks that use the ``awsvpc`` network mode including Fargate, if you set ``systemControls`` for any container, it applies to all containers in the task. If you set different ``sy + * + For tasks that use the ``awsvpc`` network mode including Fargate, if you set ``systemControls`` for any container, it applies to all containers in the task. If you set different ``systemControls`` for multiple containers in a single task, the container that's started last determines which ``systemControls`` take effect. + * + For tasks that use the ``host`` network mode, the network namespace ``systemControls`` aren't supported. + * + * If you're setting an IPC resource namespace to use for the containers in the task, the following conditions apply to your system controls. For more information, see [IPC mode](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#task_definition_ipcmode). + * + For tasks that use the ``host`` IPC mode, IPC namespace ``systemControls`` aren't supported. + * + For tasks that use the ``task`` IPC mode, IPC namespace ``systemControls`` values apply to all containers within a task. + * + * This parameter is not supported for Windows containers. + * This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate. */ export interface TaskDefinitionSystemControlArgs { /** @@ -14339,6 +15096,7 @@ export namespace ecs { * This parameter is specified when you use an Amazon Elastic File System file system for task storage. */ efsVolumeConfiguration?: pulumi.Input; + fSxWindowsFileServerVolumeConfiguration?: pulumi.Input; /** * This parameter is specified when you use bind mount host volumes. The contents of the ``host`` parameter determine whether your bind mount host volume persists on the host container instance and where it's stored. If the ``host`` parameter is empty, then the Docker daemon assigns a host path for your data volume. However, the data isn't guaranteed to persist after the containers that are associated with it stop running. * Windows containers can mount whole directories on the same drive as ``$env:ProgramData``. Windows containers can't mount directories on a different drive, and mount point can't be across drives. For example, you can mount ``C:\my\path:C:\my\path`` and ``D:\:D:\``, but not ``D:\my\path:C:\my\path`` or ``D:\:C:\my\path``. @@ -14505,7 +15263,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 +15680,13 @@ export namespace elasticache { /** * The maximum cached data capacity of the Serverless Cache. */ - maximum: pulumi.Input; + maximum?: pulumi.Input; + /** + * The minimum cached data capacity of the Serverless Cache. + */ + minimum?: pulumi.Input; /** - * The unix of cached data capacity of the Serverless Cache. + * The unit of cached data capacity of the Serverless Cache. */ unit: pulumi.Input; } @@ -14936,7 +15698,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 +16800,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 { @@ -16067,6 +16834,24 @@ export namespace entityresolution { providerServiceArn: pulumi.Input; } + export interface IdNamespaceIdMappingWorkflowPropertiesArgs { + idMappingType: pulumi.Input; + providerProperties?: pulumi.Input; + } + + export interface IdNamespaceInputSourceArgs { + inputSourceArn: pulumi.Input; + schemaName?: pulumi.Input; + } + + export interface IdNamespaceNamespaceProviderPropertiesArgs { + /** + * Additional Provider configuration that would be required for the provider service. The Configuration must be in JSON string format. + */ + providerConfiguration?: pulumi.Input<{[key: string]: pulumi.Input}>; + providerServiceArn: pulumi.Input; + } + export interface MatchingWorkflowInputSourceArgs { applyNormalization?: pulumi.Input; /** @@ -17214,7 +17999,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 +18015,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 +21810,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; } } @@ -21662,6 +22461,37 @@ export namespace ivs { targetIntervalSeconds?: pulumi.Input; } + /** + * A complex type that describes an S3 location where recorded videos will be stored. + */ + export interface StorageConfigurationS3StorageConfigurationArgs { + /** + * Location (S3 bucket name) where recorded videos will be stored. Note that the StorageConfiguration and S3 bucket must be in the same region as the Composition. + */ + bucketName: pulumi.Input; + } + + /** + * Video configuration. Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps + */ + export interface VideoPropertiesArgs { + /** + * Bitrate for generated output, in bps. Default: 2500000. + */ + bitrate?: pulumi.Input; + /** + * Video frame rate, in fps. Default: 30. + */ + framerate?: pulumi.Input; + /** + * Video-resolution height. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 720. + */ + height?: pulumi.Input; + /** + * Video-resolution width. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 1280. + */ + width?: pulumi.Input; + } } export namespace ivschat { @@ -21925,6 +22755,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 { @@ -23863,11 +24719,11 @@ export namespace lambda { runtimeVersionArn?: pulumi.Input; /** * Specify the runtime update mode. - * + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates. - * + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date. - * + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback). - * - * *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual`` + * + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates. + * + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date. + * + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback). + * + * *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual`` */ updateRuntimeOn: pulumi.Input; } @@ -25756,42 +26612,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 +41953,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 { @@ -41344,17 +42219,17 @@ export namespace route53 { /** * *Private hosted zones only:* A complex type that contains information about an Amazon VPC. Route 53 Resolver uses the records in the private hosted zone to route traffic in that VPC. - * For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + * For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. */ export interface HostedZoneVpcArgs { /** * *Private hosted zones only:* The ID of an Amazon VPC. - * For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + * For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. */ vpcId: pulumi.Input; /** * *Private hosted zones only:* The region that an Amazon VPC was created in. - * For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + * For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. */ vpcRegion: pulumi.Input; } @@ -43207,6 +44082,16 @@ export namespace s3outposts { } export namespace sagemaker { + /** + * The configuration for the kernels in a SageMaker image running as a CodeEditor app. + */ + export interface AppImageConfigCodeEditorAppImageConfigArgs { + /** + * The container configuration for a SageMaker image. + */ + containerConfig?: pulumi.Input; + } + /** * The container configuration for a SageMaker image. */ @@ -43584,6 +44469,10 @@ export namespace sagemaker { * The CodeEditor app settings. */ export interface DomainCodeEditorAppSettingsArgs { + /** + * A list of custom images for use for CodeEditor apps. + */ + customImages?: pulumi.Input[]>; /** * The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the CodeEditor app. */ @@ -46232,6 +47121,10 @@ export namespace sagemaker { * The CodeEditor app settings. */ export interface UserProfileCodeEditorAppSettingsArgs { + /** + * A list of custom images for use for CodeEditor apps. + */ + customImages?: pulumi.Input[]>; /** * The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the CodeEditor app. */ @@ -46857,6 +47750,519 @@ export namespace securityhub { workflowStatus?: pulumi.Input[]>; } + /** + * A collection of filters that are applied to all active findings aggregated by AWS Security Hub. + */ + export interface InsightAwsSecurityFindingFiltersArgs { + /** + * The AWS account ID in which a finding is generated. + */ + awsAccountId?: pulumi.Input[]>; + /** + * The name of the AWS account in which a finding is generated. + */ + awsAccountName?: pulumi.Input[]>; + /** + * The name of the findings provider (company) that owns the solution (product) that generates findings. + */ + companyName?: pulumi.Input[]>; + /** + * The unique identifier of a standard in which a control is enabled. + */ + complianceAssociatedStandardsId?: pulumi.Input[]>; + /** + * The unique identifier of a control across standards. + */ + complianceSecurityControlId?: pulumi.Input[]>; + /** + * The name of a security control parameter. + */ + complianceSecurityControlParametersName?: pulumi.Input[]>; + /** + * The current value of a security control parameter. + */ + complianceSecurityControlParametersValue?: pulumi.Input[]>; + /** + * Exclusive to findings that are generated as the result of a check run against a specific rule in a supported standard. + */ + complianceStatus?: pulumi.Input[]>; + /** + * A finding's confidence. + */ + confidence?: pulumi.Input[]>; + /** + * An ISO8601-formatted timestamp that indicates when the security findings provider captured the potential security issue that a finding captured. + */ + createdAt?: pulumi.Input[]>; + /** + * The level of importance assigned to the resources associated with the finding. + */ + criticality?: pulumi.Input[]>; + /** + * A finding's description. + */ + description?: pulumi.Input[]>; + /** + * The finding provider value for the finding confidence. + */ + findingProviderFieldsConfidence?: pulumi.Input[]>; + /** + * The finding provider value for the level of importance assigned to the resources associated with the findings. + */ + findingProviderFieldsCriticality?: pulumi.Input[]>; + /** + * The finding identifier of a related finding that is identified by the finding provider. + */ + findingProviderFieldsRelatedFindingsId?: pulumi.Input[]>; + /** + * The ARN of the solution that generated a related finding that is identified by the finding provider. + */ + findingProviderFieldsRelatedFindingsProductArn?: pulumi.Input[]>; + /** + * The finding provider value for the severity label. + */ + findingProviderFieldsSeverityLabel?: pulumi.Input[]>; + /** + * The finding provider's original value for the severity. + */ + findingProviderFieldsSeverityOriginal?: pulumi.Input[]>; + /** + * One or more finding types that the finding provider assigned to the finding. + */ + findingProviderFieldsTypes?: pulumi.Input[]>; + /** + * An ISO8601-formatted timestamp that indicates when the security findings provider first observed the potential security issue that a finding captured. + */ + firstObservedAt?: pulumi.Input[]>; + /** + * The identifier for the solution-specific component (a discrete unit of logic) that generated a finding. + */ + generatorId?: pulumi.Input[]>; + /** + * The security findings provider-specific identifier for a finding. + */ + id?: pulumi.Input[]>; + /** + * A keyword for a finding. + */ + keyword?: pulumi.Input[]>; + /** + * An ISO8601-formatted timestamp that indicates when the security findings provider most recently observed the potential security issue that a finding captured. + */ + lastObservedAt?: pulumi.Input[]>; + /** + * The name of the malware that was observed. + */ + malwareName?: pulumi.Input[]>; + /** + * The filesystem path of the malware that was observed. + */ + malwarePath?: pulumi.Input[]>; + /** + * The state of the malware that was observed. + */ + malwareState?: pulumi.Input[]>; + /** + * The type of the malware that was observed. + */ + malwareType?: pulumi.Input[]>; + /** + * The destination domain of network-related information about a finding. + */ + networkDestinationDomain?: pulumi.Input[]>; + /** + * The destination IPv4 address of network-related information about a finding. + */ + networkDestinationIpV4?: pulumi.Input[]>; + /** + * The destination IPv6 address of network-related information about a finding. + */ + networkDestinationIpV6?: pulumi.Input[]>; + /** + * The destination port of network-related information about a finding. + */ + networkDestinationPort?: pulumi.Input[]>; + /** + * Indicates the direction of network traffic associated with a finding. + */ + networkDirection?: pulumi.Input[]>; + /** + * The protocol of network-related information about a finding. + */ + networkProtocol?: pulumi.Input[]>; + /** + * The source domain of network-related information about a finding. + */ + networkSourceDomain?: pulumi.Input[]>; + /** + * The source IPv4 address of network-related information about a finding. + */ + networkSourceIpV4?: pulumi.Input[]>; + /** + * The source IPv6 address of network-related information about a finding. + */ + networkSourceIpV6?: pulumi.Input[]>; + /** + * The source media access control (MAC) address of network-related information about a finding. + */ + networkSourceMac?: pulumi.Input[]>; + /** + * The source port of network-related information about a finding. + */ + networkSourcePort?: pulumi.Input[]>; + /** + * The text of a note. + */ + noteText?: pulumi.Input[]>; + /** + * The timestamp of when the note was updated. + */ + noteUpdatedAt?: pulumi.Input[]>; + /** + * The principal that created a note. + */ + noteUpdatedBy?: pulumi.Input[]>; + /** + * A timestamp that identifies when the process was launched. + */ + processLaunchedAt?: pulumi.Input[]>; + /** + * The name of the process. + */ + processName?: pulumi.Input[]>; + /** + * The parent process ID. + */ + processParentPid?: pulumi.Input[]>; + /** + * The path to the process executable. + */ + processPath?: pulumi.Input[]>; + /** + * The process ID. + */ + processPid?: pulumi.Input[]>; + /** + * A timestamp that identifies when the process was terminated. + */ + processTerminatedAt?: pulumi.Input[]>; + /** + * The ARN generated by Security Hub that uniquely identifies a third-party company (security findings provider) after this provider's product (solution that generates findings) is registered with Security Hub. + */ + productArn?: pulumi.Input[]>; + /** + * A data type where security findings providers can include additional solution-specific details that aren't part of the defined AwsSecurityFinding format. + */ + productFields?: pulumi.Input[]>; + /** + * The name of the solution (product) that generates findings. + */ + productName?: pulumi.Input[]>; + /** + * The recommendation of what to do about the issue described in a finding. + */ + recommendationText?: pulumi.Input[]>; + /** + * The updated record state for the finding. + */ + recordState?: pulumi.Input[]>; + /** + * The Region from which the finding was generated. + */ + region?: pulumi.Input[]>; + /** + * The solution-generated identifier for a related finding. + */ + relatedFindingsId?: pulumi.Input[]>; + /** + * The ARN of the solution that generated a related finding. + */ + relatedFindingsProductArn?: pulumi.Input[]>; + /** + * The ARN of the application that is related to a finding. + */ + resourceApplicationArn?: pulumi.Input[]>; + /** + * The name of the application that is related to a finding. + */ + resourceApplicationName?: pulumi.Input[]>; + /** + * The IAM profile ARN of the instance. + */ + resourceAwsEc2InstanceIamInstanceProfileArn?: pulumi.Input[]>; + /** + * The Amazon Machine Image (AMI) ID of the instance. + */ + resourceAwsEc2InstanceImageId?: pulumi.Input[]>; + /** + * The IPv4 addresses associated with the instance. + */ + resourceAwsEc2InstanceIpV4Addresses?: pulumi.Input[]>; + /** + * The IPv6 addresses associated with the instance. + */ + resourceAwsEc2InstanceIpV6Addresses?: pulumi.Input[]>; + /** + * The key name associated with the instance. + */ + resourceAwsEc2InstanceKeyName?: pulumi.Input[]>; + /** + * The date and time the instance was launched. + */ + resourceAwsEc2InstanceLaunchedAt?: pulumi.Input[]>; + /** + * The identifier of the subnet that the instance was launched in. + */ + resourceAwsEc2InstanceSubnetId?: pulumi.Input[]>; + /** + * The instance type of the instance. + */ + resourceAwsEc2InstanceType?: pulumi.Input[]>; + /** + * The identifier of the VPC that the instance was launched in. + */ + resourceAwsEc2InstanceVpcId?: pulumi.Input[]>; + /** + * The creation date/time of the IAM access key related to a finding. + */ + resourceAwsIamAccessKeyCreatedAt?: pulumi.Input[]>; + /** + * The name of the principal that is associated with an IAM access key. + */ + resourceAwsIamAccessKeyPrincipalName?: pulumi.Input[]>; + /** + * The status of the IAM access key related to a finding. + */ + resourceAwsIamAccessKeyStatus?: pulumi.Input[]>; + /** + * The user associated with the IAM access key related to a finding. + */ + resourceAwsIamAccessKeyUserName?: pulumi.Input[]>; + /** + * The name of an IAM user. + */ + resourceAwsIamUserUserName?: pulumi.Input[]>; + /** + * The canonical user ID of the owner of the S3 bucket. + */ + resourceAwsS3BucketOwnerId?: pulumi.Input[]>; + /** + * The display name of the owner of the S3 bucket. + */ + resourceAwsS3BucketOwnerName?: pulumi.Input[]>; + /** + * The identifier of the image related to a finding. + */ + resourceContainerImageId?: pulumi.Input[]>; + /** + * The name of the image related to a finding. + */ + resourceContainerImageName?: pulumi.Input[]>; + /** + * A timestamp that identifies when the container was started. + */ + resourceContainerLaunchedAt?: pulumi.Input[]>; + /** + * The name of the container related to a finding. + */ + resourceContainerName?: pulumi.Input[]>; + /** + * The details of a resource that doesn't have a specific subfield for the resource type defined. + */ + resourceDetailsOther?: pulumi.Input[]>; + /** + * The canonical identifier for the given resource type. + */ + resourceId?: pulumi.Input[]>; + /** + * The canonical AWS partition name that the Region is assigned to. + */ + resourcePartition?: pulumi.Input[]>; + /** + * The canonical AWS external Region name where this resource is located. + */ + resourceRegion?: pulumi.Input[]>; + /** + * A list of AWS tags associated with a resource at the time the finding was processed. + */ + resourceTags?: pulumi.Input[]>; + /** + * Specifies the type of the resource that details are provided for. + */ + resourceType?: pulumi.Input[]>; + /** + * Indicates whether or not sample findings are included in the filter results. + */ + sample?: pulumi.Input[]>; + /** + * The label of a finding's severity. + */ + severityLabel?: pulumi.Input[]>; + /** + * The normalized severity of a finding. + */ + severityNormalized?: pulumi.Input[]>; + /** + * The native severity as defined by the security findings provider's solution that generated the finding. + */ + severityProduct?: pulumi.Input[]>; + /** + * A URL that links to a page about the current finding in the security findings provider's solution. + */ + sourceUrl?: pulumi.Input[]>; + /** + * The category of a threat intelligence indicator. + */ + threatIntelIndicatorCategory?: pulumi.Input[]>; + /** + * A timestamp that identifies the last observation of a threat intelligence indicator. + */ + threatIntelIndicatorLastObservedAt?: pulumi.Input[]>; + /** + * The source of the threat intelligence. + */ + threatIntelIndicatorSource?: pulumi.Input[]>; + /** + * The URL for more details from the source of the threat intelligence. + */ + threatIntelIndicatorSourceUrl?: pulumi.Input[]>; + /** + * The type of a threat intelligence indicator. + */ + threatIntelIndicatorType?: pulumi.Input[]>; + /** + * The value of a threat intelligence indicator. + */ + threatIntelIndicatorValue?: pulumi.Input[]>; + /** + * A finding's title. + */ + title?: pulumi.Input[]>; + /** + * A finding type in the format of namespace/category/classifier that classifies a finding. + */ + type?: pulumi.Input[]>; + /** + * An ISO8601-formatted timestamp that indicates when the security findings provider last updated the finding record. + */ + updatedAt?: pulumi.Input[]>; + /** + * A list of name/value string pairs associated with the finding. + */ + userDefinedFields?: pulumi.Input[]>; + /** + * The veracity of a finding. + */ + verificationState?: pulumi.Input[]>; + /** + * Indicates whether a software vulnerability in your environment has a known exploit. + */ + vulnerabilitiesExploitAvailable?: pulumi.Input[]>; + /** + * Indicates whether a vulnerability is fixed in a newer version of the affected software packages. + */ + vulnerabilitiesFixAvailable?: pulumi.Input[]>; + /** + * The workflow state of a finding. + */ + workflowState?: pulumi.Input[]>; + /** + * The status of the investigation into a finding. + */ + workflowStatus?: pulumi.Input[]>; + } + + /** + * Boolean filter for querying findings. + */ + export interface InsightBooleanFilterArgs { + /** + * The value of the boolean. + */ + value: pulumi.Input; + } + + /** + * A date filter for querying findings. + */ + export interface InsightDateFilterArgs { + dateRange?: pulumi.Input; + end?: pulumi.Input; + start?: pulumi.Input; + } + + /** + * A date range for the date filter. + */ + export interface InsightDateRangeArgs { + /** + * A date range unit for the date filter. + */ + unit: pulumi.Input; + /** + * A date range value for the date filter. + */ + value: pulumi.Input; + } + + /** + * The IP filter for querying findings. + */ + export interface InsightIpFilterArgs { + /** + * A finding's CIDR value. + */ + cidr: pulumi.Input; + } + + /** + * A keyword filter for querying findings. + */ + export interface InsightKeywordFilterArgs { + /** + * A value for the keyword. + */ + value: pulumi.Input; + } + + /** + * A map filter for filtering AWS Security Hub findings. + */ + export interface InsightMapFilterArgs { + /** + * The condition to apply to the key value when filtering Security Hub findings with a map filter. + */ + comparison: pulumi.Input; + key: pulumi.Input; + value: pulumi.Input; + } + + /** + * A number filter for querying findings. + */ + export interface InsightNumberFilterArgs { + /** + * The equal-to condition to be applied to a single field when querying for findings. + */ + eq?: pulumi.Input; + /** + * The greater-than-equal condition to be applied to a single field when querying for findings. + */ + gte?: pulumi.Input; + /** + * The less-than-equal condition to be applied to a single field when querying for findings. + */ + lte?: pulumi.Input; + } + + /** + * A string filter for filtering AWS Security Hub findings. + */ + export interface InsightStringFilterArgs { + comparison: pulumi.Input; + value: pulumi.Input; + } + /** * Provides details about an individual security control. For a list of ASH controls, see [controls reference](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-controls-reference.html) in the *User Guide*. */ @@ -46872,6 +48278,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; @@ -48309,8 +49815,13 @@ export namespace transfer { } export namespace verifiedpermissions { + export interface IdentitySourceCognitoGroupConfigurationArgs { + groupEntityType: pulumi.Input; + } + export interface IdentitySourceCognitoUserPoolConfigurationArgs { clientIds?: pulumi.Input[]>; + groupConfiguration?: pulumi.Input; userPoolArn: pulumi.Input; } diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index 62cc7a7557..19586cae63 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,367 @@ 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; + } + + /** + * Details about how to chunk the documents in the data source. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried. + */ + export interface DataSourceChunkingConfiguration { + chunkingStrategy: enums.bedrock.DataSourceChunkingStrategy; + fixedSizeChunkingConfiguration?: outputs.bedrock.DataSourceFixedSizeChunkingConfiguration; + } + + /** + * Specifies a raw data source location to ingest. + */ + export interface DataSourceConfiguration { + s3Configuration: outputs.bedrock.DataSourceS3DataSourceConfiguration; + type: enums.bedrock.DataSourceType; + } + + /** + * Configurations for when you choose fixed-size chunking. If you set the chunkingStrategy as NONE, exclude this field. + */ + export interface DataSourceFixedSizeChunkingConfiguration { + /** + * The maximum number of tokens to include in a chunk. + */ + maxTokens: number; + /** + * The percentage of overlap between adjacent chunks of a data source. + */ + overlapPercentage: number; + } + + /** + * Contains information about the S3 configuration of the data source. + */ + export interface DataSourceS3DataSourceConfiguration { + /** + * The ARN of the bucket that contains the data source. + */ + bucketArn: string; + /** + * A list of S3 prefixes that define the object containing the data sources. + */ + inclusionPrefixes?: string[]; + } + + /** + * Contains details about the server-side encryption for the data source. + */ + export interface DataSourceServerSideEncryptionConfiguration { + /** + * The ARN of the AWS KMS key used to encrypt the resource. + */ + kmsKeyArn?: string; + } + + /** + * Details about how to chunk the documents in the data source. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried. + */ + export interface DataSourceVectorIngestionConfiguration { + chunkingConfiguration?: outputs.bedrock.DataSourceChunkingConfiguration; + } + + /** + * Contains details about the embeddings model used for the knowledge base. + */ + export interface KnowledgeBaseConfiguration { + type: enums.bedrock.KnowledgeBaseType; + vectorKnowledgeBaseConfiguration: outputs.bedrock.KnowledgeBaseVectorKnowledgeBaseConfiguration; + } + + /** + * Contains the storage configuration of the knowledge base in Amazon OpenSearch Service. + */ + export interface KnowledgeBaseOpenSearchServerlessConfiguration { + /** + * The ARN of the OpenSearch Service vector store. + */ + collectionArn: string; + fieldMapping: outputs.bedrock.KnowledgeBaseOpenSearchServerlessFieldMapping; + /** + * The name of the vector store. + */ + vectorIndexName: string; + } + + /** + * A mapping of Bedrock Knowledge Base fields to OpenSearch Serverless field names + */ + export interface KnowledgeBaseOpenSearchServerlessFieldMapping { + /** + * The name of the field in which Amazon Bedrock stores metadata about the vector store. + */ + metadataField: string; + /** + * The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. + */ + textField: string; + /** + * The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources. + */ + vectorField: string; + } + + /** + * Contains the storage configuration of the knowledge base in Pinecone. + */ + export interface KnowledgeBasePineconeConfiguration { + /** + * The endpoint URL for your index management page. + */ + connectionString: string; + /** + * The ARN of the secret that you created in AWS Secrets Manager that is linked to your Pinecone API key. + */ + credentialsSecretArn: string; + fieldMapping: outputs.bedrock.KnowledgeBasePineconeFieldMapping; + /** + * The namespace to be used to write new data to your database. + */ + namespace?: string; + } + + /** + * Contains the names of the fields to which to map information about the vector store. + */ + export interface KnowledgeBasePineconeFieldMapping { + /** + * The name of the field in which Amazon Bedrock stores metadata about the vector store. + */ + metadataField: string; + /** + * The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. + */ + textField: string; + } + + /** + * Contains details about the storage configuration of the knowledge base in Amazon RDS. For more information, see Create a vector index in Amazon RDS. + */ + export interface KnowledgeBaseRdsConfiguration { + /** + * The ARN of the secret that you created in AWS Secrets Manager that is linked to your Amazon RDS database. + */ + credentialsSecretArn: string; + /** + * The name of your Amazon RDS database. + */ + databaseName: string; + fieldMapping: outputs.bedrock.KnowledgeBaseRdsFieldMapping; + /** + * The ARN of the vector store. + */ + resourceArn: string; + /** + * The name of the table in the database. + */ + tableName: string; + } + + /** + * Contains the names of the fields to which to map information about the vector store. + */ + export interface KnowledgeBaseRdsFieldMapping { + /** + * The name of the field in which Amazon Bedrock stores metadata about the vector store. + */ + metadataField: string; + /** + * The name of the field in which Amazon Bedrock stores the ID for each entry. + */ + primaryKeyField: string; + /** + * The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. + */ + textField: string; + /** + * The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources. + */ + vectorField: string; + } + + /** + * The vector store service in which the knowledge base is stored. + */ + export interface KnowledgeBaseStorageConfiguration { + opensearchServerlessConfiguration?: outputs.bedrock.KnowledgeBaseOpenSearchServerlessConfiguration; + pineconeConfiguration?: outputs.bedrock.KnowledgeBasePineconeConfiguration; + rdsConfiguration?: outputs.bedrock.KnowledgeBaseRdsConfiguration; + type: enums.bedrock.KnowledgeBaseStorageType; + } + + /** + * Contains details about the model used to create vector embeddings for the knowledge base. + */ + export interface KnowledgeBaseVectorKnowledgeBaseConfiguration { + /** + * The ARN of the model used to create vector embeddings for the knowledge base. + */ + embeddingModelArn: string; + } + +} + export namespace budgets { export interface BudgetsActionActionThreshold { type: enums.budgets.BudgetsActionActionThresholdType; @@ -5407,6 +5838,7 @@ export namespace cleanrooms { export interface ConfiguredTableAnalysisRuleCustom { allowedAnalyses: string[]; allowedAnalysisProviders?: string[]; + differentialPrivacy?: outputs.cleanrooms.ConfiguredTableDifferentialPrivacy; } export interface ConfiguredTableAnalysisRuleList { @@ -5431,6 +5863,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; @@ -5465,6 +5905,34 @@ export namespace cleanrooms { } +export namespace cleanroomsml { + export interface TrainingDatasetColumnSchema { + columnName: string; + columnTypes: enums.cleanroomsml.TrainingDatasetColumnType[]; + } + + export interface TrainingDatasetDataSource { + glueDataSource: outputs.cleanroomsml.TrainingDatasetGlueDataSource; + } + + export interface TrainingDatasetDataset { + inputConfig: outputs.cleanroomsml.TrainingDatasetDatasetInputConfig; + type: enums.cleanroomsml.TrainingDatasetDatasetType; + } + + export interface TrainingDatasetDatasetInputConfig { + dataSource: outputs.cleanroomsml.TrainingDatasetDataSource; + schema: outputs.cleanroomsml.TrainingDatasetColumnSchema[]; + } + + export interface TrainingDatasetGlueDataSource { + catalogId?: string; + databaseName: string; + tableName: string; + } + +} + export namespace cloudformation { export interface HookVersionLoggingConfig { /** @@ -5668,7 +6136,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 +6169,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 +6179,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 +6194,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 +6248,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 +6293,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 +6308,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 +6351,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 +6360,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 +6368,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 +6414,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 +6487,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 +6497,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 +6512,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 +6559,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 +6575,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 +6878,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 +6902,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 +6942,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 +6952,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; } @@ -6810,39 +7310,40 @@ export namespace cloudtrail { export namespace cloudwatch { /** - * Dimensions are arbitrary name/value pairs that can be associated with a CloudWatch metric. + * Dimension is an embedded property of the ``AWS::CloudWatch::Alarm`` type. Dimensions are name/value pairs that can be associated with a CW metric. You can specify a maximum of 10 dimensions for a given metric. */ export interface AlarmDimension { /** - * The name of the dimension. + * The name of the dimension, from 1–255 characters in length. This dimension name must have been included when the metric was published. */ name: string; /** - * The value for the dimension. + * The value for the dimension, from 1–255 characters in length. */ value: string; } /** - * The Metric property type represents a specific metric. + * The ``Metric`` property type represents a specific metric. ``Metric`` is a property of the [MetricStat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricstat.html) property type. */ export interface AlarmMetric { /** - * The dimensions for the metric. + * The metric dimensions that you want to be used for the metric that the alarm will watch. */ dimensions?: outputs.cloudwatch.AlarmDimension[]; /** - * The name of the metric. + * The name of the metric that you want the alarm to watch. This is a required field. */ metricName?: string; /** - * The namespace of the metric. + * The namespace of the metric that the alarm will watch. */ namespace?: string; } /** - * This property type specifies the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a math expression on metric data. + * The ``MetricDataQuery`` property type specifies the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a math expression on metric data. + * Any expression used must return a single time series. For more information, see [Metric Math Syntax and Functions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) in the *User Guide*. */ export interface AlarmMetricDataQuery { /** @@ -6850,33 +7351,38 @@ export namespace cloudwatch { */ accountId?: string; /** - * The math expression to be performed on the returned data. + * The math expression to be performed on the returned data, if this object is performing a math expression. This expression can use the ``Id`` of the other metrics to refer to those metrics, and can also use the ``Id`` of other expressions to use the result of those expressions. For more information about metric math expressions, see [Metric Math Syntax and Functions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) in the *User Guide*. + * Within each MetricDataQuery object, you must specify either ``Expression`` or ``MetricStat`` but not both. */ expression?: string; /** - * A short name used to tie this object to the results in the response. + * A short name used to tie this object to the results in the response. This name must be unique within a single call to ``GetMetricData``. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscore. The first character must be a lowercase letter. */ id: string; /** - * A human-readable label for this metric or expression. + * A human-readable label for this metric or expression. This is especially useful if this is an expression, so that you know what the value represents. If the metric or expression is shown in a CW dashboard widget, the label is shown. If ``Label`` is omitted, CW generates a default. */ label?: string; /** - * The metric to be returned, along with statistics, period, and units. + * The metric to be returned, along with statistics, period, and units. Use this parameter only if this object is retrieving a metric and not performing a math expression on returned data. + * Within one MetricDataQuery object, you must specify either ``Expression`` or ``MetricStat`` but not both. */ metricStat?: outputs.cloudwatch.AlarmMetricStat; /** - * The period in seconds, over which the statistic is applied. + * The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a ``PutMetricData`` operation that includes a ``StorageResolution of 1 second``. */ period?: number; /** * This option indicates whether to return the timestamps and raw data values of this metric. + * When you create an alarm based on a metric math expression, specify ``True`` for this value for only the one math expression that the alarm is based on. You must specify ``False`` for ``ReturnData`` for all the other metrics and expressions used in the alarm. + * This field is required. */ returnData?: boolean; } /** * This structure defines the metric to be returned, along with the statistics, period, and units. + * ``MetricStat`` is a property of the [MetricDataQuery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html) property type. */ export interface AlarmMetricStat { /** @@ -6884,15 +7390,20 @@ export namespace cloudwatch { */ metric: outputs.cloudwatch.AlarmMetric; /** - * The granularity, in seconds, of the returned data points. + * The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a ``PutMetricData`` call that includes a ``StorageResolution`` of 1 second. + * If the ``StartTime`` parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned: + * + Start time between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute). + * + Start time between 15 and 63 days ago - Use a multiple of 300 seconds (5 minutes). + * + Start time greater than 63 days ago - Use a multiple of 3600 seconds (1 hour). */ period: number; /** - * The statistic to return. + * The statistic to return. It can include any CW statistic or extended statistic. For a list of valid values, see the table in [Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the *User Guide*. */ stat: string; /** - * The unit to use for the returned data points. + * The unit to use for the returned data points. + * Valid values are: 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, or None. */ unit?: string; } @@ -6942,11 +7453,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 +8758,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. */ @@ -10055,6 +10610,125 @@ export namespace datazone { } +export namespace deadline { + export interface FleetAcceleratorCountRange { + max?: number; + min: number; + } + + export interface FleetAcceleratorTotalMemoryMiBRange { + max?: number; + min: number; + } + + export interface FleetAmountCapability { + max?: number; + min: number; + name: string; + } + + export interface FleetAttributeCapability { + name: string; + values: string[]; + } + + export interface FleetCapabilities { + amounts?: outputs.deadline.FleetAmountCapability[]; + attributes?: outputs.deadline.FleetAttributeCapability[]; + } + + export interface FleetConfiguration0Properties { + customerManaged: outputs.deadline.FleetCustomerManagedFleetConfiguration; + } + + export interface FleetConfiguration1Properties { + serviceManagedEc2: outputs.deadline.FleetServiceManagedEc2FleetConfiguration; + } + + export interface FleetCustomerManagedFleetConfiguration { + mode: enums.deadline.FleetAutoScalingMode; + storageProfileId?: string; + workerCapabilities: outputs.deadline.FleetCustomerManagedWorkerCapabilities; + } + + export interface FleetCustomerManagedWorkerCapabilities { + acceleratorCount?: outputs.deadline.FleetAcceleratorCountRange; + acceleratorTotalMemoryMiB?: outputs.deadline.FleetAcceleratorTotalMemoryMiBRange; + acceleratorTypes?: enums.deadline.FleetAcceleratorType[]; + cpuArchitectureType: enums.deadline.FleetCpuArchitectureType; + customAmounts?: outputs.deadline.FleetAmountCapability[]; + customAttributes?: outputs.deadline.FleetAttributeCapability[]; + memoryMiB: outputs.deadline.FleetMemoryMiBRange; + osFamily: enums.deadline.FleetCustomerManagedFleetOperatingSystemFamily; + vCpuCount: outputs.deadline.FleetVCpuCountRange; + } + + export interface FleetEc2EbsVolume { + iops?: number; + sizeGiB?: number; + throughputMiB?: number; + } + + export interface FleetMemoryMiBRange { + max?: number; + min: number; + } + + export interface FleetServiceManagedEc2FleetConfiguration { + instanceCapabilities: outputs.deadline.FleetServiceManagedEc2InstanceCapabilities; + instanceMarketOptions: outputs.deadline.FleetServiceManagedEc2InstanceMarketOptions; + } + + export interface FleetServiceManagedEc2InstanceCapabilities { + allowedInstanceTypes?: string[]; + cpuArchitectureType: enums.deadline.FleetCpuArchitectureType; + customAmounts?: outputs.deadline.FleetAmountCapability[]; + customAttributes?: outputs.deadline.FleetAttributeCapability[]; + excludedInstanceTypes?: string[]; + memoryMiB: outputs.deadline.FleetMemoryMiBRange; + osFamily: enums.deadline.FleetServiceManagedFleetOperatingSystemFamily; + rootEbsVolume?: outputs.deadline.FleetEc2EbsVolume; + vCpuCount: outputs.deadline.FleetVCpuCountRange; + } + + export interface FleetServiceManagedEc2InstanceMarketOptions { + type: enums.deadline.FleetEc2MarketType; + } + + export interface FleetVCpuCountRange { + max?: number; + min: number; + } + + export interface QueueJobAttachmentSettings { + rootPrefix: string; + s3BucketName: string; + } + + export interface QueueJobRunAsUser { + posix?: outputs.deadline.QueuePosixUser; + runAs: enums.deadline.QueueRunAs; + windows?: outputs.deadline.QueueWindowsUser; + } + + export interface QueuePosixUser { + group: string; + user: string; + } + + export interface QueueWindowsUser { + passwordArn: string; + user: string; + } + + export interface StorageProfileFileSystemLocation { + name: string; + path: string; + type: enums.deadline.StorageProfileFileSystemLocationType; + } + +} + export namespace detective { } @@ -10356,6 +11030,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 +11041,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 +11289,25 @@ export namespace dynamodb { writeCapacityUnits: number; } + /** + * Creates or updates a resource-based policy document that contains the permissions for DDB resources, such as a table, its indexes, and stream. Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource. + * In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + * While defining resource-based policies in your CFNshort templates, the following considerations apply: + * + The maximum size supported for a resource-based policy document in JSON format is 20 KB. DDB counts whitespaces when calculating the size of a policy against this limit. + * + Resource-based policies don't support [drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html#). If you update a policy outside of the CFNshort stack template, you'll need to update the CFNshort stack with the changes. + * + Resource-based policies don't support out-of-band changes. If you add, update, or delete a policy outside of the CFNshort template, the change won't be overwritten if there are no changes to the policy within the template. + * For example, say that your template contains a resource-based policy, which you later update outside of the template. If you don't make any changes to the policy in the template, the updated policy in DDB won’t be synced with the policy in the template. + * Conversely, say that your template doesn’t contain a resource-based policy, but you add a policy outside of the template. This policy won’t be removed from DDB as long as you don’t add it to the template. When you add a policy to the template and update the stack, the existing policy in DDB will be updated to match the one defined in the template. + * + * For a full list of all considerations, see [Resource-based policy considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html). + */ + export interface TableResourcePolicy { + /** + * A resource-based policy document that contains permissions to add to the specified DDB table, index, or both. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + */ + policyDocument: any; + } + /** * The S3 bucket that is being imported from. */ @@ -10646,6 +11349,11 @@ export namespace dynamodb { * Represents the DynamoDB Streams configuration for a table in DynamoDB. */ export interface TableStreamSpecification { + /** + * Creates or updates a resource-based policy document that contains the permissions for DDB resources, such as a table's streams. Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource. + * In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + */ + 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. @@ -10662,7 +11370,7 @@ export namespace dynamodb { export interface TableTimeToLiveSpecification { /** * The name of the TTL attribute used to store the expiration time for items in the table. - * + The ``AttributeName`` property is required when enabling the TTL, or when TTL is already enabled. + * + The ``AttributeName`` property is required when enabling the TTL, or when TTL is already enabled. * + To update this property, you must first disable TTL and then enable TTL with the new attribute name. */ attributeName?: string; @@ -11389,7 +12097,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 +12218,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 +12300,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 +12337,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 +12467,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 +12495,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 +12508,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 +12577,6 @@ export namespace ec2 { * Disables the automatic recovery behavior of your instance or sets it to default. */ autoRecovery?: string; - rebootMigration?: string; } /** @@ -12163,7 +12878,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 +13206,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; @@ -12509,7 +13224,6 @@ export namespace ec2 { destinationSecurityGroupId?: string; fromPort?: number; ipProtocol: string; - sourceSecurityGroupId?: string; toPort?: number; } @@ -13810,7 +14524,12 @@ export namespace ecs { * The number of ``cpu`` units reserved for the container. This parameter maps to ``CpuShares`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cpu-shares`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). * This field is optional for tasks using the Fargate launch type, and the only requirement is that the total amount of CPU reserved for all containers within a task be lower than the task-level ``cpu`` value. * You can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the [Amazon EC2 Instances](https://docs.aws.amazon.com/ec2/instance-types/) detail page by 1,024. - * Linux containers share unallocated CPU units with other containers on the cont + * Linux containers share unallocated CPU units with other containers on the container instance with the same ratio as their allocated amount. For example, if you run a single-container task on a single-core instance type with 512 CPU units specified for that container, and that's the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time. However, if you launched another copy of the same task on that container instance, each task is guaranteed a minimum of 512 CPU units when needed. Moreover, each container could float to higher CPU usage if the other container was not using it. If both tasks were 100% active all of the time, they would be limited to 512 CPU units. + * On Linux container instances, the Docker daemon on the container instance uses the CPU value to calculate the relative CPU share ratios for running containers. For more information, see [CPU share constraint](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#cpu-share-constraint) in the Docker documentation. The minimum valid CPU share value that the Linux kernel allows is 2. However, the CPU parameter isn't required, and you can use CPU values below 2 in your container definitions. For CPU values below 2 (including null), the behavior varies based on your Amazon ECS container agent version: + * + *Agent versions less than or equal to 1.1.0:* Null and zero CPU values are passed to Docker as 0, which Docker then converts to 1,024 CPU shares. CPU values of 1 are passed to Docker as 1, which the Linux kernel converts to two CPU shares. + * + *Agent versions greater than or equal to 1.2.0:* Null, zero, and CPU values of 1 are passed to Docker as 2. + * + * On Windows container instances, the CPU limit is enforced as an absolute limit, or a quota. Windows containers only have access to the specified amount of CPU that's described in the task definition. A null or zero CPU value is passed to Docker as ``0``, which Windows interprets as 1% of one CPU. */ cpu?: number; /** @@ -13818,12 +14537,17 @@ export namespace ecs { * There are two formats for each ARN. * + credentialspecdomainless:MyARN You use credentialspecdomainless:MyARN to provide a CredSpec with an additional section for a secret in . You provide the login credentials to the domain in the secret. Each task that runs on any container instance can join different domains. You can use this format without joining the container instance to a domain. + credentialspec:MyARN You use credentialspec:MyARN to provide a CredSpec for a single domain. You must join the container instance to the domain before you start any tasks that use this task definition. * In both formats, replace ``MyARN`` with the ARN in SSM or Amazon S3. - * If you provide a ``credentialspecdomainless:MyARN``, the ``credspec`` must + * If you provide a ``credentialspecdomainless:MyARN``, the ``credspec`` must provide a ARN in ASMlong for a secret containing the username, password, and the domain to connect to. For better security, the instance isn't joined to the domain for domainless authentication. Other applications on the instance can't use the domainless credentials. You can use this parameter to run tasks on the same instance, even it the tasks need to join different domains. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) and [Using gMSAs for Linux Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html). */ credentialSpecs?: string[]; /** * The dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed. - * For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [ + * For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + * For tasks using the Fargate launch type, the task or service requires the following platforms: + * + Linux platform version ``1.3.0`` or later. + * + Windows platform version ``1.0.0`` or later. + * + * If the task definition is used in a blue/green deployment that uses [AWS::CodeDeploy::DeploymentGroup BlueGreenDeploymentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-bluegreendeploymentconfiguration.html), the ``dependsOn`` parameter is not supported. For more information see [Issue #680](https://docs.aws.amazon.com/https://github.com/aws-cloudformation/cloudformation-coverage-roadmap/issues/680) on the on the GitHub website. */ dependsOn?: outputs.ecs.TaskDefinitionContainerDependency[]; /** @@ -13849,7 +14573,10 @@ export namespace ecs { * A list of strings to provide custom configuration for multiple security systems. For more information about valid values, see [Docker Run Security Configuration](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). This field isn't valid for containers in tasks using the Fargate launch type. * For Linux tasks on EC2, this parameter can be used to reference custom labels for SELinux and AppArmor multi-level security systems. * For any tasks on EC2, this parameter can be used to reference a credential spec file that configures a container for Active Directory authentication. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) and [Using gMSAs for Linux Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html) in the *Amazon Elastic Container Service Developer Guide*. - * This parameter maps to ``SecurityOpt`` in the [Create a co + * This parameter maps to ``SecurityOpt`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--security-opt`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + * The Amazon ECS container agent running on a container instance must register with the ``ECS_SELINUX_CAPABLE=true`` or ``ECS_APPARMOR_CAPABLE=true`` environment variables before containers placed on that instance can use these security options. For more information, see [Amazon ECS Container Agent Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*. + * For more information about valid values, see [Docker Run Security Configuration](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + * Valid values: "no-new-privileges" | "apparmor:PROFILE" | "label:value" | "credentialspec:CredentialSpecFilePath" */ dockerSecurityOptions?: string[]; /** @@ -13865,7 +14592,7 @@ export namespace ecs { /** * A list of files containing the environment variables to pass to a container. This parameter maps to the ``--env-file`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). * You can specify up to ten environment files. The file must have a ``.env`` file extension. Each line in an environment file contains an environment variable in ``VARIABLE=VALUE`` format. Lines beginning with ``#`` are treated as comments and are ignored. For more information about the environment variable file syntax, see [Declare default environment variables in file](https://docs.aws.amazon.com/https://docs.docker.com/compose/env-file/). - * If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend t + * If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Specifying Environment Variables](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) in the *Amazon Elastic Container Service Developer Guide*. */ environmentFiles?: outputs.ecs.TaskDefinitionEnvironmentFile[]; /** @@ -13893,7 +14620,11 @@ export namespace ecs { hostname?: string; /** * The image used to start a container. This string is passed directly to the Docker daemon. By default, images in the Docker Hub registry are available. Other repositories are specified with either ``repository-url/image:tag`` or ``repository-url/image@digest``. Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to ``Image`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``IMAGE`` parameter of [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - * + When a new task starts, the Amazon ECS container agent pulls the latest version of the specified image and tag for the container to use. However, subsequent updates to a repository image + * + When a new task starts, the Amazon ECS container agent pulls the latest version of the specified image and tag for the container to use. However, subsequent updates to a repository image aren't propagated to already running tasks. + * + Images in Amazon ECR repositories can be specified by either using the full ``registry/repository:tag`` or ``registry/repository@digest``. For example, ``012345678910.dkr.ecr..amazonaws.com/:latest`` or ``012345678910.dkr.ecr..amazonaws.com/@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE``. + * + Images in official repositories on Docker Hub use a single name (for example, ``ubuntu`` or ``mongo``). + * + Images in other repositories on Docker Hub are qualified with an organization name (for example, ``amazon/amazon-ecs-agent``). + * + Images in other online repositories are qualified further by a domain name (for example, ``quay.io/assemblyline/ubuntu``). */ image: string; /** @@ -13902,7 +14633,8 @@ export namespace ecs { interactive?: boolean; /** * The ``links`` parameter allows containers to communicate with each other without the need for port mappings. This parameter is only supported if the network mode of a task definition is ``bridge``. The ``name:internalName`` construct is analogous to ``name:alias`` in Docker links. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. For more information about linking Docker containers, go to [Legacy container links](https://docs.aws.amazon.com/https://docs.docker.com/network/links/) in the Docker documentation. This parameter maps to ``Links`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--link`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - * This parameter is not supported for W + * This parameter is not supported for Windows containers. + * Containers that are collocated on a single container instance may be able to communicate with each other without requiring links or host port mappings. Network isolation is achieved on the container instance using security groups and VPC settings. */ links?: string[]; /** @@ -13912,18 +14644,26 @@ export namespace ecs { linuxParameters?: outputs.ecs.TaskDefinitionLinuxParameters; /** * The log configuration specification for the container. - * This parameter maps to ``LogConfig`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--log-driver`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). By default, containers use the same logging driver that the Docker daemon uses. However, the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.aws.amazon.com/htt + * This parameter maps to ``LogConfig`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--log-driver`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). By default, containers use the same logging driver that the Docker daemon uses. However, the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.aws.amazon.com/https://docs.docker.com/engine/admin/logging/overview/) in the Docker documentation. + * Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon (shown in the [LogConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_LogConfiguration.html) data type). Additional log drivers may be available in future releases of the Amazon ECS container agent. + * This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'`` + * The Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the ``ECS_AVAILABLE_LOGGING_DRIVERS`` environment variable before containers placed on that instance can use these log configuration options. For more information, see [Amazon ECS Container Agent Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*. */ logConfiguration?: outputs.ecs.TaskDefinitionLogConfiguration; /** * The amount (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. The total amount of memory reserved for all containers within a task must be lower than the task ``memory`` value, if one is specified. This parameter maps to ``Memory`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). * If using the Fargate launch type, this parameter is optional. - * If using the EC2 launch type, you must specify either a task-level memory value or a container-level memory value. If you specify both a container-level ``memory`` and ``memoryReservation`` value, ``memory`` must be greater than ``memoryReserva + * If using the EC2 launch type, you must specify either a task-level memory value or a container-level memory value. If you specify both a container-level ``memory`` and ``memoryReservation`` value, ``memory`` must be greater than ``memoryReservation``. If you specify ``memoryReservation``, then that value is subtracted from the available memory resources for the container instance where the container is placed. Otherwise, the value of ``memory`` is used. + * The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container, so you should not specify fewer than 6 MiB of memory for your containers. + * The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container, so you should not specify fewer than 4 MiB of memory for your containers. */ memory?: number; /** * The soft limit (in MiB) of memory to reserve for the container. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit. However, your container can consume more memory when it needs to, up to either the hard limit specified with the ``memory`` parameter (if applicable), or all of the available memory on the container instance, whichever comes first. This parameter maps to ``MemoryReservation`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory-reservation`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - * If a task-level memory value is not specified, you must specify a non-zero integer for one or both of ``memory`` or ``memoryReservation`` in a container definiti + * If a task-level memory value is not specified, you must specify a non-zero integer for one or both of ``memory`` or ``memoryReservation`` in a container definition. If you specify both, ``memory`` must be greater than ``memoryReservation``. If you specify ``memoryReservation``, then that value is subtracted from the available memory resources for the container instance where the container is placed. Otherwise, the value of ``memory`` is used. + * For example, if your container normally uses 128 MiB of memory, but occasionally bursts to 256 MiB of memory for short periods of time, you can set a ``memoryReservation`` of 128 MiB, and a ``memory`` hard limit of 300 MiB. This configuration would allow the container to only reserve 128 MiB of memory from the remaining resources on the container instance, but also allow the container to consume more memory resources when needed. + * The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container. So, don't specify less than 6 MiB of memory for your containers. + * The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container. So, don't specify less than 4 MiB of memory for your containers. */ memoryReservation?: number; /** @@ -13940,7 +14680,8 @@ export namespace ecs { * The list of port mappings for the container. Port mappings allow containers to access ports on the host container instance to send or receive traffic. * For task definitions that use the ``awsvpc`` network mode, you should only specify the ``containerPort``. The ``hostPort`` can be left blank or it must be the same value as the ``containerPort``. * Port mappings on Windows use the ``NetNAT`` gateway address rather than ``localhost``. There is no loopback for port mappings on Windows, so you cannot access a container's mapped port from the host itself. - * This parameter maps to ``PortBindings`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--publish`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). If the network mode of a task definition is set to + * This parameter maps to ``PortBindings`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--publish`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). If the network mode of a task definition is set to ``none``, then you can't specify port mappings. If the network mode of a task definition is set to ``host``, then host ports must either be undefined or they must match the container port in the port mapping. + * After a task reaches the ``RUNNING`` status, manual and automatic host and container port assignments are visible in the *Network Bindings* section of a container description for a selected task in the Amazon ECS console. The assignments are also visible in the ``networkBindings`` section [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) responses. */ portMappings?: outputs.ecs.TaskDefinitionPortMapping[]; /** @@ -13976,7 +14717,8 @@ export namespace ecs { * + Linux platform version ``1.3.0`` or later. * + Windows platform version ``1.0.0`` or later. * - * For tasks using the EC2 launch type, your container instances require at least version ``1.26.0`` of the container agent to use a container start timeout value. However + * For tasks using the EC2 launch type, your container instances require at least version ``1.26.0`` of the container agent to use a container start timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version ``1.26.0-1`` of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + * The valid values are 2-120 seconds. */ startTimeout?: number; /** @@ -13986,7 +14728,8 @@ export namespace ecs { * + Windows platform version ``1.0.0`` or later. * * The max stop timeout value is 120 seconds and if the parameter is not specified, the default value of 30 seconds is used. - * For tasks that use the EC2 launch type, if the ``stopTimeout`` parameter isn't specified, the value set for the Amazon ECS container agent configuration variable ``ECS_CONTAINER_STOP_TIMEOUT`` is used. If neither the ``stopTimeout`` parameter or the ``ECS_CONTAINER_STOP_TIMEOUT`` agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to use a container stop timeout value. However, we recomm + * For tasks that use the EC2 launch type, if the ``stopTimeout`` parameter isn't specified, the value set for the Amazon ECS container agent configuration variable ``ECS_CONTAINER_STOP_TIMEOUT`` is used. If neither the ``stopTimeout`` parameter or the ``ECS_CONTAINER_STOP_TIMEOUT`` agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to use a container stop timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + * The valid values are 2-120 seconds. */ stopTimeout?: number; /** @@ -14024,7 +14767,8 @@ export namespace ecs { /** * The ``ContainerDependency`` property specifies the dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed. - * Your Amazon ECS container instances require at least version 1.26.0 of the container agent to enable container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you are using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For m + * Your Amazon ECS container instances require at least version 1.26.0 of the container agent to enable container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you are using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + * For tasks using the Fargate launch type, this parameter requires that the task or service uses platform version 1.3.0 or later. */ export interface TaskDefinitionContainerDependency { /** @@ -14032,7 +14776,7 @@ export namespace ecs { * + ``START`` - This condition emulates the behavior of links and volumes today. It validates that a dependent container is started before permitting other containers to start. * + ``COMPLETE`` - This condition validates that a dependent container runs to completion (exits) before permitting other containers to start. This can be useful for nonessential containers that run a script and then exit. This condition can't be set on an essential container. * + ``SUCCESS`` - This condition is the same as ``COMPLETE``, but it also requires that the container exits with a ``zero`` status. This condition can't be set on an essential container. - * + ``HEALTHY`` - This condition validates that the dependent container passes its Docker health check before permitting other containers to start. This requires that the dependent container has health checks configured. This condition is confi + * + ``HEALTHY`` - This condition validates that the dependent container passes its Docker health check before permitting other containers to start. This requires that the dependent container has health checks configured. This condition is confirmed only at task startup. */ condition?: string; /** @@ -14115,13 +14859,20 @@ export namespace ecs { /** * A list of files containing the environment variables to pass to a container. You can specify up to ten environment files. The file must have a ``.env`` file extension. Each line in an environment file should contain an environment variable in ``VARIABLE=VALUE`` format. Lines beginning with ``#`` are treated as comments and are ignored. - * If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Specifying environment variables](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) in the *Amazon Elastic Container Service Developer Guide*. + * If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Use a file to pass environment variables to a container](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/use-environment-file.html) in the *Amazon Elastic Container Service Developer Guide*. + * Environment variable files are objects in Amazon S3 and all Amazon S3 security considerations apply. * You must use the following platforms for the Fargate launch type: - * + Linux platform version ``1.4.0`` or la + * + Linux platform version ``1.4.0`` or later. + * + Windows platform version ``1.0.0`` or later. + * + * Consider the following when using the Fargate launch type: + * + The file is handled like a native Docker env-file. + * + There is no support for shell escape handling. + * + The container entry point interperts the ``VARIABLE`` values. */ export interface TaskDefinitionEnvironmentFile { /** - * The file type to use. The only supported value is ``s3``. + * The file type to use. Environment files are objects in Amazon S3. The only supported value is ``s3``. */ type?: string; /** @@ -14138,11 +14889,22 @@ export namespace ecs { */ export interface TaskDefinitionEphemeralStorage { /** - * The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``21`` GiB and the maximum supported value is ``200`` GiB. + * The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``20`` GiB and the maximum supported value is ``200`` GiB. */ sizeInGiB?: number; } + export interface TaskDefinitionFSxAuthorizationConfig { + credentialsParameter: string; + domain: string; + } + + export interface TaskDefinitionFSxWindowsFileServerVolumeConfiguration { + authorizationConfig?: outputs.ecs.TaskDefinitionFSxAuthorizationConfig; + fileSystemId: string; + rootDirectory: string; + } + /** * The FireLens configuration for the container. This is used to specify and configure a log router for container logs. For more information, see [Custom log routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*. */ @@ -14150,9 +14912,9 @@ export namespace ecs { /** * The options to use when configuring the log router. This field is optional and can be used to add additional metadata, such as the task, task definition, cluster, and container instance details to the log event. * If specified, valid option keys are: - * + ``enable-ecs-log-metadata``, which can be ``true`` or ``false`` - * + ``config-file-type``, which can be ``s3`` or ``file`` - * + ``config-file-value``, which is either an S3 ARN or a file path + * + ``enable-ecs-log-metadata``, which can be ``true`` or ``false`` + * + ``config-file-type``, which can be ``s3`` or ``file`` + * + ``config-file-value``, which is either an S3 ARN or a file path */ options?: {[key: string]: string}; /** @@ -14164,7 +14926,11 @@ export namespace ecs { /** * The ``HealthCheck`` property specifies an object representing a container health check. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image (such as those specified in a parent image or from the image's Dockerfile). This configuration maps to the ``HEALTHCHECK`` parameter of [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). * The Amazon ECS container agent only monitors and reports on the health checks specified in the task definition. Amazon ECS does not monitor Docker health checks that are embedded in a container image and not specified in the container definition. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image. - * If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a servi + * If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a service, if the task reports as unhealthy then the task will be stopped and the service scheduler will replace it. + * The following are notes about container health check support: + * + Container health checks require version 1.17.0 or greater of the Amazon ECS container agent. For more information, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html). + * + Container health checks are supported for Fargate tasks if you are using platform version 1.1.0 or greater. For more information, see [Platform Versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). + * + Container health checks are not supported for tasks that are part of a service that is configured to use a Classic Load Balancer. */ export interface TaskDefinitionHealthCheck { /** @@ -14235,18 +15001,18 @@ export namespace ecs { } /** - * The ``KernelCapabilities`` property specifies the Linux capabilities for the container that are added to or dropped from the default configuration that is provided by Docker. For more information on the default capabilities and the non-default available capabilities, see [Runtime privilege and Linux capabilities](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) in the *Docker run reference*. For more detailed information on these Linux capabilities, see the [capabilities(7)](https://docs.aws.amazon.com/http://man7.org/linux/man-pages/man7/capabilities.7.html) Linux manual page. + * The Linux capabilities to add or remove from the default Docker configuration for a container defined in the task definition. For more information about the default capabilities and the non-default available capabilities, see [Runtime privilege and Linux capabilities](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) in the *Docker run reference*. For more detailed information about these Linux capabilities, see the [capabilities(7)](https://docs.aws.amazon.com/http://man7.org/linux/man-pages/man7/capabilities.7.html) Linux manual page. */ export interface TaskDefinitionKernelCapabilities { /** * The Linux capabilities for the container that have been added to the default configuration provided by Docker. This parameter maps to ``CapAdd`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-add`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). * Tasks launched on FARGATElong only support adding the ``SYS_PTRACE`` kernel capability. - * Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" + * Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"`` */ add?: string[]; /** * The Linux capabilities for the container that have been removed from the default configuration provided by Docker. This parameter maps to ``CapDrop`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-drop`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - * Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" + * Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"`` */ drop?: string[]; } @@ -14318,7 +15084,7 @@ export namespace ecs { * For tasks hosted on Amazon EC2 instances, the supported log drivers are ``awslogs``, ``fluentd``, ``gelf``, ``json-file``, ``journald``, ``logentries``,``syslog``, ``splunk``, and ``awsfirelens``. * For more information about using the ``awslogs`` log driver, see [Using the awslogs log driver](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html) in the *Amazon Elastic Container Service Developer Guide*. * For more information about using the ``awsfirelens`` log driver, see [Custom log routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*. - * If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs + * If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs-agent) and customize it to work with that driver. We encourage you to submit pull requests for changes that you would like to have included. However, we don't currently provide support for running modified copies of this software. */ logDriver: string; /** @@ -14374,7 +15140,7 @@ export namespace ecs { * The application protocol that's used for the port mapping. This parameter only applies to Service Connect. We recommend that you set this parameter to be consistent with the protocol that your application uses. If you set this parameter, Amazon ECS adds protocol-specific connection handling to the Service Connect proxy. If you set this parameter, Amazon ECS adds protocol-specific telemetry in the Amazon ECS console and CloudWatch. * If you don't set a value for this parameter, then TCP is used. However, Amazon ECS doesn't add protocol-specific telemetry for TCP. * ``appProtocol`` is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment. - * Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS se + * Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. */ appProtocol?: enums.ecs.TaskDefinitionPortMappingAppProtocol; /** @@ -14393,7 +15159,17 @@ export namespace ecs { * + You can specify a maximum of 100 port ranges per container. * + You do not specify a ``hostPortRange``. The value of the ``hostPortRange`` is set as follows: * + For containers in a task with the ``awsvpc`` network mode, the ``hostPortRange`` is set to the same value as the ``containerPortRange``. This is a static mapping strategy. - * + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open host + * + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open host ports from the default ephemeral range and passes it to docker to bind them to the container ports. + * + * + The ``containerPortRange`` valid values are between 1 and 65535. + * + A port can only be included in one port mapping per container. + * + You cannot specify overlapping port ranges. + * + The first port in the range must be less than last port in the range. + * + Docker recommends that you turn off the docker-proxy in the Docker daemon config file when you have a large number of ports. + * For more information, see [Issue #11185](https://docs.aws.amazon.com/https://github.com/moby/moby/issues/11185) on the Github website. + * For information about how to turn off the docker-proxy in the Docker daemon config file, see [Docker daemon](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/bootstrap_container_instance.html#bootstrap_docker_daemon) in the *Amazon ECS Developer Guide*. + * + * You can call [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) to view the ``hostPortRange`` which are the host ports that are bound to the container ports. */ containerPortRange?: string; /** @@ -14403,7 +15179,9 @@ export namespace ecs { * + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open ports on the host and automatically binds them to the container ports. This is a dynamic mapping strategy. * * If you use containers in a task with the ``awsvpc`` or ``host`` network mode, the ``hostPort`` can either be left blank or set to the same value as the ``containerPort``. - * If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0``) while specifying a ``containerPort`` and your container automatically + * If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0``) while specifying a ``containerPort`` and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version. + * The default ephemeral port range for Docker version 1.6.0 and later is listed on the instance under ``/proc/sys/net/ipv4/ip_local_port_range``. If this kernel parameter is unavailable, the default ephemeral port range from 49153 through 65535 (Linux) or 49152 through 65535 (Windows) is used. Do not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range. + * The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678-51680. Any host port that was previously specified in a running task is also reserved while the task is running. That is, after a task stops, the host port is released. The current reserved ports are displayed in the ``remainingResources`` of [DescribeContainerInstances](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html) output. A container instance can have up to 100 reserved ports at a time. This number includes the default reserved ports. Automatically assigned ports aren't included in the 100 reserved ports quota. */ hostPort?: number; /** @@ -14432,7 +15210,9 @@ export namespace ecs { * + ``IgnoredGID`` - (Required) The group ID (GID) of the proxy container as defined by the ``user`` parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If ``IgnoredUID`` is specified, this field can be empty. * + ``AppPorts`` - (Required) The list of ports that the application uses. Network traffic to these ports is forwarded to the ``ProxyIngressPort`` and ``ProxyEgressPort``. * + ``ProxyIngressPort`` - (Required) Specifies the port that incoming traffic to the ``AppPorts`` is directed to. - * + ``ProxyEgressPort`` - (Required) Specifies the port that outgoi + * + ``ProxyEgressPort`` - (Required) Specifies the port that outgoing traffic from the ``AppPorts`` is directed to. + * + ``EgressIgnoredPorts`` - (Required) The egress traffic going to the specified ports is ignored and not redirected to the ``ProxyEgressPort``. It can be an empty list. + * + ``EgressIgnoredIPs`` - (Required) The egress traffic going to the specified IP addresses is ignored and not redirected to the ``ProxyEgressPort``. It can be an empty list. */ proxyConfigurationProperties?: outputs.ecs.TaskDefinitionKeyValuePair[]; /** @@ -14507,7 +15287,15 @@ export namespace ecs { /** * A list of namespaced kernel parameters to set in the container. This parameter maps to ``Sysctls`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--sysctl`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). For example, you can configure ``net.ipv4.tcp_keepalive_time`` setting to maintain longer lived connections. * We don't recommend that you specify network-related ``systemControls`` parameters for multiple containers in a single task that also uses either the ``awsvpc`` or ``host`` network mode. Doing this has the following disadvantages: - * + For tasks that use the ``awsvpc`` network mode including Fargate, if you set ``systemControls`` for any container, it applies to all containers in the task. If you set different ``sy + * + For tasks that use the ``awsvpc`` network mode including Fargate, if you set ``systemControls`` for any container, it applies to all containers in the task. If you set different ``systemControls`` for multiple containers in a single task, the container that's started last determines which ``systemControls`` take effect. + * + For tasks that use the ``host`` network mode, the network namespace ``systemControls`` aren't supported. + * + * If you're setting an IPC resource namespace to use for the containers in the task, the following conditions apply to your system controls. For more information, see [IPC mode](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#task_definition_ipcmode). + * + For tasks that use the ``host`` IPC mode, IPC namespace ``systemControls`` aren't supported. + * + For tasks that use the ``task`` IPC mode, IPC namespace ``systemControls`` values apply to all containers within a task. + * + * This parameter is not supported for Windows containers. + * This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate. */ export interface TaskDefinitionSystemControl { /** @@ -14581,6 +15369,7 @@ export namespace ecs { * This parameter is specified when you use an Amazon Elastic File System file system for task storage. */ efsVolumeConfiguration?: outputs.ecs.TaskDefinitionEfsVolumeConfiguration; + fSxWindowsFileServerVolumeConfiguration?: outputs.ecs.TaskDefinitionFSxWindowsFileServerVolumeConfiguration; /** * This parameter is specified when you use bind mount host volumes. The contents of the ``host`` parameter determine whether your bind mount host volume persists on the host container instance and where it's stored. If the ``host`` parameter is empty, then the Docker daemon assigns a host path for your data volume. However, the data isn't guaranteed to persist after the containers that are associated with it stop running. * Windows containers can mount whole directories on the same drive as ``$env:ProgramData``. Windows containers can't mount directories on a different drive, and mount point can't be across drives. For example, you can mount ``C:\my\path:C:\my\path`` and ``D:\:D:\``, but not ``D:\my\path:C:\my\path`` or ``D:\:C:\my\path``. @@ -14747,7 +15536,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 +15954,13 @@ export namespace elasticache { /** * The maximum cached data capacity of the Serverless Cache. */ - maximum: number; + maximum?: number; + /** + * The minimum cached data capacity of the Serverless Cache. + */ + minimum?: number; /** - * The unix of cached data capacity of the Serverless Cache. + * The unit of cached data capacity of the Serverless Cache. */ unit: enums.elasticache.ServerlessCacheDataStorageUnit; } @@ -15179,7 +15972,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 +17083,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 { @@ -16319,6 +17117,24 @@ export namespace entityresolution { providerServiceArn: string; } + export interface IdNamespaceIdMappingWorkflowProperties { + idMappingType: enums.entityresolution.IdNamespaceIdMappingWorkflowPropertiesIdMappingType; + providerProperties?: outputs.entityresolution.IdNamespaceNamespaceProviderProperties; + } + + export interface IdNamespaceInputSource { + inputSourceArn: string; + schemaName?: string; + } + + export interface IdNamespaceNamespaceProviderProperties { + /** + * Additional Provider configuration that would be required for the provider service. The Configuration must be in JSON string format. + */ + providerConfiguration?: {[key: string]: string}; + providerServiceArn: string; + } + export interface MatchingWorkflowInputSource { applyNormalization?: boolean; /** @@ -17468,7 +18284,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 +18300,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 +22124,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; } } @@ -21959,6 +22789,38 @@ export namespace ivs { targetIntervalSeconds?: number; } + /** + * A complex type that describes an S3 location where recorded videos will be stored. + */ + export interface StorageConfigurationS3StorageConfiguration { + /** + * Location (S3 bucket name) where recorded videos will be stored. Note that the StorageConfiguration and S3 bucket must be in the same region as the Composition. + */ + bucketName: string; + } + + /** + * Video configuration. Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps + */ + export interface VideoProperties { + /** + * Bitrate for generated output, in bps. Default: 2500000. + */ + bitrate?: number; + /** + * Video frame rate, in fps. Default: 30. + */ + framerate?: number; + /** + * Video-resolution height. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 720. + */ + height?: number; + /** + * Video-resolution width. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 1280. + */ + width?: number; + } + } export namespace ivschat { @@ -22223,6 +23085,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 { @@ -24165,11 +25066,11 @@ export namespace lambda { runtimeVersionArn?: string; /** * Specify the runtime update mode. - * + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates. - * + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date. - * + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback). - * - * *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual`` + * + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates. + * + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date. + * + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback). + * + * *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual`` */ updateRuntimeOn: enums.lambda.FunctionRuntimeManagementConfigUpdateRuntimeOn; } @@ -26075,42 +26976,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 +42661,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 { @@ -42010,17 +42930,17 @@ export namespace route53 { /** * *Private hosted zones only:* A complex type that contains information about an Amazon VPC. Route 53 Resolver uses the records in the private hosted zone to route traffic in that VPC. - * For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + * For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. */ export interface HostedZoneVpc { /** * *Private hosted zones only:* The ID of an Amazon VPC. - * For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + * For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. */ vpcId: string; /** * *Private hosted zones only:* The region that an Amazon VPC was created in. - * For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + * For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. */ vpcRegion: string; } @@ -43944,6 +44864,16 @@ export namespace s3outposts { } export namespace sagemaker { + /** + * The configuration for the kernels in a SageMaker image running as a CodeEditor app. + */ + export interface AppImageConfigCodeEditorAppImageConfig { + /** + * The container configuration for a SageMaker image. + */ + containerConfig?: outputs.sagemaker.AppImageConfigContainerConfig; + } + /** * The container configuration for a SageMaker image. */ @@ -44321,6 +45251,10 @@ export namespace sagemaker { * The CodeEditor app settings. */ export interface DomainCodeEditorAppSettings { + /** + * A list of custom images for use for CodeEditor apps. + */ + customImages?: outputs.sagemaker.DomainCustomImage[]; /** * The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the CodeEditor app. */ @@ -46984,6 +47918,10 @@ export namespace sagemaker { * The CodeEditor app settings. */ export interface UserProfileCodeEditorAppSettings { + /** + * A list of custom images for use for CodeEditor apps. + */ + customImages?: outputs.sagemaker.UserProfileCustomImage[]; /** * The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the CodeEditor app. */ @@ -47611,6 +48549,519 @@ export namespace securityhub { workflowStatus?: outputs.securityhub.AutomationRuleStringFilter[]; } + /** + * A collection of filters that are applied to all active findings aggregated by AWS Security Hub. + */ + export interface InsightAwsSecurityFindingFilters { + /** + * The AWS account ID in which a finding is generated. + */ + awsAccountId?: outputs.securityhub.InsightStringFilter[]; + /** + * The name of the AWS account in which a finding is generated. + */ + awsAccountName?: outputs.securityhub.InsightStringFilter[]; + /** + * The name of the findings provider (company) that owns the solution (product) that generates findings. + */ + companyName?: outputs.securityhub.InsightStringFilter[]; + /** + * The unique identifier of a standard in which a control is enabled. + */ + complianceAssociatedStandardsId?: outputs.securityhub.InsightStringFilter[]; + /** + * The unique identifier of a control across standards. + */ + complianceSecurityControlId?: outputs.securityhub.InsightStringFilter[]; + /** + * The name of a security control parameter. + */ + complianceSecurityControlParametersName?: outputs.securityhub.InsightStringFilter[]; + /** + * The current value of a security control parameter. + */ + complianceSecurityControlParametersValue?: outputs.securityhub.InsightStringFilter[]; + /** + * Exclusive to findings that are generated as the result of a check run against a specific rule in a supported standard. + */ + complianceStatus?: outputs.securityhub.InsightStringFilter[]; + /** + * A finding's confidence. + */ + confidence?: outputs.securityhub.InsightNumberFilter[]; + /** + * An ISO8601-formatted timestamp that indicates when the security findings provider captured the potential security issue that a finding captured. + */ + createdAt?: outputs.securityhub.InsightDateFilter[]; + /** + * The level of importance assigned to the resources associated with the finding. + */ + criticality?: outputs.securityhub.InsightNumberFilter[]; + /** + * A finding's description. + */ + description?: outputs.securityhub.InsightStringFilter[]; + /** + * The finding provider value for the finding confidence. + */ + findingProviderFieldsConfidence?: outputs.securityhub.InsightNumberFilter[]; + /** + * The finding provider value for the level of importance assigned to the resources associated with the findings. + */ + findingProviderFieldsCriticality?: outputs.securityhub.InsightNumberFilter[]; + /** + * The finding identifier of a related finding that is identified by the finding provider. + */ + findingProviderFieldsRelatedFindingsId?: outputs.securityhub.InsightStringFilter[]; + /** + * The ARN of the solution that generated a related finding that is identified by the finding provider. + */ + findingProviderFieldsRelatedFindingsProductArn?: outputs.securityhub.InsightStringFilter[]; + /** + * The finding provider value for the severity label. + */ + findingProviderFieldsSeverityLabel?: outputs.securityhub.InsightStringFilter[]; + /** + * The finding provider's original value for the severity. + */ + findingProviderFieldsSeverityOriginal?: outputs.securityhub.InsightStringFilter[]; + /** + * One or more finding types that the finding provider assigned to the finding. + */ + findingProviderFieldsTypes?: outputs.securityhub.InsightStringFilter[]; + /** + * An ISO8601-formatted timestamp that indicates when the security findings provider first observed the potential security issue that a finding captured. + */ + firstObservedAt?: outputs.securityhub.InsightDateFilter[]; + /** + * The identifier for the solution-specific component (a discrete unit of logic) that generated a finding. + */ + generatorId?: outputs.securityhub.InsightStringFilter[]; + /** + * The security findings provider-specific identifier for a finding. + */ + id?: outputs.securityhub.InsightStringFilter[]; + /** + * A keyword for a finding. + */ + keyword?: outputs.securityhub.InsightKeywordFilter[]; + /** + * An ISO8601-formatted timestamp that indicates when the security findings provider most recently observed the potential security issue that a finding captured. + */ + lastObservedAt?: outputs.securityhub.InsightDateFilter[]; + /** + * The name of the malware that was observed. + */ + malwareName?: outputs.securityhub.InsightStringFilter[]; + /** + * The filesystem path of the malware that was observed. + */ + malwarePath?: outputs.securityhub.InsightStringFilter[]; + /** + * The state of the malware that was observed. + */ + malwareState?: outputs.securityhub.InsightStringFilter[]; + /** + * The type of the malware that was observed. + */ + malwareType?: outputs.securityhub.InsightStringFilter[]; + /** + * The destination domain of network-related information about a finding. + */ + networkDestinationDomain?: outputs.securityhub.InsightStringFilter[]; + /** + * The destination IPv4 address of network-related information about a finding. + */ + networkDestinationIpV4?: outputs.securityhub.InsightIpFilter[]; + /** + * The destination IPv6 address of network-related information about a finding. + */ + networkDestinationIpV6?: outputs.securityhub.InsightIpFilter[]; + /** + * The destination port of network-related information about a finding. + */ + networkDestinationPort?: outputs.securityhub.InsightNumberFilter[]; + /** + * Indicates the direction of network traffic associated with a finding. + */ + networkDirection?: outputs.securityhub.InsightStringFilter[]; + /** + * The protocol of network-related information about a finding. + */ + networkProtocol?: outputs.securityhub.InsightStringFilter[]; + /** + * The source domain of network-related information about a finding. + */ + networkSourceDomain?: outputs.securityhub.InsightStringFilter[]; + /** + * The source IPv4 address of network-related information about a finding. + */ + networkSourceIpV4?: outputs.securityhub.InsightIpFilter[]; + /** + * The source IPv6 address of network-related information about a finding. + */ + networkSourceIpV6?: outputs.securityhub.InsightIpFilter[]; + /** + * The source media access control (MAC) address of network-related information about a finding. + */ + networkSourceMac?: outputs.securityhub.InsightStringFilter[]; + /** + * The source port of network-related information about a finding. + */ + networkSourcePort?: outputs.securityhub.InsightNumberFilter[]; + /** + * The text of a note. + */ + noteText?: outputs.securityhub.InsightStringFilter[]; + /** + * The timestamp of when the note was updated. + */ + noteUpdatedAt?: outputs.securityhub.InsightDateFilter[]; + /** + * The principal that created a note. + */ + noteUpdatedBy?: outputs.securityhub.InsightStringFilter[]; + /** + * A timestamp that identifies when the process was launched. + */ + processLaunchedAt?: outputs.securityhub.InsightDateFilter[]; + /** + * The name of the process. + */ + processName?: outputs.securityhub.InsightStringFilter[]; + /** + * The parent process ID. + */ + processParentPid?: outputs.securityhub.InsightNumberFilter[]; + /** + * The path to the process executable. + */ + processPath?: outputs.securityhub.InsightStringFilter[]; + /** + * The process ID. + */ + processPid?: outputs.securityhub.InsightNumberFilter[]; + /** + * A timestamp that identifies when the process was terminated. + */ + processTerminatedAt?: outputs.securityhub.InsightDateFilter[]; + /** + * The ARN generated by Security Hub that uniquely identifies a third-party company (security findings provider) after this provider's product (solution that generates findings) is registered with Security Hub. + */ + productArn?: outputs.securityhub.InsightStringFilter[]; + /** + * A data type where security findings providers can include additional solution-specific details that aren't part of the defined AwsSecurityFinding format. + */ + productFields?: outputs.securityhub.InsightMapFilter[]; + /** + * The name of the solution (product) that generates findings. + */ + productName?: outputs.securityhub.InsightStringFilter[]; + /** + * The recommendation of what to do about the issue described in a finding. + */ + recommendationText?: outputs.securityhub.InsightStringFilter[]; + /** + * The updated record state for the finding. + */ + recordState?: outputs.securityhub.InsightStringFilter[]; + /** + * The Region from which the finding was generated. + */ + region?: outputs.securityhub.InsightStringFilter[]; + /** + * The solution-generated identifier for a related finding. + */ + relatedFindingsId?: outputs.securityhub.InsightStringFilter[]; + /** + * The ARN of the solution that generated a related finding. + */ + relatedFindingsProductArn?: outputs.securityhub.InsightStringFilter[]; + /** + * The ARN of the application that is related to a finding. + */ + resourceApplicationArn?: outputs.securityhub.InsightStringFilter[]; + /** + * The name of the application that is related to a finding. + */ + resourceApplicationName?: outputs.securityhub.InsightStringFilter[]; + /** + * The IAM profile ARN of the instance. + */ + resourceAwsEc2InstanceIamInstanceProfileArn?: outputs.securityhub.InsightStringFilter[]; + /** + * The Amazon Machine Image (AMI) ID of the instance. + */ + resourceAwsEc2InstanceImageId?: outputs.securityhub.InsightStringFilter[]; + /** + * The IPv4 addresses associated with the instance. + */ + resourceAwsEc2InstanceIpV4Addresses?: outputs.securityhub.InsightIpFilter[]; + /** + * The IPv6 addresses associated with the instance. + */ + resourceAwsEc2InstanceIpV6Addresses?: outputs.securityhub.InsightIpFilter[]; + /** + * The key name associated with the instance. + */ + resourceAwsEc2InstanceKeyName?: outputs.securityhub.InsightStringFilter[]; + /** + * The date and time the instance was launched. + */ + resourceAwsEc2InstanceLaunchedAt?: outputs.securityhub.InsightDateFilter[]; + /** + * The identifier of the subnet that the instance was launched in. + */ + resourceAwsEc2InstanceSubnetId?: outputs.securityhub.InsightStringFilter[]; + /** + * The instance type of the instance. + */ + resourceAwsEc2InstanceType?: outputs.securityhub.InsightStringFilter[]; + /** + * The identifier of the VPC that the instance was launched in. + */ + resourceAwsEc2InstanceVpcId?: outputs.securityhub.InsightStringFilter[]; + /** + * The creation date/time of the IAM access key related to a finding. + */ + resourceAwsIamAccessKeyCreatedAt?: outputs.securityhub.InsightDateFilter[]; + /** + * The name of the principal that is associated with an IAM access key. + */ + resourceAwsIamAccessKeyPrincipalName?: outputs.securityhub.InsightStringFilter[]; + /** + * The status of the IAM access key related to a finding. + */ + resourceAwsIamAccessKeyStatus?: outputs.securityhub.InsightStringFilter[]; + /** + * The user associated with the IAM access key related to a finding. + */ + resourceAwsIamAccessKeyUserName?: outputs.securityhub.InsightStringFilter[]; + /** + * The name of an IAM user. + */ + resourceAwsIamUserUserName?: outputs.securityhub.InsightStringFilter[]; + /** + * The canonical user ID of the owner of the S3 bucket. + */ + resourceAwsS3BucketOwnerId?: outputs.securityhub.InsightStringFilter[]; + /** + * The display name of the owner of the S3 bucket. + */ + resourceAwsS3BucketOwnerName?: outputs.securityhub.InsightStringFilter[]; + /** + * The identifier of the image related to a finding. + */ + resourceContainerImageId?: outputs.securityhub.InsightStringFilter[]; + /** + * The name of the image related to a finding. + */ + resourceContainerImageName?: outputs.securityhub.InsightStringFilter[]; + /** + * A timestamp that identifies when the container was started. + */ + resourceContainerLaunchedAt?: outputs.securityhub.InsightDateFilter[]; + /** + * The name of the container related to a finding. + */ + resourceContainerName?: outputs.securityhub.InsightStringFilter[]; + /** + * The details of a resource that doesn't have a specific subfield for the resource type defined. + */ + resourceDetailsOther?: outputs.securityhub.InsightMapFilter[]; + /** + * The canonical identifier for the given resource type. + */ + resourceId?: outputs.securityhub.InsightStringFilter[]; + /** + * The canonical AWS partition name that the Region is assigned to. + */ + resourcePartition?: outputs.securityhub.InsightStringFilter[]; + /** + * The canonical AWS external Region name where this resource is located. + */ + resourceRegion?: outputs.securityhub.InsightStringFilter[]; + /** + * A list of AWS tags associated with a resource at the time the finding was processed. + */ + resourceTags?: outputs.securityhub.InsightMapFilter[]; + /** + * Specifies the type of the resource that details are provided for. + */ + resourceType?: outputs.securityhub.InsightStringFilter[]; + /** + * Indicates whether or not sample findings are included in the filter results. + */ + sample?: outputs.securityhub.InsightBooleanFilter[]; + /** + * The label of a finding's severity. + */ + severityLabel?: outputs.securityhub.InsightStringFilter[]; + /** + * The normalized severity of a finding. + */ + severityNormalized?: outputs.securityhub.InsightNumberFilter[]; + /** + * The native severity as defined by the security findings provider's solution that generated the finding. + */ + severityProduct?: outputs.securityhub.InsightNumberFilter[]; + /** + * A URL that links to a page about the current finding in the security findings provider's solution. + */ + sourceUrl?: outputs.securityhub.InsightStringFilter[]; + /** + * The category of a threat intelligence indicator. + */ + threatIntelIndicatorCategory?: outputs.securityhub.InsightStringFilter[]; + /** + * A timestamp that identifies the last observation of a threat intelligence indicator. + */ + threatIntelIndicatorLastObservedAt?: outputs.securityhub.InsightDateFilter[]; + /** + * The source of the threat intelligence. + */ + threatIntelIndicatorSource?: outputs.securityhub.InsightStringFilter[]; + /** + * The URL for more details from the source of the threat intelligence. + */ + threatIntelIndicatorSourceUrl?: outputs.securityhub.InsightStringFilter[]; + /** + * The type of a threat intelligence indicator. + */ + threatIntelIndicatorType?: outputs.securityhub.InsightStringFilter[]; + /** + * The value of a threat intelligence indicator. + */ + threatIntelIndicatorValue?: outputs.securityhub.InsightStringFilter[]; + /** + * A finding's title. + */ + title?: outputs.securityhub.InsightStringFilter[]; + /** + * A finding type in the format of namespace/category/classifier that classifies a finding. + */ + type?: outputs.securityhub.InsightStringFilter[]; + /** + * An ISO8601-formatted timestamp that indicates when the security findings provider last updated the finding record. + */ + updatedAt?: outputs.securityhub.InsightDateFilter[]; + /** + * A list of name/value string pairs associated with the finding. + */ + userDefinedFields?: outputs.securityhub.InsightMapFilter[]; + /** + * The veracity of a finding. + */ + verificationState?: outputs.securityhub.InsightStringFilter[]; + /** + * Indicates whether a software vulnerability in your environment has a known exploit. + */ + vulnerabilitiesExploitAvailable?: outputs.securityhub.InsightStringFilter[]; + /** + * Indicates whether a vulnerability is fixed in a newer version of the affected software packages. + */ + vulnerabilitiesFixAvailable?: outputs.securityhub.InsightStringFilter[]; + /** + * The workflow state of a finding. + */ + workflowState?: outputs.securityhub.InsightStringFilter[]; + /** + * The status of the investigation into a finding. + */ + workflowStatus?: outputs.securityhub.InsightStringFilter[]; + } + + /** + * Boolean filter for querying findings. + */ + export interface InsightBooleanFilter { + /** + * The value of the boolean. + */ + value: boolean; + } + + /** + * A date filter for querying findings. + */ + export interface InsightDateFilter { + dateRange?: outputs.securityhub.InsightDateRange; + end?: string; + start?: string; + } + + /** + * A date range for the date filter. + */ + export interface InsightDateRange { + /** + * A date range unit for the date filter. + */ + unit: enums.securityhub.InsightDateRangeUnit; + /** + * A date range value for the date filter. + */ + value: number; + } + + /** + * The IP filter for querying findings. + */ + export interface InsightIpFilter { + /** + * A finding's CIDR value. + */ + cidr: string; + } + + /** + * A keyword filter for querying findings. + */ + export interface InsightKeywordFilter { + /** + * A value for the keyword. + */ + value: string; + } + + /** + * A map filter for filtering AWS Security Hub findings. + */ + export interface InsightMapFilter { + /** + * The condition to apply to the key value when filtering Security Hub findings with a map filter. + */ + comparison: enums.securityhub.InsightMapFilterComparison; + key: string; + value: string; + } + + /** + * A number filter for querying findings. + */ + export interface InsightNumberFilter { + /** + * The equal-to condition to be applied to a single field when querying for findings. + */ + eq?: number; + /** + * The greater-than-equal condition to be applied to a single field when querying for findings. + */ + gte?: number; + /** + * The less-than-equal condition to be applied to a single field when querying for findings. + */ + lte?: number; + } + + /** + * A string filter for filtering AWS Security Hub findings. + */ + export interface InsightStringFilter { + comparison: enums.securityhub.InsightStringFilterComparison; + value: string; + } + /** * Provides details about an individual security control. For a list of ASH controls, see [controls reference](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-controls-reference.html) in the *User Guide*. */ @@ -47627,6 +49078,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; @@ -49071,8 +50622,13 @@ export namespace transfer { } export namespace verifiedpermissions { + export interface IdentitySourceCognitoGroupConfiguration { + groupEntityType: string; + } + export interface IdentitySourceCognitoUserPoolConfiguration { clientIds?: string[]; + groupConfiguration?: outputs.verifiedpermissions.IdentitySourceCognitoGroupConfiguration; userPoolArn: string; } diff --git a/sdk/python/pulumi_aws_native/__init__.py b/sdk/python/pulumi_aws_native/__init__.py index 44b30db8a9..445fb382d9 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 @@ -80,6 +82,8 @@ chatbot = __chatbot import pulumi_aws_native.cleanrooms as __cleanrooms cleanrooms = __cleanrooms + import pulumi_aws_native.cleanroomsml as __cleanroomsml + cleanroomsml = __cleanroomsml import pulumi_aws_native.cloudformation as __cloudformation cloudformation = __cloudformation import pulumi_aws_native.cloudfront as __cloudfront @@ -92,6 +96,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 @@ -128,6 +134,8 @@ datasync = __datasync import pulumi_aws_native.datazone as __datazone datazone = __datazone + import pulumi_aws_native.deadline as __deadline + deadline = __deadline import pulumi_aws_native.detective as __detective detective = __detective import pulumi_aws_native.devicefarm as __devicefarm @@ -376,6 +384,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,18 +464,21 @@ 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') certificatemanager = _utilities.lazy_import('pulumi_aws_native.certificatemanager') chatbot = _utilities.lazy_import('pulumi_aws_native.chatbot') cleanrooms = _utilities.lazy_import('pulumi_aws_native.cleanrooms') + cleanroomsml = _utilities.lazy_import('pulumi_aws_native.cleanroomsml') cloudformation = _utilities.lazy_import('pulumi_aws_native.cloudformation') cloudfront = _utilities.lazy_import('pulumi_aws_native.cloudfront') cloudtrail = _utilities.lazy_import('pulumi_aws_native.cloudtrail') 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') @@ -484,6 +497,7 @@ datapipeline = _utilities.lazy_import('pulumi_aws_native.datapipeline') datasync = _utilities.lazy_import('pulumi_aws_native.datasync') datazone = _utilities.lazy_import('pulumi_aws_native.datazone') + deadline = _utilities.lazy_import('pulumi_aws_native.deadline') detective = _utilities.lazy_import('pulumi_aws_native.detective') devicefarm = _utilities.lazy_import('pulumi_aws_native.devicefarm') devopsguru = _utilities.lazy_import('pulumi_aws_native.devopsguru') @@ -608,6 +622,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 +763,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 +830,7 @@ "fqn": "pulumi_aws_native.aps", "classes": { "aws-native:aps:RuleGroupsNamespace": "RuleGroupsNamespace", + "aws-native:aps:Scraper": "Scraper", "aws-native:aps:Workspace": "Workspace" } }, @@ -902,6 +919,17 @@ "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", + "aws-native:bedrock:DataSource": "DataSource", + "aws-native:bedrock:KnowledgeBase": "KnowledgeBase" + } + }, { "pkg": "aws-native", "mod": "budgets", @@ -958,6 +986,14 @@ "aws-native:cleanrooms:Membership": "Membership" } }, + { + "pkg": "aws-native", + "mod": "cleanroomsml", + "fqn": "pulumi_aws_native.cleanroomsml", + "classes": { + "aws-native:cleanroomsml:TrainingDataset": "TrainingDataset" + } + }, { "pkg": "aws-native", "mod": "cloudformation", @@ -1024,6 +1060,7 @@ "fqn": "pulumi_aws_native.codeartifact", "classes": { "aws-native:codeartifact:Domain": "Domain", + "aws-native:codeartifact:PackageGroup": "PackageGroup", "aws-native:codeartifact:Repository": "Repository" } }, @@ -1035,6 +1072,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", @@ -1245,6 +1290,21 @@ "aws-native:datazone:SubscriptionTarget": "SubscriptionTarget" } }, + { + "pkg": "aws-native", + "mod": "deadline", + "fqn": "pulumi_aws_native.deadline", + "classes": { + "aws-native:deadline:Farm": "Farm", + "aws-native:deadline:Fleet": "Fleet", + "aws-native:deadline:LicenseEndpoint": "LicenseEndpoint", + "aws-native:deadline:MeteredProduct": "MeteredProduct", + "aws-native:deadline:Queue": "Queue", + "aws-native:deadline:QueueEnvironment": "QueueEnvironment", + "aws-native:deadline:QueueFleetAssociation": "QueueFleetAssociation", + "aws-native:deadline:StorageProfile": "StorageProfile" + } + }, { "pkg": "aws-native", "mod": "detective", @@ -1519,7 +1579,9 @@ "fqn": "pulumi_aws_native.entityresolution", "classes": { "aws-native:entityresolution:IdMappingWorkflow": "IdMappingWorkflow", + "aws-native:entityresolution:IdNamespace": "IdNamespace", "aws-native:entityresolution:MatchingWorkflow": "MatchingWorkflow", + "aws-native:entityresolution:PolicyStatement": "PolicyStatement", "aws-native:entityresolution:SchemaMapping": "SchemaMapping" } }, @@ -1908,9 +1970,12 @@ "fqn": "pulumi_aws_native.ivs", "classes": { "aws-native:ivs:Channel": "Channel", + "aws-native:ivs:EncoderConfiguration": "EncoderConfiguration", "aws-native:ivs:PlaybackKeyPair": "PlaybackKeyPair", + "aws-native:ivs:PlaybackRestrictionPolicy": "PlaybackRestrictionPolicy", "aws-native:ivs:RecordingConfiguration": "RecordingConfiguration", "aws-native:ivs:Stage": "Stage", + "aws-native:ivs:StorageConfiguration": "StorageConfiguration", "aws-native:ivs:StreamKey": "StreamKey" } }, @@ -1928,7 +1993,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" } }, { @@ -2716,10 +2783,23 @@ "fqn": "pulumi_aws_native.securityhub", "classes": { "aws-native:securityhub:AutomationRule": "AutomationRule", + "aws-native:securityhub:DelegatedAdmin": "DelegatedAdmin", "aws-native:securityhub:Hub": "Hub", + "aws-native:securityhub:Insight": "Insight", + "aws-native:securityhub:ProductSubscription": "ProductSubscription", "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/amplify/_inputs.py b/sdk/python/pulumi_aws_native/amplify/_inputs.py index aa8bf77bd8..e3b9cf67e8 100644 --- a/sdk/python/pulumi_aws_native/amplify/_inputs.py +++ b/sdk/python/pulumi_aws_native/amplify/_inputs.py @@ -19,7 +19,6 @@ 'BranchBasicAuthConfigArgs', 'BranchEnvironmentVariableArgs', 'DomainCertificateSettingsArgs', - 'DomainCertificateArgs', 'DomainSubDomainSettingArgs', ] @@ -391,47 +390,6 @@ def custom_certificate_arn(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "custom_certificate_arn", value) -@pulumi.input_type -class DomainCertificateArgs: - def __init__(__self__, *, - certificate_arn: Optional[pulumi.Input[str]] = None, - certificate_type: Optional[pulumi.Input['DomainCertificateCertificateType']] = None, - certificate_verification_dns_record: Optional[pulumi.Input[str]] = None): - if certificate_arn is not None: - pulumi.set(__self__, "certificate_arn", certificate_arn) - if certificate_type is not None: - pulumi.set(__self__, "certificate_type", certificate_type) - if certificate_verification_dns_record is not None: - pulumi.set(__self__, "certificate_verification_dns_record", certificate_verification_dns_record) - - @property - @pulumi.getter(name="certificateArn") - def certificate_arn(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "certificate_arn") - - @certificate_arn.setter - def certificate_arn(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "certificate_arn", value) - - @property - @pulumi.getter(name="certificateType") - def certificate_type(self) -> Optional[pulumi.Input['DomainCertificateCertificateType']]: - return pulumi.get(self, "certificate_type") - - @certificate_type.setter - def certificate_type(self, value: Optional[pulumi.Input['DomainCertificateCertificateType']]): - pulumi.set(self, "certificate_type", value) - - @property - @pulumi.getter(name="certificateVerificationDnsRecord") - def certificate_verification_dns_record(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "certificate_verification_dns_record") - - @certificate_verification_dns_record.setter - def certificate_verification_dns_record(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "certificate_verification_dns_record", value) - - @pulumi.input_type class DomainSubDomainSettingArgs: def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws_native/amplify/domain.py b/sdk/python/pulumi_aws_native/amplify/domain.py index fe4af444d9..216beace28 100644 --- a/sdk/python/pulumi_aws_native/amplify/domain.py +++ b/sdk/python/pulumi_aws_native/amplify/domain.py @@ -21,11 +21,9 @@ def __init__(__self__, *, sub_domain_settings: pulumi.Input[Sequence[pulumi.Input['DomainSubDomainSettingArgs']]], auto_sub_domain_creation_patterns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, auto_sub_domain_iam_role: Optional[pulumi.Input[str]] = None, - certificate: Optional[pulumi.Input['DomainCertificateArgs']] = None, certificate_settings: Optional[pulumi.Input['DomainCertificateSettingsArgs']] = None, domain_name: Optional[pulumi.Input[str]] = None, - enable_auto_sub_domain: Optional[pulumi.Input[bool]] = None, - update_status: Optional[pulumi.Input[str]] = None): + enable_auto_sub_domain: Optional[pulumi.Input[bool]] = None): """ The set of arguments for constructing a Domain resource. """ @@ -35,16 +33,12 @@ def __init__(__self__, *, pulumi.set(__self__, "auto_sub_domain_creation_patterns", auto_sub_domain_creation_patterns) if auto_sub_domain_iam_role is not None: pulumi.set(__self__, "auto_sub_domain_iam_role", auto_sub_domain_iam_role) - if certificate is not None: - pulumi.set(__self__, "certificate", certificate) if certificate_settings is not None: pulumi.set(__self__, "certificate_settings", certificate_settings) if domain_name is not None: pulumi.set(__self__, "domain_name", domain_name) if enable_auto_sub_domain is not None: pulumi.set(__self__, "enable_auto_sub_domain", enable_auto_sub_domain) - if update_status is not None: - pulumi.set(__self__, "update_status", update_status) @property @pulumi.getter(name="appId") @@ -82,15 +76,6 @@ def auto_sub_domain_iam_role(self) -> Optional[pulumi.Input[str]]: def auto_sub_domain_iam_role(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "auto_sub_domain_iam_role", value) - @property - @pulumi.getter - def certificate(self) -> Optional[pulumi.Input['DomainCertificateArgs']]: - return pulumi.get(self, "certificate") - - @certificate.setter - def certificate(self, value: Optional[pulumi.Input['DomainCertificateArgs']]): - pulumi.set(self, "certificate", value) - @property @pulumi.getter(name="certificateSettings") def certificate_settings(self) -> Optional[pulumi.Input['DomainCertificateSettingsArgs']]: @@ -118,15 +103,6 @@ def enable_auto_sub_domain(self) -> Optional[pulumi.Input[bool]]: def enable_auto_sub_domain(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "enable_auto_sub_domain", value) - @property - @pulumi.getter(name="updateStatus") - def update_status(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "update_status") - - @update_status.setter - def update_status(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "update_status", value) - class Domain(pulumi.CustomResource): @overload @@ -136,12 +112,10 @@ def __init__(__self__, app_id: Optional[pulumi.Input[str]] = None, auto_sub_domain_creation_patterns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, auto_sub_domain_iam_role: Optional[pulumi.Input[str]] = None, - certificate: Optional[pulumi.Input[pulumi.InputType['DomainCertificateArgs']]] = None, certificate_settings: Optional[pulumi.Input[pulumi.InputType['DomainCertificateSettingsArgs']]] = None, domain_name: Optional[pulumi.Input[str]] = None, enable_auto_sub_domain: Optional[pulumi.Input[bool]] = None, sub_domain_settings: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DomainSubDomainSettingArgs']]]]] = None, - update_status: Optional[pulumi.Input[str]] = None, __props__=None): """ The AWS::Amplify::Domain resource allows you to connect a custom domain to your app. @@ -176,12 +150,10 @@ def _internal_init(__self__, app_id: Optional[pulumi.Input[str]] = None, auto_sub_domain_creation_patterns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, auto_sub_domain_iam_role: Optional[pulumi.Input[str]] = None, - certificate: Optional[pulumi.Input[pulumi.InputType['DomainCertificateArgs']]] = None, certificate_settings: Optional[pulumi.Input[pulumi.InputType['DomainCertificateSettingsArgs']]] = None, domain_name: Optional[pulumi.Input[str]] = None, enable_auto_sub_domain: Optional[pulumi.Input[bool]] = None, sub_domain_settings: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DomainSubDomainSettingArgs']]]]] = None, - update_status: Optional[pulumi.Input[str]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) if not isinstance(opts, pulumi.ResourceOptions): @@ -196,18 +168,18 @@ def _internal_init(__self__, __props__.__dict__["app_id"] = app_id __props__.__dict__["auto_sub_domain_creation_patterns"] = auto_sub_domain_creation_patterns __props__.__dict__["auto_sub_domain_iam_role"] = auto_sub_domain_iam_role - __props__.__dict__["certificate"] = certificate __props__.__dict__["certificate_settings"] = certificate_settings __props__.__dict__["domain_name"] = domain_name __props__.__dict__["enable_auto_sub_domain"] = enable_auto_sub_domain if sub_domain_settings is None and not opts.urn: raise TypeError("Missing required property 'sub_domain_settings'") __props__.__dict__["sub_domain_settings"] = sub_domain_settings - __props__.__dict__["update_status"] = update_status __props__.__dict__["arn"] = None + __props__.__dict__["certificate"] = None __props__.__dict__["certificate_record"] = None __props__.__dict__["domain_status"] = None __props__.__dict__["status_reason"] = None + __props__.__dict__["update_status"] = None replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["appId", "domainName"]) opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) super(Domain, __self__).__init__( @@ -269,7 +241,7 @@ def auto_sub_domain_iam_role(self) -> pulumi.Output[Optional[str]]: @property @pulumi.getter - def certificate(self) -> pulumi.Output[Optional['outputs.DomainCertificate']]: + def certificate(self) -> pulumi.Output['outputs.DomainCertificate']: return pulumi.get(self, "certificate") @property @@ -309,6 +281,6 @@ def sub_domain_settings(self) -> pulumi.Output[Sequence['outputs.DomainSubDomain @property @pulumi.getter(name="updateStatus") - def update_status(self) -> pulumi.Output[Optional[str]]: + def update_status(self) -> pulumi.Output[str]: return pulumi.get(self, "update_status") diff --git a/sdk/python/pulumi_aws_native/amplify/get_domain.py b/sdk/python/pulumi_aws_native/amplify/get_domain.py index 9a1f9b0566..711955adcc 100644 --- a/sdk/python/pulumi_aws_native/amplify/get_domain.py +++ b/sdk/python/pulumi_aws_native/amplify/get_domain.py @@ -20,7 +20,7 @@ @pulumi.output_type class GetDomainResult: - def __init__(__self__, arn=None, auto_sub_domain_creation_patterns=None, auto_sub_domain_iam_role=None, certificate=None, certificate_record=None, certificate_settings=None, domain_status=None, enable_auto_sub_domain=None, status_reason=None, sub_domain_settings=None, update_status=None): + def __init__(__self__, arn=None, auto_sub_domain_creation_patterns=None, auto_sub_domain_iam_role=None, certificate=None, certificate_record=None, domain_status=None, enable_auto_sub_domain=None, status_reason=None, sub_domain_settings=None, update_status=None): if arn and not isinstance(arn, str): raise TypeError("Expected argument 'arn' to be a str") pulumi.set(__self__, "arn", arn) @@ -36,9 +36,6 @@ def __init__(__self__, arn=None, auto_sub_domain_creation_patterns=None, auto_su if certificate_record and not isinstance(certificate_record, str): raise TypeError("Expected argument 'certificate_record' to be a str") pulumi.set(__self__, "certificate_record", certificate_record) - if certificate_settings and not isinstance(certificate_settings, dict): - raise TypeError("Expected argument 'certificate_settings' to be a dict") - pulumi.set(__self__, "certificate_settings", certificate_settings) if domain_status and not isinstance(domain_status, str): raise TypeError("Expected argument 'domain_status' to be a str") pulumi.set(__self__, "domain_status", domain_status) @@ -80,11 +77,6 @@ def certificate(self) -> Optional['outputs.DomainCertificate']: def certificate_record(self) -> Optional[str]: return pulumi.get(self, "certificate_record") - @property - @pulumi.getter(name="certificateSettings") - def certificate_settings(self) -> Optional['outputs.DomainCertificateSettings']: - return pulumi.get(self, "certificate_settings") - @property @pulumi.getter(name="domainStatus") def domain_status(self) -> Optional[str]: @@ -122,7 +114,6 @@ def __await__(self): auto_sub_domain_iam_role=self.auto_sub_domain_iam_role, certificate=self.certificate, certificate_record=self.certificate_record, - certificate_settings=self.certificate_settings, domain_status=self.domain_status, enable_auto_sub_domain=self.enable_auto_sub_domain, status_reason=self.status_reason, @@ -146,7 +137,6 @@ def get_domain(arn: Optional[str] = None, auto_sub_domain_iam_role=pulumi.get(__ret__, 'auto_sub_domain_iam_role'), certificate=pulumi.get(__ret__, 'certificate'), certificate_record=pulumi.get(__ret__, 'certificate_record'), - certificate_settings=pulumi.get(__ret__, 'certificate_settings'), domain_status=pulumi.get(__ret__, 'domain_status'), enable_auto_sub_domain=pulumi.get(__ret__, 'enable_auto_sub_domain'), status_reason=pulumi.get(__ret__, 'status_reason'), 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/arczonalshift/_enums.py b/sdk/python/pulumi_aws_native/arczonalshift/_enums.py index 862b501894..b7b015613c 100644 --- a/sdk/python/pulumi_aws_native/arczonalshift/_enums.py +++ b/sdk/python/pulumi_aws_native/arczonalshift/_enums.py @@ -16,4 +16,3 @@ class ZonalAutoshiftConfigurationControlConditionType(str, Enum): class ZonalAutoshiftConfigurationZonalAutoshiftStatus(str, Enum): ENABLED = "ENABLED" - DISABLED = "DISABLED" 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..9ff3b1f565 --- /dev/null +++ b/sdk/python/pulumi_aws_native/bedrock/__init__.py @@ -0,0 +1,18 @@ +# 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 .data_source import * +from .get_agent import * +from .get_agent_alias import * +from .get_data_source import * +from .get_knowledge_base import * +from .knowledge_base 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..5795ec91ca --- /dev/null +++ b/sdk/python/pulumi_aws_native/bedrock/_enums.py @@ -0,0 +1,146 @@ +# 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', + 'DataSourceChunkingStrategy', + 'DataSourceStatus', + 'DataSourceType', + 'KnowledgeBaseStatus', + 'KnowledgeBaseStorageType', + 'KnowledgeBaseType', +] + + +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" + + +class DataSourceChunkingStrategy(str, Enum): + """ + Knowledge base can split your source data into chunks. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried. You have the following options for chunking your data. If you opt for NONE, then you may want to pre-process your files by splitting them up such that each file corresponds to a chunk. + """ + FIXED_SIZE = "FIXED_SIZE" + NONE = "NONE" + + +class DataSourceStatus(str, Enum): + """ + The status of a data source. + """ + AVAILABLE = "AVAILABLE" + DELETING = "DELETING" + + +class DataSourceType(str, Enum): + """ + The type of the data source location. + """ + S3 = "S3" + + +class KnowledgeBaseStatus(str, Enum): + """ + The status of a knowledge base. + """ + CREATING = "CREATING" + ACTIVE = "ACTIVE" + DELETING = "DELETING" + UPDATING = "UPDATING" + FAILED = "FAILED" + + +class KnowledgeBaseStorageType(str, Enum): + """ + The storage type of a knowledge base. + """ + OPENSEARCH_SERVERLESS = "OPENSEARCH_SERVERLESS" + PINECONE = "PINECONE" + RDS = "RDS" + + +class KnowledgeBaseType(str, Enum): + """ + The type of a knowledge base. + """ + VECTOR = "VECTOR" 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..c8b0f3159f --- /dev/null +++ b/sdk/python/pulumi_aws_native/bedrock/_inputs.py @@ -0,0 +1,1173 @@ +# 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', + 'DataSourceChunkingConfigurationArgs', + 'DataSourceConfigurationArgs', + 'DataSourceFixedSizeChunkingConfigurationArgs', + 'DataSourceS3DataSourceConfigurationArgs', + 'DataSourceServerSideEncryptionConfigurationArgs', + 'DataSourceVectorIngestionConfigurationArgs', + 'KnowledgeBaseConfigurationArgs', + 'KnowledgeBaseOpenSearchServerlessConfigurationArgs', + 'KnowledgeBaseOpenSearchServerlessFieldMappingArgs', + 'KnowledgeBasePineconeConfigurationArgs', + 'KnowledgeBasePineconeFieldMappingArgs', + 'KnowledgeBaseRdsConfigurationArgs', + 'KnowledgeBaseRdsFieldMappingArgs', + 'KnowledgeBaseStorageConfigurationArgs', + 'KnowledgeBaseVectorKnowledgeBaseConfigurationArgs', +] + +@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) + + +@pulumi.input_type +class DataSourceChunkingConfigurationArgs: + def __init__(__self__, *, + chunking_strategy: pulumi.Input['DataSourceChunkingStrategy'], + fixed_size_chunking_configuration: Optional[pulumi.Input['DataSourceFixedSizeChunkingConfigurationArgs']] = None): + """ + Details about how to chunk the documents in the data source. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried. + """ + pulumi.set(__self__, "chunking_strategy", chunking_strategy) + if fixed_size_chunking_configuration is not None: + pulumi.set(__self__, "fixed_size_chunking_configuration", fixed_size_chunking_configuration) + + @property + @pulumi.getter(name="chunkingStrategy") + def chunking_strategy(self) -> pulumi.Input['DataSourceChunkingStrategy']: + return pulumi.get(self, "chunking_strategy") + + @chunking_strategy.setter + def chunking_strategy(self, value: pulumi.Input['DataSourceChunkingStrategy']): + pulumi.set(self, "chunking_strategy", value) + + @property + @pulumi.getter(name="fixedSizeChunkingConfiguration") + def fixed_size_chunking_configuration(self) -> Optional[pulumi.Input['DataSourceFixedSizeChunkingConfigurationArgs']]: + return pulumi.get(self, "fixed_size_chunking_configuration") + + @fixed_size_chunking_configuration.setter + def fixed_size_chunking_configuration(self, value: Optional[pulumi.Input['DataSourceFixedSizeChunkingConfigurationArgs']]): + pulumi.set(self, "fixed_size_chunking_configuration", value) + + +@pulumi.input_type +class DataSourceConfigurationArgs: + def __init__(__self__, *, + s3_configuration: pulumi.Input['DataSourceS3DataSourceConfigurationArgs'], + type: pulumi.Input['DataSourceType']): + """ + Specifies a raw data source location to ingest. + """ + pulumi.set(__self__, "s3_configuration", s3_configuration) + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter(name="s3Configuration") + def s3_configuration(self) -> pulumi.Input['DataSourceS3DataSourceConfigurationArgs']: + return pulumi.get(self, "s3_configuration") + + @s3_configuration.setter + def s3_configuration(self, value: pulumi.Input['DataSourceS3DataSourceConfigurationArgs']): + pulumi.set(self, "s3_configuration", value) + + @property + @pulumi.getter + def type(self) -> pulumi.Input['DataSourceType']: + return pulumi.get(self, "type") + + @type.setter + def type(self, value: pulumi.Input['DataSourceType']): + pulumi.set(self, "type", value) + + +@pulumi.input_type +class DataSourceFixedSizeChunkingConfigurationArgs: + def __init__(__self__, *, + max_tokens: pulumi.Input[int], + overlap_percentage: pulumi.Input[int]): + """ + Configurations for when you choose fixed-size chunking. If you set the chunkingStrategy as NONE, exclude this field. + :param pulumi.Input[int] max_tokens: The maximum number of tokens to include in a chunk. + :param pulumi.Input[int] overlap_percentage: The percentage of overlap between adjacent chunks of a data source. + """ + pulumi.set(__self__, "max_tokens", max_tokens) + pulumi.set(__self__, "overlap_percentage", overlap_percentage) + + @property + @pulumi.getter(name="maxTokens") + def max_tokens(self) -> pulumi.Input[int]: + """ + The maximum number of tokens to include in a chunk. + """ + return pulumi.get(self, "max_tokens") + + @max_tokens.setter + def max_tokens(self, value: pulumi.Input[int]): + pulumi.set(self, "max_tokens", value) + + @property + @pulumi.getter(name="overlapPercentage") + def overlap_percentage(self) -> pulumi.Input[int]: + """ + The percentage of overlap between adjacent chunks of a data source. + """ + return pulumi.get(self, "overlap_percentage") + + @overlap_percentage.setter + def overlap_percentage(self, value: pulumi.Input[int]): + pulumi.set(self, "overlap_percentage", value) + + +@pulumi.input_type +class DataSourceS3DataSourceConfigurationArgs: + def __init__(__self__, *, + bucket_arn: pulumi.Input[str], + inclusion_prefixes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + Contains information about the S3 configuration of the data source. + :param pulumi.Input[str] bucket_arn: The ARN of the bucket that contains the data source. + :param pulumi.Input[Sequence[pulumi.Input[str]]] inclusion_prefixes: A list of S3 prefixes that define the object containing the data sources. + """ + pulumi.set(__self__, "bucket_arn", bucket_arn) + if inclusion_prefixes is not None: + pulumi.set(__self__, "inclusion_prefixes", inclusion_prefixes) + + @property + @pulumi.getter(name="bucketArn") + def bucket_arn(self) -> pulumi.Input[str]: + """ + The ARN of the bucket that contains the data source. + """ + 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="inclusionPrefixes") + def inclusion_prefixes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + A list of S3 prefixes that define the object containing the data sources. + """ + return pulumi.get(self, "inclusion_prefixes") + + @inclusion_prefixes.setter + def inclusion_prefixes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "inclusion_prefixes", value) + + +@pulumi.input_type +class DataSourceServerSideEncryptionConfigurationArgs: + def __init__(__self__, *, + kms_key_arn: Optional[pulumi.Input[str]] = None): + """ + Contains details about the server-side encryption for the data source. + :param pulumi.Input[str] kms_key_arn: The ARN of the AWS KMS key used to encrypt the resource. + """ + if kms_key_arn is not None: + pulumi.set(__self__, "kms_key_arn", kms_key_arn) + + @property + @pulumi.getter(name="kmsKeyArn") + def kms_key_arn(self) -> Optional[pulumi.Input[str]]: + """ + The ARN of the AWS KMS key used to encrypt the resource. + """ + return pulumi.get(self, "kms_key_arn") + + @kms_key_arn.setter + def kms_key_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kms_key_arn", value) + + +@pulumi.input_type +class DataSourceVectorIngestionConfigurationArgs: + def __init__(__self__, *, + chunking_configuration: Optional[pulumi.Input['DataSourceChunkingConfigurationArgs']] = None): + """ + Details about how to chunk the documents in the data source. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried. + """ + if chunking_configuration is not None: + pulumi.set(__self__, "chunking_configuration", chunking_configuration) + + @property + @pulumi.getter(name="chunkingConfiguration") + def chunking_configuration(self) -> Optional[pulumi.Input['DataSourceChunkingConfigurationArgs']]: + return pulumi.get(self, "chunking_configuration") + + @chunking_configuration.setter + def chunking_configuration(self, value: Optional[pulumi.Input['DataSourceChunkingConfigurationArgs']]): + pulumi.set(self, "chunking_configuration", value) + + +@pulumi.input_type +class KnowledgeBaseConfigurationArgs: + def __init__(__self__, *, + type: pulumi.Input['KnowledgeBaseType'], + vector_knowledge_base_configuration: pulumi.Input['KnowledgeBaseVectorKnowledgeBaseConfigurationArgs']): + """ + Contains details about the embeddings model used for the knowledge base. + """ + pulumi.set(__self__, "type", type) + pulumi.set(__self__, "vector_knowledge_base_configuration", vector_knowledge_base_configuration) + + @property + @pulumi.getter + def type(self) -> pulumi.Input['KnowledgeBaseType']: + return pulumi.get(self, "type") + + @type.setter + def type(self, value: pulumi.Input['KnowledgeBaseType']): + pulumi.set(self, "type", value) + + @property + @pulumi.getter(name="vectorKnowledgeBaseConfiguration") + def vector_knowledge_base_configuration(self) -> pulumi.Input['KnowledgeBaseVectorKnowledgeBaseConfigurationArgs']: + return pulumi.get(self, "vector_knowledge_base_configuration") + + @vector_knowledge_base_configuration.setter + def vector_knowledge_base_configuration(self, value: pulumi.Input['KnowledgeBaseVectorKnowledgeBaseConfigurationArgs']): + pulumi.set(self, "vector_knowledge_base_configuration", value) + + +@pulumi.input_type +class KnowledgeBaseOpenSearchServerlessConfigurationArgs: + def __init__(__self__, *, + collection_arn: pulumi.Input[str], + field_mapping: pulumi.Input['KnowledgeBaseOpenSearchServerlessFieldMappingArgs'], + vector_index_name: pulumi.Input[str]): + """ + Contains the storage configuration of the knowledge base in Amazon OpenSearch Service. + :param pulumi.Input[str] collection_arn: The ARN of the OpenSearch Service vector store. + :param pulumi.Input[str] vector_index_name: The name of the vector store. + """ + pulumi.set(__self__, "collection_arn", collection_arn) + pulumi.set(__self__, "field_mapping", field_mapping) + pulumi.set(__self__, "vector_index_name", vector_index_name) + + @property + @pulumi.getter(name="collectionArn") + def collection_arn(self) -> pulumi.Input[str]: + """ + The ARN of the OpenSearch Service vector store. + """ + return pulumi.get(self, "collection_arn") + + @collection_arn.setter + def collection_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "collection_arn", value) + + @property + @pulumi.getter(name="fieldMapping") + def field_mapping(self) -> pulumi.Input['KnowledgeBaseOpenSearchServerlessFieldMappingArgs']: + return pulumi.get(self, "field_mapping") + + @field_mapping.setter + def field_mapping(self, value: pulumi.Input['KnowledgeBaseOpenSearchServerlessFieldMappingArgs']): + pulumi.set(self, "field_mapping", value) + + @property + @pulumi.getter(name="vectorIndexName") + def vector_index_name(self) -> pulumi.Input[str]: + """ + The name of the vector store. + """ + return pulumi.get(self, "vector_index_name") + + @vector_index_name.setter + def vector_index_name(self, value: pulumi.Input[str]): + pulumi.set(self, "vector_index_name", value) + + +@pulumi.input_type +class KnowledgeBaseOpenSearchServerlessFieldMappingArgs: + def __init__(__self__, *, + metadata_field: pulumi.Input[str], + text_field: pulumi.Input[str], + vector_field: pulumi.Input[str]): + """ + A mapping of Bedrock Knowledge Base fields to OpenSearch Serverless field names + :param pulumi.Input[str] metadata_field: The name of the field in which Amazon Bedrock stores metadata about the vector store. + :param pulumi.Input[str] text_field: The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. + :param pulumi.Input[str] vector_field: The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources. + """ + pulumi.set(__self__, "metadata_field", metadata_field) + pulumi.set(__self__, "text_field", text_field) + pulumi.set(__self__, "vector_field", vector_field) + + @property + @pulumi.getter(name="metadataField") + def metadata_field(self) -> pulumi.Input[str]: + """ + The name of the field in which Amazon Bedrock stores metadata about the vector store. + """ + return pulumi.get(self, "metadata_field") + + @metadata_field.setter + def metadata_field(self, value: pulumi.Input[str]): + pulumi.set(self, "metadata_field", value) + + @property + @pulumi.getter(name="textField") + def text_field(self) -> pulumi.Input[str]: + """ + The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. + """ + return pulumi.get(self, "text_field") + + @text_field.setter + def text_field(self, value: pulumi.Input[str]): + pulumi.set(self, "text_field", value) + + @property + @pulumi.getter(name="vectorField") + def vector_field(self) -> pulumi.Input[str]: + """ + The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources. + """ + return pulumi.get(self, "vector_field") + + @vector_field.setter + def vector_field(self, value: pulumi.Input[str]): + pulumi.set(self, "vector_field", value) + + +@pulumi.input_type +class KnowledgeBasePineconeConfigurationArgs: + def __init__(__self__, *, + connection_string: pulumi.Input[str], + credentials_secret_arn: pulumi.Input[str], + field_mapping: pulumi.Input['KnowledgeBasePineconeFieldMappingArgs'], + namespace: Optional[pulumi.Input[str]] = None): + """ + Contains the storage configuration of the knowledge base in Pinecone. + :param pulumi.Input[str] connection_string: The endpoint URL for your index management page. + :param pulumi.Input[str] credentials_secret_arn: The ARN of the secret that you created in AWS Secrets Manager that is linked to your Pinecone API key. + :param pulumi.Input[str] namespace: The namespace to be used to write new data to your database. + """ + pulumi.set(__self__, "connection_string", connection_string) + pulumi.set(__self__, "credentials_secret_arn", credentials_secret_arn) + pulumi.set(__self__, "field_mapping", field_mapping) + if namespace is not None: + pulumi.set(__self__, "namespace", namespace) + + @property + @pulumi.getter(name="connectionString") + def connection_string(self) -> pulumi.Input[str]: + """ + The endpoint URL for your index management page. + """ + return pulumi.get(self, "connection_string") + + @connection_string.setter + def connection_string(self, value: pulumi.Input[str]): + pulumi.set(self, "connection_string", value) + + @property + @pulumi.getter(name="credentialsSecretArn") + def credentials_secret_arn(self) -> pulumi.Input[str]: + """ + The ARN of the secret that you created in AWS Secrets Manager that is linked to your Pinecone API key. + """ + return pulumi.get(self, "credentials_secret_arn") + + @credentials_secret_arn.setter + def credentials_secret_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "credentials_secret_arn", value) + + @property + @pulumi.getter(name="fieldMapping") + def field_mapping(self) -> pulumi.Input['KnowledgeBasePineconeFieldMappingArgs']: + return pulumi.get(self, "field_mapping") + + @field_mapping.setter + def field_mapping(self, value: pulumi.Input['KnowledgeBasePineconeFieldMappingArgs']): + pulumi.set(self, "field_mapping", value) + + @property + @pulumi.getter + def namespace(self) -> Optional[pulumi.Input[str]]: + """ + The namespace to be used to write new data to your database. + """ + return pulumi.get(self, "namespace") + + @namespace.setter + def namespace(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "namespace", value) + + +@pulumi.input_type +class KnowledgeBasePineconeFieldMappingArgs: + def __init__(__self__, *, + metadata_field: pulumi.Input[str], + text_field: pulumi.Input[str]): + """ + Contains the names of the fields to which to map information about the vector store. + :param pulumi.Input[str] metadata_field: The name of the field in which Amazon Bedrock stores metadata about the vector store. + :param pulumi.Input[str] text_field: The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. + """ + pulumi.set(__self__, "metadata_field", metadata_field) + pulumi.set(__self__, "text_field", text_field) + + @property + @pulumi.getter(name="metadataField") + def metadata_field(self) -> pulumi.Input[str]: + """ + The name of the field in which Amazon Bedrock stores metadata about the vector store. + """ + return pulumi.get(self, "metadata_field") + + @metadata_field.setter + def metadata_field(self, value: pulumi.Input[str]): + pulumi.set(self, "metadata_field", value) + + @property + @pulumi.getter(name="textField") + def text_field(self) -> pulumi.Input[str]: + """ + The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. + """ + return pulumi.get(self, "text_field") + + @text_field.setter + def text_field(self, value: pulumi.Input[str]): + pulumi.set(self, "text_field", value) + + +@pulumi.input_type +class KnowledgeBaseRdsConfigurationArgs: + def __init__(__self__, *, + credentials_secret_arn: pulumi.Input[str], + database_name: pulumi.Input[str], + field_mapping: pulumi.Input['KnowledgeBaseRdsFieldMappingArgs'], + resource_arn: pulumi.Input[str], + table_name: pulumi.Input[str]): + """ + Contains details about the storage configuration of the knowledge base in Amazon RDS. For more information, see Create a vector index in Amazon RDS. + :param pulumi.Input[str] credentials_secret_arn: The ARN of the secret that you created in AWS Secrets Manager that is linked to your Amazon RDS database. + :param pulumi.Input[str] database_name: The name of your Amazon RDS database. + :param pulumi.Input[str] resource_arn: The ARN of the vector store. + :param pulumi.Input[str] table_name: The name of the table in the database. + """ + pulumi.set(__self__, "credentials_secret_arn", credentials_secret_arn) + pulumi.set(__self__, "database_name", database_name) + pulumi.set(__self__, "field_mapping", field_mapping) + pulumi.set(__self__, "resource_arn", resource_arn) + pulumi.set(__self__, "table_name", table_name) + + @property + @pulumi.getter(name="credentialsSecretArn") + def credentials_secret_arn(self) -> pulumi.Input[str]: + """ + The ARN of the secret that you created in AWS Secrets Manager that is linked to your Amazon RDS database. + """ + return pulumi.get(self, "credentials_secret_arn") + + @credentials_secret_arn.setter + def credentials_secret_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "credentials_secret_arn", value) + + @property + @pulumi.getter(name="databaseName") + def database_name(self) -> pulumi.Input[str]: + """ + The name of your Amazon RDS database. + """ + return pulumi.get(self, "database_name") + + @database_name.setter + def database_name(self, value: pulumi.Input[str]): + pulumi.set(self, "database_name", value) + + @property + @pulumi.getter(name="fieldMapping") + def field_mapping(self) -> pulumi.Input['KnowledgeBaseRdsFieldMappingArgs']: + return pulumi.get(self, "field_mapping") + + @field_mapping.setter + def field_mapping(self, value: pulumi.Input['KnowledgeBaseRdsFieldMappingArgs']): + pulumi.set(self, "field_mapping", value) + + @property + @pulumi.getter(name="resourceArn") + def resource_arn(self) -> pulumi.Input[str]: + """ + The ARN of the vector store. + """ + return pulumi.get(self, "resource_arn") + + @resource_arn.setter + def resource_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "resource_arn", value) + + @property + @pulumi.getter(name="tableName") + def table_name(self) -> pulumi.Input[str]: + """ + The name of the table in the database. + """ + return pulumi.get(self, "table_name") + + @table_name.setter + def table_name(self, value: pulumi.Input[str]): + pulumi.set(self, "table_name", value) + + +@pulumi.input_type +class KnowledgeBaseRdsFieldMappingArgs: + def __init__(__self__, *, + metadata_field: pulumi.Input[str], + primary_key_field: pulumi.Input[str], + text_field: pulumi.Input[str], + vector_field: pulumi.Input[str]): + """ + Contains the names of the fields to which to map information about the vector store. + :param pulumi.Input[str] metadata_field: The name of the field in which Amazon Bedrock stores metadata about the vector store. + :param pulumi.Input[str] primary_key_field: The name of the field in which Amazon Bedrock stores the ID for each entry. + :param pulumi.Input[str] text_field: The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. + :param pulumi.Input[str] vector_field: The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources. + """ + pulumi.set(__self__, "metadata_field", metadata_field) + pulumi.set(__self__, "primary_key_field", primary_key_field) + pulumi.set(__self__, "text_field", text_field) + pulumi.set(__self__, "vector_field", vector_field) + + @property + @pulumi.getter(name="metadataField") + def metadata_field(self) -> pulumi.Input[str]: + """ + The name of the field in which Amazon Bedrock stores metadata about the vector store. + """ + return pulumi.get(self, "metadata_field") + + @metadata_field.setter + def metadata_field(self, value: pulumi.Input[str]): + pulumi.set(self, "metadata_field", value) + + @property + @pulumi.getter(name="primaryKeyField") + def primary_key_field(self) -> pulumi.Input[str]: + """ + The name of the field in which Amazon Bedrock stores the ID for each entry. + """ + return pulumi.get(self, "primary_key_field") + + @primary_key_field.setter + def primary_key_field(self, value: pulumi.Input[str]): + pulumi.set(self, "primary_key_field", value) + + @property + @pulumi.getter(name="textField") + def text_field(self) -> pulumi.Input[str]: + """ + The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. + """ + return pulumi.get(self, "text_field") + + @text_field.setter + def text_field(self, value: pulumi.Input[str]): + pulumi.set(self, "text_field", value) + + @property + @pulumi.getter(name="vectorField") + def vector_field(self) -> pulumi.Input[str]: + """ + The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources. + """ + return pulumi.get(self, "vector_field") + + @vector_field.setter + def vector_field(self, value: pulumi.Input[str]): + pulumi.set(self, "vector_field", value) + + +@pulumi.input_type +class KnowledgeBaseStorageConfigurationArgs: + def __init__(__self__, *, + type: pulumi.Input['KnowledgeBaseStorageType'], + opensearch_serverless_configuration: Optional[pulumi.Input['KnowledgeBaseOpenSearchServerlessConfigurationArgs']] = None, + pinecone_configuration: Optional[pulumi.Input['KnowledgeBasePineconeConfigurationArgs']] = None, + rds_configuration: Optional[pulumi.Input['KnowledgeBaseRdsConfigurationArgs']] = None): + """ + The vector store service in which the knowledge base is stored. + """ + pulumi.set(__self__, "type", type) + if opensearch_serverless_configuration is not None: + pulumi.set(__self__, "opensearch_serverless_configuration", opensearch_serverless_configuration) + if pinecone_configuration is not None: + pulumi.set(__self__, "pinecone_configuration", pinecone_configuration) + if rds_configuration is not None: + pulumi.set(__self__, "rds_configuration", rds_configuration) + + @property + @pulumi.getter + def type(self) -> pulumi.Input['KnowledgeBaseStorageType']: + return pulumi.get(self, "type") + + @type.setter + def type(self, value: pulumi.Input['KnowledgeBaseStorageType']): + pulumi.set(self, "type", value) + + @property + @pulumi.getter(name="opensearchServerlessConfiguration") + def opensearch_serverless_configuration(self) -> Optional[pulumi.Input['KnowledgeBaseOpenSearchServerlessConfigurationArgs']]: + return pulumi.get(self, "opensearch_serverless_configuration") + + @opensearch_serverless_configuration.setter + def opensearch_serverless_configuration(self, value: Optional[pulumi.Input['KnowledgeBaseOpenSearchServerlessConfigurationArgs']]): + pulumi.set(self, "opensearch_serverless_configuration", value) + + @property + @pulumi.getter(name="pineconeConfiguration") + def pinecone_configuration(self) -> Optional[pulumi.Input['KnowledgeBasePineconeConfigurationArgs']]: + return pulumi.get(self, "pinecone_configuration") + + @pinecone_configuration.setter + def pinecone_configuration(self, value: Optional[pulumi.Input['KnowledgeBasePineconeConfigurationArgs']]): + pulumi.set(self, "pinecone_configuration", value) + + @property + @pulumi.getter(name="rdsConfiguration") + def rds_configuration(self) -> Optional[pulumi.Input['KnowledgeBaseRdsConfigurationArgs']]: + return pulumi.get(self, "rds_configuration") + + @rds_configuration.setter + def rds_configuration(self, value: Optional[pulumi.Input['KnowledgeBaseRdsConfigurationArgs']]): + pulumi.set(self, "rds_configuration", value) + + +@pulumi.input_type +class KnowledgeBaseVectorKnowledgeBaseConfigurationArgs: + def __init__(__self__, *, + embedding_model_arn: pulumi.Input[str]): + """ + Contains details about the model used to create vector embeddings for the knowledge base. + :param pulumi.Input[str] embedding_model_arn: The ARN of the model used to create vector embeddings for the knowledge base. + """ + pulumi.set(__self__, "embedding_model_arn", embedding_model_arn) + + @property + @pulumi.getter(name="embeddingModelArn") + def embedding_model_arn(self) -> pulumi.Input[str]: + """ + The ARN of the model used to create vector embeddings for the knowledge base. + """ + return pulumi.get(self, "embedding_model_arn") + + @embedding_model_arn.setter + def embedding_model_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "embedding_model_arn", 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/data_source.py b/sdk/python/pulumi_aws_native/bedrock/data_source.py new file mode 100644 index 0000000000..c0a9835655 --- /dev/null +++ b/sdk/python/pulumi_aws_native/bedrock/data_source.py @@ -0,0 +1,284 @@ +# 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__ = ['DataSourceArgs', 'DataSource'] + +@pulumi.input_type +class DataSourceArgs: + def __init__(__self__, *, + data_source_configuration: pulumi.Input['DataSourceConfigurationArgs'], + knowledge_base_id: pulumi.Input[str], + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + server_side_encryption_configuration: Optional[pulumi.Input['DataSourceServerSideEncryptionConfigurationArgs']] = None, + vector_ingestion_configuration: Optional[pulumi.Input['DataSourceVectorIngestionConfigurationArgs']] = None): + """ + The set of arguments for constructing a DataSource resource. + :param pulumi.Input[str] knowledge_base_id: The unique identifier of the knowledge base to which to add the data source. + :param pulumi.Input[str] description: Description of the Resource. + :param pulumi.Input[str] name: The name of the data source. + """ + pulumi.set(__self__, "data_source_configuration", data_source_configuration) + pulumi.set(__self__, "knowledge_base_id", knowledge_base_id) + if description is not None: + pulumi.set(__self__, "description", description) + if name is not None: + pulumi.set(__self__, "name", name) + if server_side_encryption_configuration is not None: + pulumi.set(__self__, "server_side_encryption_configuration", server_side_encryption_configuration) + if vector_ingestion_configuration is not None: + pulumi.set(__self__, "vector_ingestion_configuration", vector_ingestion_configuration) + + @property + @pulumi.getter(name="dataSourceConfiguration") + def data_source_configuration(self) -> pulumi.Input['DataSourceConfigurationArgs']: + return pulumi.get(self, "data_source_configuration") + + @data_source_configuration.setter + def data_source_configuration(self, value: pulumi.Input['DataSourceConfigurationArgs']): + pulumi.set(self, "data_source_configuration", value) + + @property + @pulumi.getter(name="knowledgeBaseId") + def knowledge_base_id(self) -> pulumi.Input[str]: + """ + The unique identifier of the knowledge base to which to add the data source. + """ + 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 + 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 + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the data source. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="serverSideEncryptionConfiguration") + def server_side_encryption_configuration(self) -> Optional[pulumi.Input['DataSourceServerSideEncryptionConfigurationArgs']]: + return pulumi.get(self, "server_side_encryption_configuration") + + @server_side_encryption_configuration.setter + def server_side_encryption_configuration(self, value: Optional[pulumi.Input['DataSourceServerSideEncryptionConfigurationArgs']]): + pulumi.set(self, "server_side_encryption_configuration", value) + + @property + @pulumi.getter(name="vectorIngestionConfiguration") + def vector_ingestion_configuration(self) -> Optional[pulumi.Input['DataSourceVectorIngestionConfigurationArgs']]: + return pulumi.get(self, "vector_ingestion_configuration") + + @vector_ingestion_configuration.setter + def vector_ingestion_configuration(self, value: Optional[pulumi.Input['DataSourceVectorIngestionConfigurationArgs']]): + pulumi.set(self, "vector_ingestion_configuration", value) + + +class DataSource(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + data_source_configuration: Optional[pulumi.Input[pulumi.InputType['DataSourceConfigurationArgs']]] = None, + description: Optional[pulumi.Input[str]] = None, + knowledge_base_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + server_side_encryption_configuration: Optional[pulumi.Input[pulumi.InputType['DataSourceServerSideEncryptionConfigurationArgs']]] = None, + vector_ingestion_configuration: Optional[pulumi.Input[pulumi.InputType['DataSourceVectorIngestionConfigurationArgs']]] = None, + __props__=None): + """ + Definition of AWS::Bedrock::DataSource Resource Type + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] description: Description of the Resource. + :param pulumi.Input[str] knowledge_base_id: The unique identifier of the knowledge base to which to add the data source. + :param pulumi.Input[str] name: The name of the data source. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: DataSourceArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Definition of AWS::Bedrock::DataSource Resource Type + + :param str resource_name: The name of the resource. + :param DataSourceArgs 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(DataSourceArgs, 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, + data_source_configuration: Optional[pulumi.Input[pulumi.InputType['DataSourceConfigurationArgs']]] = None, + description: Optional[pulumi.Input[str]] = None, + knowledge_base_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + server_side_encryption_configuration: Optional[pulumi.Input[pulumi.InputType['DataSourceServerSideEncryptionConfigurationArgs']]] = None, + vector_ingestion_configuration: Optional[pulumi.Input[pulumi.InputType['DataSourceVectorIngestionConfigurationArgs']]] = 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__ = DataSourceArgs.__new__(DataSourceArgs) + + if data_source_configuration is None and not opts.urn: + raise TypeError("Missing required property 'data_source_configuration'") + __props__.__dict__["data_source_configuration"] = data_source_configuration + __props__.__dict__["description"] = description + if knowledge_base_id is None and not opts.urn: + raise TypeError("Missing required property 'knowledge_base_id'") + __props__.__dict__["knowledge_base_id"] = knowledge_base_id + __props__.__dict__["name"] = name + __props__.__dict__["server_side_encryption_configuration"] = server_side_encryption_configuration + __props__.__dict__["vector_ingestion_configuration"] = vector_ingestion_configuration + __props__.__dict__["created_at"] = None + __props__.__dict__["data_source_id"] = None + __props__.__dict__["data_source_status"] = None + __props__.__dict__["updated_at"] = None + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["knowledgeBaseId", "vectorIngestionConfiguration"]) + opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) + super(DataSource, __self__).__init__( + 'aws-native:bedrock:DataSource', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'DataSource': + """ + Get an existing DataSource 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__ = DataSourceArgs.__new__(DataSourceArgs) + + __props__.__dict__["created_at"] = None + __props__.__dict__["data_source_configuration"] = None + __props__.__dict__["data_source_id"] = None + __props__.__dict__["data_source_status"] = None + __props__.__dict__["description"] = None + __props__.__dict__["knowledge_base_id"] = None + __props__.__dict__["name"] = None + __props__.__dict__["server_side_encryption_configuration"] = None + __props__.__dict__["updated_at"] = None + __props__.__dict__["vector_ingestion_configuration"] = None + return DataSource(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> pulumi.Output[str]: + """ + The time at which the data source was created. + """ + return pulumi.get(self, "created_at") + + @property + @pulumi.getter(name="dataSourceConfiguration") + def data_source_configuration(self) -> pulumi.Output['outputs.DataSourceConfiguration']: + return pulumi.get(self, "data_source_configuration") + + @property + @pulumi.getter(name="dataSourceId") + def data_source_id(self) -> pulumi.Output[str]: + """ + Identifier for a resource. + """ + return pulumi.get(self, "data_source_id") + + @property + @pulumi.getter(name="dataSourceStatus") + def data_source_status(self) -> pulumi.Output['DataSourceStatus']: + return pulumi.get(self, "data_source_status") + + @property + @pulumi.getter + def description(self) -> pulumi.Output[Optional[str]]: + """ + Description of the Resource. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="knowledgeBaseId") + def knowledge_base_id(self) -> pulumi.Output[str]: + """ + The unique identifier of the knowledge base to which to add the data source. + """ + return pulumi.get(self, "knowledge_base_id") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + The name of the data source. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="serverSideEncryptionConfiguration") + def server_side_encryption_configuration(self) -> pulumi.Output[Optional['outputs.DataSourceServerSideEncryptionConfiguration']]: + return pulumi.get(self, "server_side_encryption_configuration") + + @property + @pulumi.getter(name="updatedAt") + def updated_at(self) -> pulumi.Output[str]: + """ + The time at which the knowledge base was last updated. + """ + return pulumi.get(self, "updated_at") + + @property + @pulumi.getter(name="vectorIngestionConfiguration") + def vector_ingestion_configuration(self) -> pulumi.Output[Optional['outputs.DataSourceVectorIngestionConfiguration']]: + return pulumi.get(self, "vector_ingestion_configuration") + 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/get_data_source.py b/sdk/python/pulumi_aws_native/bedrock/get_data_source.py new file mode 100644 index 0000000000..c1bec7b828 --- /dev/null +++ b/sdk/python/pulumi_aws_native/bedrock/get_data_source.py @@ -0,0 +1,159 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from . import outputs +from ._enums import * + +__all__ = [ + 'GetDataSourceResult', + 'AwaitableGetDataSourceResult', + 'get_data_source', + 'get_data_source_output', +] + +@pulumi.output_type +class GetDataSourceResult: + def __init__(__self__, created_at=None, data_source_configuration=None, data_source_id=None, data_source_status=None, description=None, name=None, server_side_encryption_configuration=None, updated_at=None): + 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 data_source_configuration and not isinstance(data_source_configuration, dict): + raise TypeError("Expected argument 'data_source_configuration' to be a dict") + pulumi.set(__self__, "data_source_configuration", data_source_configuration) + if data_source_id and not isinstance(data_source_id, str): + raise TypeError("Expected argument 'data_source_id' to be a str") + pulumi.set(__self__, "data_source_id", data_source_id) + if data_source_status and not isinstance(data_source_status, str): + raise TypeError("Expected argument 'data_source_status' to be a str") + pulumi.set(__self__, "data_source_status", data_source_status) + if description and not isinstance(description, str): + raise TypeError("Expected argument 'description' to be a str") + pulumi.set(__self__, "description", description) + if name and not isinstance(name, str): + raise TypeError("Expected argument 'name' to be a str") + pulumi.set(__self__, "name", name) + if server_side_encryption_configuration and not isinstance(server_side_encryption_configuration, dict): + raise TypeError("Expected argument 'server_side_encryption_configuration' to be a dict") + pulumi.set(__self__, "server_side_encryption_configuration", server_side_encryption_configuration) + 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="createdAt") + def created_at(self) -> Optional[str]: + """ + The time at which the data source was created. + """ + return pulumi.get(self, "created_at") + + @property + @pulumi.getter(name="dataSourceConfiguration") + def data_source_configuration(self) -> Optional['outputs.DataSourceConfiguration']: + return pulumi.get(self, "data_source_configuration") + + @property + @pulumi.getter(name="dataSourceId") + def data_source_id(self) -> Optional[str]: + """ + Identifier for a resource. + """ + return pulumi.get(self, "data_source_id") + + @property + @pulumi.getter(name="dataSourceStatus") + def data_source_status(self) -> Optional['DataSourceStatus']: + return pulumi.get(self, "data_source_status") + + @property + @pulumi.getter + def description(self) -> Optional[str]: + """ + Description of the Resource. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter + def name(self) -> Optional[str]: + """ + The name of the data source. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="serverSideEncryptionConfiguration") + def server_side_encryption_configuration(self) -> Optional['outputs.DataSourceServerSideEncryptionConfiguration']: + return pulumi.get(self, "server_side_encryption_configuration") + + @property + @pulumi.getter(name="updatedAt") + def updated_at(self) -> Optional[str]: + """ + The time at which the knowledge base was last updated. + """ + return pulumi.get(self, "updated_at") + + +class AwaitableGetDataSourceResult(GetDataSourceResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetDataSourceResult( + created_at=self.created_at, + data_source_configuration=self.data_source_configuration, + data_source_id=self.data_source_id, + data_source_status=self.data_source_status, + description=self.description, + name=self.name, + server_side_encryption_configuration=self.server_side_encryption_configuration, + updated_at=self.updated_at) + + +def get_data_source(data_source_id: Optional[str] = None, + knowledge_base_id: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetDataSourceResult: + """ + Definition of AWS::Bedrock::DataSource Resource Type + + + :param str data_source_id: Identifier for a resource. + :param str knowledge_base_id: The unique identifier of the knowledge base to which to add the data source. + """ + __args__ = dict() + __args__['dataSourceId'] = data_source_id + __args__['knowledgeBaseId'] = knowledge_base_id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:bedrock:getDataSource', __args__, opts=opts, typ=GetDataSourceResult).value + + return AwaitableGetDataSourceResult( + created_at=pulumi.get(__ret__, 'created_at'), + data_source_configuration=pulumi.get(__ret__, 'data_source_configuration'), + data_source_id=pulumi.get(__ret__, 'data_source_id'), + data_source_status=pulumi.get(__ret__, 'data_source_status'), + description=pulumi.get(__ret__, 'description'), + name=pulumi.get(__ret__, 'name'), + server_side_encryption_configuration=pulumi.get(__ret__, 'server_side_encryption_configuration'), + updated_at=pulumi.get(__ret__, 'updated_at')) + + +@_utilities.lift_output_func(get_data_source) +def get_data_source_output(data_source_id: Optional[pulumi.Input[str]] = None, + knowledge_base_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetDataSourceResult]: + """ + Definition of AWS::Bedrock::DataSource Resource Type + + + :param str data_source_id: Identifier for a resource. + :param str knowledge_base_id: The unique identifier of the knowledge base to which to add the data source. + """ + ... diff --git a/sdk/python/pulumi_aws_native/bedrock/get_knowledge_base.py b/sdk/python/pulumi_aws_native/bedrock/get_knowledge_base.py new file mode 100644 index 0000000000..97aecc7411 --- /dev/null +++ b/sdk/python/pulumi_aws_native/bedrock/get_knowledge_base.py @@ -0,0 +1,182 @@ +# 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__ = [ + 'GetKnowledgeBaseResult', + 'AwaitableGetKnowledgeBaseResult', + 'get_knowledge_base', + 'get_knowledge_base_output', +] + +@pulumi.output_type +class GetKnowledgeBaseResult: + def __init__(__self__, created_at=None, description=None, failure_reasons=None, knowledge_base_arn=None, knowledge_base_id=None, name=None, role_arn=None, status=None, tags=None, updated_at=None): + 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 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 knowledge_base_arn and not isinstance(knowledge_base_arn, str): + raise TypeError("Expected argument 'knowledge_base_arn' to be a str") + pulumi.set(__self__, "knowledge_base_arn", knowledge_base_arn) + if knowledge_base_id and not isinstance(knowledge_base_id, str): + raise TypeError("Expected argument 'knowledge_base_id' to be a str") + pulumi.set(__self__, "knowledge_base_id", knowledge_base_id) + if name and not isinstance(name, str): + raise TypeError("Expected argument 'name' to be a str") + pulumi.set(__self__, "name", name) + 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 status and not isinstance(status, str): + raise TypeError("Expected argument 'status' to be a str") + pulumi.set(__self__, "status", status) + if tags and not isinstance(tags, 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="createdAt") + def created_at(self) -> Optional[str]: + """ + The time at which the knowledge base was created. + """ + 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="failureReasons") + def failure_reasons(self) -> Optional[Sequence[str]]: + """ + A list of reasons that the API operation on the knowledge base failed. + """ + return pulumi.get(self, "failure_reasons") + + @property + @pulumi.getter(name="knowledgeBaseArn") + def knowledge_base_arn(self) -> Optional[str]: + """ + The ARN of the knowledge base. + """ + return pulumi.get(self, "knowledge_base_arn") + + @property + @pulumi.getter(name="knowledgeBaseId") + def knowledge_base_id(self) -> Optional[str]: + """ + The unique identifier of the knowledge base. + """ + return pulumi.get(self, "knowledge_base_id") + + @property + @pulumi.getter + def name(self) -> Optional[str]: + """ + The name of the knowledge base. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> Optional[str]: + """ + The ARN of the IAM role with permissions to invoke API operations on the knowledge base. The ARN must begin with AmazonBedrockExecutionRoleForKnowledgeBase_ + """ + return pulumi.get(self, "role_arn") + + @property + @pulumi.getter + def status(self) -> Optional['KnowledgeBaseStatus']: + return pulumi.get(self, "status") + + @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]: + """ + The time at which the knowledge base was last updated. + """ + return pulumi.get(self, "updated_at") + + +class AwaitableGetKnowledgeBaseResult(GetKnowledgeBaseResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetKnowledgeBaseResult( + created_at=self.created_at, + description=self.description, + failure_reasons=self.failure_reasons, + knowledge_base_arn=self.knowledge_base_arn, + knowledge_base_id=self.knowledge_base_id, + name=self.name, + role_arn=self.role_arn, + status=self.status, + tags=self.tags, + updated_at=self.updated_at) + + +def get_knowledge_base(knowledge_base_id: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetKnowledgeBaseResult: + """ + Definition of AWS::Bedrock::KnowledgeBase Resource Type + + + :param str knowledge_base_id: The unique identifier of the knowledge base. + """ + __args__ = dict() + __args__['knowledgeBaseId'] = knowledge_base_id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:bedrock:getKnowledgeBase', __args__, opts=opts, typ=GetKnowledgeBaseResult).value + + return AwaitableGetKnowledgeBaseResult( + created_at=pulumi.get(__ret__, 'created_at'), + description=pulumi.get(__ret__, 'description'), + failure_reasons=pulumi.get(__ret__, 'failure_reasons'), + knowledge_base_arn=pulumi.get(__ret__, 'knowledge_base_arn'), + knowledge_base_id=pulumi.get(__ret__, 'knowledge_base_id'), + name=pulumi.get(__ret__, 'name'), + role_arn=pulumi.get(__ret__, 'role_arn'), + status=pulumi.get(__ret__, 'status'), + tags=pulumi.get(__ret__, 'tags'), + updated_at=pulumi.get(__ret__, 'updated_at')) + + +@_utilities.lift_output_func(get_knowledge_base) +def get_knowledge_base_output(knowledge_base_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetKnowledgeBaseResult]: + """ + Definition of AWS::Bedrock::KnowledgeBase Resource Type + + + :param str knowledge_base_id: The unique identifier of the knowledge base. + """ + ... diff --git a/sdk/python/pulumi_aws_native/bedrock/knowledge_base.py b/sdk/python/pulumi_aws_native/bedrock/knowledge_base.py new file mode 100644 index 0000000000..2fe1ccec44 --- /dev/null +++ b/sdk/python/pulumi_aws_native/bedrock/knowledge_base.py @@ -0,0 +1,305 @@ +# 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__ = ['KnowledgeBaseArgs', 'KnowledgeBase'] + +@pulumi.input_type +class KnowledgeBaseArgs: + def __init__(__self__, *, + knowledge_base_configuration: pulumi.Input['KnowledgeBaseConfigurationArgs'], + role_arn: pulumi.Input[str], + storage_configuration: pulumi.Input['KnowledgeBaseStorageConfigurationArgs'], + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): + """ + The set of arguments for constructing a KnowledgeBase resource. + :param pulumi.Input[str] role_arn: The ARN of the IAM role with permissions to invoke API operations on the knowledge base. The ARN must begin with AmazonBedrockExecutionRoleForKnowledgeBase_ + :param pulumi.Input[str] description: Description of the Resource. + :param pulumi.Input[str] name: The name of the knowledge base. + """ + pulumi.set(__self__, "knowledge_base_configuration", knowledge_base_configuration) + pulumi.set(__self__, "role_arn", role_arn) + pulumi.set(__self__, "storage_configuration", storage_configuration) + 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="knowledgeBaseConfiguration") + def knowledge_base_configuration(self) -> pulumi.Input['KnowledgeBaseConfigurationArgs']: + return pulumi.get(self, "knowledge_base_configuration") + + @knowledge_base_configuration.setter + def knowledge_base_configuration(self, value: pulumi.Input['KnowledgeBaseConfigurationArgs']): + pulumi.set(self, "knowledge_base_configuration", value) + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> pulumi.Input[str]: + """ + The ARN of the IAM role with permissions to invoke API operations on the knowledge base. The ARN must begin with AmazonBedrockExecutionRoleForKnowledgeBase_ + """ + return pulumi.get(self, "role_arn") + + @role_arn.setter + def role_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "role_arn", value) + + @property + @pulumi.getter(name="storageConfiguration") + def storage_configuration(self) -> pulumi.Input['KnowledgeBaseStorageConfigurationArgs']: + return pulumi.get(self, "storage_configuration") + + @storage_configuration.setter + def storage_configuration(self, value: pulumi.Input['KnowledgeBaseStorageConfigurationArgs']): + pulumi.set(self, "storage_configuration", 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 + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the knowledge base. + """ + 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[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 KnowledgeBase(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + description: Optional[pulumi.Input[str]] = None, + knowledge_base_configuration: Optional[pulumi.Input[pulumi.InputType['KnowledgeBaseConfigurationArgs']]] = None, + name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + storage_configuration: Optional[pulumi.Input[pulumi.InputType['KnowledgeBaseStorageConfigurationArgs']]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + __props__=None): + """ + Definition of AWS::Bedrock::KnowledgeBase Resource Type + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] description: Description of the Resource. + :param pulumi.Input[str] name: The name of the knowledge base. + :param pulumi.Input[str] role_arn: The ARN of the IAM role with permissions to invoke API operations on the knowledge base. The ARN must begin with AmazonBedrockExecutionRoleForKnowledgeBase_ + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: KnowledgeBaseArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Definition of AWS::Bedrock::KnowledgeBase Resource Type + + :param str resource_name: The name of the resource. + :param KnowledgeBaseArgs 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(KnowledgeBaseArgs, 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, + knowledge_base_configuration: Optional[pulumi.Input[pulumi.InputType['KnowledgeBaseConfigurationArgs']]] = None, + name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + storage_configuration: Optional[pulumi.Input[pulumi.InputType['KnowledgeBaseStorageConfigurationArgs']]] = 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__ = KnowledgeBaseArgs.__new__(KnowledgeBaseArgs) + + __props__.__dict__["description"] = description + if knowledge_base_configuration is None and not opts.urn: + raise TypeError("Missing required property 'knowledge_base_configuration'") + __props__.__dict__["knowledge_base_configuration"] = knowledge_base_configuration + __props__.__dict__["name"] = name + if role_arn is None and not opts.urn: + raise TypeError("Missing required property 'role_arn'") + __props__.__dict__["role_arn"] = role_arn + if storage_configuration is None and not opts.urn: + raise TypeError("Missing required property 'storage_configuration'") + __props__.__dict__["storage_configuration"] = storage_configuration + __props__.__dict__["tags"] = tags + __props__.__dict__["created_at"] = None + __props__.__dict__["failure_reasons"] = None + __props__.__dict__["knowledge_base_arn"] = None + __props__.__dict__["knowledge_base_id"] = None + __props__.__dict__["status"] = None + __props__.__dict__["updated_at"] = None + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["knowledgeBaseConfiguration", "storageConfiguration"]) + opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) + super(KnowledgeBase, __self__).__init__( + 'aws-native:bedrock:KnowledgeBase', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'KnowledgeBase': + """ + Get an existing KnowledgeBase 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__ = KnowledgeBaseArgs.__new__(KnowledgeBaseArgs) + + __props__.__dict__["created_at"] = None + __props__.__dict__["description"] = None + __props__.__dict__["failure_reasons"] = None + __props__.__dict__["knowledge_base_arn"] = None + __props__.__dict__["knowledge_base_configuration"] = None + __props__.__dict__["knowledge_base_id"] = None + __props__.__dict__["name"] = None + __props__.__dict__["role_arn"] = None + __props__.__dict__["status"] = None + __props__.__dict__["storage_configuration"] = None + __props__.__dict__["tags"] = None + __props__.__dict__["updated_at"] = None + return KnowledgeBase(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> pulumi.Output[str]: + """ + The time at which the knowledge base was created. + """ + 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="failureReasons") + def failure_reasons(self) -> pulumi.Output[Sequence[str]]: + """ + A list of reasons that the API operation on the knowledge base failed. + """ + return pulumi.get(self, "failure_reasons") + + @property + @pulumi.getter(name="knowledgeBaseArn") + def knowledge_base_arn(self) -> pulumi.Output[str]: + """ + The ARN of the knowledge base. + """ + return pulumi.get(self, "knowledge_base_arn") + + @property + @pulumi.getter(name="knowledgeBaseConfiguration") + def knowledge_base_configuration(self) -> pulumi.Output['outputs.KnowledgeBaseConfiguration']: + return pulumi.get(self, "knowledge_base_configuration") + + @property + @pulumi.getter(name="knowledgeBaseId") + def knowledge_base_id(self) -> pulumi.Output[str]: + """ + The unique identifier of the knowledge base. + """ + return pulumi.get(self, "knowledge_base_id") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + The name of the knowledge base. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> pulumi.Output[str]: + """ + The ARN of the IAM role with permissions to invoke API operations on the knowledge base. The ARN must begin with AmazonBedrockExecutionRoleForKnowledgeBase_ + """ + return pulumi.get(self, "role_arn") + + @property + @pulumi.getter + def status(self) -> pulumi.Output['KnowledgeBaseStatus']: + return pulumi.get(self, "status") + + @property + @pulumi.getter(name="storageConfiguration") + def storage_configuration(self) -> pulumi.Output['outputs.KnowledgeBaseStorageConfiguration']: + return pulumi.get(self, "storage_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]: + """ + The time at which the knowledge base was last updated. + """ + return pulumi.get(self, "updated_at") + 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..6a652692b6 --- /dev/null +++ b/sdk/python/pulumi_aws_native/bedrock/outputs.py @@ -0,0 +1,1508 @@ +# 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', + 'DataSourceChunkingConfiguration', + 'DataSourceConfiguration', + 'DataSourceFixedSizeChunkingConfiguration', + 'DataSourceS3DataSourceConfiguration', + 'DataSourceServerSideEncryptionConfiguration', + 'DataSourceVectorIngestionConfiguration', + 'KnowledgeBaseConfiguration', + 'KnowledgeBaseOpenSearchServerlessConfiguration', + 'KnowledgeBaseOpenSearchServerlessFieldMapping', + 'KnowledgeBasePineconeConfiguration', + 'KnowledgeBasePineconeFieldMapping', + 'KnowledgeBaseRdsConfiguration', + 'KnowledgeBaseRdsFieldMapping', + 'KnowledgeBaseStorageConfiguration', + 'KnowledgeBaseVectorKnowledgeBaseConfiguration', +] + +@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") + + +@pulumi.output_type +class DataSourceChunkingConfiguration(dict): + """ + Details about how to chunk the documents in the data source. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "chunkingStrategy": + suggest = "chunking_strategy" + elif key == "fixedSizeChunkingConfiguration": + suggest = "fixed_size_chunking_configuration" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DataSourceChunkingConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DataSourceChunkingConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DataSourceChunkingConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + chunking_strategy: 'DataSourceChunkingStrategy', + fixed_size_chunking_configuration: Optional['outputs.DataSourceFixedSizeChunkingConfiguration'] = None): + """ + Details about how to chunk the documents in the data source. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried. + """ + pulumi.set(__self__, "chunking_strategy", chunking_strategy) + if fixed_size_chunking_configuration is not None: + pulumi.set(__self__, "fixed_size_chunking_configuration", fixed_size_chunking_configuration) + + @property + @pulumi.getter(name="chunkingStrategy") + def chunking_strategy(self) -> 'DataSourceChunkingStrategy': + return pulumi.get(self, "chunking_strategy") + + @property + @pulumi.getter(name="fixedSizeChunkingConfiguration") + def fixed_size_chunking_configuration(self) -> Optional['outputs.DataSourceFixedSizeChunkingConfiguration']: + return pulumi.get(self, "fixed_size_chunking_configuration") + + +@pulumi.output_type +class DataSourceConfiguration(dict): + """ + Specifies a raw data source location to ingest. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "s3Configuration": + suggest = "s3_configuration" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DataSourceConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DataSourceConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DataSourceConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + s3_configuration: 'outputs.DataSourceS3DataSourceConfiguration', + type: 'DataSourceType'): + """ + Specifies a raw data source location to ingest. + """ + pulumi.set(__self__, "s3_configuration", s3_configuration) + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter(name="s3Configuration") + def s3_configuration(self) -> 'outputs.DataSourceS3DataSourceConfiguration': + return pulumi.get(self, "s3_configuration") + + @property + @pulumi.getter + def type(self) -> 'DataSourceType': + return pulumi.get(self, "type") + + +@pulumi.output_type +class DataSourceFixedSizeChunkingConfiguration(dict): + """ + Configurations for when you choose fixed-size chunking. If you set the chunkingStrategy as NONE, exclude this field. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "maxTokens": + suggest = "max_tokens" + elif key == "overlapPercentage": + suggest = "overlap_percentage" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DataSourceFixedSizeChunkingConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DataSourceFixedSizeChunkingConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DataSourceFixedSizeChunkingConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + max_tokens: int, + overlap_percentage: int): + """ + Configurations for when you choose fixed-size chunking. If you set the chunkingStrategy as NONE, exclude this field. + :param int max_tokens: The maximum number of tokens to include in a chunk. + :param int overlap_percentage: The percentage of overlap between adjacent chunks of a data source. + """ + pulumi.set(__self__, "max_tokens", max_tokens) + pulumi.set(__self__, "overlap_percentage", overlap_percentage) + + @property + @pulumi.getter(name="maxTokens") + def max_tokens(self) -> int: + """ + The maximum number of tokens to include in a chunk. + """ + return pulumi.get(self, "max_tokens") + + @property + @pulumi.getter(name="overlapPercentage") + def overlap_percentage(self) -> int: + """ + The percentage of overlap between adjacent chunks of a data source. + """ + return pulumi.get(self, "overlap_percentage") + + +@pulumi.output_type +class DataSourceS3DataSourceConfiguration(dict): + """ + Contains information about the S3 configuration of the data source. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "bucketArn": + suggest = "bucket_arn" + elif key == "inclusionPrefixes": + suggest = "inclusion_prefixes" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DataSourceS3DataSourceConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DataSourceS3DataSourceConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DataSourceS3DataSourceConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + bucket_arn: str, + inclusion_prefixes: Optional[Sequence[str]] = None): + """ + Contains information about the S3 configuration of the data source. + :param str bucket_arn: The ARN of the bucket that contains the data source. + :param Sequence[str] inclusion_prefixes: A list of S3 prefixes that define the object containing the data sources. + """ + pulumi.set(__self__, "bucket_arn", bucket_arn) + if inclusion_prefixes is not None: + pulumi.set(__self__, "inclusion_prefixes", inclusion_prefixes) + + @property + @pulumi.getter(name="bucketArn") + def bucket_arn(self) -> str: + """ + The ARN of the bucket that contains the data source. + """ + return pulumi.get(self, "bucket_arn") + + @property + @pulumi.getter(name="inclusionPrefixes") + def inclusion_prefixes(self) -> Optional[Sequence[str]]: + """ + A list of S3 prefixes that define the object containing the data sources. + """ + return pulumi.get(self, "inclusion_prefixes") + + +@pulumi.output_type +class DataSourceServerSideEncryptionConfiguration(dict): + """ + Contains details about the server-side encryption for the data source. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "kmsKeyArn": + suggest = "kms_key_arn" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DataSourceServerSideEncryptionConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DataSourceServerSideEncryptionConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DataSourceServerSideEncryptionConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + kms_key_arn: Optional[str] = None): + """ + Contains details about the server-side encryption for the data source. + :param str kms_key_arn: The ARN of the AWS KMS key used to encrypt the resource. + """ + if kms_key_arn is not None: + pulumi.set(__self__, "kms_key_arn", kms_key_arn) + + @property + @pulumi.getter(name="kmsKeyArn") + def kms_key_arn(self) -> Optional[str]: + """ + The ARN of the AWS KMS key used to encrypt the resource. + """ + return pulumi.get(self, "kms_key_arn") + + +@pulumi.output_type +class DataSourceVectorIngestionConfiguration(dict): + """ + Details about how to chunk the documents in the data source. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "chunkingConfiguration": + suggest = "chunking_configuration" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DataSourceVectorIngestionConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DataSourceVectorIngestionConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DataSourceVectorIngestionConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + chunking_configuration: Optional['outputs.DataSourceChunkingConfiguration'] = None): + """ + Details about how to chunk the documents in the data source. A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried. + """ + if chunking_configuration is not None: + pulumi.set(__self__, "chunking_configuration", chunking_configuration) + + @property + @pulumi.getter(name="chunkingConfiguration") + def chunking_configuration(self) -> Optional['outputs.DataSourceChunkingConfiguration']: + return pulumi.get(self, "chunking_configuration") + + +@pulumi.output_type +class KnowledgeBaseConfiguration(dict): + """ + Contains details about the embeddings model used for the knowledge base. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "vectorKnowledgeBaseConfiguration": + suggest = "vector_knowledge_base_configuration" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in KnowledgeBaseConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + KnowledgeBaseConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + KnowledgeBaseConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + type: 'KnowledgeBaseType', + vector_knowledge_base_configuration: 'outputs.KnowledgeBaseVectorKnowledgeBaseConfiguration'): + """ + Contains details about the embeddings model used for the knowledge base. + """ + pulumi.set(__self__, "type", type) + pulumi.set(__self__, "vector_knowledge_base_configuration", vector_knowledge_base_configuration) + + @property + @pulumi.getter + def type(self) -> 'KnowledgeBaseType': + return pulumi.get(self, "type") + + @property + @pulumi.getter(name="vectorKnowledgeBaseConfiguration") + def vector_knowledge_base_configuration(self) -> 'outputs.KnowledgeBaseVectorKnowledgeBaseConfiguration': + return pulumi.get(self, "vector_knowledge_base_configuration") + + +@pulumi.output_type +class KnowledgeBaseOpenSearchServerlessConfiguration(dict): + """ + Contains the storage configuration of the knowledge base in Amazon OpenSearch Service. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "collectionArn": + suggest = "collection_arn" + elif key == "fieldMapping": + suggest = "field_mapping" + elif key == "vectorIndexName": + suggest = "vector_index_name" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in KnowledgeBaseOpenSearchServerlessConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + KnowledgeBaseOpenSearchServerlessConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + KnowledgeBaseOpenSearchServerlessConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + collection_arn: str, + field_mapping: 'outputs.KnowledgeBaseOpenSearchServerlessFieldMapping', + vector_index_name: str): + """ + Contains the storage configuration of the knowledge base in Amazon OpenSearch Service. + :param str collection_arn: The ARN of the OpenSearch Service vector store. + :param str vector_index_name: The name of the vector store. + """ + pulumi.set(__self__, "collection_arn", collection_arn) + pulumi.set(__self__, "field_mapping", field_mapping) + pulumi.set(__self__, "vector_index_name", vector_index_name) + + @property + @pulumi.getter(name="collectionArn") + def collection_arn(self) -> str: + """ + The ARN of the OpenSearch Service vector store. + """ + return pulumi.get(self, "collection_arn") + + @property + @pulumi.getter(name="fieldMapping") + def field_mapping(self) -> 'outputs.KnowledgeBaseOpenSearchServerlessFieldMapping': + return pulumi.get(self, "field_mapping") + + @property + @pulumi.getter(name="vectorIndexName") + def vector_index_name(self) -> str: + """ + The name of the vector store. + """ + return pulumi.get(self, "vector_index_name") + + +@pulumi.output_type +class KnowledgeBaseOpenSearchServerlessFieldMapping(dict): + """ + A mapping of Bedrock Knowledge Base fields to OpenSearch Serverless field names + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "metadataField": + suggest = "metadata_field" + elif key == "textField": + suggest = "text_field" + elif key == "vectorField": + suggest = "vector_field" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in KnowledgeBaseOpenSearchServerlessFieldMapping. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + KnowledgeBaseOpenSearchServerlessFieldMapping.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + KnowledgeBaseOpenSearchServerlessFieldMapping.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + metadata_field: str, + text_field: str, + vector_field: str): + """ + A mapping of Bedrock Knowledge Base fields to OpenSearch Serverless field names + :param str metadata_field: The name of the field in which Amazon Bedrock stores metadata about the vector store. + :param str text_field: The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. + :param str vector_field: The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources. + """ + pulumi.set(__self__, "metadata_field", metadata_field) + pulumi.set(__self__, "text_field", text_field) + pulumi.set(__self__, "vector_field", vector_field) + + @property + @pulumi.getter(name="metadataField") + def metadata_field(self) -> str: + """ + The name of the field in which Amazon Bedrock stores metadata about the vector store. + """ + return pulumi.get(self, "metadata_field") + + @property + @pulumi.getter(name="textField") + def text_field(self) -> str: + """ + The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. + """ + return pulumi.get(self, "text_field") + + @property + @pulumi.getter(name="vectorField") + def vector_field(self) -> str: + """ + The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources. + """ + return pulumi.get(self, "vector_field") + + +@pulumi.output_type +class KnowledgeBasePineconeConfiguration(dict): + """ + Contains the storage configuration of the knowledge base in Pinecone. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "connectionString": + suggest = "connection_string" + elif key == "credentialsSecretArn": + suggest = "credentials_secret_arn" + elif key == "fieldMapping": + suggest = "field_mapping" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in KnowledgeBasePineconeConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + KnowledgeBasePineconeConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + KnowledgeBasePineconeConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + connection_string: str, + credentials_secret_arn: str, + field_mapping: 'outputs.KnowledgeBasePineconeFieldMapping', + namespace: Optional[str] = None): + """ + Contains the storage configuration of the knowledge base in Pinecone. + :param str connection_string: The endpoint URL for your index management page. + :param str credentials_secret_arn: The ARN of the secret that you created in AWS Secrets Manager that is linked to your Pinecone API key. + :param str namespace: The namespace to be used to write new data to your database. + """ + pulumi.set(__self__, "connection_string", connection_string) + pulumi.set(__self__, "credentials_secret_arn", credentials_secret_arn) + pulumi.set(__self__, "field_mapping", field_mapping) + if namespace is not None: + pulumi.set(__self__, "namespace", namespace) + + @property + @pulumi.getter(name="connectionString") + def connection_string(self) -> str: + """ + The endpoint URL for your index management page. + """ + return pulumi.get(self, "connection_string") + + @property + @pulumi.getter(name="credentialsSecretArn") + def credentials_secret_arn(self) -> str: + """ + The ARN of the secret that you created in AWS Secrets Manager that is linked to your Pinecone API key. + """ + return pulumi.get(self, "credentials_secret_arn") + + @property + @pulumi.getter(name="fieldMapping") + def field_mapping(self) -> 'outputs.KnowledgeBasePineconeFieldMapping': + return pulumi.get(self, "field_mapping") + + @property + @pulumi.getter + def namespace(self) -> Optional[str]: + """ + The namespace to be used to write new data to your database. + """ + return pulumi.get(self, "namespace") + + +@pulumi.output_type +class KnowledgeBasePineconeFieldMapping(dict): + """ + Contains the names of the fields to which to map information about the vector store. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "metadataField": + suggest = "metadata_field" + elif key == "textField": + suggest = "text_field" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in KnowledgeBasePineconeFieldMapping. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + KnowledgeBasePineconeFieldMapping.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + KnowledgeBasePineconeFieldMapping.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + metadata_field: str, + text_field: str): + """ + Contains the names of the fields to which to map information about the vector store. + :param str metadata_field: The name of the field in which Amazon Bedrock stores metadata about the vector store. + :param str text_field: The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. + """ + pulumi.set(__self__, "metadata_field", metadata_field) + pulumi.set(__self__, "text_field", text_field) + + @property + @pulumi.getter(name="metadataField") + def metadata_field(self) -> str: + """ + The name of the field in which Amazon Bedrock stores metadata about the vector store. + """ + return pulumi.get(self, "metadata_field") + + @property + @pulumi.getter(name="textField") + def text_field(self) -> str: + """ + The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. + """ + return pulumi.get(self, "text_field") + + +@pulumi.output_type +class KnowledgeBaseRdsConfiguration(dict): + """ + Contains details about the storage configuration of the knowledge base in Amazon RDS. For more information, see Create a vector index in Amazon RDS. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "credentialsSecretArn": + suggest = "credentials_secret_arn" + elif key == "databaseName": + suggest = "database_name" + elif key == "fieldMapping": + suggest = "field_mapping" + elif key == "resourceArn": + suggest = "resource_arn" + elif key == "tableName": + suggest = "table_name" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in KnowledgeBaseRdsConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + KnowledgeBaseRdsConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + KnowledgeBaseRdsConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + credentials_secret_arn: str, + database_name: str, + field_mapping: 'outputs.KnowledgeBaseRdsFieldMapping', + resource_arn: str, + table_name: str): + """ + Contains details about the storage configuration of the knowledge base in Amazon RDS. For more information, see Create a vector index in Amazon RDS. + :param str credentials_secret_arn: The ARN of the secret that you created in AWS Secrets Manager that is linked to your Amazon RDS database. + :param str database_name: The name of your Amazon RDS database. + :param str resource_arn: The ARN of the vector store. + :param str table_name: The name of the table in the database. + """ + pulumi.set(__self__, "credentials_secret_arn", credentials_secret_arn) + pulumi.set(__self__, "database_name", database_name) + pulumi.set(__self__, "field_mapping", field_mapping) + pulumi.set(__self__, "resource_arn", resource_arn) + pulumi.set(__self__, "table_name", table_name) + + @property + @pulumi.getter(name="credentialsSecretArn") + def credentials_secret_arn(self) -> str: + """ + The ARN of the secret that you created in AWS Secrets Manager that is linked to your Amazon RDS database. + """ + return pulumi.get(self, "credentials_secret_arn") + + @property + @pulumi.getter(name="databaseName") + def database_name(self) -> str: + """ + The name of your Amazon RDS database. + """ + return pulumi.get(self, "database_name") + + @property + @pulumi.getter(name="fieldMapping") + def field_mapping(self) -> 'outputs.KnowledgeBaseRdsFieldMapping': + return pulumi.get(self, "field_mapping") + + @property + @pulumi.getter(name="resourceArn") + def resource_arn(self) -> str: + """ + The ARN of the vector store. + """ + return pulumi.get(self, "resource_arn") + + @property + @pulumi.getter(name="tableName") + def table_name(self) -> str: + """ + The name of the table in the database. + """ + return pulumi.get(self, "table_name") + + +@pulumi.output_type +class KnowledgeBaseRdsFieldMapping(dict): + """ + Contains the names of the fields to which to map information about the vector store. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "metadataField": + suggest = "metadata_field" + elif key == "primaryKeyField": + suggest = "primary_key_field" + elif key == "textField": + suggest = "text_field" + elif key == "vectorField": + suggest = "vector_field" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in KnowledgeBaseRdsFieldMapping. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + KnowledgeBaseRdsFieldMapping.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + KnowledgeBaseRdsFieldMapping.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + metadata_field: str, + primary_key_field: str, + text_field: str, + vector_field: str): + """ + Contains the names of the fields to which to map information about the vector store. + :param str metadata_field: The name of the field in which Amazon Bedrock stores metadata about the vector store. + :param str primary_key_field: The name of the field in which Amazon Bedrock stores the ID for each entry. + :param str text_field: The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. + :param str vector_field: The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources. + """ + pulumi.set(__self__, "metadata_field", metadata_field) + pulumi.set(__self__, "primary_key_field", primary_key_field) + pulumi.set(__self__, "text_field", text_field) + pulumi.set(__self__, "vector_field", vector_field) + + @property + @pulumi.getter(name="metadataField") + def metadata_field(self) -> str: + """ + The name of the field in which Amazon Bedrock stores metadata about the vector store. + """ + return pulumi.get(self, "metadata_field") + + @property + @pulumi.getter(name="primaryKeyField") + def primary_key_field(self) -> str: + """ + The name of the field in which Amazon Bedrock stores the ID for each entry. + """ + return pulumi.get(self, "primary_key_field") + + @property + @pulumi.getter(name="textField") + def text_field(self) -> str: + """ + The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. + """ + return pulumi.get(self, "text_field") + + @property + @pulumi.getter(name="vectorField") + def vector_field(self) -> str: + """ + The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources. + """ + return pulumi.get(self, "vector_field") + + +@pulumi.output_type +class KnowledgeBaseStorageConfiguration(dict): + """ + The vector store service in which the knowledge base is stored. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "opensearchServerlessConfiguration": + suggest = "opensearch_serverless_configuration" + elif key == "pineconeConfiguration": + suggest = "pinecone_configuration" + elif key == "rdsConfiguration": + suggest = "rds_configuration" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in KnowledgeBaseStorageConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + KnowledgeBaseStorageConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + KnowledgeBaseStorageConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + type: 'KnowledgeBaseStorageType', + opensearch_serverless_configuration: Optional['outputs.KnowledgeBaseOpenSearchServerlessConfiguration'] = None, + pinecone_configuration: Optional['outputs.KnowledgeBasePineconeConfiguration'] = None, + rds_configuration: Optional['outputs.KnowledgeBaseRdsConfiguration'] = None): + """ + The vector store service in which the knowledge base is stored. + """ + pulumi.set(__self__, "type", type) + if opensearch_serverless_configuration is not None: + pulumi.set(__self__, "opensearch_serverless_configuration", opensearch_serverless_configuration) + if pinecone_configuration is not None: + pulumi.set(__self__, "pinecone_configuration", pinecone_configuration) + if rds_configuration is not None: + pulumi.set(__self__, "rds_configuration", rds_configuration) + + @property + @pulumi.getter + def type(self) -> 'KnowledgeBaseStorageType': + return pulumi.get(self, "type") + + @property + @pulumi.getter(name="opensearchServerlessConfiguration") + def opensearch_serverless_configuration(self) -> Optional['outputs.KnowledgeBaseOpenSearchServerlessConfiguration']: + return pulumi.get(self, "opensearch_serverless_configuration") + + @property + @pulumi.getter(name="pineconeConfiguration") + def pinecone_configuration(self) -> Optional['outputs.KnowledgeBasePineconeConfiguration']: + return pulumi.get(self, "pinecone_configuration") + + @property + @pulumi.getter(name="rdsConfiguration") + def rds_configuration(self) -> Optional['outputs.KnowledgeBaseRdsConfiguration']: + return pulumi.get(self, "rds_configuration") + + +@pulumi.output_type +class KnowledgeBaseVectorKnowledgeBaseConfiguration(dict): + """ + Contains details about the model used to create vector embeddings for the knowledge base. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "embeddingModelArn": + suggest = "embedding_model_arn" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in KnowledgeBaseVectorKnowledgeBaseConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + KnowledgeBaseVectorKnowledgeBaseConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + KnowledgeBaseVectorKnowledgeBaseConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + embedding_model_arn: str): + """ + Contains details about the model used to create vector embeddings for the knowledge base. + :param str embedding_model_arn: The ARN of the model used to create vector embeddings for the knowledge base. + """ + pulumi.set(__self__, "embedding_model_arn", embedding_model_arn) + + @property + @pulumi.getter(name="embeddingModelArn") + def embedding_model_arn(self) -> str: + """ + The ARN of the model used to create vector embeddings for the knowledge base. + """ + return pulumi.get(self, "embedding_model_arn") + + 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/cleanroomsml/__init__.py b/sdk/python/pulumi_aws_native/cleanroomsml/__init__.py new file mode 100644 index 0000000000..8ee9abcade --- /dev/null +++ b/sdk/python/pulumi_aws_native/cleanroomsml/__init__.py @@ -0,0 +1,12 @@ +# 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 .get_training_dataset import * +from .training_dataset import * +from ._inputs import * +from . import outputs diff --git a/sdk/python/pulumi_aws_native/cleanroomsml/_enums.py b/sdk/python/pulumi_aws_native/cleanroomsml/_enums.py new file mode 100644 index 0000000000..012c605551 --- /dev/null +++ b/sdk/python/pulumi_aws_native/cleanroomsml/_enums.py @@ -0,0 +1,27 @@ +# 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__ = [ + 'TrainingDatasetColumnType', + 'TrainingDatasetDatasetType', + 'TrainingDatasetStatus', +] + + +class TrainingDatasetColumnType(str, Enum): + USER_ID = "USER_ID" + ITEM_ID = "ITEM_ID" + TIMESTAMP = "TIMESTAMP" + CATEGORICAL_FEATURE = "CATEGORICAL_FEATURE" + NUMERICAL_FEATURE = "NUMERICAL_FEATURE" + + +class TrainingDatasetDatasetType(str, Enum): + INTERACTIONS = "INTERACTIONS" + + +class TrainingDatasetStatus(str, Enum): + ACTIVE = "ACTIVE" diff --git a/sdk/python/pulumi_aws_native/cleanroomsml/_inputs.py b/sdk/python/pulumi_aws_native/cleanroomsml/_inputs.py new file mode 100644 index 0000000000..f0d4d993e0 --- /dev/null +++ b/sdk/python/pulumi_aws_native/cleanroomsml/_inputs.py @@ -0,0 +1,156 @@ +# 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__ = [ + 'TrainingDatasetColumnSchemaArgs', + 'TrainingDatasetDataSourceArgs', + 'TrainingDatasetDatasetInputConfigArgs', + 'TrainingDatasetDatasetArgs', + 'TrainingDatasetGlueDataSourceArgs', +] + +@pulumi.input_type +class TrainingDatasetColumnSchemaArgs: + def __init__(__self__, *, + column_name: pulumi.Input[str], + column_types: pulumi.Input[Sequence[pulumi.Input['TrainingDatasetColumnType']]]): + pulumi.set(__self__, "column_name", column_name) + pulumi.set(__self__, "column_types", column_types) + + @property + @pulumi.getter(name="columnName") + def column_name(self) -> pulumi.Input[str]: + return pulumi.get(self, "column_name") + + @column_name.setter + def column_name(self, value: pulumi.Input[str]): + pulumi.set(self, "column_name", value) + + @property + @pulumi.getter(name="columnTypes") + def column_types(self) -> pulumi.Input[Sequence[pulumi.Input['TrainingDatasetColumnType']]]: + return pulumi.get(self, "column_types") + + @column_types.setter + def column_types(self, value: pulumi.Input[Sequence[pulumi.Input['TrainingDatasetColumnType']]]): + pulumi.set(self, "column_types", value) + + +@pulumi.input_type +class TrainingDatasetDataSourceArgs: + def __init__(__self__, *, + glue_data_source: pulumi.Input['TrainingDatasetGlueDataSourceArgs']): + pulumi.set(__self__, "glue_data_source", glue_data_source) + + @property + @pulumi.getter(name="glueDataSource") + def glue_data_source(self) -> pulumi.Input['TrainingDatasetGlueDataSourceArgs']: + return pulumi.get(self, "glue_data_source") + + @glue_data_source.setter + def glue_data_source(self, value: pulumi.Input['TrainingDatasetGlueDataSourceArgs']): + pulumi.set(self, "glue_data_source", value) + + +@pulumi.input_type +class TrainingDatasetDatasetInputConfigArgs: + def __init__(__self__, *, + data_source: pulumi.Input['TrainingDatasetDataSourceArgs'], + schema: pulumi.Input[Sequence[pulumi.Input['TrainingDatasetColumnSchemaArgs']]]): + pulumi.set(__self__, "data_source", data_source) + pulumi.set(__self__, "schema", schema) + + @property + @pulumi.getter(name="dataSource") + def data_source(self) -> pulumi.Input['TrainingDatasetDataSourceArgs']: + return pulumi.get(self, "data_source") + + @data_source.setter + def data_source(self, value: pulumi.Input['TrainingDatasetDataSourceArgs']): + pulumi.set(self, "data_source", value) + + @property + @pulumi.getter + def schema(self) -> pulumi.Input[Sequence[pulumi.Input['TrainingDatasetColumnSchemaArgs']]]: + return pulumi.get(self, "schema") + + @schema.setter + def schema(self, value: pulumi.Input[Sequence[pulumi.Input['TrainingDatasetColumnSchemaArgs']]]): + pulumi.set(self, "schema", value) + + +@pulumi.input_type +class TrainingDatasetDatasetArgs: + def __init__(__self__, *, + input_config: pulumi.Input['TrainingDatasetDatasetInputConfigArgs'], + type: pulumi.Input['TrainingDatasetDatasetType']): + pulumi.set(__self__, "input_config", input_config) + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter(name="inputConfig") + def input_config(self) -> pulumi.Input['TrainingDatasetDatasetInputConfigArgs']: + return pulumi.get(self, "input_config") + + @input_config.setter + def input_config(self, value: pulumi.Input['TrainingDatasetDatasetInputConfigArgs']): + pulumi.set(self, "input_config", value) + + @property + @pulumi.getter + def type(self) -> pulumi.Input['TrainingDatasetDatasetType']: + return pulumi.get(self, "type") + + @type.setter + def type(self, value: pulumi.Input['TrainingDatasetDatasetType']): + pulumi.set(self, "type", value) + + +@pulumi.input_type +class TrainingDatasetGlueDataSourceArgs: + def __init__(__self__, *, + database_name: pulumi.Input[str], + table_name: pulumi.Input[str], + catalog_id: Optional[pulumi.Input[str]] = None): + pulumi.set(__self__, "database_name", database_name) + pulumi.set(__self__, "table_name", table_name) + if catalog_id is not None: + pulumi.set(__self__, "catalog_id", catalog_id) + + @property + @pulumi.getter(name="databaseName") + def database_name(self) -> pulumi.Input[str]: + return pulumi.get(self, "database_name") + + @database_name.setter + def database_name(self, value: pulumi.Input[str]): + pulumi.set(self, "database_name", value) + + @property + @pulumi.getter(name="tableName") + def table_name(self) -> pulumi.Input[str]: + return pulumi.get(self, "table_name") + + @table_name.setter + def table_name(self, value: pulumi.Input[str]): + pulumi.set(self, "table_name", value) + + @property + @pulumi.getter(name="catalogId") + def catalog_id(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "catalog_id") + + @catalog_id.setter + def catalog_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "catalog_id", value) + + diff --git a/sdk/python/pulumi_aws_native/cleanroomsml/get_training_dataset.py b/sdk/python/pulumi_aws_native/cleanroomsml/get_training_dataset.py new file mode 100644 index 0000000000..de010cce6d --- /dev/null +++ b/sdk/python/pulumi_aws_native/cleanroomsml/get_training_dataset.py @@ -0,0 +1,86 @@ +# 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 +from ._enums import * + +__all__ = [ + 'GetTrainingDatasetResult', + 'AwaitableGetTrainingDatasetResult', + 'get_training_dataset', + 'get_training_dataset_output', +] + +@pulumi.output_type +class GetTrainingDatasetResult: + def __init__(__self__, status=None, tags=None, training_dataset_arn=None): + if status and not isinstance(status, str): + raise TypeError("Expected argument 'status' to be a str") + pulumi.set(__self__, "status", status) + if tags and not isinstance(tags, list): + raise TypeError("Expected argument 'tags' to be a list") + pulumi.set(__self__, "tags", tags) + if training_dataset_arn and not isinstance(training_dataset_arn, str): + raise TypeError("Expected argument 'training_dataset_arn' to be a str") + pulumi.set(__self__, "training_dataset_arn", training_dataset_arn) + + @property + @pulumi.getter + def status(self) -> Optional['TrainingDatasetStatus']: + return pulumi.get(self, "status") + + @property + @pulumi.getter + def tags(self) -> Optional[Sequence['_root_outputs.Tag']]: + """ + An arbitrary set of tags (key-value pairs) for this cleanrooms-ml training dataset. + """ + return pulumi.get(self, "tags") + + @property + @pulumi.getter(name="trainingDatasetArn") + def training_dataset_arn(self) -> Optional[str]: + return pulumi.get(self, "training_dataset_arn") + + +class AwaitableGetTrainingDatasetResult(GetTrainingDatasetResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetTrainingDatasetResult( + status=self.status, + tags=self.tags, + training_dataset_arn=self.training_dataset_arn) + + +def get_training_dataset(training_dataset_arn: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetTrainingDatasetResult: + """ + Definition of AWS::CleanRoomsML::TrainingDataset Resource Type + """ + __args__ = dict() + __args__['trainingDatasetArn'] = training_dataset_arn + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:cleanroomsml:getTrainingDataset', __args__, opts=opts, typ=GetTrainingDatasetResult).value + + return AwaitableGetTrainingDatasetResult( + status=pulumi.get(__ret__, 'status'), + tags=pulumi.get(__ret__, 'tags'), + training_dataset_arn=pulumi.get(__ret__, 'training_dataset_arn')) + + +@_utilities.lift_output_func(get_training_dataset) +def get_training_dataset_output(training_dataset_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetTrainingDatasetResult]: + """ + Definition of AWS::CleanRoomsML::TrainingDataset Resource Type + """ + ... diff --git a/sdk/python/pulumi_aws_native/cleanroomsml/outputs.py b/sdk/python/pulumi_aws_native/cleanroomsml/outputs.py new file mode 100644 index 0000000000..9576a2e1bb --- /dev/null +++ b/sdk/python/pulumi_aws_native/cleanroomsml/outputs.py @@ -0,0 +1,208 @@ +# 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__ = [ + 'TrainingDatasetColumnSchema', + 'TrainingDatasetDataSource', + 'TrainingDatasetDataset', + 'TrainingDatasetDatasetInputConfig', + 'TrainingDatasetGlueDataSource', +] + +@pulumi.output_type +class TrainingDatasetColumnSchema(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "columnName": + suggest = "column_name" + elif key == "columnTypes": + suggest = "column_types" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in TrainingDatasetColumnSchema. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + TrainingDatasetColumnSchema.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + TrainingDatasetColumnSchema.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + column_name: str, + column_types: Sequence['TrainingDatasetColumnType']): + pulumi.set(__self__, "column_name", column_name) + pulumi.set(__self__, "column_types", column_types) + + @property + @pulumi.getter(name="columnName") + def column_name(self) -> str: + return pulumi.get(self, "column_name") + + @property + @pulumi.getter(name="columnTypes") + def column_types(self) -> Sequence['TrainingDatasetColumnType']: + return pulumi.get(self, "column_types") + + +@pulumi.output_type +class TrainingDatasetDataSource(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "glueDataSource": + suggest = "glue_data_source" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in TrainingDatasetDataSource. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + TrainingDatasetDataSource.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + TrainingDatasetDataSource.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + glue_data_source: 'outputs.TrainingDatasetGlueDataSource'): + pulumi.set(__self__, "glue_data_source", glue_data_source) + + @property + @pulumi.getter(name="glueDataSource") + def glue_data_source(self) -> 'outputs.TrainingDatasetGlueDataSource': + return pulumi.get(self, "glue_data_source") + + +@pulumi.output_type +class TrainingDatasetDataset(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "inputConfig": + suggest = "input_config" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in TrainingDatasetDataset. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + TrainingDatasetDataset.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + TrainingDatasetDataset.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + input_config: 'outputs.TrainingDatasetDatasetInputConfig', + type: 'TrainingDatasetDatasetType'): + pulumi.set(__self__, "input_config", input_config) + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter(name="inputConfig") + def input_config(self) -> 'outputs.TrainingDatasetDatasetInputConfig': + return pulumi.get(self, "input_config") + + @property + @pulumi.getter + def type(self) -> 'TrainingDatasetDatasetType': + return pulumi.get(self, "type") + + +@pulumi.output_type +class TrainingDatasetDatasetInputConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "dataSource": + suggest = "data_source" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in TrainingDatasetDatasetInputConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + TrainingDatasetDatasetInputConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + TrainingDatasetDatasetInputConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + data_source: 'outputs.TrainingDatasetDataSource', + schema: Sequence['outputs.TrainingDatasetColumnSchema']): + pulumi.set(__self__, "data_source", data_source) + pulumi.set(__self__, "schema", schema) + + @property + @pulumi.getter(name="dataSource") + def data_source(self) -> 'outputs.TrainingDatasetDataSource': + return pulumi.get(self, "data_source") + + @property + @pulumi.getter + def schema(self) -> Sequence['outputs.TrainingDatasetColumnSchema']: + return pulumi.get(self, "schema") + + +@pulumi.output_type +class TrainingDatasetGlueDataSource(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "databaseName": + suggest = "database_name" + elif key == "tableName": + suggest = "table_name" + elif key == "catalogId": + suggest = "catalog_id" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in TrainingDatasetGlueDataSource. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + TrainingDatasetGlueDataSource.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + TrainingDatasetGlueDataSource.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + database_name: str, + table_name: str, + catalog_id: Optional[str] = None): + pulumi.set(__self__, "database_name", database_name) + pulumi.set(__self__, "table_name", table_name) + if catalog_id is not None: + pulumi.set(__self__, "catalog_id", catalog_id) + + @property + @pulumi.getter(name="databaseName") + def database_name(self) -> str: + return pulumi.get(self, "database_name") + + @property + @pulumi.getter(name="tableName") + def table_name(self) -> str: + return pulumi.get(self, "table_name") + + @property + @pulumi.getter(name="catalogId") + def catalog_id(self) -> Optional[str]: + return pulumi.get(self, "catalog_id") + + diff --git a/sdk/python/pulumi_aws_native/cleanroomsml/training_dataset.py b/sdk/python/pulumi_aws_native/cleanroomsml/training_dataset.py new file mode 100644 index 0000000000..6a14ed5f31 --- /dev/null +++ b/sdk/python/pulumi_aws_native/cleanroomsml/training_dataset.py @@ -0,0 +1,226 @@ +# 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__ = ['TrainingDatasetArgs', 'TrainingDataset'] + +@pulumi.input_type +class TrainingDatasetArgs: + def __init__(__self__, *, + role_arn: pulumi.Input[str], + training_data: pulumi.Input[Sequence[pulumi.Input['TrainingDatasetDatasetArgs']]], + 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 TrainingDataset resource. + :param pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]] tags: An arbitrary set of tags (key-value pairs) for this cleanrooms-ml training dataset. + """ + pulumi.set(__self__, "role_arn", role_arn) + pulumi.set(__self__, "training_data", training_data) + 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="roleArn") + def role_arn(self) -> pulumi.Input[str]: + return pulumi.get(self, "role_arn") + + @role_arn.setter + def role_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "role_arn", value) + + @property + @pulumi.getter(name="trainingData") + def training_data(self) -> pulumi.Input[Sequence[pulumi.Input['TrainingDatasetDatasetArgs']]]: + return pulumi.get(self, "training_data") + + @training_data.setter + def training_data(self, value: pulumi.Input[Sequence[pulumi.Input['TrainingDatasetDatasetArgs']]]): + pulumi.set(self, "training_data", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]]: + """ + An arbitrary set of tags (key-value pairs) for this cleanrooms-ml training dataset. + """ + 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 TrainingDataset(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, + role_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]]] = None, + training_data: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['TrainingDatasetDatasetArgs']]]]] = None, + __props__=None): + """ + Definition of AWS::CleanRoomsML::TrainingDataset 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['_root_inputs.TagArgs']]]] tags: An arbitrary set of tags (key-value pairs) for this cleanrooms-ml training dataset. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: TrainingDatasetArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Definition of AWS::CleanRoomsML::TrainingDataset Resource Type + + :param str resource_name: The name of the resource. + :param TrainingDatasetArgs 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(TrainingDatasetArgs, 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, + role_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]]] = None, + training_data: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['TrainingDatasetDatasetArgs']]]]] = 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__ = TrainingDatasetArgs.__new__(TrainingDatasetArgs) + + __props__.__dict__["description"] = description + __props__.__dict__["name"] = name + if role_arn is None and not opts.urn: + raise TypeError("Missing required property 'role_arn'") + __props__.__dict__["role_arn"] = role_arn + __props__.__dict__["tags"] = tags + if training_data is None and not opts.urn: + raise TypeError("Missing required property 'training_data'") + __props__.__dict__["training_data"] = training_data + __props__.__dict__["status"] = None + __props__.__dict__["training_dataset_arn"] = None + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["description", "name", "roleArn", "trainingData[*]"]) + opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) + super(TrainingDataset, __self__).__init__( + 'aws-native:cleanroomsml:TrainingDataset', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'TrainingDataset': + """ + Get an existing TrainingDataset 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__ = TrainingDatasetArgs.__new__(TrainingDatasetArgs) + + __props__.__dict__["description"] = None + __props__.__dict__["name"] = None + __props__.__dict__["role_arn"] = None + __props__.__dict__["status"] = None + __props__.__dict__["tags"] = None + __props__.__dict__["training_data"] = None + __props__.__dict__["training_dataset_arn"] = None + return TrainingDataset(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def description(self) -> pulumi.Output[Optional[str]]: + return pulumi.get(self, "description") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> pulumi.Output[str]: + return pulumi.get(self, "role_arn") + + @property + @pulumi.getter + def status(self) -> pulumi.Output['TrainingDatasetStatus']: + return pulumi.get(self, "status") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Sequence['_root_outputs.Tag']]]: + """ + An arbitrary set of tags (key-value pairs) for this cleanrooms-ml training dataset. + """ + return pulumi.get(self, "tags") + + @property + @pulumi.getter(name="trainingData") + def training_data(self) -> pulumi.Output[Sequence['outputs.TrainingDatasetDataset']]: + return pulumi.get(self, "training_data") + + @property + @pulumi.getter(name="trainingDatasetArn") + def training_dataset_arn(self) -> pulumi.Output[str]: + return pulumi.get(self, "training_dataset_arn") + 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/cloudwatch/_inputs.py b/sdk/python/pulumi_aws_native/cloudwatch/_inputs.py index e280e973b1..86f31aa8ff 100644 --- a/sdk/python/pulumi_aws_native/cloudwatch/_inputs.py +++ b/sdk/python/pulumi_aws_native/cloudwatch/_inputs.py @@ -25,9 +25,9 @@ def __init__(__self__, *, name: pulumi.Input[str], value: pulumi.Input[str]): """ - Dimensions are arbitrary name/value pairs that can be associated with a CloudWatch metric. - :param pulumi.Input[str] name: The name of the dimension. - :param pulumi.Input[str] value: The value for the dimension. + Dimension is an embedded property of the ``AWS::CloudWatch::Alarm`` type. Dimensions are name/value pairs that can be associated with a CW metric. You can specify a maximum of 10 dimensions for a given metric. + :param pulumi.Input[str] name: The name of the dimension, from 1–255 characters in length. This dimension name must have been included when the metric was published. + :param pulumi.Input[str] value: The value for the dimension, from 1–255 characters in length. """ pulumi.set(__self__, "name", name) pulumi.set(__self__, "value", value) @@ -36,7 +36,7 @@ def __init__(__self__, *, @pulumi.getter def name(self) -> pulumi.Input[str]: """ - The name of the dimension. + The name of the dimension, from 1–255 characters in length. This dimension name must have been included when the metric was published. """ return pulumi.get(self, "name") @@ -48,7 +48,7 @@ def name(self, value: pulumi.Input[str]): @pulumi.getter def value(self) -> pulumi.Input[str]: """ - The value for the dimension. + The value for the dimension, from 1–255 characters in length. """ return pulumi.get(self, "value") @@ -68,14 +68,19 @@ def __init__(__self__, *, period: Optional[pulumi.Input[int]] = None, return_data: Optional[pulumi.Input[bool]] = None): """ - This property type specifies the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a math expression on metric data. - :param pulumi.Input[str] id: A short name used to tie this object to the results in the response. + The ``MetricDataQuery`` property type specifies the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a math expression on metric data. + Any expression used must return a single time series. For more information, see [Metric Math Syntax and Functions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) in the *User Guide*. + :param pulumi.Input[str] id: A short name used to tie this object to the results in the response. This name must be unique within a single call to ``GetMetricData``. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscore. The first character must be a lowercase letter. :param pulumi.Input[str] account_id: The ID of the account where the metrics are located, if this is a cross-account alarm. - :param pulumi.Input[str] expression: The math expression to be performed on the returned data. - :param pulumi.Input[str] label: A human-readable label for this metric or expression. - :param pulumi.Input['AlarmMetricStatArgs'] metric_stat: The metric to be returned, along with statistics, period, and units. - :param pulumi.Input[int] period: The period in seconds, over which the statistic is applied. + :param pulumi.Input[str] expression: The math expression to be performed on the returned data, if this object is performing a math expression. This expression can use the ``Id`` of the other metrics to refer to those metrics, and can also use the ``Id`` of other expressions to use the result of those expressions. For more information about metric math expressions, see [Metric Math Syntax and Functions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) in the *User Guide*. + Within each MetricDataQuery object, you must specify either ``Expression`` or ``MetricStat`` but not both. + :param pulumi.Input[str] label: A human-readable label for this metric or expression. This is especially useful if this is an expression, so that you know what the value represents. If the metric or expression is shown in a CW dashboard widget, the label is shown. If ``Label`` is omitted, CW generates a default. + :param pulumi.Input['AlarmMetricStatArgs'] metric_stat: The metric to be returned, along with statistics, period, and units. Use this parameter only if this object is retrieving a metric and not performing a math expression on returned data. + Within one MetricDataQuery object, you must specify either ``Expression`` or ``MetricStat`` but not both. + :param pulumi.Input[int] period: The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a ``PutMetricData`` operation that includes a ``StorageResolution of 1 second``. :param pulumi.Input[bool] return_data: This option indicates whether to return the timestamps and raw data values of this metric. + When you create an alarm based on a metric math expression, specify ``True`` for this value for only the one math expression that the alarm is based on. You must specify ``False`` for ``ReturnData`` for all the other metrics and expressions used in the alarm. + This field is required. """ pulumi.set(__self__, "id", id) if account_id is not None: @@ -95,7 +100,7 @@ def __init__(__self__, *, @pulumi.getter def id(self) -> pulumi.Input[str]: """ - A short name used to tie this object to the results in the response. + A short name used to tie this object to the results in the response. This name must be unique within a single call to ``GetMetricData``. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscore. The first character must be a lowercase letter. """ return pulumi.get(self, "id") @@ -119,7 +124,8 @@ def account_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def expression(self) -> Optional[pulumi.Input[str]]: """ - The math expression to be performed on the returned data. + The math expression to be performed on the returned data, if this object is performing a math expression. This expression can use the ``Id`` of the other metrics to refer to those metrics, and can also use the ``Id`` of other expressions to use the result of those expressions. For more information about metric math expressions, see [Metric Math Syntax and Functions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) in the *User Guide*. + Within each MetricDataQuery object, you must specify either ``Expression`` or ``MetricStat`` but not both. """ return pulumi.get(self, "expression") @@ -131,7 +137,7 @@ def expression(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def label(self) -> Optional[pulumi.Input[str]]: """ - A human-readable label for this metric or expression. + A human-readable label for this metric or expression. This is especially useful if this is an expression, so that you know what the value represents. If the metric or expression is shown in a CW dashboard widget, the label is shown. If ``Label`` is omitted, CW generates a default. """ return pulumi.get(self, "label") @@ -143,7 +149,8 @@ def label(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="metricStat") def metric_stat(self) -> Optional[pulumi.Input['AlarmMetricStatArgs']]: """ - The metric to be returned, along with statistics, period, and units. + The metric to be returned, along with statistics, period, and units. Use this parameter only if this object is retrieving a metric and not performing a math expression on returned data. + Within one MetricDataQuery object, you must specify either ``Expression`` or ``MetricStat`` but not both. """ return pulumi.get(self, "metric_stat") @@ -155,7 +162,7 @@ def metric_stat(self, value: Optional[pulumi.Input['AlarmMetricStatArgs']]): @pulumi.getter def period(self) -> Optional[pulumi.Input[int]]: """ - The period in seconds, over which the statistic is applied. + The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a ``PutMetricData`` operation that includes a ``StorageResolution of 1 second``. """ return pulumi.get(self, "period") @@ -168,6 +175,8 @@ def period(self, value: Optional[pulumi.Input[int]]): def return_data(self) -> Optional[pulumi.Input[bool]]: """ This option indicates whether to return the timestamps and raw data values of this metric. + When you create an alarm based on a metric math expression, specify ``True`` for this value for only the one math expression that the alarm is based on. You must specify ``False`` for ``ReturnData`` for all the other metrics and expressions used in the alarm. + This field is required. """ return pulumi.get(self, "return_data") @@ -185,10 +194,16 @@ def __init__(__self__, *, unit: Optional[pulumi.Input[str]] = None): """ This structure defines the metric to be returned, along with the statistics, period, and units. + ``MetricStat`` is a property of the [MetricDataQuery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html) property type. :param pulumi.Input['AlarmMetricArgs'] metric: The metric to return, including the metric name, namespace, and dimensions. - :param pulumi.Input[int] period: The granularity, in seconds, of the returned data points. - :param pulumi.Input[str] stat: The statistic to return. - :param pulumi.Input[str] unit: The unit to use for the returned data points. + :param pulumi.Input[int] period: The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a ``PutMetricData`` call that includes a ``StorageResolution`` of 1 second. + If the ``StartTime`` parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned: + + Start time between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute). + + Start time between 15 and 63 days ago - Use a multiple of 300 seconds (5 minutes). + + Start time greater than 63 days ago - Use a multiple of 3600 seconds (1 hour). + :param pulumi.Input[str] stat: The statistic to return. It can include any CW statistic or extended statistic. For a list of valid values, see the table in [Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the *User Guide*. + :param pulumi.Input[str] unit: The unit to use for the returned data points. + Valid values are: 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, or None. """ pulumi.set(__self__, "metric", metric) pulumi.set(__self__, "period", period) @@ -212,7 +227,11 @@ def metric(self, value: pulumi.Input['AlarmMetricArgs']): @pulumi.getter def period(self) -> pulumi.Input[int]: """ - The granularity, in seconds, of the returned data points. + The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a ``PutMetricData`` call that includes a ``StorageResolution`` of 1 second. + If the ``StartTime`` parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned: + + Start time between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute). + + Start time between 15 and 63 days ago - Use a multiple of 300 seconds (5 minutes). + + Start time greater than 63 days ago - Use a multiple of 3600 seconds (1 hour). """ return pulumi.get(self, "period") @@ -224,7 +243,7 @@ def period(self, value: pulumi.Input[int]): @pulumi.getter def stat(self) -> pulumi.Input[str]: """ - The statistic to return. + The statistic to return. It can include any CW statistic or extended statistic. For a list of valid values, see the table in [Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the *User Guide*. """ return pulumi.get(self, "stat") @@ -236,7 +255,8 @@ def stat(self, value: pulumi.Input[str]): @pulumi.getter def unit(self) -> Optional[pulumi.Input[str]]: """ - The unit to use for the returned data points. + The unit to use for the returned data points. + Valid values are: 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, or None. """ return pulumi.get(self, "unit") @@ -252,10 +272,10 @@ def __init__(__self__, *, metric_name: Optional[pulumi.Input[str]] = None, namespace: Optional[pulumi.Input[str]] = None): """ - The Metric property type represents a specific metric. - :param pulumi.Input[Sequence[pulumi.Input['AlarmDimensionArgs']]] dimensions: The dimensions for the metric. - :param pulumi.Input[str] metric_name: The name of the metric. - :param pulumi.Input[str] namespace: The namespace of the metric. + The ``Metric`` property type represents a specific metric. ``Metric`` is a property of the [MetricStat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricstat.html) property type. + :param pulumi.Input[Sequence[pulumi.Input['AlarmDimensionArgs']]] dimensions: The metric dimensions that you want to be used for the metric that the alarm will watch. + :param pulumi.Input[str] metric_name: The name of the metric that you want the alarm to watch. This is a required field. + :param pulumi.Input[str] namespace: The namespace of the metric that the alarm will watch. """ if dimensions is not None: pulumi.set(__self__, "dimensions", dimensions) @@ -268,7 +288,7 @@ def __init__(__self__, *, @pulumi.getter def dimensions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AlarmDimensionArgs']]]]: """ - The dimensions for the metric. + The metric dimensions that you want to be used for the metric that the alarm will watch. """ return pulumi.get(self, "dimensions") @@ -280,7 +300,7 @@ def dimensions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AlarmDi @pulumi.getter(name="metricName") def metric_name(self) -> Optional[pulumi.Input[str]]: """ - The name of the metric. + The name of the metric that you want the alarm to watch. This is a required field. """ return pulumi.get(self, "metric_name") @@ -292,7 +312,7 @@ def metric_name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def namespace(self) -> Optional[pulumi.Input[str]]: """ - The namespace of the metric. + The namespace of the metric that the alarm will watch. """ return pulumi.get(self, "namespace") diff --git a/sdk/python/pulumi_aws_native/cloudwatch/alarm.py b/sdk/python/pulumi_aws_native/cloudwatch/alarm.py index 22e48061a3..ffb441540b 100644 --- a/sdk/python/pulumi_aws_native/cloudwatch/alarm.py +++ b/sdk/python/pulumi_aws_native/cloudwatch/alarm.py @@ -9,6 +9,8 @@ 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__ = ['AlarmArgs', 'Alarm'] @@ -33,33 +35,47 @@ def __init__(__self__, *, ok_actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, period: Optional[pulumi.Input[int]] = None, statistic: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]] = None, threshold: Optional[pulumi.Input[float]] = None, threshold_metric_id: Optional[pulumi.Input[str]] = None, treat_missing_data: Optional[pulumi.Input[str]] = None, unit: Optional[pulumi.Input[str]] = None): """ The set of arguments for constructing a Alarm resource. - :param pulumi.Input[str] comparison_operator: The arithmetic operation to use when comparing the specified statistic and threshold. - :param pulumi.Input[int] evaluation_periods: The number of periods over which data is compared to the specified threshold. + :param pulumi.Input[str] comparison_operator: The arithmetic operation to use when comparing the specified statistic and threshold. The specified statistic value is used as the first operand. + :param pulumi.Input[int] evaluation_periods: The number of periods over which data is compared to the specified threshold. If you are setting an alarm that requires that a number of consecutive data points be breaching to trigger the alarm, this value specifies that number. If you are setting an "M out of N" alarm, this value is the N, and ``DatapointsToAlarm`` is the M. + For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*. :param pulumi.Input[bool] actions_enabled: Indicates whether actions should be executed during any changes to the alarm state. The default is TRUE. - :param pulumi.Input[Sequence[pulumi.Input[str]]] alarm_actions: The list of actions to execute when this alarm transitions into an ALARM state from any other state. + :param pulumi.Input[Sequence[pulumi.Input[str]]] alarm_actions: The list of actions to execute when this alarm transitions into an ALARM state from any other state. Specify each action as an Amazon Resource Name (ARN). For more information about creating alarms and the actions that you can specify, see [PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html) in the *API Reference*. :param pulumi.Input[str] alarm_description: The description of the alarm. - :param pulumi.Input[str] alarm_name: The name of the alarm. - :param pulumi.Input[int] datapoints_to_alarm: The number of datapoints that must be breaching to trigger the alarm. - :param pulumi.Input[Sequence[pulumi.Input['AlarmDimensionArgs']]] dimensions: The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify Dimensions. Instead, you use Metrics. - :param pulumi.Input[str] evaluate_low_sample_count_percentile: Used only for alarms based on percentiles. + :param pulumi.Input[str] alarm_name: The name of the alarm. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the alarm name. + 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. + :param pulumi.Input[int] datapoints_to_alarm: The number of datapoints that must be breaching to trigger the alarm. This is used only if you are setting an "M out of N" alarm. In that case, this value is the M, and the value that you set for ``EvaluationPeriods`` is the N value. For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*. + If you omit this parameter, CW uses the same value here that you set for ``EvaluationPeriods``, and the alarm goes to alarm state if that many consecutive periods are breaching. + :param pulumi.Input[Sequence[pulumi.Input['AlarmDimensionArgs']]] dimensions: The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify ``Dimensions``. Instead, you use ``Metrics``. + :param pulumi.Input[str] evaluate_low_sample_count_percentile: Used only for alarms based on percentiles. If ``ignore``, the alarm state does not change during periods with too few data points to be statistically significant. If ``evaluate`` or this parameter is not used, the alarm is always evaluated and possibly changes state no matter how many data points are available. :param pulumi.Input[str] extended_statistic: The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100. - :param pulumi.Input[Sequence[pulumi.Input[str]]] insufficient_data_actions: The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state. - :param pulumi.Input[str] metric_name: The name of the metric associated with the alarm. - :param pulumi.Input[Sequence[pulumi.Input['AlarmMetricDataQueryArgs']]] metrics: An array that enables you to create an alarm based on the result of a metric math expression. - :param pulumi.Input[str] namespace: The namespace of the metric associated with the alarm. - :param pulumi.Input[Sequence[pulumi.Input[str]]] ok_actions: The actions to execute when this alarm transitions to the OK state from any other state. - :param pulumi.Input[int] period: The period in seconds, over which the statistic is applied. - :param pulumi.Input[str] statistic: The statistic for the metric associated with the alarm, other than percentile. - :param pulumi.Input[float] threshold: In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm. - :param pulumi.Input[str] threshold_metric_id: In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm. - :param pulumi.Input[str] treat_missing_data: Sets how this alarm is to handle missing data points. Valid values are breaching, notBreaching, ignore, and missing. - :param pulumi.Input[str] unit: The unit of the metric associated with the alarm. + For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both. + For an alarm based on a math expression, you can't specify ``ExtendedStatistic``. Instead, you use ``Metrics``. + :param pulumi.Input[Sequence[pulumi.Input[str]]] insufficient_data_actions: The actions to execute when this alarm transitions to the ``INSUFFICIENT_DATA`` state from any other state. Each action is specified as an Amazon Resource Name (ARN). + :param pulumi.Input[str] metric_name: The name of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you use ``Metrics`` instead and you can't specify ``MetricName``. + :param pulumi.Input[Sequence[pulumi.Input['AlarmMetricDataQueryArgs']]] metrics: An array that enables you to create an alarm based on the result of a metric math expression. Each item in the array either retrieves a metric or performs a math expression. + If you specify the ``Metrics`` parameter, you cannot specify ``MetricName``, ``Dimensions``, ``Period``, ``Namespace``, ``Statistic``, ``ExtendedStatistic``, or ``Unit``. + :param pulumi.Input[str] namespace: The namespace of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you can't specify ``Namespace`` and you use ``Metrics`` instead. + For a list of namespaces for metrics from AWS services, see [Services That Publish Metrics.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) + :param pulumi.Input[Sequence[pulumi.Input[str]]] ok_actions: The actions to execute when this alarm transitions to the ``OK`` state from any other state. Each action is specified as an Amazon Resource Name (ARN). + :param pulumi.Input[int] period: The period, in seconds, over which the statistic is applied. This is required for an alarm based on a metric. Valid values are 10, 30, 60, and any multiple of 60. + For an alarm based on a math expression, you can't specify ``Period``, and instead you use the ``Metrics`` parameter. + *Minimum:* 10 + :param pulumi.Input[str] statistic: The statistic for the metric associated with the alarm, other than percentile. For percentile statistics, use ``ExtendedStatistic``. + For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both. + For an alarm based on a math expression, you can't specify ``Statistic``. Instead, you use ``Metrics``. + :param pulumi.Input[float] threshold: The value to compare with the specified statistic. + :param pulumi.Input[str] threshold_metric_id: In an alarm based on an anomaly detection model, this is the ID of the ``ANOMALY_DETECTION_BAND`` function used as the threshold for the alarm. + :param pulumi.Input[str] treat_missing_data: Sets how this alarm is to handle missing data points. Valid values are ``breaching``, ``notBreaching``, ``ignore``, and ``missing``. For more information, see [Configuring How Alarms Treat Missing Data](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data) in the *Amazon User Guide*. + If you omit this parameter, the default behavior of ``missing`` is used. + :param pulumi.Input[str] unit: The unit of the metric associated with the alarm. Specify this only if you are creating an alarm based on a single metric. Do not specify this if you are specifying a ``Metrics`` array. + You can specify the following values: 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, or None. """ pulumi.set(__self__, "comparison_operator", comparison_operator) pulumi.set(__self__, "evaluation_periods", evaluation_periods) @@ -93,6 +109,8 @@ def __init__(__self__, *, pulumi.set(__self__, "period", period) if statistic is not None: pulumi.set(__self__, "statistic", statistic) + if tags is not None: + pulumi.set(__self__, "tags", tags) if threshold is not None: pulumi.set(__self__, "threshold", threshold) if threshold_metric_id is not None: @@ -106,7 +124,7 @@ def __init__(__self__, *, @pulumi.getter(name="comparisonOperator") def comparison_operator(self) -> pulumi.Input[str]: """ - The arithmetic operation to use when comparing the specified statistic and threshold. + The arithmetic operation to use when comparing the specified statistic and threshold. The specified statistic value is used as the first operand. """ return pulumi.get(self, "comparison_operator") @@ -118,7 +136,8 @@ def comparison_operator(self, value: pulumi.Input[str]): @pulumi.getter(name="evaluationPeriods") def evaluation_periods(self) -> pulumi.Input[int]: """ - The number of periods over which data is compared to the specified threshold. + The number of periods over which data is compared to the specified threshold. If you are setting an alarm that requires that a number of consecutive data points be breaching to trigger the alarm, this value specifies that number. If you are setting an "M out of N" alarm, this value is the N, and ``DatapointsToAlarm`` is the M. + For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*. """ return pulumi.get(self, "evaluation_periods") @@ -142,7 +161,7 @@ def actions_enabled(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter(name="alarmActions") def alarm_actions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ - The list of actions to execute when this alarm transitions into an ALARM state from any other state. + The list of actions to execute when this alarm transitions into an ALARM state from any other state. Specify each action as an Amazon Resource Name (ARN). For more information about creating alarms and the actions that you can specify, see [PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html) in the *API Reference*. """ return pulumi.get(self, "alarm_actions") @@ -166,7 +185,8 @@ def alarm_description(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="alarmName") def alarm_name(self) -> Optional[pulumi.Input[str]]: """ - The name of the alarm. + The name of the alarm. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the alarm name. + 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. """ return pulumi.get(self, "alarm_name") @@ -178,7 +198,8 @@ def alarm_name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="datapointsToAlarm") def datapoints_to_alarm(self) -> Optional[pulumi.Input[int]]: """ - The number of datapoints that must be breaching to trigger the alarm. + The number of datapoints that must be breaching to trigger the alarm. This is used only if you are setting an "M out of N" alarm. In that case, this value is the M, and the value that you set for ``EvaluationPeriods`` is the N value. For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*. + If you omit this parameter, CW uses the same value here that you set for ``EvaluationPeriods``, and the alarm goes to alarm state if that many consecutive periods are breaching. """ return pulumi.get(self, "datapoints_to_alarm") @@ -190,7 +211,7 @@ def datapoints_to_alarm(self, value: Optional[pulumi.Input[int]]): @pulumi.getter def dimensions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AlarmDimensionArgs']]]]: """ - The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify Dimensions. Instead, you use Metrics. + The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify ``Dimensions``. Instead, you use ``Metrics``. """ return pulumi.get(self, "dimensions") @@ -202,7 +223,7 @@ def dimensions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AlarmDi @pulumi.getter(name="evaluateLowSampleCountPercentile") def evaluate_low_sample_count_percentile(self) -> Optional[pulumi.Input[str]]: """ - Used only for alarms based on percentiles. + Used only for alarms based on percentiles. If ``ignore``, the alarm state does not change during periods with too few data points to be statistically significant. If ``evaluate`` or this parameter is not used, the alarm is always evaluated and possibly changes state no matter how many data points are available. """ return pulumi.get(self, "evaluate_low_sample_count_percentile") @@ -215,6 +236,8 @@ def evaluate_low_sample_count_percentile(self, value: Optional[pulumi.Input[str] def extended_statistic(self) -> Optional[pulumi.Input[str]]: """ The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100. + For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both. + For an alarm based on a math expression, you can't specify ``ExtendedStatistic``. Instead, you use ``Metrics``. """ return pulumi.get(self, "extended_statistic") @@ -226,7 +249,7 @@ def extended_statistic(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="insufficientDataActions") def insufficient_data_actions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ - The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state. + The actions to execute when this alarm transitions to the ``INSUFFICIENT_DATA`` state from any other state. Each action is specified as an Amazon Resource Name (ARN). """ return pulumi.get(self, "insufficient_data_actions") @@ -238,7 +261,7 @@ def insufficient_data_actions(self, value: Optional[pulumi.Input[Sequence[pulumi @pulumi.getter(name="metricName") def metric_name(self) -> Optional[pulumi.Input[str]]: """ - The name of the metric associated with the alarm. + The name of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you use ``Metrics`` instead and you can't specify ``MetricName``. """ return pulumi.get(self, "metric_name") @@ -250,7 +273,8 @@ def metric_name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def metrics(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AlarmMetricDataQueryArgs']]]]: """ - An array that enables you to create an alarm based on the result of a metric math expression. + An array that enables you to create an alarm based on the result of a metric math expression. Each item in the array either retrieves a metric or performs a math expression. + If you specify the ``Metrics`` parameter, you cannot specify ``MetricName``, ``Dimensions``, ``Period``, ``Namespace``, ``Statistic``, ``ExtendedStatistic``, or ``Unit``. """ return pulumi.get(self, "metrics") @@ -262,7 +286,8 @@ def metrics(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AlarmMetri @pulumi.getter def namespace(self) -> Optional[pulumi.Input[str]]: """ - The namespace of the metric associated with the alarm. + The namespace of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you can't specify ``Namespace`` and you use ``Metrics`` instead. + For a list of namespaces for metrics from AWS services, see [Services That Publish Metrics.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) """ return pulumi.get(self, "namespace") @@ -274,7 +299,7 @@ def namespace(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="okActions") def ok_actions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ - The actions to execute when this alarm transitions to the OK state from any other state. + The actions to execute when this alarm transitions to the ``OK`` state from any other state. Each action is specified as an Amazon Resource Name (ARN). """ return pulumi.get(self, "ok_actions") @@ -286,7 +311,9 @@ def ok_actions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]) @pulumi.getter def period(self) -> Optional[pulumi.Input[int]]: """ - The period in seconds, over which the statistic is applied. + The period, in seconds, over which the statistic is applied. This is required for an alarm based on a metric. Valid values are 10, 30, 60, and any multiple of 60. + For an alarm based on a math expression, you can't specify ``Period``, and instead you use the ``Metrics`` parameter. + *Minimum:* 10 """ return pulumi.get(self, "period") @@ -298,7 +325,9 @@ def period(self, value: Optional[pulumi.Input[int]]): @pulumi.getter def statistic(self) -> Optional[pulumi.Input[str]]: """ - The statistic for the metric associated with the alarm, other than percentile. + The statistic for the metric associated with the alarm, other than percentile. For percentile statistics, use ``ExtendedStatistic``. + For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both. + For an alarm based on a math expression, you can't specify ``Statistic``. Instead, you use ``Metrics``. """ return pulumi.get(self, "statistic") @@ -306,11 +335,20 @@ def statistic(self) -> Optional[pulumi.Input[str]]: def statistic(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "statistic", value) + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]]: + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]]): + pulumi.set(self, "tags", value) + @property @pulumi.getter def threshold(self) -> Optional[pulumi.Input[float]]: """ - In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm. + The value to compare with the specified statistic. """ return pulumi.get(self, "threshold") @@ -322,7 +360,7 @@ def threshold(self, value: Optional[pulumi.Input[float]]): @pulumi.getter(name="thresholdMetricId") def threshold_metric_id(self) -> Optional[pulumi.Input[str]]: """ - In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm. + In an alarm based on an anomaly detection model, this is the ID of the ``ANOMALY_DETECTION_BAND`` function used as the threshold for the alarm. """ return pulumi.get(self, "threshold_metric_id") @@ -334,7 +372,8 @@ def threshold_metric_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="treatMissingData") def treat_missing_data(self) -> Optional[pulumi.Input[str]]: """ - Sets how this alarm is to handle missing data points. Valid values are breaching, notBreaching, ignore, and missing. + Sets how this alarm is to handle missing data points. Valid values are ``breaching``, ``notBreaching``, ``ignore``, and ``missing``. For more information, see [Configuring How Alarms Treat Missing Data](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data) in the *Amazon User Guide*. + If you omit this parameter, the default behavior of ``missing`` is used. """ return pulumi.get(self, "treat_missing_data") @@ -346,7 +385,8 @@ def treat_missing_data(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def unit(self) -> Optional[pulumi.Input[str]]: """ - The unit of the metric associated with the alarm. + The unit of the metric associated with the alarm. Specify this only if you are creating an alarm based on a single metric. Do not specify this if you are specifying a ``Metrics`` array. + You can specify the following values: 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, or None. """ return pulumi.get(self, "unit") @@ -377,37 +417,53 @@ def __init__(__self__, ok_actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, period: Optional[pulumi.Input[int]] = None, statistic: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]]] = None, threshold: Optional[pulumi.Input[float]] = None, threshold_metric_id: Optional[pulumi.Input[str]] = None, treat_missing_data: Optional[pulumi.Input[str]] = None, unit: Optional[pulumi.Input[str]] = None, __props__=None): """ - Resource Type definition for AWS::CloudWatch::Alarm + The ``AWS::CloudWatch::Alarm`` type specifies an alarm and associates it with the specified metric or metric math expression. + When this operation creates an alarm, the alarm state is immediately set to ``INSUFFICIENT_DATA``. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed. + When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm. :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[bool] actions_enabled: Indicates whether actions should be executed during any changes to the alarm state. The default is TRUE. - :param pulumi.Input[Sequence[pulumi.Input[str]]] alarm_actions: The list of actions to execute when this alarm transitions into an ALARM state from any other state. + :param pulumi.Input[Sequence[pulumi.Input[str]]] alarm_actions: The list of actions to execute when this alarm transitions into an ALARM state from any other state. Specify each action as an Amazon Resource Name (ARN). For more information about creating alarms and the actions that you can specify, see [PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html) in the *API Reference*. :param pulumi.Input[str] alarm_description: The description of the alarm. - :param pulumi.Input[str] alarm_name: The name of the alarm. - :param pulumi.Input[str] comparison_operator: The arithmetic operation to use when comparing the specified statistic and threshold. - :param pulumi.Input[int] datapoints_to_alarm: The number of datapoints that must be breaching to trigger the alarm. - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['AlarmDimensionArgs']]]] dimensions: The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify Dimensions. Instead, you use Metrics. - :param pulumi.Input[str] evaluate_low_sample_count_percentile: Used only for alarms based on percentiles. - :param pulumi.Input[int] evaluation_periods: The number of periods over which data is compared to the specified threshold. + :param pulumi.Input[str] alarm_name: The name of the alarm. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the alarm name. + 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. + :param pulumi.Input[str] comparison_operator: The arithmetic operation to use when comparing the specified statistic and threshold. The specified statistic value is used as the first operand. + :param pulumi.Input[int] datapoints_to_alarm: The number of datapoints that must be breaching to trigger the alarm. This is used only if you are setting an "M out of N" alarm. In that case, this value is the M, and the value that you set for ``EvaluationPeriods`` is the N value. For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*. + If you omit this parameter, CW uses the same value here that you set for ``EvaluationPeriods``, and the alarm goes to alarm state if that many consecutive periods are breaching. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['AlarmDimensionArgs']]]] dimensions: The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify ``Dimensions``. Instead, you use ``Metrics``. + :param pulumi.Input[str] evaluate_low_sample_count_percentile: Used only for alarms based on percentiles. If ``ignore``, the alarm state does not change during periods with too few data points to be statistically significant. If ``evaluate`` or this parameter is not used, the alarm is always evaluated and possibly changes state no matter how many data points are available. + :param pulumi.Input[int] evaluation_periods: The number of periods over which data is compared to the specified threshold. If you are setting an alarm that requires that a number of consecutive data points be breaching to trigger the alarm, this value specifies that number. If you are setting an "M out of N" alarm, this value is the N, and ``DatapointsToAlarm`` is the M. + For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*. :param pulumi.Input[str] extended_statistic: The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100. - :param pulumi.Input[Sequence[pulumi.Input[str]]] insufficient_data_actions: The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state. - :param pulumi.Input[str] metric_name: The name of the metric associated with the alarm. - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['AlarmMetricDataQueryArgs']]]] metrics: An array that enables you to create an alarm based on the result of a metric math expression. - :param pulumi.Input[str] namespace: The namespace of the metric associated with the alarm. - :param pulumi.Input[Sequence[pulumi.Input[str]]] ok_actions: The actions to execute when this alarm transitions to the OK state from any other state. - :param pulumi.Input[int] period: The period in seconds, over which the statistic is applied. - :param pulumi.Input[str] statistic: The statistic for the metric associated with the alarm, other than percentile. - :param pulumi.Input[float] threshold: In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm. - :param pulumi.Input[str] threshold_metric_id: In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm. - :param pulumi.Input[str] treat_missing_data: Sets how this alarm is to handle missing data points. Valid values are breaching, notBreaching, ignore, and missing. - :param pulumi.Input[str] unit: The unit of the metric associated with the alarm. + For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both. + For an alarm based on a math expression, you can't specify ``ExtendedStatistic``. Instead, you use ``Metrics``. + :param pulumi.Input[Sequence[pulumi.Input[str]]] insufficient_data_actions: The actions to execute when this alarm transitions to the ``INSUFFICIENT_DATA`` state from any other state. Each action is specified as an Amazon Resource Name (ARN). + :param pulumi.Input[str] metric_name: The name of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you use ``Metrics`` instead and you can't specify ``MetricName``. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['AlarmMetricDataQueryArgs']]]] metrics: An array that enables you to create an alarm based on the result of a metric math expression. Each item in the array either retrieves a metric or performs a math expression. + If you specify the ``Metrics`` parameter, you cannot specify ``MetricName``, ``Dimensions``, ``Period``, ``Namespace``, ``Statistic``, ``ExtendedStatistic``, or ``Unit``. + :param pulumi.Input[str] namespace: The namespace of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you can't specify ``Namespace`` and you use ``Metrics`` instead. + For a list of namespaces for metrics from AWS services, see [Services That Publish Metrics.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) + :param pulumi.Input[Sequence[pulumi.Input[str]]] ok_actions: The actions to execute when this alarm transitions to the ``OK`` state from any other state. Each action is specified as an Amazon Resource Name (ARN). + :param pulumi.Input[int] period: The period, in seconds, over which the statistic is applied. This is required for an alarm based on a metric. Valid values are 10, 30, 60, and any multiple of 60. + For an alarm based on a math expression, you can't specify ``Period``, and instead you use the ``Metrics`` parameter. + *Minimum:* 10 + :param pulumi.Input[str] statistic: The statistic for the metric associated with the alarm, other than percentile. For percentile statistics, use ``ExtendedStatistic``. + For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both. + For an alarm based on a math expression, you can't specify ``Statistic``. Instead, you use ``Metrics``. + :param pulumi.Input[float] threshold: The value to compare with the specified statistic. + :param pulumi.Input[str] threshold_metric_id: In an alarm based on an anomaly detection model, this is the ID of the ``ANOMALY_DETECTION_BAND`` function used as the threshold for the alarm. + :param pulumi.Input[str] treat_missing_data: Sets how this alarm is to handle missing data points. Valid values are ``breaching``, ``notBreaching``, ``ignore``, and ``missing``. For more information, see [Configuring How Alarms Treat Missing Data](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data) in the *Amazon User Guide*. + If you omit this parameter, the default behavior of ``missing`` is used. + :param pulumi.Input[str] unit: The unit of the metric associated with the alarm. Specify this only if you are creating an alarm based on a single metric. Do not specify this if you are specifying a ``Metrics`` array. + You can specify the following values: 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, or None. """ ... @overload @@ -416,7 +472,9 @@ def __init__(__self__, args: AlarmArgs, opts: Optional[pulumi.ResourceOptions] = None): """ - Resource Type definition for AWS::CloudWatch::Alarm + The ``AWS::CloudWatch::Alarm`` type specifies an alarm and associates it with the specified metric or metric math expression. + When this operation creates an alarm, the alarm state is immediately set to ``INSUFFICIENT_DATA``. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed. + When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm. :param str resource_name: The name of the resource. :param AlarmArgs args: The arguments to use to populate this resource's properties. @@ -450,6 +508,7 @@ def _internal_init(__self__, ok_actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, period: Optional[pulumi.Input[int]] = None, statistic: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]]] = None, threshold: Optional[pulumi.Input[float]] = None, threshold_metric_id: Optional[pulumi.Input[str]] = None, treat_missing_data: Optional[pulumi.Input[str]] = None, @@ -484,6 +543,7 @@ def _internal_init(__self__, __props__.__dict__["ok_actions"] = ok_actions __props__.__dict__["period"] = period __props__.__dict__["statistic"] = statistic + __props__.__dict__["tags"] = tags __props__.__dict__["threshold"] = threshold __props__.__dict__["threshold_metric_id"] = threshold_metric_id __props__.__dict__["treat_missing_data"] = treat_missing_data @@ -531,6 +591,7 @@ def get(resource_name: str, __props__.__dict__["ok_actions"] = None __props__.__dict__["period"] = None __props__.__dict__["statistic"] = None + __props__.__dict__["tags"] = None __props__.__dict__["threshold"] = None __props__.__dict__["threshold_metric_id"] = None __props__.__dict__["treat_missing_data"] = None @@ -549,7 +610,7 @@ def actions_enabled(self) -> pulumi.Output[Optional[bool]]: @pulumi.getter(name="alarmActions") def alarm_actions(self) -> pulumi.Output[Optional[Sequence[str]]]: """ - The list of actions to execute when this alarm transitions into an ALARM state from any other state. + The list of actions to execute when this alarm transitions into an ALARM state from any other state. Specify each action as an Amazon Resource Name (ARN). For more information about creating alarms and the actions that you can specify, see [PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html) in the *API Reference*. """ return pulumi.get(self, "alarm_actions") @@ -565,23 +626,21 @@ def alarm_description(self) -> pulumi.Output[Optional[str]]: @pulumi.getter(name="alarmName") def alarm_name(self) -> pulumi.Output[Optional[str]]: """ - The name of the alarm. + The name of the alarm. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the alarm name. + 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. """ return pulumi.get(self, "alarm_name") @property @pulumi.getter def arn(self) -> pulumi.Output[str]: - """ - Amazon Resource Name is a unique name for each resource. - """ return pulumi.get(self, "arn") @property @pulumi.getter(name="comparisonOperator") def comparison_operator(self) -> pulumi.Output[str]: """ - The arithmetic operation to use when comparing the specified statistic and threshold. + The arithmetic operation to use when comparing the specified statistic and threshold. The specified statistic value is used as the first operand. """ return pulumi.get(self, "comparison_operator") @@ -589,7 +648,8 @@ def comparison_operator(self) -> pulumi.Output[str]: @pulumi.getter(name="datapointsToAlarm") def datapoints_to_alarm(self) -> pulumi.Output[Optional[int]]: """ - The number of datapoints that must be breaching to trigger the alarm. + The number of datapoints that must be breaching to trigger the alarm. This is used only if you are setting an "M out of N" alarm. In that case, this value is the M, and the value that you set for ``EvaluationPeriods`` is the N value. For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*. + If you omit this parameter, CW uses the same value here that you set for ``EvaluationPeriods``, and the alarm goes to alarm state if that many consecutive periods are breaching. """ return pulumi.get(self, "datapoints_to_alarm") @@ -597,7 +657,7 @@ def datapoints_to_alarm(self) -> pulumi.Output[Optional[int]]: @pulumi.getter def dimensions(self) -> pulumi.Output[Optional[Sequence['outputs.AlarmDimension']]]: """ - The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify Dimensions. Instead, you use Metrics. + The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify ``Dimensions``. Instead, you use ``Metrics``. """ return pulumi.get(self, "dimensions") @@ -605,7 +665,7 @@ def dimensions(self) -> pulumi.Output[Optional[Sequence['outputs.AlarmDimension' @pulumi.getter(name="evaluateLowSampleCountPercentile") def evaluate_low_sample_count_percentile(self) -> pulumi.Output[Optional[str]]: """ - Used only for alarms based on percentiles. + Used only for alarms based on percentiles. If ``ignore``, the alarm state does not change during periods with too few data points to be statistically significant. If ``evaluate`` or this parameter is not used, the alarm is always evaluated and possibly changes state no matter how many data points are available. """ return pulumi.get(self, "evaluate_low_sample_count_percentile") @@ -613,7 +673,8 @@ def evaluate_low_sample_count_percentile(self) -> pulumi.Output[Optional[str]]: @pulumi.getter(name="evaluationPeriods") def evaluation_periods(self) -> pulumi.Output[int]: """ - The number of periods over which data is compared to the specified threshold. + The number of periods over which data is compared to the specified threshold. If you are setting an alarm that requires that a number of consecutive data points be breaching to trigger the alarm, this value specifies that number. If you are setting an "M out of N" alarm, this value is the N, and ``DatapointsToAlarm`` is the M. + For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*. """ return pulumi.get(self, "evaluation_periods") @@ -622,6 +683,8 @@ def evaluation_periods(self) -> pulumi.Output[int]: def extended_statistic(self) -> pulumi.Output[Optional[str]]: """ The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100. + For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both. + For an alarm based on a math expression, you can't specify ``ExtendedStatistic``. Instead, you use ``Metrics``. """ return pulumi.get(self, "extended_statistic") @@ -629,7 +692,7 @@ def extended_statistic(self) -> pulumi.Output[Optional[str]]: @pulumi.getter(name="insufficientDataActions") def insufficient_data_actions(self) -> pulumi.Output[Optional[Sequence[str]]]: """ - The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state. + The actions to execute when this alarm transitions to the ``INSUFFICIENT_DATA`` state from any other state. Each action is specified as an Amazon Resource Name (ARN). """ return pulumi.get(self, "insufficient_data_actions") @@ -637,7 +700,7 @@ def insufficient_data_actions(self) -> pulumi.Output[Optional[Sequence[str]]]: @pulumi.getter(name="metricName") def metric_name(self) -> pulumi.Output[Optional[str]]: """ - The name of the metric associated with the alarm. + The name of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you use ``Metrics`` instead and you can't specify ``MetricName``. """ return pulumi.get(self, "metric_name") @@ -645,7 +708,8 @@ def metric_name(self) -> pulumi.Output[Optional[str]]: @pulumi.getter def metrics(self) -> pulumi.Output[Optional[Sequence['outputs.AlarmMetricDataQuery']]]: """ - An array that enables you to create an alarm based on the result of a metric math expression. + An array that enables you to create an alarm based on the result of a metric math expression. Each item in the array either retrieves a metric or performs a math expression. + If you specify the ``Metrics`` parameter, you cannot specify ``MetricName``, ``Dimensions``, ``Period``, ``Namespace``, ``Statistic``, ``ExtendedStatistic``, or ``Unit``. """ return pulumi.get(self, "metrics") @@ -653,7 +717,8 @@ def metrics(self) -> pulumi.Output[Optional[Sequence['outputs.AlarmMetricDataQue @pulumi.getter def namespace(self) -> pulumi.Output[Optional[str]]: """ - The namespace of the metric associated with the alarm. + The namespace of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you can't specify ``Namespace`` and you use ``Metrics`` instead. + For a list of namespaces for metrics from AWS services, see [Services That Publish Metrics.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) """ return pulumi.get(self, "namespace") @@ -661,7 +726,7 @@ def namespace(self) -> pulumi.Output[Optional[str]]: @pulumi.getter(name="okActions") def ok_actions(self) -> pulumi.Output[Optional[Sequence[str]]]: """ - The actions to execute when this alarm transitions to the OK state from any other state. + The actions to execute when this alarm transitions to the ``OK`` state from any other state. Each action is specified as an Amazon Resource Name (ARN). """ return pulumi.get(self, "ok_actions") @@ -669,7 +734,9 @@ def ok_actions(self) -> pulumi.Output[Optional[Sequence[str]]]: @pulumi.getter def period(self) -> pulumi.Output[Optional[int]]: """ - The period in seconds, over which the statistic is applied. + The period, in seconds, over which the statistic is applied. This is required for an alarm based on a metric. Valid values are 10, 30, 60, and any multiple of 60. + For an alarm based on a math expression, you can't specify ``Period``, and instead you use the ``Metrics`` parameter. + *Minimum:* 10 """ return pulumi.get(self, "period") @@ -677,15 +744,22 @@ def period(self) -> pulumi.Output[Optional[int]]: @pulumi.getter def statistic(self) -> pulumi.Output[Optional[str]]: """ - The statistic for the metric associated with the alarm, other than percentile. + The statistic for the metric associated with the alarm, other than percentile. For percentile statistics, use ``ExtendedStatistic``. + For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both. + For an alarm based on a math expression, you can't specify ``Statistic``. Instead, you use ``Metrics``. """ return pulumi.get(self, "statistic") + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Sequence['_root_outputs.Tag']]]: + return pulumi.get(self, "tags") + @property @pulumi.getter def threshold(self) -> pulumi.Output[Optional[float]]: """ - In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm. + The value to compare with the specified statistic. """ return pulumi.get(self, "threshold") @@ -693,7 +767,7 @@ def threshold(self) -> pulumi.Output[Optional[float]]: @pulumi.getter(name="thresholdMetricId") def threshold_metric_id(self) -> pulumi.Output[Optional[str]]: """ - In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm. + In an alarm based on an anomaly detection model, this is the ID of the ``ANOMALY_DETECTION_BAND`` function used as the threshold for the alarm. """ return pulumi.get(self, "threshold_metric_id") @@ -701,7 +775,8 @@ def threshold_metric_id(self) -> pulumi.Output[Optional[str]]: @pulumi.getter(name="treatMissingData") def treat_missing_data(self) -> pulumi.Output[Optional[str]]: """ - Sets how this alarm is to handle missing data points. Valid values are breaching, notBreaching, ignore, and missing. + Sets how this alarm is to handle missing data points. Valid values are ``breaching``, ``notBreaching``, ``ignore``, and ``missing``. For more information, see [Configuring How Alarms Treat Missing Data](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data) in the *Amazon User Guide*. + If you omit this parameter, the default behavior of ``missing`` is used. """ return pulumi.get(self, "treat_missing_data") @@ -709,7 +784,8 @@ def treat_missing_data(self) -> pulumi.Output[Optional[str]]: @pulumi.getter def unit(self) -> pulumi.Output[Optional[str]]: """ - The unit of the metric associated with the alarm. + The unit of the metric associated with the alarm. Specify this only if you are creating an alarm based on a single metric. Do not specify this if you are specifying a ``Metrics`` array. + You can specify the following values: 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, or None. """ return pulumi.get(self, "unit") diff --git a/sdk/python/pulumi_aws_native/cloudwatch/composite_alarm.py b/sdk/python/pulumi_aws_native/cloudwatch/composite_alarm.py index d03a9be1ce..79ebbf6641 100644 --- a/sdk/python/pulumi_aws_native/cloudwatch/composite_alarm.py +++ b/sdk/python/pulumi_aws_native/cloudwatch/composite_alarm.py @@ -8,6 +8,8 @@ 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__ = ['CompositeAlarmArgs', 'CompositeAlarm'] @@ -23,7 +25,8 @@ def __init__(__self__, *, alarm_description: Optional[pulumi.Input[str]] = None, alarm_name: Optional[pulumi.Input[str]] = None, insufficient_data_actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - ok_actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + ok_actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]] = None): """ The set of arguments for constructing a CompositeAlarm resource. :param pulumi.Input[str] alarm_rule: Expression which aggregates the state of other Alarms (Metric or Composite Alarms) @@ -36,6 +39,7 @@ def __init__(__self__, *, :param pulumi.Input[str] alarm_name: The name of the Composite Alarm :param pulumi.Input[Sequence[pulumi.Input[str]]] insufficient_data_actions: The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state. Each action is specified as an Amazon Resource Name (ARN). :param pulumi.Input[Sequence[pulumi.Input[str]]] ok_actions: The actions to execute when this alarm transitions to the OK state from any other state. Each action is specified as an Amazon Resource Name (ARN). + :param pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]] tags: A list of key-value pairs to associate with the composite alarm. You can associate as many as 50 tags with an alarm. """ pulumi.set(__self__, "alarm_rule", alarm_rule) if actions_enabled is not None: @@ -56,6 +60,8 @@ def __init__(__self__, *, pulumi.set(__self__, "insufficient_data_actions", insufficient_data_actions) if ok_actions is not None: pulumi.set(__self__, "ok_actions", ok_actions) + if tags is not None: + pulumi.set(__self__, "tags", tags) @property @pulumi.getter(name="alarmRule") @@ -177,6 +183,18 @@ def ok_actions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: def ok_actions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): pulumi.set(self, "ok_actions", value) + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]]: + """ + A list of key-value pairs to associate with the composite alarm. You can associate as many as 50 tags with an alarm. + """ + 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 CompositeAlarm(pulumi.CustomResource): @overload @@ -193,6 +211,7 @@ def __init__(__self__, alarm_rule: Optional[pulumi.Input[str]] = None, insufficient_data_actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, ok_actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]]] = None, __props__=None): """ The AWS::CloudWatch::CompositeAlarm type specifies an alarm which aggregates the states of other Alarms (Metric or Composite Alarms) as defined by the AlarmRule expression @@ -209,6 +228,7 @@ def __init__(__self__, :param pulumi.Input[str] alarm_rule: Expression which aggregates the state of other Alarms (Metric or Composite Alarms) :param pulumi.Input[Sequence[pulumi.Input[str]]] insufficient_data_actions: The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state. Each action is specified as an Amazon Resource Name (ARN). :param pulumi.Input[Sequence[pulumi.Input[str]]] ok_actions: The actions to execute when this alarm transitions to the OK state from any other state. Each action is specified as an Amazon Resource Name (ARN). + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]] tags: A list of key-value pairs to associate with the composite alarm. You can associate as many as 50 tags with an alarm. """ ... @overload @@ -244,6 +264,7 @@ def _internal_init(__self__, alarm_rule: Optional[pulumi.Input[str]] = None, insufficient_data_actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, ok_actions: Optional[pulumi.Input[Sequence[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): @@ -265,6 +286,7 @@ def _internal_init(__self__, __props__.__dict__["alarm_rule"] = alarm_rule __props__.__dict__["insufficient_data_actions"] = insufficient_data_actions __props__.__dict__["ok_actions"] = ok_actions + __props__.__dict__["tags"] = tags __props__.__dict__["arn"] = None replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["alarmName"]) opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) @@ -301,6 +323,7 @@ def get(resource_name: str, __props__.__dict__["arn"] = None __props__.__dict__["insufficient_data_actions"] = None __props__.__dict__["ok_actions"] = None + __props__.__dict__["tags"] = None return CompositeAlarm(resource_name, opts=opts, __props__=__props__) @property @@ -391,3 +414,11 @@ def ok_actions(self) -> pulumi.Output[Optional[Sequence[str]]]: """ return pulumi.get(self, "ok_actions") + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Sequence['_root_outputs.Tag']]]: + """ + A list of key-value pairs to associate with the composite alarm. You can associate as many as 50 tags with an alarm. + """ + return pulumi.get(self, "tags") + diff --git a/sdk/python/pulumi_aws_native/cloudwatch/get_alarm.py b/sdk/python/pulumi_aws_native/cloudwatch/get_alarm.py index 2a3b2bc4bc..df9bbd9b0c 100644 --- a/sdk/python/pulumi_aws_native/cloudwatch/get_alarm.py +++ b/sdk/python/pulumi_aws_native/cloudwatch/get_alarm.py @@ -9,6 +9,7 @@ from typing import Any, Mapping, Optional, Sequence, Union, overload from .. import _utilities from . import outputs +from .. import outputs as _root_outputs __all__ = [ 'GetAlarmResult', @@ -19,7 +20,7 @@ @pulumi.output_type class GetAlarmResult: - def __init__(__self__, actions_enabled=None, alarm_actions=None, alarm_description=None, arn=None, comparison_operator=None, datapoints_to_alarm=None, dimensions=None, evaluate_low_sample_count_percentile=None, evaluation_periods=None, extended_statistic=None, insufficient_data_actions=None, metric_name=None, metrics=None, namespace=None, ok_actions=None, period=None, statistic=None, threshold=None, threshold_metric_id=None, treat_missing_data=None, unit=None): + def __init__(__self__, actions_enabled=None, alarm_actions=None, alarm_description=None, arn=None, comparison_operator=None, datapoints_to_alarm=None, dimensions=None, evaluate_low_sample_count_percentile=None, evaluation_periods=None, extended_statistic=None, insufficient_data_actions=None, metric_name=None, metrics=None, namespace=None, ok_actions=None, period=None, statistic=None, tags=None, threshold=None, threshold_metric_id=None, treat_missing_data=None, unit=None): if actions_enabled and not isinstance(actions_enabled, bool): raise TypeError("Expected argument 'actions_enabled' to be a bool") pulumi.set(__self__, "actions_enabled", actions_enabled) @@ -71,6 +72,9 @@ def __init__(__self__, actions_enabled=None, alarm_actions=None, alarm_descripti if statistic and not isinstance(statistic, str): raise TypeError("Expected argument 'statistic' to be a str") pulumi.set(__self__, "statistic", statistic) + if tags and not isinstance(tags, list): + raise TypeError("Expected argument 'tags' to be a list") + pulumi.set(__self__, "tags", tags) if threshold and not isinstance(threshold, float): raise TypeError("Expected argument 'threshold' to be a float") pulumi.set(__self__, "threshold", threshold) @@ -96,7 +100,7 @@ def actions_enabled(self) -> Optional[bool]: @pulumi.getter(name="alarmActions") def alarm_actions(self) -> Optional[Sequence[str]]: """ - The list of actions to execute when this alarm transitions into an ALARM state from any other state. + The list of actions to execute when this alarm transitions into an ALARM state from any other state. Specify each action as an Amazon Resource Name (ARN). For more information about creating alarms and the actions that you can specify, see [PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html) in the *API Reference*. """ return pulumi.get(self, "alarm_actions") @@ -111,16 +115,13 @@ def alarm_description(self) -> Optional[str]: @property @pulumi.getter def arn(self) -> Optional[str]: - """ - Amazon Resource Name is a unique name for each resource. - """ return pulumi.get(self, "arn") @property @pulumi.getter(name="comparisonOperator") def comparison_operator(self) -> Optional[str]: """ - The arithmetic operation to use when comparing the specified statistic and threshold. + The arithmetic operation to use when comparing the specified statistic and threshold. The specified statistic value is used as the first operand. """ return pulumi.get(self, "comparison_operator") @@ -128,7 +129,8 @@ def comparison_operator(self) -> Optional[str]: @pulumi.getter(name="datapointsToAlarm") def datapoints_to_alarm(self) -> Optional[int]: """ - The number of datapoints that must be breaching to trigger the alarm. + The number of datapoints that must be breaching to trigger the alarm. This is used only if you are setting an "M out of N" alarm. In that case, this value is the M, and the value that you set for ``EvaluationPeriods`` is the N value. For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*. + If you omit this parameter, CW uses the same value here that you set for ``EvaluationPeriods``, and the alarm goes to alarm state if that many consecutive periods are breaching. """ return pulumi.get(self, "datapoints_to_alarm") @@ -136,7 +138,7 @@ def datapoints_to_alarm(self) -> Optional[int]: @pulumi.getter def dimensions(self) -> Optional[Sequence['outputs.AlarmDimension']]: """ - The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify Dimensions. Instead, you use Metrics. + The dimensions for the metric associated with the alarm. For an alarm based on a math expression, you can't specify ``Dimensions``. Instead, you use ``Metrics``. """ return pulumi.get(self, "dimensions") @@ -144,7 +146,7 @@ def dimensions(self) -> Optional[Sequence['outputs.AlarmDimension']]: @pulumi.getter(name="evaluateLowSampleCountPercentile") def evaluate_low_sample_count_percentile(self) -> Optional[str]: """ - Used only for alarms based on percentiles. + Used only for alarms based on percentiles. If ``ignore``, the alarm state does not change during periods with too few data points to be statistically significant. If ``evaluate`` or this parameter is not used, the alarm is always evaluated and possibly changes state no matter how many data points are available. """ return pulumi.get(self, "evaluate_low_sample_count_percentile") @@ -152,7 +154,8 @@ def evaluate_low_sample_count_percentile(self) -> Optional[str]: @pulumi.getter(name="evaluationPeriods") def evaluation_periods(self) -> Optional[int]: """ - The number of periods over which data is compared to the specified threshold. + The number of periods over which data is compared to the specified threshold. If you are setting an alarm that requires that a number of consecutive data points be breaching to trigger the alarm, this value specifies that number. If you are setting an "M out of N" alarm, this value is the N, and ``DatapointsToAlarm`` is the M. + For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *User Guide*. """ return pulumi.get(self, "evaluation_periods") @@ -161,6 +164,8 @@ def evaluation_periods(self) -> Optional[int]: def extended_statistic(self) -> Optional[str]: """ The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100. + For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both. + For an alarm based on a math expression, you can't specify ``ExtendedStatistic``. Instead, you use ``Metrics``. """ return pulumi.get(self, "extended_statistic") @@ -168,7 +173,7 @@ def extended_statistic(self) -> Optional[str]: @pulumi.getter(name="insufficientDataActions") def insufficient_data_actions(self) -> Optional[Sequence[str]]: """ - The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state. + The actions to execute when this alarm transitions to the ``INSUFFICIENT_DATA`` state from any other state. Each action is specified as an Amazon Resource Name (ARN). """ return pulumi.get(self, "insufficient_data_actions") @@ -176,7 +181,7 @@ def insufficient_data_actions(self) -> Optional[Sequence[str]]: @pulumi.getter(name="metricName") def metric_name(self) -> Optional[str]: """ - The name of the metric associated with the alarm. + The name of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you use ``Metrics`` instead and you can't specify ``MetricName``. """ return pulumi.get(self, "metric_name") @@ -184,7 +189,8 @@ def metric_name(self) -> Optional[str]: @pulumi.getter def metrics(self) -> Optional[Sequence['outputs.AlarmMetricDataQuery']]: """ - An array that enables you to create an alarm based on the result of a metric math expression. + An array that enables you to create an alarm based on the result of a metric math expression. Each item in the array either retrieves a metric or performs a math expression. + If you specify the ``Metrics`` parameter, you cannot specify ``MetricName``, ``Dimensions``, ``Period``, ``Namespace``, ``Statistic``, ``ExtendedStatistic``, or ``Unit``. """ return pulumi.get(self, "metrics") @@ -192,7 +198,8 @@ def metrics(self) -> Optional[Sequence['outputs.AlarmMetricDataQuery']]: @pulumi.getter def namespace(self) -> Optional[str]: """ - The namespace of the metric associated with the alarm. + The namespace of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you can't specify ``Namespace`` and you use ``Metrics`` instead. + For a list of namespaces for metrics from AWS services, see [Services That Publish Metrics.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) """ return pulumi.get(self, "namespace") @@ -200,7 +207,7 @@ def namespace(self) -> Optional[str]: @pulumi.getter(name="okActions") def ok_actions(self) -> Optional[Sequence[str]]: """ - The actions to execute when this alarm transitions to the OK state from any other state. + The actions to execute when this alarm transitions to the ``OK`` state from any other state. Each action is specified as an Amazon Resource Name (ARN). """ return pulumi.get(self, "ok_actions") @@ -208,7 +215,9 @@ def ok_actions(self) -> Optional[Sequence[str]]: @pulumi.getter def period(self) -> Optional[int]: """ - The period in seconds, over which the statistic is applied. + The period, in seconds, over which the statistic is applied. This is required for an alarm based on a metric. Valid values are 10, 30, 60, and any multiple of 60. + For an alarm based on a math expression, you can't specify ``Period``, and instead you use the ``Metrics`` parameter. + *Minimum:* 10 """ return pulumi.get(self, "period") @@ -216,15 +225,22 @@ def period(self) -> Optional[int]: @pulumi.getter def statistic(self) -> Optional[str]: """ - The statistic for the metric associated with the alarm, other than percentile. + The statistic for the metric associated with the alarm, other than percentile. For percentile statistics, use ``ExtendedStatistic``. + For an alarm based on a metric, you must specify either ``Statistic`` or ``ExtendedStatistic`` but not both. + For an alarm based on a math expression, you can't specify ``Statistic``. Instead, you use ``Metrics``. """ return pulumi.get(self, "statistic") + @property + @pulumi.getter + def tags(self) -> Optional[Sequence['_root_outputs.Tag']]: + return pulumi.get(self, "tags") + @property @pulumi.getter def threshold(self) -> Optional[float]: """ - In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm. + The value to compare with the specified statistic. """ return pulumi.get(self, "threshold") @@ -232,7 +248,7 @@ def threshold(self) -> Optional[float]: @pulumi.getter(name="thresholdMetricId") def threshold_metric_id(self) -> Optional[str]: """ - In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm. + In an alarm based on an anomaly detection model, this is the ID of the ``ANOMALY_DETECTION_BAND`` function used as the threshold for the alarm. """ return pulumi.get(self, "threshold_metric_id") @@ -240,7 +256,8 @@ def threshold_metric_id(self) -> Optional[str]: @pulumi.getter(name="treatMissingData") def treat_missing_data(self) -> Optional[str]: """ - Sets how this alarm is to handle missing data points. Valid values are breaching, notBreaching, ignore, and missing. + Sets how this alarm is to handle missing data points. Valid values are ``breaching``, ``notBreaching``, ``ignore``, and ``missing``. For more information, see [Configuring How Alarms Treat Missing Data](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data) in the *Amazon User Guide*. + If you omit this parameter, the default behavior of ``missing`` is used. """ return pulumi.get(self, "treat_missing_data") @@ -248,7 +265,8 @@ def treat_missing_data(self) -> Optional[str]: @pulumi.getter def unit(self) -> Optional[str]: """ - The unit of the metric associated with the alarm. + The unit of the metric associated with the alarm. Specify this only if you are creating an alarm based on a single metric. Do not specify this if you are specifying a ``Metrics`` array. + You can specify the following values: 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, or None. """ return pulumi.get(self, "unit") @@ -276,6 +294,7 @@ def __await__(self): ok_actions=self.ok_actions, period=self.period, statistic=self.statistic, + tags=self.tags, threshold=self.threshold, threshold_metric_id=self.threshold_metric_id, treat_missing_data=self.treat_missing_data, @@ -285,10 +304,13 @@ def __await__(self): def get_alarm(alarm_name: Optional[str] = None, opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetAlarmResult: """ - Resource Type definition for AWS::CloudWatch::Alarm + The ``AWS::CloudWatch::Alarm`` type specifies an alarm and associates it with the specified metric or metric math expression. + When this operation creates an alarm, the alarm state is immediately set to ``INSUFFICIENT_DATA``. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed. + When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm. - :param str alarm_name: The name of the alarm. + :param str alarm_name: The name of the alarm. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the alarm name. + 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. """ __args__ = dict() __args__['alarmName'] = alarm_name @@ -313,6 +335,7 @@ def get_alarm(alarm_name: Optional[str] = None, ok_actions=pulumi.get(__ret__, 'ok_actions'), period=pulumi.get(__ret__, 'period'), statistic=pulumi.get(__ret__, 'statistic'), + tags=pulumi.get(__ret__, 'tags'), threshold=pulumi.get(__ret__, 'threshold'), threshold_metric_id=pulumi.get(__ret__, 'threshold_metric_id'), treat_missing_data=pulumi.get(__ret__, 'treat_missing_data'), @@ -323,9 +346,12 @@ def get_alarm(alarm_name: Optional[str] = None, def get_alarm_output(alarm_name: Optional[pulumi.Input[str]] = None, opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetAlarmResult]: """ - Resource Type definition for AWS::CloudWatch::Alarm + The ``AWS::CloudWatch::Alarm`` type specifies an alarm and associates it with the specified metric or metric math expression. + When this operation creates an alarm, the alarm state is immediately set to ``INSUFFICIENT_DATA``. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed. + When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm. - :param str alarm_name: The name of the alarm. + :param str alarm_name: The name of the alarm. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the alarm name. + 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. """ ... diff --git a/sdk/python/pulumi_aws_native/cloudwatch/get_composite_alarm.py b/sdk/python/pulumi_aws_native/cloudwatch/get_composite_alarm.py index ad4c19cfd9..8ee5160f40 100644 --- a/sdk/python/pulumi_aws_native/cloudwatch/get_composite_alarm.py +++ b/sdk/python/pulumi_aws_native/cloudwatch/get_composite_alarm.py @@ -8,6 +8,7 @@ import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload from .. import _utilities +from .. import outputs as _root_outputs __all__ = [ 'GetCompositeAlarmResult', @@ -18,7 +19,7 @@ @pulumi.output_type class GetCompositeAlarmResult: - def __init__(__self__, actions_enabled=None, actions_suppressor=None, actions_suppressor_extension_period=None, actions_suppressor_wait_period=None, alarm_actions=None, alarm_description=None, alarm_rule=None, arn=None, insufficient_data_actions=None, ok_actions=None): + def __init__(__self__, actions_enabled=None, actions_suppressor=None, actions_suppressor_extension_period=None, actions_suppressor_wait_period=None, alarm_actions=None, alarm_description=None, alarm_rule=None, arn=None, insufficient_data_actions=None, ok_actions=None, tags=None): if actions_enabled and not isinstance(actions_enabled, bool): raise TypeError("Expected argument 'actions_enabled' to be a bool") pulumi.set(__self__, "actions_enabled", actions_enabled) @@ -49,6 +50,9 @@ def __init__(__self__, actions_enabled=None, actions_suppressor=None, actions_su if ok_actions and not isinstance(ok_actions, list): raise TypeError("Expected argument 'ok_actions' to be a list") pulumi.set(__self__, "ok_actions", ok_actions) + 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="actionsEnabled") @@ -130,6 +134,14 @@ def ok_actions(self) -> Optional[Sequence[str]]: """ return pulumi.get(self, "ok_actions") + @property + @pulumi.getter + def tags(self) -> Optional[Sequence['_root_outputs.Tag']]: + """ + A list of key-value pairs to associate with the composite alarm. You can associate as many as 50 tags with an alarm. + """ + return pulumi.get(self, "tags") + class AwaitableGetCompositeAlarmResult(GetCompositeAlarmResult): # pylint: disable=using-constant-test @@ -146,7 +158,8 @@ def __await__(self): alarm_rule=self.alarm_rule, arn=self.arn, insufficient_data_actions=self.insufficient_data_actions, - ok_actions=self.ok_actions) + ok_actions=self.ok_actions, + tags=self.tags) def get_composite_alarm(alarm_name: Optional[str] = None, @@ -172,7 +185,8 @@ def get_composite_alarm(alarm_name: Optional[str] = None, alarm_rule=pulumi.get(__ret__, 'alarm_rule'), arn=pulumi.get(__ret__, 'arn'), insufficient_data_actions=pulumi.get(__ret__, 'insufficient_data_actions'), - ok_actions=pulumi.get(__ret__, 'ok_actions')) + ok_actions=pulumi.get(__ret__, 'ok_actions'), + tags=pulumi.get(__ret__, 'tags')) @_utilities.lift_output_func(get_composite_alarm) diff --git a/sdk/python/pulumi_aws_native/cloudwatch/outputs.py b/sdk/python/pulumi_aws_native/cloudwatch/outputs.py index bb9c468f59..7145d02f32 100644 --- a/sdk/python/pulumi_aws_native/cloudwatch/outputs.py +++ b/sdk/python/pulumi_aws_native/cloudwatch/outputs.py @@ -23,15 +23,15 @@ @pulumi.output_type class AlarmDimension(dict): """ - Dimensions are arbitrary name/value pairs that can be associated with a CloudWatch metric. + Dimension is an embedded property of the ``AWS::CloudWatch::Alarm`` type. Dimensions are name/value pairs that can be associated with a CW metric. You can specify a maximum of 10 dimensions for a given metric. """ def __init__(__self__, *, name: str, value: str): """ - Dimensions are arbitrary name/value pairs that can be associated with a CloudWatch metric. - :param str name: The name of the dimension. - :param str value: The value for the dimension. + Dimension is an embedded property of the ``AWS::CloudWatch::Alarm`` type. Dimensions are name/value pairs that can be associated with a CW metric. You can specify a maximum of 10 dimensions for a given metric. + :param str name: The name of the dimension, from 1–255 characters in length. This dimension name must have been included when the metric was published. + :param str value: The value for the dimension, from 1–255 characters in length. """ pulumi.set(__self__, "name", name) pulumi.set(__self__, "value", value) @@ -40,7 +40,7 @@ def __init__(__self__, *, @pulumi.getter def name(self) -> str: """ - The name of the dimension. + The name of the dimension, from 1–255 characters in length. This dimension name must have been included when the metric was published. """ return pulumi.get(self, "name") @@ -48,7 +48,7 @@ def name(self) -> str: @pulumi.getter def value(self) -> str: """ - The value for the dimension. + The value for the dimension, from 1–255 characters in length. """ return pulumi.get(self, "value") @@ -56,7 +56,7 @@ def value(self) -> str: @pulumi.output_type class AlarmMetric(dict): """ - The Metric property type represents a specific metric. + The ``Metric`` property type represents a specific metric. ``Metric`` is a property of the [MetricStat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricstat.html) property type. """ @staticmethod def __key_warning(key: str): @@ -80,10 +80,10 @@ def __init__(__self__, *, metric_name: Optional[str] = None, namespace: Optional[str] = None): """ - The Metric property type represents a specific metric. - :param Sequence['AlarmDimension'] dimensions: The dimensions for the metric. - :param str metric_name: The name of the metric. - :param str namespace: The namespace of the metric. + The ``Metric`` property type represents a specific metric. ``Metric`` is a property of the [MetricStat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricstat.html) property type. + :param Sequence['AlarmDimension'] dimensions: The metric dimensions that you want to be used for the metric that the alarm will watch. + :param str metric_name: The name of the metric that you want the alarm to watch. This is a required field. + :param str namespace: The namespace of the metric that the alarm will watch. """ if dimensions is not None: pulumi.set(__self__, "dimensions", dimensions) @@ -96,7 +96,7 @@ def __init__(__self__, *, @pulumi.getter def dimensions(self) -> Optional[Sequence['outputs.AlarmDimension']]: """ - The dimensions for the metric. + The metric dimensions that you want to be used for the metric that the alarm will watch. """ return pulumi.get(self, "dimensions") @@ -104,7 +104,7 @@ def dimensions(self) -> Optional[Sequence['outputs.AlarmDimension']]: @pulumi.getter(name="metricName") def metric_name(self) -> Optional[str]: """ - The name of the metric. + The name of the metric that you want the alarm to watch. This is a required field. """ return pulumi.get(self, "metric_name") @@ -112,7 +112,7 @@ def metric_name(self) -> Optional[str]: @pulumi.getter def namespace(self) -> Optional[str]: """ - The namespace of the metric. + The namespace of the metric that the alarm will watch. """ return pulumi.get(self, "namespace") @@ -120,7 +120,8 @@ def namespace(self) -> Optional[str]: @pulumi.output_type class AlarmMetricDataQuery(dict): """ - This property type specifies the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a math expression on metric data. + The ``MetricDataQuery`` property type specifies the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a math expression on metric data. + Any expression used must return a single time series. For more information, see [Metric Math Syntax and Functions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) in the *User Guide*. """ @staticmethod def __key_warning(key: str): @@ -152,14 +153,19 @@ def __init__(__self__, *, period: Optional[int] = None, return_data: Optional[bool] = None): """ - This property type specifies the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a math expression on metric data. - :param str id: A short name used to tie this object to the results in the response. + The ``MetricDataQuery`` property type specifies the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a math expression on metric data. + Any expression used must return a single time series. For more information, see [Metric Math Syntax and Functions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) in the *User Guide*. + :param str id: A short name used to tie this object to the results in the response. This name must be unique within a single call to ``GetMetricData``. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscore. The first character must be a lowercase letter. :param str account_id: The ID of the account where the metrics are located, if this is a cross-account alarm. - :param str expression: The math expression to be performed on the returned data. - :param str label: A human-readable label for this metric or expression. - :param 'AlarmMetricStat' metric_stat: The metric to be returned, along with statistics, period, and units. - :param int period: The period in seconds, over which the statistic is applied. + :param str expression: The math expression to be performed on the returned data, if this object is performing a math expression. This expression can use the ``Id`` of the other metrics to refer to those metrics, and can also use the ``Id`` of other expressions to use the result of those expressions. For more information about metric math expressions, see [Metric Math Syntax and Functions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) in the *User Guide*. + Within each MetricDataQuery object, you must specify either ``Expression`` or ``MetricStat`` but not both. + :param str label: A human-readable label for this metric or expression. This is especially useful if this is an expression, so that you know what the value represents. If the metric or expression is shown in a CW dashboard widget, the label is shown. If ``Label`` is omitted, CW generates a default. + :param 'AlarmMetricStat' metric_stat: The metric to be returned, along with statistics, period, and units. Use this parameter only if this object is retrieving a metric and not performing a math expression on returned data. + Within one MetricDataQuery object, you must specify either ``Expression`` or ``MetricStat`` but not both. + :param int period: The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a ``PutMetricData`` operation that includes a ``StorageResolution of 1 second``. :param bool return_data: This option indicates whether to return the timestamps and raw data values of this metric. + When you create an alarm based on a metric math expression, specify ``True`` for this value for only the one math expression that the alarm is based on. You must specify ``False`` for ``ReturnData`` for all the other metrics and expressions used in the alarm. + This field is required. """ pulumi.set(__self__, "id", id) if account_id is not None: @@ -179,7 +185,7 @@ def __init__(__self__, *, @pulumi.getter def id(self) -> str: """ - A short name used to tie this object to the results in the response. + A short name used to tie this object to the results in the response. This name must be unique within a single call to ``GetMetricData``. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscore. The first character must be a lowercase letter. """ return pulumi.get(self, "id") @@ -195,7 +201,8 @@ def account_id(self) -> Optional[str]: @pulumi.getter def expression(self) -> Optional[str]: """ - The math expression to be performed on the returned data. + The math expression to be performed on the returned data, if this object is performing a math expression. This expression can use the ``Id`` of the other metrics to refer to those metrics, and can also use the ``Id`` of other expressions to use the result of those expressions. For more information about metric math expressions, see [Metric Math Syntax and Functions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) in the *User Guide*. + Within each MetricDataQuery object, you must specify either ``Expression`` or ``MetricStat`` but not both. """ return pulumi.get(self, "expression") @@ -203,7 +210,7 @@ def expression(self) -> Optional[str]: @pulumi.getter def label(self) -> Optional[str]: """ - A human-readable label for this metric or expression. + A human-readable label for this metric or expression. This is especially useful if this is an expression, so that you know what the value represents. If the metric or expression is shown in a CW dashboard widget, the label is shown. If ``Label`` is omitted, CW generates a default. """ return pulumi.get(self, "label") @@ -211,7 +218,8 @@ def label(self) -> Optional[str]: @pulumi.getter(name="metricStat") def metric_stat(self) -> Optional['outputs.AlarmMetricStat']: """ - The metric to be returned, along with statistics, period, and units. + The metric to be returned, along with statistics, period, and units. Use this parameter only if this object is retrieving a metric and not performing a math expression on returned data. + Within one MetricDataQuery object, you must specify either ``Expression`` or ``MetricStat`` but not both. """ return pulumi.get(self, "metric_stat") @@ -219,7 +227,7 @@ def metric_stat(self) -> Optional['outputs.AlarmMetricStat']: @pulumi.getter def period(self) -> Optional[int]: """ - The period in seconds, over which the statistic is applied. + The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a ``PutMetricData`` operation that includes a ``StorageResolution of 1 second``. """ return pulumi.get(self, "period") @@ -228,6 +236,8 @@ def period(self) -> Optional[int]: def return_data(self) -> Optional[bool]: """ This option indicates whether to return the timestamps and raw data values of this metric. + When you create an alarm based on a metric math expression, specify ``True`` for this value for only the one math expression that the alarm is based on. You must specify ``False`` for ``ReturnData`` for all the other metrics and expressions used in the alarm. + This field is required. """ return pulumi.get(self, "return_data") @@ -236,6 +246,7 @@ def return_data(self) -> Optional[bool]: class AlarmMetricStat(dict): """ This structure defines the metric to be returned, along with the statistics, period, and units. + ``MetricStat`` is a property of the [MetricDataQuery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html) property type. """ def __init__(__self__, *, metric: 'outputs.AlarmMetric', @@ -244,10 +255,16 @@ def __init__(__self__, *, unit: Optional[str] = None): """ This structure defines the metric to be returned, along with the statistics, period, and units. + ``MetricStat`` is a property of the [MetricDataQuery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html) property type. :param 'AlarmMetric' metric: The metric to return, including the metric name, namespace, and dimensions. - :param int period: The granularity, in seconds, of the returned data points. - :param str stat: The statistic to return. - :param str unit: The unit to use for the returned data points. + :param int period: The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a ``PutMetricData`` call that includes a ``StorageResolution`` of 1 second. + If the ``StartTime`` parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned: + + Start time between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute). + + Start time between 15 and 63 days ago - Use a multiple of 300 seconds (5 minutes). + + Start time greater than 63 days ago - Use a multiple of 3600 seconds (1 hour). + :param str stat: The statistic to return. It can include any CW statistic or extended statistic. For a list of valid values, see the table in [Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the *User Guide*. + :param str unit: The unit to use for the returned data points. + Valid values are: 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, or None. """ pulumi.set(__self__, "metric", metric) pulumi.set(__self__, "period", period) @@ -267,7 +284,11 @@ def metric(self) -> 'outputs.AlarmMetric': @pulumi.getter def period(self) -> int: """ - The granularity, in seconds, of the returned data points. + The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a ``PutMetricData`` call that includes a ``StorageResolution`` of 1 second. + If the ``StartTime`` parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned: + + Start time between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute). + + Start time between 15 and 63 days ago - Use a multiple of 300 seconds (5 minutes). + + Start time greater than 63 days ago - Use a multiple of 3600 seconds (1 hour). """ return pulumi.get(self, "period") @@ -275,7 +296,7 @@ def period(self) -> int: @pulumi.getter def stat(self) -> str: """ - The statistic to return. + The statistic to return. It can include any CW statistic or extended statistic. For a list of valid values, see the table in [Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the *User Guide*. """ return pulumi.get(self, "stat") @@ -283,7 +304,8 @@ def stat(self) -> str: @pulumi.getter def unit(self) -> Optional[str]: """ - The unit to use for the returned data points. + The unit to use for the returned data points. + Valid values are: 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, or None. """ return pulumi.get(self, "unit") 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/deadline/__init__.py b/sdk/python/pulumi_aws_native/deadline/__init__.py new file mode 100644 index 0000000000..83ae307e5e --- /dev/null +++ b/sdk/python/pulumi_aws_native/deadline/__init__.py @@ -0,0 +1,25 @@ +# 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 .farm import * +from .fleet import * +from .get_farm import * +from .get_fleet import * +from .get_license_endpoint import * +from .get_metered_product import * +from .get_queue import * +from .get_queue_environment import * +from .get_storage_profile import * +from .license_endpoint import * +from .metered_product import * +from .queue import * +from .queue_environment import * +from .queue_fleet_association import * +from .storage_profile import * +from ._inputs import * +from . import outputs diff --git a/sdk/python/pulumi_aws_native/deadline/_enums.py b/sdk/python/pulumi_aws_native/deadline/_enums.py new file mode 100644 index 0000000000..5b6e61662b --- /dev/null +++ b/sdk/python/pulumi_aws_native/deadline/_enums.py @@ -0,0 +1,93 @@ +# 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__ = [ + 'FleetAcceleratorType', + 'FleetAutoScalingMode', + 'FleetCpuArchitectureType', + 'FleetCustomerManagedFleetOperatingSystemFamily', + 'FleetEc2MarketType', + 'FleetServiceManagedFleetOperatingSystemFamily', + 'FleetStatus', + 'LicenseEndpointStatus', + 'QueueDefaultQueueBudgetAction', + 'QueueEnvironmentEnvironmentTemplateType', + 'QueueRunAs', + 'StorageProfileFileSystemLocationType', + 'StorageProfileOperatingSystemFamily', +] + + +class FleetAcceleratorType(str, Enum): + GPU = "gpu" + + +class FleetAutoScalingMode(str, Enum): + NO_SCALING = "NO_SCALING" + EVENT_BASED_AUTO_SCALING = "EVENT_BASED_AUTO_SCALING" + + +class FleetCpuArchitectureType(str, Enum): + X8664 = "x86_64" + ARM64 = "arm64" + + +class FleetCustomerManagedFleetOperatingSystemFamily(str, Enum): + WINDOWS = "WINDOWS" + LINUX = "LINUX" + MACOS = "MACOS" + + +class FleetEc2MarketType(str, Enum): + ON_DEMAND = "on-demand" + SPOT = "spot" + + +class FleetServiceManagedFleetOperatingSystemFamily(str, Enum): + WINDOWS = "WINDOWS" + LINUX = "LINUX" + + +class FleetStatus(str, Enum): + ACTIVE = "ACTIVE" + CREATE_IN_PROGRESS = "CREATE_IN_PROGRESS" + UPDATE_IN_PROGRESS = "UPDATE_IN_PROGRESS" + CREATE_FAILED = "CREATE_FAILED" + UPDATE_FAILED = "UPDATE_FAILED" + + +class LicenseEndpointStatus(str, Enum): + CREATE_IN_PROGRESS = "CREATE_IN_PROGRESS" + DELETE_IN_PROGRESS = "DELETE_IN_PROGRESS" + READY = "READY" + NOT_READY = "NOT_READY" + + +class QueueDefaultQueueBudgetAction(str, Enum): + NONE = "NONE" + STOP_SCHEDULING_AND_COMPLETE_TASKS = "STOP_SCHEDULING_AND_COMPLETE_TASKS" + STOP_SCHEDULING_AND_CANCEL_TASKS = "STOP_SCHEDULING_AND_CANCEL_TASKS" + + +class QueueEnvironmentEnvironmentTemplateType(str, Enum): + JSON = "JSON" + YAML = "YAML" + + +class QueueRunAs(str, Enum): + QUEUE_CONFIGURED_USER = "QUEUE_CONFIGURED_USER" + WORKER_AGENT_USER = "WORKER_AGENT_USER" + + +class StorageProfileFileSystemLocationType(str, Enum): + SHARED = "SHARED" + LOCAL = "LOCAL" + + +class StorageProfileOperatingSystemFamily(str, Enum): + WINDOWS = "WINDOWS" + LINUX = "LINUX" + MACOS = "MACOS" diff --git a/sdk/python/pulumi_aws_native/deadline/_inputs.py b/sdk/python/pulumi_aws_native/deadline/_inputs.py new file mode 100644 index 0000000000..5e7b158dda --- /dev/null +++ b/sdk/python/pulumi_aws_native/deadline/_inputs.py @@ -0,0 +1,744 @@ +# 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__ = [ + 'FleetAcceleratorCountRangeArgs', + 'FleetAcceleratorTotalMemoryMiBRangeArgs', + 'FleetAmountCapabilityArgs', + 'FleetAttributeCapabilityArgs', + 'FleetConfiguration0PropertiesArgs', + 'FleetConfiguration1PropertiesArgs', + 'FleetCustomerManagedFleetConfigurationArgs', + 'FleetCustomerManagedWorkerCapabilitiesArgs', + 'FleetEc2EbsVolumeArgs', + 'FleetMemoryMiBRangeArgs', + 'FleetServiceManagedEc2FleetConfigurationArgs', + 'FleetServiceManagedEc2InstanceCapabilitiesArgs', + 'FleetServiceManagedEc2InstanceMarketOptionsArgs', + 'FleetVCpuCountRangeArgs', + 'QueueJobAttachmentSettingsArgs', + 'QueueJobRunAsUserArgs', + 'QueuePosixUserArgs', + 'QueueWindowsUserArgs', + 'StorageProfileFileSystemLocationArgs', +] + +@pulumi.input_type +class FleetAcceleratorCountRangeArgs: + def __init__(__self__, *, + min: pulumi.Input[int], + max: Optional[pulumi.Input[int]] = None): + pulumi.set(__self__, "min", min) + if max is not None: + pulumi.set(__self__, "max", max) + + @property + @pulumi.getter + def min(self) -> pulumi.Input[int]: + return pulumi.get(self, "min") + + @min.setter + def min(self, value: pulumi.Input[int]): + pulumi.set(self, "min", value) + + @property + @pulumi.getter + def max(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "max") + + @max.setter + def max(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "max", value) + + +@pulumi.input_type +class FleetAcceleratorTotalMemoryMiBRangeArgs: + def __init__(__self__, *, + min: pulumi.Input[int], + max: Optional[pulumi.Input[int]] = None): + pulumi.set(__self__, "min", min) + if max is not None: + pulumi.set(__self__, "max", max) + + @property + @pulumi.getter + def min(self) -> pulumi.Input[int]: + return pulumi.get(self, "min") + + @min.setter + def min(self, value: pulumi.Input[int]): + pulumi.set(self, "min", value) + + @property + @pulumi.getter + def max(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "max") + + @max.setter + def max(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "max", value) + + +@pulumi.input_type +class FleetAmountCapabilityArgs: + def __init__(__self__, *, + min: pulumi.Input[float], + name: pulumi.Input[str], + max: Optional[pulumi.Input[float]] = None): + pulumi.set(__self__, "min", min) + pulumi.set(__self__, "name", name) + if max is not None: + pulumi.set(__self__, "max", max) + + @property + @pulumi.getter + def min(self) -> pulumi.Input[float]: + return pulumi.get(self, "min") + + @min.setter + def min(self, value: pulumi.Input[float]): + pulumi.set(self, "min", value) + + @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) + + @property + @pulumi.getter + def max(self) -> Optional[pulumi.Input[float]]: + return pulumi.get(self, "max") + + @max.setter + def max(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "max", value) + + +@pulumi.input_type +class FleetAttributeCapabilityArgs: + def __init__(__self__, *, + name: pulumi.Input[str], + values: pulumi.Input[Sequence[pulumi.Input[str]]]): + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "values", values) + + @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) + + @property + @pulumi.getter + def values(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: + return pulumi.get(self, "values") + + @values.setter + def values(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): + pulumi.set(self, "values", value) + + +@pulumi.input_type +class FleetConfiguration0PropertiesArgs: + def __init__(__self__, *, + customer_managed: pulumi.Input['FleetCustomerManagedFleetConfigurationArgs']): + pulumi.set(__self__, "customer_managed", customer_managed) + + @property + @pulumi.getter(name="customerManaged") + def customer_managed(self) -> pulumi.Input['FleetCustomerManagedFleetConfigurationArgs']: + return pulumi.get(self, "customer_managed") + + @customer_managed.setter + def customer_managed(self, value: pulumi.Input['FleetCustomerManagedFleetConfigurationArgs']): + pulumi.set(self, "customer_managed", value) + + +@pulumi.input_type +class FleetConfiguration1PropertiesArgs: + def __init__(__self__, *, + service_managed_ec2: pulumi.Input['FleetServiceManagedEc2FleetConfigurationArgs']): + pulumi.set(__self__, "service_managed_ec2", service_managed_ec2) + + @property + @pulumi.getter(name="serviceManagedEc2") + def service_managed_ec2(self) -> pulumi.Input['FleetServiceManagedEc2FleetConfigurationArgs']: + return pulumi.get(self, "service_managed_ec2") + + @service_managed_ec2.setter + def service_managed_ec2(self, value: pulumi.Input['FleetServiceManagedEc2FleetConfigurationArgs']): + pulumi.set(self, "service_managed_ec2", value) + + +@pulumi.input_type +class FleetCustomerManagedFleetConfigurationArgs: + def __init__(__self__, *, + mode: pulumi.Input['FleetAutoScalingMode'], + worker_capabilities: pulumi.Input['FleetCustomerManagedWorkerCapabilitiesArgs'], + storage_profile_id: Optional[pulumi.Input[str]] = None): + pulumi.set(__self__, "mode", mode) + pulumi.set(__self__, "worker_capabilities", worker_capabilities) + if storage_profile_id is not None: + pulumi.set(__self__, "storage_profile_id", storage_profile_id) + + @property + @pulumi.getter + def mode(self) -> pulumi.Input['FleetAutoScalingMode']: + return pulumi.get(self, "mode") + + @mode.setter + def mode(self, value: pulumi.Input['FleetAutoScalingMode']): + pulumi.set(self, "mode", value) + + @property + @pulumi.getter(name="workerCapabilities") + def worker_capabilities(self) -> pulumi.Input['FleetCustomerManagedWorkerCapabilitiesArgs']: + return pulumi.get(self, "worker_capabilities") + + @worker_capabilities.setter + def worker_capabilities(self, value: pulumi.Input['FleetCustomerManagedWorkerCapabilitiesArgs']): + pulumi.set(self, "worker_capabilities", value) + + @property + @pulumi.getter(name="storageProfileId") + def storage_profile_id(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "storage_profile_id") + + @storage_profile_id.setter + def storage_profile_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "storage_profile_id", value) + + +@pulumi.input_type +class FleetCustomerManagedWorkerCapabilitiesArgs: + def __init__(__self__, *, + cpu_architecture_type: pulumi.Input['FleetCpuArchitectureType'], + memory_mi_b: pulumi.Input['FleetMemoryMiBRangeArgs'], + os_family: pulumi.Input['FleetCustomerManagedFleetOperatingSystemFamily'], + v_cpu_count: pulumi.Input['FleetVCpuCountRangeArgs'], + accelerator_count: Optional[pulumi.Input['FleetAcceleratorCountRangeArgs']] = None, + accelerator_total_memory_mi_b: Optional[pulumi.Input['FleetAcceleratorTotalMemoryMiBRangeArgs']] = None, + accelerator_types: Optional[pulumi.Input[Sequence[pulumi.Input['FleetAcceleratorType']]]] = None, + custom_amounts: Optional[pulumi.Input[Sequence[pulumi.Input['FleetAmountCapabilityArgs']]]] = None, + custom_attributes: Optional[pulumi.Input[Sequence[pulumi.Input['FleetAttributeCapabilityArgs']]]] = None): + pulumi.set(__self__, "cpu_architecture_type", cpu_architecture_type) + pulumi.set(__self__, "memory_mi_b", memory_mi_b) + pulumi.set(__self__, "os_family", os_family) + pulumi.set(__self__, "v_cpu_count", v_cpu_count) + if accelerator_count is not None: + pulumi.set(__self__, "accelerator_count", accelerator_count) + if accelerator_total_memory_mi_b is not None: + pulumi.set(__self__, "accelerator_total_memory_mi_b", accelerator_total_memory_mi_b) + if accelerator_types is not None: + pulumi.set(__self__, "accelerator_types", accelerator_types) + if custom_amounts is not None: + pulumi.set(__self__, "custom_amounts", custom_amounts) + if custom_attributes is not None: + pulumi.set(__self__, "custom_attributes", custom_attributes) + + @property + @pulumi.getter(name="cpuArchitectureType") + def cpu_architecture_type(self) -> pulumi.Input['FleetCpuArchitectureType']: + return pulumi.get(self, "cpu_architecture_type") + + @cpu_architecture_type.setter + def cpu_architecture_type(self, value: pulumi.Input['FleetCpuArchitectureType']): + pulumi.set(self, "cpu_architecture_type", value) + + @property + @pulumi.getter(name="memoryMiB") + def memory_mi_b(self) -> pulumi.Input['FleetMemoryMiBRangeArgs']: + return pulumi.get(self, "memory_mi_b") + + @memory_mi_b.setter + def memory_mi_b(self, value: pulumi.Input['FleetMemoryMiBRangeArgs']): + pulumi.set(self, "memory_mi_b", value) + + @property + @pulumi.getter(name="osFamily") + def os_family(self) -> pulumi.Input['FleetCustomerManagedFleetOperatingSystemFamily']: + return pulumi.get(self, "os_family") + + @os_family.setter + def os_family(self, value: pulumi.Input['FleetCustomerManagedFleetOperatingSystemFamily']): + pulumi.set(self, "os_family", value) + + @property + @pulumi.getter(name="vCpuCount") + def v_cpu_count(self) -> pulumi.Input['FleetVCpuCountRangeArgs']: + return pulumi.get(self, "v_cpu_count") + + @v_cpu_count.setter + def v_cpu_count(self, value: pulumi.Input['FleetVCpuCountRangeArgs']): + pulumi.set(self, "v_cpu_count", value) + + @property + @pulumi.getter(name="acceleratorCount") + def accelerator_count(self) -> Optional[pulumi.Input['FleetAcceleratorCountRangeArgs']]: + return pulumi.get(self, "accelerator_count") + + @accelerator_count.setter + def accelerator_count(self, value: Optional[pulumi.Input['FleetAcceleratorCountRangeArgs']]): + pulumi.set(self, "accelerator_count", value) + + @property + @pulumi.getter(name="acceleratorTotalMemoryMiB") + def accelerator_total_memory_mi_b(self) -> Optional[pulumi.Input['FleetAcceleratorTotalMemoryMiBRangeArgs']]: + return pulumi.get(self, "accelerator_total_memory_mi_b") + + @accelerator_total_memory_mi_b.setter + def accelerator_total_memory_mi_b(self, value: Optional[pulumi.Input['FleetAcceleratorTotalMemoryMiBRangeArgs']]): + pulumi.set(self, "accelerator_total_memory_mi_b", value) + + @property + @pulumi.getter(name="acceleratorTypes") + def accelerator_types(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['FleetAcceleratorType']]]]: + return pulumi.get(self, "accelerator_types") + + @accelerator_types.setter + def accelerator_types(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['FleetAcceleratorType']]]]): + pulumi.set(self, "accelerator_types", value) + + @property + @pulumi.getter(name="customAmounts") + def custom_amounts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['FleetAmountCapabilityArgs']]]]: + return pulumi.get(self, "custom_amounts") + + @custom_amounts.setter + def custom_amounts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['FleetAmountCapabilityArgs']]]]): + pulumi.set(self, "custom_amounts", value) + + @property + @pulumi.getter(name="customAttributes") + def custom_attributes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['FleetAttributeCapabilityArgs']]]]: + return pulumi.get(self, "custom_attributes") + + @custom_attributes.setter + def custom_attributes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['FleetAttributeCapabilityArgs']]]]): + pulumi.set(self, "custom_attributes", value) + + +@pulumi.input_type +class FleetEc2EbsVolumeArgs: + def __init__(__self__, *, + iops: Optional[pulumi.Input[int]] = None, + size_gi_b: Optional[pulumi.Input[int]] = None, + throughput_mi_b: Optional[pulumi.Input[int]] = None): + if iops is not None: + pulumi.set(__self__, "iops", iops) + if size_gi_b is not None: + pulumi.set(__self__, "size_gi_b", size_gi_b) + if throughput_mi_b is not None: + pulumi.set(__self__, "throughput_mi_b", throughput_mi_b) + + @property + @pulumi.getter + def iops(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "iops") + + @iops.setter + def iops(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "iops", value) + + @property + @pulumi.getter(name="sizeGiB") + def size_gi_b(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "size_gi_b") + + @size_gi_b.setter + def size_gi_b(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "size_gi_b", value) + + @property + @pulumi.getter(name="throughputMiB") + def throughput_mi_b(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "throughput_mi_b") + + @throughput_mi_b.setter + def throughput_mi_b(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "throughput_mi_b", value) + + +@pulumi.input_type +class FleetMemoryMiBRangeArgs: + def __init__(__self__, *, + min: pulumi.Input[int], + max: Optional[pulumi.Input[int]] = None): + pulumi.set(__self__, "min", min) + if max is not None: + pulumi.set(__self__, "max", max) + + @property + @pulumi.getter + def min(self) -> pulumi.Input[int]: + return pulumi.get(self, "min") + + @min.setter + def min(self, value: pulumi.Input[int]): + pulumi.set(self, "min", value) + + @property + @pulumi.getter + def max(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "max") + + @max.setter + def max(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "max", value) + + +@pulumi.input_type +class FleetServiceManagedEc2FleetConfigurationArgs: + def __init__(__self__, *, + instance_capabilities: pulumi.Input['FleetServiceManagedEc2InstanceCapabilitiesArgs'], + instance_market_options: pulumi.Input['FleetServiceManagedEc2InstanceMarketOptionsArgs']): + pulumi.set(__self__, "instance_capabilities", instance_capabilities) + pulumi.set(__self__, "instance_market_options", instance_market_options) + + @property + @pulumi.getter(name="instanceCapabilities") + def instance_capabilities(self) -> pulumi.Input['FleetServiceManagedEc2InstanceCapabilitiesArgs']: + return pulumi.get(self, "instance_capabilities") + + @instance_capabilities.setter + def instance_capabilities(self, value: pulumi.Input['FleetServiceManagedEc2InstanceCapabilitiesArgs']): + pulumi.set(self, "instance_capabilities", value) + + @property + @pulumi.getter(name="instanceMarketOptions") + def instance_market_options(self) -> pulumi.Input['FleetServiceManagedEc2InstanceMarketOptionsArgs']: + return pulumi.get(self, "instance_market_options") + + @instance_market_options.setter + def instance_market_options(self, value: pulumi.Input['FleetServiceManagedEc2InstanceMarketOptionsArgs']): + pulumi.set(self, "instance_market_options", value) + + +@pulumi.input_type +class FleetServiceManagedEc2InstanceCapabilitiesArgs: + def __init__(__self__, *, + cpu_architecture_type: pulumi.Input['FleetCpuArchitectureType'], + memory_mi_b: pulumi.Input['FleetMemoryMiBRangeArgs'], + os_family: pulumi.Input['FleetServiceManagedFleetOperatingSystemFamily'], + v_cpu_count: pulumi.Input['FleetVCpuCountRangeArgs'], + allowed_instance_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + custom_amounts: Optional[pulumi.Input[Sequence[pulumi.Input['FleetAmountCapabilityArgs']]]] = None, + custom_attributes: Optional[pulumi.Input[Sequence[pulumi.Input['FleetAttributeCapabilityArgs']]]] = None, + excluded_instance_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + root_ebs_volume: Optional[pulumi.Input['FleetEc2EbsVolumeArgs']] = None): + pulumi.set(__self__, "cpu_architecture_type", cpu_architecture_type) + pulumi.set(__self__, "memory_mi_b", memory_mi_b) + pulumi.set(__self__, "os_family", os_family) + pulumi.set(__self__, "v_cpu_count", v_cpu_count) + if allowed_instance_types is not None: + pulumi.set(__self__, "allowed_instance_types", allowed_instance_types) + if custom_amounts is not None: + pulumi.set(__self__, "custom_amounts", custom_amounts) + if custom_attributes is not None: + pulumi.set(__self__, "custom_attributes", custom_attributes) + if excluded_instance_types is not None: + pulumi.set(__self__, "excluded_instance_types", excluded_instance_types) + if root_ebs_volume is not None: + pulumi.set(__self__, "root_ebs_volume", root_ebs_volume) + + @property + @pulumi.getter(name="cpuArchitectureType") + def cpu_architecture_type(self) -> pulumi.Input['FleetCpuArchitectureType']: + return pulumi.get(self, "cpu_architecture_type") + + @cpu_architecture_type.setter + def cpu_architecture_type(self, value: pulumi.Input['FleetCpuArchitectureType']): + pulumi.set(self, "cpu_architecture_type", value) + + @property + @pulumi.getter(name="memoryMiB") + def memory_mi_b(self) -> pulumi.Input['FleetMemoryMiBRangeArgs']: + return pulumi.get(self, "memory_mi_b") + + @memory_mi_b.setter + def memory_mi_b(self, value: pulumi.Input['FleetMemoryMiBRangeArgs']): + pulumi.set(self, "memory_mi_b", value) + + @property + @pulumi.getter(name="osFamily") + def os_family(self) -> pulumi.Input['FleetServiceManagedFleetOperatingSystemFamily']: + return pulumi.get(self, "os_family") + + @os_family.setter + def os_family(self, value: pulumi.Input['FleetServiceManagedFleetOperatingSystemFamily']): + pulumi.set(self, "os_family", value) + + @property + @pulumi.getter(name="vCpuCount") + def v_cpu_count(self) -> pulumi.Input['FleetVCpuCountRangeArgs']: + return pulumi.get(self, "v_cpu_count") + + @v_cpu_count.setter + def v_cpu_count(self, value: pulumi.Input['FleetVCpuCountRangeArgs']): + pulumi.set(self, "v_cpu_count", value) + + @property + @pulumi.getter(name="allowedInstanceTypes") + def allowed_instance_types(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + return pulumi.get(self, "allowed_instance_types") + + @allowed_instance_types.setter + def allowed_instance_types(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "allowed_instance_types", value) + + @property + @pulumi.getter(name="customAmounts") + def custom_amounts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['FleetAmountCapabilityArgs']]]]: + return pulumi.get(self, "custom_amounts") + + @custom_amounts.setter + def custom_amounts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['FleetAmountCapabilityArgs']]]]): + pulumi.set(self, "custom_amounts", value) + + @property + @pulumi.getter(name="customAttributes") + def custom_attributes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['FleetAttributeCapabilityArgs']]]]: + return pulumi.get(self, "custom_attributes") + + @custom_attributes.setter + def custom_attributes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['FleetAttributeCapabilityArgs']]]]): + pulumi.set(self, "custom_attributes", value) + + @property + @pulumi.getter(name="excludedInstanceTypes") + def excluded_instance_types(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + return pulumi.get(self, "excluded_instance_types") + + @excluded_instance_types.setter + def excluded_instance_types(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "excluded_instance_types", value) + + @property + @pulumi.getter(name="rootEbsVolume") + def root_ebs_volume(self) -> Optional[pulumi.Input['FleetEc2EbsVolumeArgs']]: + return pulumi.get(self, "root_ebs_volume") + + @root_ebs_volume.setter + def root_ebs_volume(self, value: Optional[pulumi.Input['FleetEc2EbsVolumeArgs']]): + pulumi.set(self, "root_ebs_volume", value) + + +@pulumi.input_type +class FleetServiceManagedEc2InstanceMarketOptionsArgs: + def __init__(__self__, *, + type: pulumi.Input['FleetEc2MarketType']): + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter + def type(self) -> pulumi.Input['FleetEc2MarketType']: + return pulumi.get(self, "type") + + @type.setter + def type(self, value: pulumi.Input['FleetEc2MarketType']): + pulumi.set(self, "type", value) + + +@pulumi.input_type +class FleetVCpuCountRangeArgs: + def __init__(__self__, *, + min: pulumi.Input[int], + max: Optional[pulumi.Input[int]] = None): + pulumi.set(__self__, "min", min) + if max is not None: + pulumi.set(__self__, "max", max) + + @property + @pulumi.getter + def min(self) -> pulumi.Input[int]: + return pulumi.get(self, "min") + + @min.setter + def min(self, value: pulumi.Input[int]): + pulumi.set(self, "min", value) + + @property + @pulumi.getter + def max(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "max") + + @max.setter + def max(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "max", value) + + +@pulumi.input_type +class QueueJobAttachmentSettingsArgs: + def __init__(__self__, *, + root_prefix: pulumi.Input[str], + s3_bucket_name: pulumi.Input[str]): + pulumi.set(__self__, "root_prefix", root_prefix) + pulumi.set(__self__, "s3_bucket_name", s3_bucket_name) + + @property + @pulumi.getter(name="rootPrefix") + def root_prefix(self) -> pulumi.Input[str]: + return pulumi.get(self, "root_prefix") + + @root_prefix.setter + def root_prefix(self, value: pulumi.Input[str]): + pulumi.set(self, "root_prefix", value) + + @property + @pulumi.getter(name="s3BucketName") + def s3_bucket_name(self) -> pulumi.Input[str]: + return pulumi.get(self, "s3_bucket_name") + + @s3_bucket_name.setter + def s3_bucket_name(self, value: pulumi.Input[str]): + pulumi.set(self, "s3_bucket_name", value) + + +@pulumi.input_type +class QueueJobRunAsUserArgs: + def __init__(__self__, *, + run_as: pulumi.Input['QueueRunAs'], + posix: Optional[pulumi.Input['QueuePosixUserArgs']] = None, + windows: Optional[pulumi.Input['QueueWindowsUserArgs']] = None): + pulumi.set(__self__, "run_as", run_as) + if posix is not None: + pulumi.set(__self__, "posix", posix) + if windows is not None: + pulumi.set(__self__, "windows", windows) + + @property + @pulumi.getter(name="runAs") + def run_as(self) -> pulumi.Input['QueueRunAs']: + return pulumi.get(self, "run_as") + + @run_as.setter + def run_as(self, value: pulumi.Input['QueueRunAs']): + pulumi.set(self, "run_as", value) + + @property + @pulumi.getter + def posix(self) -> Optional[pulumi.Input['QueuePosixUserArgs']]: + return pulumi.get(self, "posix") + + @posix.setter + def posix(self, value: Optional[pulumi.Input['QueuePosixUserArgs']]): + pulumi.set(self, "posix", value) + + @property + @pulumi.getter + def windows(self) -> Optional[pulumi.Input['QueueWindowsUserArgs']]: + return pulumi.get(self, "windows") + + @windows.setter + def windows(self, value: Optional[pulumi.Input['QueueWindowsUserArgs']]): + pulumi.set(self, "windows", value) + + +@pulumi.input_type +class QueuePosixUserArgs: + def __init__(__self__, *, + group: pulumi.Input[str], + user: pulumi.Input[str]): + pulumi.set(__self__, "group", group) + pulumi.set(__self__, "user", user) + + @property + @pulumi.getter + def group(self) -> pulumi.Input[str]: + return pulumi.get(self, "group") + + @group.setter + def group(self, value: pulumi.Input[str]): + pulumi.set(self, "group", value) + + @property + @pulumi.getter + def user(self) -> pulumi.Input[str]: + return pulumi.get(self, "user") + + @user.setter + def user(self, value: pulumi.Input[str]): + pulumi.set(self, "user", value) + + +@pulumi.input_type +class QueueWindowsUserArgs: + def __init__(__self__, *, + password_arn: pulumi.Input[str], + user: pulumi.Input[str]): + pulumi.set(__self__, "password_arn", password_arn) + pulumi.set(__self__, "user", user) + + @property + @pulumi.getter(name="passwordArn") + def password_arn(self) -> pulumi.Input[str]: + return pulumi.get(self, "password_arn") + + @password_arn.setter + def password_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "password_arn", value) + + @property + @pulumi.getter + def user(self) -> pulumi.Input[str]: + return pulumi.get(self, "user") + + @user.setter + def user(self, value: pulumi.Input[str]): + pulumi.set(self, "user", value) + + +@pulumi.input_type +class StorageProfileFileSystemLocationArgs: + def __init__(__self__, *, + name: pulumi.Input[str], + path: pulumi.Input[str], + type: pulumi.Input['StorageProfileFileSystemLocationType']): + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "path", path) + pulumi.set(__self__, "type", type) + + @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) + + @property + @pulumi.getter + def path(self) -> pulumi.Input[str]: + return pulumi.get(self, "path") + + @path.setter + def path(self, value: pulumi.Input[str]): + pulumi.set(self, "path", value) + + @property + @pulumi.getter + def type(self) -> pulumi.Input['StorageProfileFileSystemLocationType']: + return pulumi.get(self, "type") + + @type.setter + def type(self, value: pulumi.Input['StorageProfileFileSystemLocationType']): + pulumi.set(self, "type", value) + + diff --git a/sdk/python/pulumi_aws_native/deadline/farm.py b/sdk/python/pulumi_aws_native/deadline/farm.py new file mode 100644 index 0000000000..13ea5bdf69 --- /dev/null +++ b/sdk/python/pulumi_aws_native/deadline/farm.py @@ -0,0 +1,170 @@ +# 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__ = ['FarmArgs', 'Farm'] + +@pulumi.input_type +class FarmArgs: + def __init__(__self__, *, + display_name: pulumi.Input[str], + description: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a Farm resource. + """ + pulumi.set(__self__, "display_name", display_name) + if description is not None: + pulumi.set(__self__, "description", description) + if kms_key_arn is not None: + pulumi.set(__self__, "kms_key_arn", kms_key_arn) + + @property + @pulumi.getter(name="displayName") + def display_name(self) -> pulumi.Input[str]: + return pulumi.get(self, "display_name") + + @display_name.setter + def display_name(self, value: pulumi.Input[str]): + pulumi.set(self, "display_name", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter(name="kmsKeyArn") + def kms_key_arn(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "kms_key_arn") + + @kms_key_arn.setter + def kms_key_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kms_key_arn", value) + + +class Farm(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + description: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Definition of AWS::Deadline::Farm Resource Type + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: FarmArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Definition of AWS::Deadline::Farm Resource Type + + :param str resource_name: The name of the resource. + :param FarmArgs 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(FarmArgs, 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, + display_name: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = FarmArgs.__new__(FarmArgs) + + __props__.__dict__["description"] = description + if display_name is None and not opts.urn: + raise TypeError("Missing required property 'display_name'") + __props__.__dict__["display_name"] = display_name + __props__.__dict__["kms_key_arn"] = kms_key_arn + __props__.__dict__["arn"] = None + __props__.__dict__["farm_id"] = None + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["kmsKeyArn"]) + opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) + super(Farm, __self__).__init__( + 'aws-native:deadline:Farm', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'Farm': + """ + Get an existing Farm 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__ = FarmArgs.__new__(FarmArgs) + + __props__.__dict__["arn"] = None + __props__.__dict__["description"] = None + __props__.__dict__["display_name"] = None + __props__.__dict__["farm_id"] = None + __props__.__dict__["kms_key_arn"] = None + return Farm(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + return pulumi.get(self, "arn") + + @property + @pulumi.getter + def description(self) -> pulumi.Output[Optional[str]]: + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="displayName") + def display_name(self) -> pulumi.Output[str]: + return pulumi.get(self, "display_name") + + @property + @pulumi.getter(name="farmId") + def farm_id(self) -> pulumi.Output[str]: + return pulumi.get(self, "farm_id") + + @property + @pulumi.getter(name="kmsKeyArn") + def kms_key_arn(self) -> pulumi.Output[Optional[str]]: + return pulumi.get(self, "kms_key_arn") + diff --git a/sdk/python/pulumi_aws_native/deadline/fleet.py b/sdk/python/pulumi_aws_native/deadline/fleet.py new file mode 100644 index 0000000000..509075e829 --- /dev/null +++ b/sdk/python/pulumi_aws_native/deadline/fleet.py @@ -0,0 +1,281 @@ +# 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__ = ['FleetArgs', 'Fleet'] + +@pulumi.input_type +class FleetArgs: + def __init__(__self__, *, + configuration: pulumi.Input[Union['FleetConfiguration0PropertiesArgs', 'FleetConfiguration1PropertiesArgs']], + display_name: pulumi.Input[str], + max_worker_count: pulumi.Input[int], + role_arn: pulumi.Input[str], + description: Optional[pulumi.Input[str]] = None, + farm_id: Optional[pulumi.Input[str]] = None, + min_worker_count: Optional[pulumi.Input[int]] = None): + """ + The set of arguments for constructing a Fleet resource. + """ + pulumi.set(__self__, "configuration", configuration) + pulumi.set(__self__, "display_name", display_name) + pulumi.set(__self__, "max_worker_count", max_worker_count) + pulumi.set(__self__, "role_arn", role_arn) + if description is not None: + pulumi.set(__self__, "description", description) + if farm_id is not None: + pulumi.set(__self__, "farm_id", farm_id) + if min_worker_count is not None: + pulumi.set(__self__, "min_worker_count", min_worker_count) + + @property + @pulumi.getter + def configuration(self) -> pulumi.Input[Union['FleetConfiguration0PropertiesArgs', 'FleetConfiguration1PropertiesArgs']]: + return pulumi.get(self, "configuration") + + @configuration.setter + def configuration(self, value: pulumi.Input[Union['FleetConfiguration0PropertiesArgs', 'FleetConfiguration1PropertiesArgs']]): + pulumi.set(self, "configuration", value) + + @property + @pulumi.getter(name="displayName") + def display_name(self) -> pulumi.Input[str]: + return pulumi.get(self, "display_name") + + @display_name.setter + def display_name(self, value: pulumi.Input[str]): + pulumi.set(self, "display_name", value) + + @property + @pulumi.getter(name="maxWorkerCount") + def max_worker_count(self) -> pulumi.Input[int]: + return pulumi.get(self, "max_worker_count") + + @max_worker_count.setter + def max_worker_count(self, value: pulumi.Input[int]): + pulumi.set(self, "max_worker_count", value) + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> pulumi.Input[str]: + return pulumi.get(self, "role_arn") + + @role_arn.setter + def role_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "role_arn", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter(name="farmId") + def farm_id(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "farm_id") + + @farm_id.setter + def farm_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "farm_id", value) + + @property + @pulumi.getter(name="minWorkerCount") + def min_worker_count(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "min_worker_count") + + @min_worker_count.setter + def min_worker_count(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "min_worker_count", value) + + +class Fleet(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + configuration: Optional[pulumi.Input[Union[pulumi.InputType['FleetConfiguration0PropertiesArgs'], pulumi.InputType['FleetConfiguration1PropertiesArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + farm_id: Optional[pulumi.Input[str]] = None, + max_worker_count: Optional[pulumi.Input[int]] = None, + min_worker_count: Optional[pulumi.Input[int]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Definition of AWS::Deadline::Fleet Resource Type + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: FleetArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Definition of AWS::Deadline::Fleet Resource Type + + :param str resource_name: The name of the resource. + :param FleetArgs 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(FleetArgs, 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, + configuration: Optional[pulumi.Input[Union[pulumi.InputType['FleetConfiguration0PropertiesArgs'], pulumi.InputType['FleetConfiguration1PropertiesArgs']]]] = None, + description: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + farm_id: Optional[pulumi.Input[str]] = None, + max_worker_count: Optional[pulumi.Input[int]] = None, + min_worker_count: Optional[pulumi.Input[int]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = FleetArgs.__new__(FleetArgs) + + if configuration is None and not opts.urn: + raise TypeError("Missing required property 'configuration'") + __props__.__dict__["configuration"] = configuration + __props__.__dict__["description"] = description + if display_name is None and not opts.urn: + raise TypeError("Missing required property 'display_name'") + __props__.__dict__["display_name"] = display_name + __props__.__dict__["farm_id"] = farm_id + if max_worker_count is None and not opts.urn: + raise TypeError("Missing required property 'max_worker_count'") + __props__.__dict__["max_worker_count"] = max_worker_count + __props__.__dict__["min_worker_count"] = min_worker_count + if role_arn is None and not opts.urn: + raise TypeError("Missing required property 'role_arn'") + __props__.__dict__["role_arn"] = role_arn + __props__.__dict__["arn"] = None + __props__.__dict__["capabilities"] = None + __props__.__dict__["fleet_id"] = None + __props__.__dict__["status"] = None + __props__.__dict__["worker_count"] = None + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["farmId"]) + opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) + super(Fleet, __self__).__init__( + 'aws-native:deadline:Fleet', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'Fleet': + """ + Get an existing Fleet 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__ = FleetArgs.__new__(FleetArgs) + + __props__.__dict__["arn"] = None + __props__.__dict__["capabilities"] = None + __props__.__dict__["configuration"] = None + __props__.__dict__["description"] = None + __props__.__dict__["display_name"] = None + __props__.__dict__["farm_id"] = None + __props__.__dict__["fleet_id"] = None + __props__.__dict__["max_worker_count"] = None + __props__.__dict__["min_worker_count"] = None + __props__.__dict__["role_arn"] = None + __props__.__dict__["status"] = None + __props__.__dict__["worker_count"] = None + return Fleet(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + return pulumi.get(self, "arn") + + @property + @pulumi.getter + def capabilities(self) -> pulumi.Output['outputs.FleetCapabilities']: + return pulumi.get(self, "capabilities") + + @property + @pulumi.getter + def configuration(self) -> pulumi.Output[Any]: + return pulumi.get(self, "configuration") + + @property + @pulumi.getter + def description(self) -> pulumi.Output[Optional[str]]: + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="displayName") + def display_name(self) -> pulumi.Output[str]: + return pulumi.get(self, "display_name") + + @property + @pulumi.getter(name="farmId") + def farm_id(self) -> pulumi.Output[Optional[str]]: + return pulumi.get(self, "farm_id") + + @property + @pulumi.getter(name="fleetId") + def fleet_id(self) -> pulumi.Output[str]: + return pulumi.get(self, "fleet_id") + + @property + @pulumi.getter(name="maxWorkerCount") + def max_worker_count(self) -> pulumi.Output[int]: + return pulumi.get(self, "max_worker_count") + + @property + @pulumi.getter(name="minWorkerCount") + def min_worker_count(self) -> pulumi.Output[Optional[int]]: + return pulumi.get(self, "min_worker_count") + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> pulumi.Output[str]: + return pulumi.get(self, "role_arn") + + @property + @pulumi.getter + def status(self) -> pulumi.Output['FleetStatus']: + return pulumi.get(self, "status") + + @property + @pulumi.getter(name="workerCount") + def worker_count(self) -> pulumi.Output[int]: + return pulumi.get(self, "worker_count") + diff --git a/sdk/python/pulumi_aws_native/deadline/get_farm.py b/sdk/python/pulumi_aws_native/deadline/get_farm.py new file mode 100644 index 0000000000..fa8b37b6cf --- /dev/null +++ b/sdk/python/pulumi_aws_native/deadline/get_farm.py @@ -0,0 +1,91 @@ +# 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__ = [ + 'GetFarmResult', + 'AwaitableGetFarmResult', + 'get_farm', + 'get_farm_output', +] + +@pulumi.output_type +class GetFarmResult: + def __init__(__self__, arn=None, description=None, display_name=None, farm_id=None): + if arn and not isinstance(arn, str): + raise TypeError("Expected argument 'arn' to be a str") + pulumi.set(__self__, "arn", arn) + if description and not isinstance(description, str): + raise TypeError("Expected argument 'description' to be a str") + pulumi.set(__self__, "description", description) + if display_name and not isinstance(display_name, str): + raise TypeError("Expected argument 'display_name' to be a str") + pulumi.set(__self__, "display_name", display_name) + if farm_id and not isinstance(farm_id, str): + raise TypeError("Expected argument 'farm_id' to be a str") + pulumi.set(__self__, "farm_id", farm_id) + + @property + @pulumi.getter + def arn(self) -> Optional[str]: + return pulumi.get(self, "arn") + + @property + @pulumi.getter + def description(self) -> Optional[str]: + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="displayName") + def display_name(self) -> Optional[str]: + return pulumi.get(self, "display_name") + + @property + @pulumi.getter(name="farmId") + def farm_id(self) -> Optional[str]: + return pulumi.get(self, "farm_id") + + +class AwaitableGetFarmResult(GetFarmResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetFarmResult( + arn=self.arn, + description=self.description, + display_name=self.display_name, + farm_id=self.farm_id) + + +def get_farm(arn: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetFarmResult: + """ + Definition of AWS::Deadline::Farm Resource Type + """ + __args__ = dict() + __args__['arn'] = arn + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:deadline:getFarm', __args__, opts=opts, typ=GetFarmResult).value + + return AwaitableGetFarmResult( + arn=pulumi.get(__ret__, 'arn'), + description=pulumi.get(__ret__, 'description'), + display_name=pulumi.get(__ret__, 'display_name'), + farm_id=pulumi.get(__ret__, 'farm_id')) + + +@_utilities.lift_output_func(get_farm) +def get_farm_output(arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetFarmResult]: + """ + Definition of AWS::Deadline::Farm Resource Type + """ + ... diff --git a/sdk/python/pulumi_aws_native/deadline/get_fleet.py b/sdk/python/pulumi_aws_native/deadline/get_fleet.py new file mode 100644 index 0000000000..a1bf535815 --- /dev/null +++ b/sdk/python/pulumi_aws_native/deadline/get_fleet.py @@ -0,0 +1,163 @@ +# 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__ = [ + 'GetFleetResult', + 'AwaitableGetFleetResult', + 'get_fleet', + 'get_fleet_output', +] + +@pulumi.output_type +class GetFleetResult: + def __init__(__self__, arn=None, capabilities=None, configuration=None, description=None, display_name=None, fleet_id=None, max_worker_count=None, min_worker_count=None, role_arn=None, status=None, worker_count=None): + if arn and not isinstance(arn, str): + raise TypeError("Expected argument 'arn' to be a str") + pulumi.set(__self__, "arn", arn) + if capabilities and not isinstance(capabilities, dict): + raise TypeError("Expected argument 'capabilities' to be a dict") + pulumi.set(__self__, "capabilities", capabilities) + if configuration and not isinstance(configuration, dict): + raise TypeError("Expected argument 'configuration' to be a dict") + pulumi.set(__self__, "configuration", configuration) + if description and not isinstance(description, str): + raise TypeError("Expected argument 'description' to be a str") + pulumi.set(__self__, "description", description) + if display_name and not isinstance(display_name, str): + raise TypeError("Expected argument 'display_name' to be a str") + pulumi.set(__self__, "display_name", display_name) + if fleet_id and not isinstance(fleet_id, str): + raise TypeError("Expected argument 'fleet_id' to be a str") + pulumi.set(__self__, "fleet_id", fleet_id) + if max_worker_count and not isinstance(max_worker_count, int): + raise TypeError("Expected argument 'max_worker_count' to be a int") + pulumi.set(__self__, "max_worker_count", max_worker_count) + if min_worker_count and not isinstance(min_worker_count, int): + raise TypeError("Expected argument 'min_worker_count' to be a int") + pulumi.set(__self__, "min_worker_count", min_worker_count) + 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 status and not isinstance(status, str): + raise TypeError("Expected argument 'status' to be a str") + pulumi.set(__self__, "status", status) + if worker_count and not isinstance(worker_count, int): + raise TypeError("Expected argument 'worker_count' to be a int") + pulumi.set(__self__, "worker_count", worker_count) + + @property + @pulumi.getter + def arn(self) -> Optional[str]: + return pulumi.get(self, "arn") + + @property + @pulumi.getter + def capabilities(self) -> Optional['outputs.FleetCapabilities']: + return pulumi.get(self, "capabilities") + + @property + @pulumi.getter + def configuration(self) -> Optional[Any]: + return pulumi.get(self, "configuration") + + @property + @pulumi.getter + def description(self) -> Optional[str]: + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="displayName") + def display_name(self) -> Optional[str]: + return pulumi.get(self, "display_name") + + @property + @pulumi.getter(name="fleetId") + def fleet_id(self) -> Optional[str]: + return pulumi.get(self, "fleet_id") + + @property + @pulumi.getter(name="maxWorkerCount") + def max_worker_count(self) -> Optional[int]: + return pulumi.get(self, "max_worker_count") + + @property + @pulumi.getter(name="minWorkerCount") + def min_worker_count(self) -> Optional[int]: + return pulumi.get(self, "min_worker_count") + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> Optional[str]: + return pulumi.get(self, "role_arn") + + @property + @pulumi.getter + def status(self) -> Optional['FleetStatus']: + return pulumi.get(self, "status") + + @property + @pulumi.getter(name="workerCount") + def worker_count(self) -> Optional[int]: + return pulumi.get(self, "worker_count") + + +class AwaitableGetFleetResult(GetFleetResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetFleetResult( + arn=self.arn, + capabilities=self.capabilities, + configuration=self.configuration, + description=self.description, + display_name=self.display_name, + fleet_id=self.fleet_id, + max_worker_count=self.max_worker_count, + min_worker_count=self.min_worker_count, + role_arn=self.role_arn, + status=self.status, + worker_count=self.worker_count) + + +def get_fleet(arn: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetFleetResult: + """ + Definition of AWS::Deadline::Fleet Resource Type + """ + __args__ = dict() + __args__['arn'] = arn + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:deadline:getFleet', __args__, opts=opts, typ=GetFleetResult).value + + return AwaitableGetFleetResult( + arn=pulumi.get(__ret__, 'arn'), + capabilities=pulumi.get(__ret__, 'capabilities'), + configuration=pulumi.get(__ret__, 'configuration'), + description=pulumi.get(__ret__, 'description'), + display_name=pulumi.get(__ret__, 'display_name'), + fleet_id=pulumi.get(__ret__, 'fleet_id'), + max_worker_count=pulumi.get(__ret__, 'max_worker_count'), + min_worker_count=pulumi.get(__ret__, 'min_worker_count'), + role_arn=pulumi.get(__ret__, 'role_arn'), + status=pulumi.get(__ret__, 'status'), + worker_count=pulumi.get(__ret__, 'worker_count')) + + +@_utilities.lift_output_func(get_fleet) +def get_fleet_output(arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetFleetResult]: + """ + Definition of AWS::Deadline::Fleet Resource Type + """ + ... diff --git a/sdk/python/pulumi_aws_native/deadline/get_license_endpoint.py b/sdk/python/pulumi_aws_native/deadline/get_license_endpoint.py new file mode 100644 index 0000000000..19616cb513 --- /dev/null +++ b/sdk/python/pulumi_aws_native/deadline/get_license_endpoint.py @@ -0,0 +1,102 @@ +# 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__ = [ + 'GetLicenseEndpointResult', + 'AwaitableGetLicenseEndpointResult', + 'get_license_endpoint', + 'get_license_endpoint_output', +] + +@pulumi.output_type +class GetLicenseEndpointResult: + def __init__(__self__, arn=None, dns_name=None, license_endpoint_id=None, status=None, status_message=None): + if arn and not isinstance(arn, str): + raise TypeError("Expected argument 'arn' to be a str") + pulumi.set(__self__, "arn", arn) + if dns_name and not isinstance(dns_name, str): + raise TypeError("Expected argument 'dns_name' to be a str") + pulumi.set(__self__, "dns_name", dns_name) + if license_endpoint_id and not isinstance(license_endpoint_id, str): + raise TypeError("Expected argument 'license_endpoint_id' to be a str") + pulumi.set(__self__, "license_endpoint_id", license_endpoint_id) + if status and not isinstance(status, str): + raise TypeError("Expected argument 'status' to be a str") + pulumi.set(__self__, "status", status) + if status_message and not isinstance(status_message, str): + raise TypeError("Expected argument 'status_message' to be a str") + pulumi.set(__self__, "status_message", status_message) + + @property + @pulumi.getter + def arn(self) -> Optional[str]: + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="dnsName") + def dns_name(self) -> Optional[str]: + return pulumi.get(self, "dns_name") + + @property + @pulumi.getter(name="licenseEndpointId") + def license_endpoint_id(self) -> Optional[str]: + return pulumi.get(self, "license_endpoint_id") + + @property + @pulumi.getter + def status(self) -> Optional['LicenseEndpointStatus']: + return pulumi.get(self, "status") + + @property + @pulumi.getter(name="statusMessage") + def status_message(self) -> Optional[str]: + return pulumi.get(self, "status_message") + + +class AwaitableGetLicenseEndpointResult(GetLicenseEndpointResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetLicenseEndpointResult( + arn=self.arn, + dns_name=self.dns_name, + license_endpoint_id=self.license_endpoint_id, + status=self.status, + status_message=self.status_message) + + +def get_license_endpoint(arn: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetLicenseEndpointResult: + """ + Definition of AWS::Deadline::LicenseEndpoint Resource Type + """ + __args__ = dict() + __args__['arn'] = arn + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:deadline:getLicenseEndpoint', __args__, opts=opts, typ=GetLicenseEndpointResult).value + + return AwaitableGetLicenseEndpointResult( + arn=pulumi.get(__ret__, 'arn'), + dns_name=pulumi.get(__ret__, 'dns_name'), + license_endpoint_id=pulumi.get(__ret__, 'license_endpoint_id'), + status=pulumi.get(__ret__, 'status'), + status_message=pulumi.get(__ret__, 'status_message')) + + +@_utilities.lift_output_func(get_license_endpoint) +def get_license_endpoint_output(arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetLicenseEndpointResult]: + """ + Definition of AWS::Deadline::LicenseEndpoint Resource Type + """ + ... diff --git a/sdk/python/pulumi_aws_native/deadline/get_metered_product.py b/sdk/python/pulumi_aws_native/deadline/get_metered_product.py new file mode 100644 index 0000000000..b034da9544 --- /dev/null +++ b/sdk/python/pulumi_aws_native/deadline/get_metered_product.py @@ -0,0 +1,91 @@ +# 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__ = [ + 'GetMeteredProductResult', + 'AwaitableGetMeteredProductResult', + 'get_metered_product', + 'get_metered_product_output', +] + +@pulumi.output_type +class GetMeteredProductResult: + def __init__(__self__, arn=None, family=None, port=None, vendor=None): + if arn and not isinstance(arn, str): + raise TypeError("Expected argument 'arn' to be a str") + pulumi.set(__self__, "arn", arn) + if family and not isinstance(family, str): + raise TypeError("Expected argument 'family' to be a str") + pulumi.set(__self__, "family", family) + if port and not isinstance(port, int): + raise TypeError("Expected argument 'port' to be a int") + pulumi.set(__self__, "port", port) + if vendor and not isinstance(vendor, str): + raise TypeError("Expected argument 'vendor' to be a str") + pulumi.set(__self__, "vendor", vendor) + + @property + @pulumi.getter + def arn(self) -> Optional[str]: + return pulumi.get(self, "arn") + + @property + @pulumi.getter + def family(self) -> Optional[str]: + return pulumi.get(self, "family") + + @property + @pulumi.getter + def port(self) -> Optional[int]: + return pulumi.get(self, "port") + + @property + @pulumi.getter + def vendor(self) -> Optional[str]: + return pulumi.get(self, "vendor") + + +class AwaitableGetMeteredProductResult(GetMeteredProductResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetMeteredProductResult( + arn=self.arn, + family=self.family, + port=self.port, + vendor=self.vendor) + + +def get_metered_product(arn: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetMeteredProductResult: + """ + Definition of AWS::Deadline::MeteredProduct Resource Type + """ + __args__ = dict() + __args__['arn'] = arn + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:deadline:getMeteredProduct', __args__, opts=opts, typ=GetMeteredProductResult).value + + return AwaitableGetMeteredProductResult( + arn=pulumi.get(__ret__, 'arn'), + family=pulumi.get(__ret__, 'family'), + port=pulumi.get(__ret__, 'port'), + vendor=pulumi.get(__ret__, 'vendor')) + + +@_utilities.lift_output_func(get_metered_product) +def get_metered_product_output(arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetMeteredProductResult]: + """ + Definition of AWS::Deadline::MeteredProduct Resource Type + """ + ... diff --git a/sdk/python/pulumi_aws_native/deadline/get_queue.py b/sdk/python/pulumi_aws_native/deadline/get_queue.py new file mode 100644 index 0000000000..a43712b0d8 --- /dev/null +++ b/sdk/python/pulumi_aws_native/deadline/get_queue.py @@ -0,0 +1,153 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from . import outputs +from ._enums import * + +__all__ = [ + 'GetQueueResult', + 'AwaitableGetQueueResult', + 'get_queue', + 'get_queue_output', +] + +@pulumi.output_type +class GetQueueResult: + def __init__(__self__, allowed_storage_profile_ids=None, arn=None, default_budget_action=None, description=None, display_name=None, job_attachment_settings=None, job_run_as_user=None, queue_id=None, required_file_system_location_names=None, role_arn=None): + if allowed_storage_profile_ids and not isinstance(allowed_storage_profile_ids, list): + raise TypeError("Expected argument 'allowed_storage_profile_ids' to be a list") + pulumi.set(__self__, "allowed_storage_profile_ids", allowed_storage_profile_ids) + if arn and not isinstance(arn, str): + raise TypeError("Expected argument 'arn' to be a str") + pulumi.set(__self__, "arn", arn) + if default_budget_action and not isinstance(default_budget_action, str): + raise TypeError("Expected argument 'default_budget_action' to be a str") + pulumi.set(__self__, "default_budget_action", default_budget_action) + if description and not isinstance(description, str): + raise TypeError("Expected argument 'description' to be a str") + pulumi.set(__self__, "description", description) + if display_name and not isinstance(display_name, str): + raise TypeError("Expected argument 'display_name' to be a str") + pulumi.set(__self__, "display_name", display_name) + if job_attachment_settings and not isinstance(job_attachment_settings, dict): + raise TypeError("Expected argument 'job_attachment_settings' to be a dict") + pulumi.set(__self__, "job_attachment_settings", job_attachment_settings) + if job_run_as_user and not isinstance(job_run_as_user, dict): + raise TypeError("Expected argument 'job_run_as_user' to be a dict") + pulumi.set(__self__, "job_run_as_user", job_run_as_user) + if queue_id and not isinstance(queue_id, str): + raise TypeError("Expected argument 'queue_id' to be a str") + pulumi.set(__self__, "queue_id", queue_id) + if required_file_system_location_names and not isinstance(required_file_system_location_names, list): + raise TypeError("Expected argument 'required_file_system_location_names' to be a list") + pulumi.set(__self__, "required_file_system_location_names", required_file_system_location_names) + 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) + + @property + @pulumi.getter(name="allowedStorageProfileIds") + def allowed_storage_profile_ids(self) -> Optional[Sequence[str]]: + return pulumi.get(self, "allowed_storage_profile_ids") + + @property + @pulumi.getter + def arn(self) -> Optional[str]: + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="defaultBudgetAction") + def default_budget_action(self) -> Optional['QueueDefaultQueueBudgetAction']: + return pulumi.get(self, "default_budget_action") + + @property + @pulumi.getter + def description(self) -> Optional[str]: + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="displayName") + def display_name(self) -> Optional[str]: + return pulumi.get(self, "display_name") + + @property + @pulumi.getter(name="jobAttachmentSettings") + def job_attachment_settings(self) -> Optional['outputs.QueueJobAttachmentSettings']: + return pulumi.get(self, "job_attachment_settings") + + @property + @pulumi.getter(name="jobRunAsUser") + def job_run_as_user(self) -> Optional['outputs.QueueJobRunAsUser']: + return pulumi.get(self, "job_run_as_user") + + @property + @pulumi.getter(name="queueId") + def queue_id(self) -> Optional[str]: + return pulumi.get(self, "queue_id") + + @property + @pulumi.getter(name="requiredFileSystemLocationNames") + def required_file_system_location_names(self) -> Optional[Sequence[str]]: + return pulumi.get(self, "required_file_system_location_names") + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> Optional[str]: + return pulumi.get(self, "role_arn") + + +class AwaitableGetQueueResult(GetQueueResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetQueueResult( + allowed_storage_profile_ids=self.allowed_storage_profile_ids, + arn=self.arn, + default_budget_action=self.default_budget_action, + description=self.description, + display_name=self.display_name, + job_attachment_settings=self.job_attachment_settings, + job_run_as_user=self.job_run_as_user, + queue_id=self.queue_id, + required_file_system_location_names=self.required_file_system_location_names, + role_arn=self.role_arn) + + +def get_queue(arn: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetQueueResult: + """ + Definition of AWS::Deadline::Queue Resource Type + """ + __args__ = dict() + __args__['arn'] = arn + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:deadline:getQueue', __args__, opts=opts, typ=GetQueueResult).value + + return AwaitableGetQueueResult( + allowed_storage_profile_ids=pulumi.get(__ret__, 'allowed_storage_profile_ids'), + arn=pulumi.get(__ret__, 'arn'), + default_budget_action=pulumi.get(__ret__, 'default_budget_action'), + description=pulumi.get(__ret__, 'description'), + display_name=pulumi.get(__ret__, 'display_name'), + job_attachment_settings=pulumi.get(__ret__, 'job_attachment_settings'), + job_run_as_user=pulumi.get(__ret__, 'job_run_as_user'), + queue_id=pulumi.get(__ret__, 'queue_id'), + required_file_system_location_names=pulumi.get(__ret__, 'required_file_system_location_names'), + role_arn=pulumi.get(__ret__, 'role_arn')) + + +@_utilities.lift_output_func(get_queue) +def get_queue_output(arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetQueueResult]: + """ + Definition of AWS::Deadline::Queue Resource Type + """ + ... diff --git a/sdk/python/pulumi_aws_native/deadline/get_queue_environment.py b/sdk/python/pulumi_aws_native/deadline/get_queue_environment.py new file mode 100644 index 0000000000..dc5f83427b --- /dev/null +++ b/sdk/python/pulumi_aws_native/deadline/get_queue_environment.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 ._enums import * + +__all__ = [ + 'GetQueueEnvironmentResult', + 'AwaitableGetQueueEnvironmentResult', + 'get_queue_environment', + 'get_queue_environment_output', +] + +@pulumi.output_type +class GetQueueEnvironmentResult: + def __init__(__self__, name=None, priority=None, queue_environment_id=None, template=None, template_type=None): + if name and not isinstance(name, str): + raise TypeError("Expected argument 'name' to be a str") + pulumi.set(__self__, "name", name) + if priority and not isinstance(priority, int): + raise TypeError("Expected argument 'priority' to be a int") + pulumi.set(__self__, "priority", priority) + if queue_environment_id and not isinstance(queue_environment_id, str): + raise TypeError("Expected argument 'queue_environment_id' to be a str") + pulumi.set(__self__, "queue_environment_id", queue_environment_id) + if template and not isinstance(template, str): + raise TypeError("Expected argument 'template' to be a str") + pulumi.set(__self__, "template", template) + if template_type and not isinstance(template_type, str): + raise TypeError("Expected argument 'template_type' to be a str") + pulumi.set(__self__, "template_type", template_type) + + @property + @pulumi.getter + def name(self) -> Optional[str]: + return pulumi.get(self, "name") + + @property + @pulumi.getter + def priority(self) -> Optional[int]: + return pulumi.get(self, "priority") + + @property + @pulumi.getter(name="queueEnvironmentId") + def queue_environment_id(self) -> Optional[str]: + return pulumi.get(self, "queue_environment_id") + + @property + @pulumi.getter + def template(self) -> Optional[str]: + return pulumi.get(self, "template") + + @property + @pulumi.getter(name="templateType") + def template_type(self) -> Optional['QueueEnvironmentEnvironmentTemplateType']: + return pulumi.get(self, "template_type") + + +class AwaitableGetQueueEnvironmentResult(GetQueueEnvironmentResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetQueueEnvironmentResult( + name=self.name, + priority=self.priority, + queue_environment_id=self.queue_environment_id, + template=self.template, + template_type=self.template_type) + + +def get_queue_environment(farm_id: Optional[str] = None, + queue_environment_id: Optional[str] = None, + queue_id: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetQueueEnvironmentResult: + """ + Definition of AWS::Deadline::QueueEnvironment Resource Type + """ + __args__ = dict() + __args__['farmId'] = farm_id + __args__['queueEnvironmentId'] = queue_environment_id + __args__['queueId'] = queue_id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:deadline:getQueueEnvironment', __args__, opts=opts, typ=GetQueueEnvironmentResult).value + + return AwaitableGetQueueEnvironmentResult( + name=pulumi.get(__ret__, 'name'), + priority=pulumi.get(__ret__, 'priority'), + queue_environment_id=pulumi.get(__ret__, 'queue_environment_id'), + template=pulumi.get(__ret__, 'template'), + template_type=pulumi.get(__ret__, 'template_type')) + + +@_utilities.lift_output_func(get_queue_environment) +def get_queue_environment_output(farm_id: Optional[pulumi.Input[str]] = None, + queue_environment_id: Optional[pulumi.Input[str]] = None, + queue_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetQueueEnvironmentResult]: + """ + Definition of AWS::Deadline::QueueEnvironment Resource Type + """ + ... diff --git a/sdk/python/pulumi_aws_native/deadline/get_storage_profile.py b/sdk/python/pulumi_aws_native/deadline/get_storage_profile.py new file mode 100644 index 0000000000..6347b093ed --- /dev/null +++ b/sdk/python/pulumi_aws_native/deadline/get_storage_profile.py @@ -0,0 +1,96 @@ +# 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__ = [ + 'GetStorageProfileResult', + 'AwaitableGetStorageProfileResult', + 'get_storage_profile', + 'get_storage_profile_output', +] + +@pulumi.output_type +class GetStorageProfileResult: + def __init__(__self__, display_name=None, file_system_locations=None, os_family=None, storage_profile_id=None): + if display_name and not isinstance(display_name, str): + raise TypeError("Expected argument 'display_name' to be a str") + pulumi.set(__self__, "display_name", display_name) + if file_system_locations and not isinstance(file_system_locations, list): + raise TypeError("Expected argument 'file_system_locations' to be a list") + pulumi.set(__self__, "file_system_locations", file_system_locations) + if os_family and not isinstance(os_family, str): + raise TypeError("Expected argument 'os_family' to be a str") + pulumi.set(__self__, "os_family", os_family) + if storage_profile_id and not isinstance(storage_profile_id, str): + raise TypeError("Expected argument 'storage_profile_id' to be a str") + pulumi.set(__self__, "storage_profile_id", storage_profile_id) + + @property + @pulumi.getter(name="displayName") + def display_name(self) -> Optional[str]: + return pulumi.get(self, "display_name") + + @property + @pulumi.getter(name="fileSystemLocations") + def file_system_locations(self) -> Optional[Sequence['outputs.StorageProfileFileSystemLocation']]: + return pulumi.get(self, "file_system_locations") + + @property + @pulumi.getter(name="osFamily") + def os_family(self) -> Optional['StorageProfileOperatingSystemFamily']: + return pulumi.get(self, "os_family") + + @property + @pulumi.getter(name="storageProfileId") + def storage_profile_id(self) -> Optional[str]: + return pulumi.get(self, "storage_profile_id") + + +class AwaitableGetStorageProfileResult(GetStorageProfileResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetStorageProfileResult( + display_name=self.display_name, + file_system_locations=self.file_system_locations, + os_family=self.os_family, + storage_profile_id=self.storage_profile_id) + + +def get_storage_profile(farm_id: Optional[str] = None, + storage_profile_id: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetStorageProfileResult: + """ + Definition of AWS::Deadline::StorageProfile Resource Type + """ + __args__ = dict() + __args__['farmId'] = farm_id + __args__['storageProfileId'] = storage_profile_id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:deadline:getStorageProfile', __args__, opts=opts, typ=GetStorageProfileResult).value + + return AwaitableGetStorageProfileResult( + display_name=pulumi.get(__ret__, 'display_name'), + file_system_locations=pulumi.get(__ret__, 'file_system_locations'), + os_family=pulumi.get(__ret__, 'os_family'), + storage_profile_id=pulumi.get(__ret__, 'storage_profile_id')) + + +@_utilities.lift_output_func(get_storage_profile) +def get_storage_profile_output(farm_id: Optional[pulumi.Input[str]] = None, + storage_profile_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetStorageProfileResult]: + """ + Definition of AWS::Deadline::StorageProfile Resource Type + """ + ... diff --git a/sdk/python/pulumi_aws_native/deadline/license_endpoint.py b/sdk/python/pulumi_aws_native/deadline/license_endpoint.py new file mode 100644 index 0000000000..de1683d56a --- /dev/null +++ b/sdk/python/pulumi_aws_native/deadline/license_endpoint.py @@ -0,0 +1,194 @@ +# 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__ = ['LicenseEndpointArgs', 'LicenseEndpoint'] + +@pulumi.input_type +class LicenseEndpointArgs: + def __init__(__self__, *, + security_group_ids: pulumi.Input[Sequence[pulumi.Input[str]]], + subnet_ids: pulumi.Input[Sequence[pulumi.Input[str]]], + vpc_id: pulumi.Input[str]): + """ + The set of arguments for constructing a LicenseEndpoint resource. + """ + pulumi.set(__self__, "security_group_ids", security_group_ids) + pulumi.set(__self__, "subnet_ids", subnet_ids) + pulumi.set(__self__, "vpc_id", vpc_id) + + @property + @pulumi.getter(name="securityGroupIds") + def security_group_ids(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: + return pulumi.get(self, "security_group_ids") + + @security_group_ids.setter + def security_group_ids(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): + pulumi.set(self, "security_group_ids", value) + + @property + @pulumi.getter(name="subnetIds") + def subnet_ids(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: + 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="vpcId") + def vpc_id(self) -> pulumi.Input[str]: + return pulumi.get(self, "vpc_id") + + @vpc_id.setter + def vpc_id(self, value: pulumi.Input[str]): + pulumi.set(self, "vpc_id", value) + + +class LicenseEndpoint(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Definition of AWS::Deadline::LicenseEndpoint Resource Type + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: LicenseEndpointArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Definition of AWS::Deadline::LicenseEndpoint Resource Type + + :param str resource_name: The name of the resource. + :param LicenseEndpointArgs 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(LicenseEndpointArgs, 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, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = LicenseEndpointArgs.__new__(LicenseEndpointArgs) + + if security_group_ids is None and not opts.urn: + raise TypeError("Missing required property 'security_group_ids'") + __props__.__dict__["security_group_ids"] = security_group_ids + if subnet_ids is None and not opts.urn: + raise TypeError("Missing required property 'subnet_ids'") + __props__.__dict__["subnet_ids"] = subnet_ids + if vpc_id is None and not opts.urn: + raise TypeError("Missing required property 'vpc_id'") + __props__.__dict__["vpc_id"] = vpc_id + __props__.__dict__["arn"] = None + __props__.__dict__["dns_name"] = None + __props__.__dict__["license_endpoint_id"] = None + __props__.__dict__["status"] = None + __props__.__dict__["status_message"] = None + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["securityGroupIds[*]", "subnetIds[*]", "vpcId"]) + opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) + super(LicenseEndpoint, __self__).__init__( + 'aws-native:deadline:LicenseEndpoint', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'LicenseEndpoint': + """ + Get an existing LicenseEndpoint 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__ = LicenseEndpointArgs.__new__(LicenseEndpointArgs) + + __props__.__dict__["arn"] = None + __props__.__dict__["dns_name"] = None + __props__.__dict__["license_endpoint_id"] = None + __props__.__dict__["security_group_ids"] = None + __props__.__dict__["status"] = None + __props__.__dict__["status_message"] = None + __props__.__dict__["subnet_ids"] = None + __props__.__dict__["vpc_id"] = None + return LicenseEndpoint(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="dnsName") + def dns_name(self) -> pulumi.Output[str]: + return pulumi.get(self, "dns_name") + + @property + @pulumi.getter(name="licenseEndpointId") + def license_endpoint_id(self) -> pulumi.Output[str]: + return pulumi.get(self, "license_endpoint_id") + + @property + @pulumi.getter(name="securityGroupIds") + def security_group_ids(self) -> pulumi.Output[Sequence[str]]: + return pulumi.get(self, "security_group_ids") + + @property + @pulumi.getter + def status(self) -> pulumi.Output['LicenseEndpointStatus']: + return pulumi.get(self, "status") + + @property + @pulumi.getter(name="statusMessage") + def status_message(self) -> pulumi.Output[str]: + return pulumi.get(self, "status_message") + + @property + @pulumi.getter(name="subnetIds") + def subnet_ids(self) -> pulumi.Output[Sequence[str]]: + return pulumi.get(self, "subnet_ids") + + @property + @pulumi.getter(name="vpcId") + def vpc_id(self) -> pulumi.Output[str]: + return pulumi.get(self, "vpc_id") + diff --git a/sdk/python/pulumi_aws_native/deadline/metered_product.py b/sdk/python/pulumi_aws_native/deadline/metered_product.py new file mode 100644 index 0000000000..6ba3a7a282 --- /dev/null +++ b/sdk/python/pulumi_aws_native/deadline/metered_product.py @@ -0,0 +1,204 @@ +# 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__ = ['MeteredProductArgs', 'MeteredProduct'] + +@pulumi.input_type +class MeteredProductArgs: + def __init__(__self__, *, + family: Optional[pulumi.Input[str]] = None, + license_endpoint_id: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + product_id: Optional[pulumi.Input[str]] = None, + vendor: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a MeteredProduct resource. + """ + if family is not None: + pulumi.set(__self__, "family", family) + if license_endpoint_id is not None: + pulumi.set(__self__, "license_endpoint_id", license_endpoint_id) + if port is not None: + pulumi.set(__self__, "port", port) + if product_id is not None: + pulumi.set(__self__, "product_id", product_id) + if vendor is not None: + pulumi.set(__self__, "vendor", vendor) + + @property + @pulumi.getter + def family(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "family") + + @family.setter + def family(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "family", value) + + @property + @pulumi.getter(name="licenseEndpointId") + def license_endpoint_id(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "license_endpoint_id") + + @license_endpoint_id.setter + def license_endpoint_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "license_endpoint_id", value) + + @property + @pulumi.getter + def port(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "port") + + @port.setter + def port(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "port", value) + + @property + @pulumi.getter(name="productId") + def product_id(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "product_id") + + @product_id.setter + def product_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "product_id", value) + + @property + @pulumi.getter + def vendor(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "vendor") + + @vendor.setter + def vendor(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "vendor", value) + + +class MeteredProduct(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + family: Optional[pulumi.Input[str]] = None, + license_endpoint_id: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + product_id: Optional[pulumi.Input[str]] = None, + vendor: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Definition of AWS::Deadline::MeteredProduct Resource Type + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: Optional[MeteredProductArgs] = None, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Definition of AWS::Deadline::MeteredProduct Resource Type + + :param str resource_name: The name of the resource. + :param MeteredProductArgs 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(MeteredProductArgs, 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, + family: Optional[pulumi.Input[str]] = None, + license_endpoint_id: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None, + product_id: Optional[pulumi.Input[str]] = None, + vendor: 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__ = MeteredProductArgs.__new__(MeteredProductArgs) + + __props__.__dict__["family"] = family + __props__.__dict__["license_endpoint_id"] = license_endpoint_id + __props__.__dict__["port"] = port + __props__.__dict__["product_id"] = product_id + __props__.__dict__["vendor"] = vendor + __props__.__dict__["arn"] = None + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["licenseEndpointId", "productId"]) + opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) + super(MeteredProduct, __self__).__init__( + 'aws-native:deadline:MeteredProduct', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'MeteredProduct': + """ + Get an existing MeteredProduct 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__ = MeteredProductArgs.__new__(MeteredProductArgs) + + __props__.__dict__["arn"] = None + __props__.__dict__["family"] = None + __props__.__dict__["license_endpoint_id"] = None + __props__.__dict__["port"] = None + __props__.__dict__["product_id"] = None + __props__.__dict__["vendor"] = None + return MeteredProduct(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + return pulumi.get(self, "arn") + + @property + @pulumi.getter + def family(self) -> pulumi.Output[Optional[str]]: + return pulumi.get(self, "family") + + @property + @pulumi.getter(name="licenseEndpointId") + def license_endpoint_id(self) -> pulumi.Output[Optional[str]]: + return pulumi.get(self, "license_endpoint_id") + + @property + @pulumi.getter + def port(self) -> pulumi.Output[Optional[int]]: + return pulumi.get(self, "port") + + @property + @pulumi.getter(name="productId") + def product_id(self) -> pulumi.Output[Optional[str]]: + return pulumi.get(self, "product_id") + + @property + @pulumi.getter + def vendor(self) -> pulumi.Output[Optional[str]]: + return pulumi.get(self, "vendor") + diff --git a/sdk/python/pulumi_aws_native/deadline/outputs.py b/sdk/python/pulumi_aws_native/deadline/outputs.py new file mode 100644 index 0000000000..8f8524f3b5 --- /dev/null +++ b/sdk/python/pulumi_aws_native/deadline/outputs.py @@ -0,0 +1,761 @@ +# 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__ = [ + 'FleetAcceleratorCountRange', + 'FleetAcceleratorTotalMemoryMiBRange', + 'FleetAmountCapability', + 'FleetAttributeCapability', + 'FleetCapabilities', + 'FleetConfiguration0Properties', + 'FleetConfiguration1Properties', + 'FleetCustomerManagedFleetConfiguration', + 'FleetCustomerManagedWorkerCapabilities', + 'FleetEc2EbsVolume', + 'FleetMemoryMiBRange', + 'FleetServiceManagedEc2FleetConfiguration', + 'FleetServiceManagedEc2InstanceCapabilities', + 'FleetServiceManagedEc2InstanceMarketOptions', + 'FleetVCpuCountRange', + 'QueueJobAttachmentSettings', + 'QueueJobRunAsUser', + 'QueuePosixUser', + 'QueueWindowsUser', + 'StorageProfileFileSystemLocation', +] + +@pulumi.output_type +class FleetAcceleratorCountRange(dict): + def __init__(__self__, *, + min: int, + max: Optional[int] = None): + pulumi.set(__self__, "min", min) + if max is not None: + pulumi.set(__self__, "max", max) + + @property + @pulumi.getter + def min(self) -> int: + return pulumi.get(self, "min") + + @property + @pulumi.getter + def max(self) -> Optional[int]: + return pulumi.get(self, "max") + + +@pulumi.output_type +class FleetAcceleratorTotalMemoryMiBRange(dict): + def __init__(__self__, *, + min: int, + max: Optional[int] = None): + pulumi.set(__self__, "min", min) + if max is not None: + pulumi.set(__self__, "max", max) + + @property + @pulumi.getter + def min(self) -> int: + return pulumi.get(self, "min") + + @property + @pulumi.getter + def max(self) -> Optional[int]: + return pulumi.get(self, "max") + + +@pulumi.output_type +class FleetAmountCapability(dict): + def __init__(__self__, *, + min: float, + name: str, + max: Optional[float] = None): + pulumi.set(__self__, "min", min) + pulumi.set(__self__, "name", name) + if max is not None: + pulumi.set(__self__, "max", max) + + @property + @pulumi.getter + def min(self) -> float: + return pulumi.get(self, "min") + + @property + @pulumi.getter + def name(self) -> str: + return pulumi.get(self, "name") + + @property + @pulumi.getter + def max(self) -> Optional[float]: + return pulumi.get(self, "max") + + +@pulumi.output_type +class FleetAttributeCapability(dict): + def __init__(__self__, *, + name: str, + values: Sequence[str]): + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "values", values) + + @property + @pulumi.getter + def name(self) -> str: + return pulumi.get(self, "name") + + @property + @pulumi.getter + def values(self) -> Sequence[str]: + return pulumi.get(self, "values") + + +@pulumi.output_type +class FleetCapabilities(dict): + def __init__(__self__, *, + amounts: Optional[Sequence['outputs.FleetAmountCapability']] = None, + attributes: Optional[Sequence['outputs.FleetAttributeCapability']] = None): + if amounts is not None: + pulumi.set(__self__, "amounts", amounts) + if attributes is not None: + pulumi.set(__self__, "attributes", attributes) + + @property + @pulumi.getter + def amounts(self) -> Optional[Sequence['outputs.FleetAmountCapability']]: + return pulumi.get(self, "amounts") + + @property + @pulumi.getter + def attributes(self) -> Optional[Sequence['outputs.FleetAttributeCapability']]: + return pulumi.get(self, "attributes") + + +@pulumi.output_type +class FleetConfiguration0Properties(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "customerManaged": + suggest = "customer_managed" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in FleetConfiguration0Properties. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + FleetConfiguration0Properties.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + FleetConfiguration0Properties.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + customer_managed: 'outputs.FleetCustomerManagedFleetConfiguration'): + pulumi.set(__self__, "customer_managed", customer_managed) + + @property + @pulumi.getter(name="customerManaged") + def customer_managed(self) -> 'outputs.FleetCustomerManagedFleetConfiguration': + return pulumi.get(self, "customer_managed") + + +@pulumi.output_type +class FleetConfiguration1Properties(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "serviceManagedEc2": + suggest = "service_managed_ec2" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in FleetConfiguration1Properties. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + FleetConfiguration1Properties.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + FleetConfiguration1Properties.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + service_managed_ec2: 'outputs.FleetServiceManagedEc2FleetConfiguration'): + pulumi.set(__self__, "service_managed_ec2", service_managed_ec2) + + @property + @pulumi.getter(name="serviceManagedEc2") + def service_managed_ec2(self) -> 'outputs.FleetServiceManagedEc2FleetConfiguration': + return pulumi.get(self, "service_managed_ec2") + + +@pulumi.output_type +class FleetCustomerManagedFleetConfiguration(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "workerCapabilities": + suggest = "worker_capabilities" + elif key == "storageProfileId": + suggest = "storage_profile_id" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in FleetCustomerManagedFleetConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + FleetCustomerManagedFleetConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + FleetCustomerManagedFleetConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + mode: 'FleetAutoScalingMode', + worker_capabilities: 'outputs.FleetCustomerManagedWorkerCapabilities', + storage_profile_id: Optional[str] = None): + pulumi.set(__self__, "mode", mode) + pulumi.set(__self__, "worker_capabilities", worker_capabilities) + if storage_profile_id is not None: + pulumi.set(__self__, "storage_profile_id", storage_profile_id) + + @property + @pulumi.getter + def mode(self) -> 'FleetAutoScalingMode': + return pulumi.get(self, "mode") + + @property + @pulumi.getter(name="workerCapabilities") + def worker_capabilities(self) -> 'outputs.FleetCustomerManagedWorkerCapabilities': + return pulumi.get(self, "worker_capabilities") + + @property + @pulumi.getter(name="storageProfileId") + def storage_profile_id(self) -> Optional[str]: + return pulumi.get(self, "storage_profile_id") + + +@pulumi.output_type +class FleetCustomerManagedWorkerCapabilities(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "cpuArchitectureType": + suggest = "cpu_architecture_type" + elif key == "memoryMiB": + suggest = "memory_mi_b" + elif key == "osFamily": + suggest = "os_family" + elif key == "vCpuCount": + suggest = "v_cpu_count" + elif key == "acceleratorCount": + suggest = "accelerator_count" + elif key == "acceleratorTotalMemoryMiB": + suggest = "accelerator_total_memory_mi_b" + elif key == "acceleratorTypes": + suggest = "accelerator_types" + elif key == "customAmounts": + suggest = "custom_amounts" + elif key == "customAttributes": + suggest = "custom_attributes" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in FleetCustomerManagedWorkerCapabilities. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + FleetCustomerManagedWorkerCapabilities.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + FleetCustomerManagedWorkerCapabilities.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + cpu_architecture_type: 'FleetCpuArchitectureType', + memory_mi_b: 'outputs.FleetMemoryMiBRange', + os_family: 'FleetCustomerManagedFleetOperatingSystemFamily', + v_cpu_count: 'outputs.FleetVCpuCountRange', + accelerator_count: Optional['outputs.FleetAcceleratorCountRange'] = None, + accelerator_total_memory_mi_b: Optional['outputs.FleetAcceleratorTotalMemoryMiBRange'] = None, + accelerator_types: Optional[Sequence['FleetAcceleratorType']] = None, + custom_amounts: Optional[Sequence['outputs.FleetAmountCapability']] = None, + custom_attributes: Optional[Sequence['outputs.FleetAttributeCapability']] = None): + pulumi.set(__self__, "cpu_architecture_type", cpu_architecture_type) + pulumi.set(__self__, "memory_mi_b", memory_mi_b) + pulumi.set(__self__, "os_family", os_family) + pulumi.set(__self__, "v_cpu_count", v_cpu_count) + if accelerator_count is not None: + pulumi.set(__self__, "accelerator_count", accelerator_count) + if accelerator_total_memory_mi_b is not None: + pulumi.set(__self__, "accelerator_total_memory_mi_b", accelerator_total_memory_mi_b) + if accelerator_types is not None: + pulumi.set(__self__, "accelerator_types", accelerator_types) + if custom_amounts is not None: + pulumi.set(__self__, "custom_amounts", custom_amounts) + if custom_attributes is not None: + pulumi.set(__self__, "custom_attributes", custom_attributes) + + @property + @pulumi.getter(name="cpuArchitectureType") + def cpu_architecture_type(self) -> 'FleetCpuArchitectureType': + return pulumi.get(self, "cpu_architecture_type") + + @property + @pulumi.getter(name="memoryMiB") + def memory_mi_b(self) -> 'outputs.FleetMemoryMiBRange': + return pulumi.get(self, "memory_mi_b") + + @property + @pulumi.getter(name="osFamily") + def os_family(self) -> 'FleetCustomerManagedFleetOperatingSystemFamily': + return pulumi.get(self, "os_family") + + @property + @pulumi.getter(name="vCpuCount") + def v_cpu_count(self) -> 'outputs.FleetVCpuCountRange': + return pulumi.get(self, "v_cpu_count") + + @property + @pulumi.getter(name="acceleratorCount") + def accelerator_count(self) -> Optional['outputs.FleetAcceleratorCountRange']: + return pulumi.get(self, "accelerator_count") + + @property + @pulumi.getter(name="acceleratorTotalMemoryMiB") + def accelerator_total_memory_mi_b(self) -> Optional['outputs.FleetAcceleratorTotalMemoryMiBRange']: + return pulumi.get(self, "accelerator_total_memory_mi_b") + + @property + @pulumi.getter(name="acceleratorTypes") + def accelerator_types(self) -> Optional[Sequence['FleetAcceleratorType']]: + return pulumi.get(self, "accelerator_types") + + @property + @pulumi.getter(name="customAmounts") + def custom_amounts(self) -> Optional[Sequence['outputs.FleetAmountCapability']]: + return pulumi.get(self, "custom_amounts") + + @property + @pulumi.getter(name="customAttributes") + def custom_attributes(self) -> Optional[Sequence['outputs.FleetAttributeCapability']]: + return pulumi.get(self, "custom_attributes") + + +@pulumi.output_type +class FleetEc2EbsVolume(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "sizeGiB": + suggest = "size_gi_b" + elif key == "throughputMiB": + suggest = "throughput_mi_b" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in FleetEc2EbsVolume. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + FleetEc2EbsVolume.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + FleetEc2EbsVolume.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + iops: Optional[int] = None, + size_gi_b: Optional[int] = None, + throughput_mi_b: Optional[int] = None): + if iops is not None: + pulumi.set(__self__, "iops", iops) + if size_gi_b is not None: + pulumi.set(__self__, "size_gi_b", size_gi_b) + if throughput_mi_b is not None: + pulumi.set(__self__, "throughput_mi_b", throughput_mi_b) + + @property + @pulumi.getter + def iops(self) -> Optional[int]: + return pulumi.get(self, "iops") + + @property + @pulumi.getter(name="sizeGiB") + def size_gi_b(self) -> Optional[int]: + return pulumi.get(self, "size_gi_b") + + @property + @pulumi.getter(name="throughputMiB") + def throughput_mi_b(self) -> Optional[int]: + return pulumi.get(self, "throughput_mi_b") + + +@pulumi.output_type +class FleetMemoryMiBRange(dict): + def __init__(__self__, *, + min: int, + max: Optional[int] = None): + pulumi.set(__self__, "min", min) + if max is not None: + pulumi.set(__self__, "max", max) + + @property + @pulumi.getter + def min(self) -> int: + return pulumi.get(self, "min") + + @property + @pulumi.getter + def max(self) -> Optional[int]: + return pulumi.get(self, "max") + + +@pulumi.output_type +class FleetServiceManagedEc2FleetConfiguration(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "instanceCapabilities": + suggest = "instance_capabilities" + elif key == "instanceMarketOptions": + suggest = "instance_market_options" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in FleetServiceManagedEc2FleetConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + FleetServiceManagedEc2FleetConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + FleetServiceManagedEc2FleetConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + instance_capabilities: 'outputs.FleetServiceManagedEc2InstanceCapabilities', + instance_market_options: 'outputs.FleetServiceManagedEc2InstanceMarketOptions'): + pulumi.set(__self__, "instance_capabilities", instance_capabilities) + pulumi.set(__self__, "instance_market_options", instance_market_options) + + @property + @pulumi.getter(name="instanceCapabilities") + def instance_capabilities(self) -> 'outputs.FleetServiceManagedEc2InstanceCapabilities': + return pulumi.get(self, "instance_capabilities") + + @property + @pulumi.getter(name="instanceMarketOptions") + def instance_market_options(self) -> 'outputs.FleetServiceManagedEc2InstanceMarketOptions': + return pulumi.get(self, "instance_market_options") + + +@pulumi.output_type +class FleetServiceManagedEc2InstanceCapabilities(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "cpuArchitectureType": + suggest = "cpu_architecture_type" + elif key == "memoryMiB": + suggest = "memory_mi_b" + elif key == "osFamily": + suggest = "os_family" + elif key == "vCpuCount": + suggest = "v_cpu_count" + elif key == "allowedInstanceTypes": + suggest = "allowed_instance_types" + elif key == "customAmounts": + suggest = "custom_amounts" + elif key == "customAttributes": + suggest = "custom_attributes" + elif key == "excludedInstanceTypes": + suggest = "excluded_instance_types" + elif key == "rootEbsVolume": + suggest = "root_ebs_volume" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in FleetServiceManagedEc2InstanceCapabilities. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + FleetServiceManagedEc2InstanceCapabilities.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + FleetServiceManagedEc2InstanceCapabilities.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + cpu_architecture_type: 'FleetCpuArchitectureType', + memory_mi_b: 'outputs.FleetMemoryMiBRange', + os_family: 'FleetServiceManagedFleetOperatingSystemFamily', + v_cpu_count: 'outputs.FleetVCpuCountRange', + allowed_instance_types: Optional[Sequence[str]] = None, + custom_amounts: Optional[Sequence['outputs.FleetAmountCapability']] = None, + custom_attributes: Optional[Sequence['outputs.FleetAttributeCapability']] = None, + excluded_instance_types: Optional[Sequence[str]] = None, + root_ebs_volume: Optional['outputs.FleetEc2EbsVolume'] = None): + pulumi.set(__self__, "cpu_architecture_type", cpu_architecture_type) + pulumi.set(__self__, "memory_mi_b", memory_mi_b) + pulumi.set(__self__, "os_family", os_family) + pulumi.set(__self__, "v_cpu_count", v_cpu_count) + if allowed_instance_types is not None: + pulumi.set(__self__, "allowed_instance_types", allowed_instance_types) + if custom_amounts is not None: + pulumi.set(__self__, "custom_amounts", custom_amounts) + if custom_attributes is not None: + pulumi.set(__self__, "custom_attributes", custom_attributes) + if excluded_instance_types is not None: + pulumi.set(__self__, "excluded_instance_types", excluded_instance_types) + if root_ebs_volume is not None: + pulumi.set(__self__, "root_ebs_volume", root_ebs_volume) + + @property + @pulumi.getter(name="cpuArchitectureType") + def cpu_architecture_type(self) -> 'FleetCpuArchitectureType': + return pulumi.get(self, "cpu_architecture_type") + + @property + @pulumi.getter(name="memoryMiB") + def memory_mi_b(self) -> 'outputs.FleetMemoryMiBRange': + return pulumi.get(self, "memory_mi_b") + + @property + @pulumi.getter(name="osFamily") + def os_family(self) -> 'FleetServiceManagedFleetOperatingSystemFamily': + return pulumi.get(self, "os_family") + + @property + @pulumi.getter(name="vCpuCount") + def v_cpu_count(self) -> 'outputs.FleetVCpuCountRange': + return pulumi.get(self, "v_cpu_count") + + @property + @pulumi.getter(name="allowedInstanceTypes") + def allowed_instance_types(self) -> Optional[Sequence[str]]: + return pulumi.get(self, "allowed_instance_types") + + @property + @pulumi.getter(name="customAmounts") + def custom_amounts(self) -> Optional[Sequence['outputs.FleetAmountCapability']]: + return pulumi.get(self, "custom_amounts") + + @property + @pulumi.getter(name="customAttributes") + def custom_attributes(self) -> Optional[Sequence['outputs.FleetAttributeCapability']]: + return pulumi.get(self, "custom_attributes") + + @property + @pulumi.getter(name="excludedInstanceTypes") + def excluded_instance_types(self) -> Optional[Sequence[str]]: + return pulumi.get(self, "excluded_instance_types") + + @property + @pulumi.getter(name="rootEbsVolume") + def root_ebs_volume(self) -> Optional['outputs.FleetEc2EbsVolume']: + return pulumi.get(self, "root_ebs_volume") + + +@pulumi.output_type +class FleetServiceManagedEc2InstanceMarketOptions(dict): + def __init__(__self__, *, + type: 'FleetEc2MarketType'): + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter + def type(self) -> 'FleetEc2MarketType': + return pulumi.get(self, "type") + + +@pulumi.output_type +class FleetVCpuCountRange(dict): + def __init__(__self__, *, + min: int, + max: Optional[int] = None): + pulumi.set(__self__, "min", min) + if max is not None: + pulumi.set(__self__, "max", max) + + @property + @pulumi.getter + def min(self) -> int: + return pulumi.get(self, "min") + + @property + @pulumi.getter + def max(self) -> Optional[int]: + return pulumi.get(self, "max") + + +@pulumi.output_type +class QueueJobAttachmentSettings(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "rootPrefix": + suggest = "root_prefix" + elif key == "s3BucketName": + suggest = "s3_bucket_name" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in QueueJobAttachmentSettings. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + QueueJobAttachmentSettings.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + QueueJobAttachmentSettings.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + root_prefix: str, + s3_bucket_name: str): + pulumi.set(__self__, "root_prefix", root_prefix) + pulumi.set(__self__, "s3_bucket_name", s3_bucket_name) + + @property + @pulumi.getter(name="rootPrefix") + def root_prefix(self) -> str: + return pulumi.get(self, "root_prefix") + + @property + @pulumi.getter(name="s3BucketName") + def s3_bucket_name(self) -> str: + return pulumi.get(self, "s3_bucket_name") + + +@pulumi.output_type +class QueueJobRunAsUser(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "runAs": + suggest = "run_as" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in QueueJobRunAsUser. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + QueueJobRunAsUser.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + QueueJobRunAsUser.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + run_as: 'QueueRunAs', + posix: Optional['outputs.QueuePosixUser'] = None, + windows: Optional['outputs.QueueWindowsUser'] = None): + pulumi.set(__self__, "run_as", run_as) + if posix is not None: + pulumi.set(__self__, "posix", posix) + if windows is not None: + pulumi.set(__self__, "windows", windows) + + @property + @pulumi.getter(name="runAs") + def run_as(self) -> 'QueueRunAs': + return pulumi.get(self, "run_as") + + @property + @pulumi.getter + def posix(self) -> Optional['outputs.QueuePosixUser']: + return pulumi.get(self, "posix") + + @property + @pulumi.getter + def windows(self) -> Optional['outputs.QueueWindowsUser']: + return pulumi.get(self, "windows") + + +@pulumi.output_type +class QueuePosixUser(dict): + def __init__(__self__, *, + group: str, + user: str): + pulumi.set(__self__, "group", group) + pulumi.set(__self__, "user", user) + + @property + @pulumi.getter + def group(self) -> str: + return pulumi.get(self, "group") + + @property + @pulumi.getter + def user(self) -> str: + return pulumi.get(self, "user") + + +@pulumi.output_type +class QueueWindowsUser(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "passwordArn": + suggest = "password_arn" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in QueueWindowsUser. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + QueueWindowsUser.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + QueueWindowsUser.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + password_arn: str, + user: str): + pulumi.set(__self__, "password_arn", password_arn) + pulumi.set(__self__, "user", user) + + @property + @pulumi.getter(name="passwordArn") + def password_arn(self) -> str: + return pulumi.get(self, "password_arn") + + @property + @pulumi.getter + def user(self) -> str: + return pulumi.get(self, "user") + + +@pulumi.output_type +class StorageProfileFileSystemLocation(dict): + def __init__(__self__, *, + name: str, + path: str, + type: 'StorageProfileFileSystemLocationType'): + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "path", path) + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter + def name(self) -> str: + return pulumi.get(self, "name") + + @property + @pulumi.getter + def path(self) -> str: + return pulumi.get(self, "path") + + @property + @pulumi.getter + def type(self) -> 'StorageProfileFileSystemLocationType': + return pulumi.get(self, "type") + + diff --git a/sdk/python/pulumi_aws_native/deadline/queue.py b/sdk/python/pulumi_aws_native/deadline/queue.py new file mode 100644 index 0000000000..0465ce2726 --- /dev/null +++ b/sdk/python/pulumi_aws_native/deadline/queue.py @@ -0,0 +1,299 @@ +# 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__ = ['QueueArgs', 'Queue'] + +@pulumi.input_type +class QueueArgs: + def __init__(__self__, *, + display_name: pulumi.Input[str], + allowed_storage_profile_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + default_budget_action: Optional[pulumi.Input['QueueDefaultQueueBudgetAction']] = None, + description: Optional[pulumi.Input[str]] = None, + farm_id: Optional[pulumi.Input[str]] = None, + job_attachment_settings: Optional[pulumi.Input['QueueJobAttachmentSettingsArgs']] = None, + job_run_as_user: Optional[pulumi.Input['QueueJobRunAsUserArgs']] = None, + required_file_system_location_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + role_arn: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a Queue resource. + """ + pulumi.set(__self__, "display_name", display_name) + if allowed_storage_profile_ids is not None: + pulumi.set(__self__, "allowed_storage_profile_ids", allowed_storage_profile_ids) + if default_budget_action is not None: + pulumi.set(__self__, "default_budget_action", default_budget_action) + if description is not None: + pulumi.set(__self__, "description", description) + if farm_id is not None: + pulumi.set(__self__, "farm_id", farm_id) + if job_attachment_settings is not None: + pulumi.set(__self__, "job_attachment_settings", job_attachment_settings) + if job_run_as_user is not None: + pulumi.set(__self__, "job_run_as_user", job_run_as_user) + if required_file_system_location_names is not None: + pulumi.set(__self__, "required_file_system_location_names", required_file_system_location_names) + if role_arn is not None: + pulumi.set(__self__, "role_arn", role_arn) + + @property + @pulumi.getter(name="displayName") + def display_name(self) -> pulumi.Input[str]: + return pulumi.get(self, "display_name") + + @display_name.setter + def display_name(self, value: pulumi.Input[str]): + pulumi.set(self, "display_name", value) + + @property + @pulumi.getter(name="allowedStorageProfileIds") + def allowed_storage_profile_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + return pulumi.get(self, "allowed_storage_profile_ids") + + @allowed_storage_profile_ids.setter + def allowed_storage_profile_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "allowed_storage_profile_ids", value) + + @property + @pulumi.getter(name="defaultBudgetAction") + def default_budget_action(self) -> Optional[pulumi.Input['QueueDefaultQueueBudgetAction']]: + return pulumi.get(self, "default_budget_action") + + @default_budget_action.setter + def default_budget_action(self, value: Optional[pulumi.Input['QueueDefaultQueueBudgetAction']]): + pulumi.set(self, "default_budget_action", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter(name="farmId") + def farm_id(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "farm_id") + + @farm_id.setter + def farm_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "farm_id", value) + + @property + @pulumi.getter(name="jobAttachmentSettings") + def job_attachment_settings(self) -> Optional[pulumi.Input['QueueJobAttachmentSettingsArgs']]: + return pulumi.get(self, "job_attachment_settings") + + @job_attachment_settings.setter + def job_attachment_settings(self, value: Optional[pulumi.Input['QueueJobAttachmentSettingsArgs']]): + pulumi.set(self, "job_attachment_settings", value) + + @property + @pulumi.getter(name="jobRunAsUser") + def job_run_as_user(self) -> Optional[pulumi.Input['QueueJobRunAsUserArgs']]: + return pulumi.get(self, "job_run_as_user") + + @job_run_as_user.setter + def job_run_as_user(self, value: Optional[pulumi.Input['QueueJobRunAsUserArgs']]): + pulumi.set(self, "job_run_as_user", value) + + @property + @pulumi.getter(name="requiredFileSystemLocationNames") + def required_file_system_location_names(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + return pulumi.get(self, "required_file_system_location_names") + + @required_file_system_location_names.setter + def required_file_system_location_names(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "required_file_system_location_names", value) + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "role_arn") + + @role_arn.setter + def role_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "role_arn", value) + + +class Queue(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + allowed_storage_profile_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + default_budget_action: Optional[pulumi.Input['QueueDefaultQueueBudgetAction']] = None, + description: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + farm_id: Optional[pulumi.Input[str]] = None, + job_attachment_settings: Optional[pulumi.Input[pulumi.InputType['QueueJobAttachmentSettingsArgs']]] = None, + job_run_as_user: Optional[pulumi.Input[pulumi.InputType['QueueJobRunAsUserArgs']]] = None, + required_file_system_location_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Definition of AWS::Deadline::Queue Resource Type + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: QueueArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Definition of AWS::Deadline::Queue Resource Type + + :param str resource_name: The name of the resource. + :param QueueArgs 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(QueueArgs, 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, + allowed_storage_profile_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + default_budget_action: Optional[pulumi.Input['QueueDefaultQueueBudgetAction']] = None, + description: Optional[pulumi.Input[str]] = None, + display_name: Optional[pulumi.Input[str]] = None, + farm_id: Optional[pulumi.Input[str]] = None, + job_attachment_settings: Optional[pulumi.Input[pulumi.InputType['QueueJobAttachmentSettingsArgs']]] = None, + job_run_as_user: Optional[pulumi.Input[pulumi.InputType['QueueJobRunAsUserArgs']]] = None, + required_file_system_location_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = QueueArgs.__new__(QueueArgs) + + __props__.__dict__["allowed_storage_profile_ids"] = allowed_storage_profile_ids + __props__.__dict__["default_budget_action"] = default_budget_action + __props__.__dict__["description"] = description + if display_name is None and not opts.urn: + raise TypeError("Missing required property 'display_name'") + __props__.__dict__["display_name"] = display_name + __props__.__dict__["farm_id"] = farm_id + __props__.__dict__["job_attachment_settings"] = job_attachment_settings + __props__.__dict__["job_run_as_user"] = job_run_as_user + __props__.__dict__["required_file_system_location_names"] = required_file_system_location_names + __props__.__dict__["role_arn"] = role_arn + __props__.__dict__["arn"] = None + __props__.__dict__["queue_id"] = None + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["farmId"]) + opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) + super(Queue, __self__).__init__( + 'aws-native:deadline:Queue', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'Queue': + """ + Get an existing Queue 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__ = QueueArgs.__new__(QueueArgs) + + __props__.__dict__["allowed_storage_profile_ids"] = None + __props__.__dict__["arn"] = None + __props__.__dict__["default_budget_action"] = None + __props__.__dict__["description"] = None + __props__.__dict__["display_name"] = None + __props__.__dict__["farm_id"] = None + __props__.__dict__["job_attachment_settings"] = None + __props__.__dict__["job_run_as_user"] = None + __props__.__dict__["queue_id"] = None + __props__.__dict__["required_file_system_location_names"] = None + __props__.__dict__["role_arn"] = None + return Queue(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="allowedStorageProfileIds") + def allowed_storage_profile_ids(self) -> pulumi.Output[Optional[Sequence[str]]]: + return pulumi.get(self, "allowed_storage_profile_ids") + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="defaultBudgetAction") + def default_budget_action(self) -> pulumi.Output[Optional['QueueDefaultQueueBudgetAction']]: + return pulumi.get(self, "default_budget_action") + + @property + @pulumi.getter + def description(self) -> pulumi.Output[Optional[str]]: + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="displayName") + def display_name(self) -> pulumi.Output[str]: + return pulumi.get(self, "display_name") + + @property + @pulumi.getter(name="farmId") + def farm_id(self) -> pulumi.Output[Optional[str]]: + return pulumi.get(self, "farm_id") + + @property + @pulumi.getter(name="jobAttachmentSettings") + def job_attachment_settings(self) -> pulumi.Output[Optional['outputs.QueueJobAttachmentSettings']]: + return pulumi.get(self, "job_attachment_settings") + + @property + @pulumi.getter(name="jobRunAsUser") + def job_run_as_user(self) -> pulumi.Output[Optional['outputs.QueueJobRunAsUser']]: + return pulumi.get(self, "job_run_as_user") + + @property + @pulumi.getter(name="queueId") + def queue_id(self) -> pulumi.Output[str]: + return pulumi.get(self, "queue_id") + + @property + @pulumi.getter(name="requiredFileSystemLocationNames") + def required_file_system_location_names(self) -> pulumi.Output[Optional[Sequence[str]]]: + return pulumi.get(self, "required_file_system_location_names") + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> pulumi.Output[Optional[str]]: + return pulumi.get(self, "role_arn") + diff --git a/sdk/python/pulumi_aws_native/deadline/queue_environment.py b/sdk/python/pulumi_aws_native/deadline/queue_environment.py new file mode 100644 index 0000000000..6396ac242d --- /dev/null +++ b/sdk/python/pulumi_aws_native/deadline/queue_environment.py @@ -0,0 +1,217 @@ +# 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__ = ['QueueEnvironmentArgs', 'QueueEnvironment'] + +@pulumi.input_type +class QueueEnvironmentArgs: + def __init__(__self__, *, + farm_id: pulumi.Input[str], + priority: pulumi.Input[int], + queue_id: pulumi.Input[str], + template: pulumi.Input[str], + template_type: pulumi.Input['QueueEnvironmentEnvironmentTemplateType']): + """ + The set of arguments for constructing a QueueEnvironment resource. + """ + pulumi.set(__self__, "farm_id", farm_id) + pulumi.set(__self__, "priority", priority) + pulumi.set(__self__, "queue_id", queue_id) + pulumi.set(__self__, "template", template) + pulumi.set(__self__, "template_type", template_type) + + @property + @pulumi.getter(name="farmId") + def farm_id(self) -> pulumi.Input[str]: + return pulumi.get(self, "farm_id") + + @farm_id.setter + def farm_id(self, value: pulumi.Input[str]): + pulumi.set(self, "farm_id", value) + + @property + @pulumi.getter + def priority(self) -> pulumi.Input[int]: + return pulumi.get(self, "priority") + + @priority.setter + def priority(self, value: pulumi.Input[int]): + pulumi.set(self, "priority", value) + + @property + @pulumi.getter(name="queueId") + def queue_id(self) -> pulumi.Input[str]: + return pulumi.get(self, "queue_id") + + @queue_id.setter + def queue_id(self, value: pulumi.Input[str]): + pulumi.set(self, "queue_id", value) + + @property + @pulumi.getter + def template(self) -> pulumi.Input[str]: + return pulumi.get(self, "template") + + @template.setter + def template(self, value: pulumi.Input[str]): + pulumi.set(self, "template", value) + + @property + @pulumi.getter(name="templateType") + def template_type(self) -> pulumi.Input['QueueEnvironmentEnvironmentTemplateType']: + return pulumi.get(self, "template_type") + + @template_type.setter + def template_type(self, value: pulumi.Input['QueueEnvironmentEnvironmentTemplateType']): + pulumi.set(self, "template_type", value) + + +class QueueEnvironment(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + farm_id: Optional[pulumi.Input[str]] = None, + priority: Optional[pulumi.Input[int]] = None, + queue_id: Optional[pulumi.Input[str]] = None, + template: Optional[pulumi.Input[str]] = None, + template_type: Optional[pulumi.Input['QueueEnvironmentEnvironmentTemplateType']] = None, + __props__=None): + """ + Definition of AWS::Deadline::QueueEnvironment Resource Type + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: QueueEnvironmentArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Definition of AWS::Deadline::QueueEnvironment Resource Type + + :param str resource_name: The name of the resource. + :param QueueEnvironmentArgs 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(QueueEnvironmentArgs, 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, + farm_id: Optional[pulumi.Input[str]] = None, + priority: Optional[pulumi.Input[int]] = None, + queue_id: Optional[pulumi.Input[str]] = None, + template: Optional[pulumi.Input[str]] = None, + template_type: Optional[pulumi.Input['QueueEnvironmentEnvironmentTemplateType']] = 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__ = QueueEnvironmentArgs.__new__(QueueEnvironmentArgs) + + if farm_id is None and not opts.urn: + raise TypeError("Missing required property 'farm_id'") + __props__.__dict__["farm_id"] = farm_id + if priority is None and not opts.urn: + raise TypeError("Missing required property 'priority'") + __props__.__dict__["priority"] = priority + if queue_id is None and not opts.urn: + raise TypeError("Missing required property 'queue_id'") + __props__.__dict__["queue_id"] = queue_id + if template is None and not opts.urn: + raise TypeError("Missing required property 'template'") + __props__.__dict__["template"] = template + if template_type is None and not opts.urn: + raise TypeError("Missing required property 'template_type'") + __props__.__dict__["template_type"] = template_type + __props__.__dict__["name"] = None + __props__.__dict__["queue_environment_id"] = None + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["farmId", "queueId"]) + opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) + super(QueueEnvironment, __self__).__init__( + 'aws-native:deadline:QueueEnvironment', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'QueueEnvironment': + """ + Get an existing QueueEnvironment 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__ = QueueEnvironmentArgs.__new__(QueueEnvironmentArgs) + + __props__.__dict__["farm_id"] = None + __props__.__dict__["name"] = None + __props__.__dict__["priority"] = None + __props__.__dict__["queue_environment_id"] = None + __props__.__dict__["queue_id"] = None + __props__.__dict__["template"] = None + __props__.__dict__["template_type"] = None + return QueueEnvironment(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="farmId") + def farm_id(self) -> pulumi.Output[str]: + return pulumi.get(self, "farm_id") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + return pulumi.get(self, "name") + + @property + @pulumi.getter + def priority(self) -> pulumi.Output[int]: + return pulumi.get(self, "priority") + + @property + @pulumi.getter(name="queueEnvironmentId") + def queue_environment_id(self) -> pulumi.Output[str]: + return pulumi.get(self, "queue_environment_id") + + @property + @pulumi.getter(name="queueId") + def queue_id(self) -> pulumi.Output[str]: + return pulumi.get(self, "queue_id") + + @property + @pulumi.getter + def template(self) -> pulumi.Output[str]: + return pulumi.get(self, "template") + + @property + @pulumi.getter(name="templateType") + def template_type(self) -> pulumi.Output['QueueEnvironmentEnvironmentTemplateType']: + return pulumi.get(self, "template_type") + diff --git a/sdk/python/pulumi_aws_native/deadline/queue_fleet_association.py b/sdk/python/pulumi_aws_native/deadline/queue_fleet_association.py new file mode 100644 index 0000000000..b07e8f7c24 --- /dev/null +++ b/sdk/python/pulumi_aws_native/deadline/queue_fleet_association.py @@ -0,0 +1,158 @@ +# 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__ = ['QueueFleetAssociationArgs', 'QueueFleetAssociation'] + +@pulumi.input_type +class QueueFleetAssociationArgs: + def __init__(__self__, *, + farm_id: pulumi.Input[str], + fleet_id: pulumi.Input[str], + queue_id: pulumi.Input[str]): + """ + The set of arguments for constructing a QueueFleetAssociation resource. + """ + pulumi.set(__self__, "farm_id", farm_id) + pulumi.set(__self__, "fleet_id", fleet_id) + pulumi.set(__self__, "queue_id", queue_id) + + @property + @pulumi.getter(name="farmId") + def farm_id(self) -> pulumi.Input[str]: + return pulumi.get(self, "farm_id") + + @farm_id.setter + def farm_id(self, value: pulumi.Input[str]): + pulumi.set(self, "farm_id", value) + + @property + @pulumi.getter(name="fleetId") + def fleet_id(self) -> pulumi.Input[str]: + return pulumi.get(self, "fleet_id") + + @fleet_id.setter + def fleet_id(self, value: pulumi.Input[str]): + pulumi.set(self, "fleet_id", value) + + @property + @pulumi.getter(name="queueId") + def queue_id(self) -> pulumi.Input[str]: + return pulumi.get(self, "queue_id") + + @queue_id.setter + def queue_id(self, value: pulumi.Input[str]): + pulumi.set(self, "queue_id", value) + + +class QueueFleetAssociation(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + farm_id: Optional[pulumi.Input[str]] = None, + fleet_id: Optional[pulumi.Input[str]] = None, + queue_id: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Definition of AWS::Deadline::QueueFleetAssociation Resource Type + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: QueueFleetAssociationArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Definition of AWS::Deadline::QueueFleetAssociation Resource Type + + :param str resource_name: The name of the resource. + :param QueueFleetAssociationArgs 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(QueueFleetAssociationArgs, 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, + farm_id: Optional[pulumi.Input[str]] = None, + fleet_id: Optional[pulumi.Input[str]] = None, + queue_id: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = QueueFleetAssociationArgs.__new__(QueueFleetAssociationArgs) + + if farm_id is None and not opts.urn: + raise TypeError("Missing required property 'farm_id'") + __props__.__dict__["farm_id"] = farm_id + if fleet_id is None and not opts.urn: + raise TypeError("Missing required property 'fleet_id'") + __props__.__dict__["fleet_id"] = fleet_id + if queue_id is None and not opts.urn: + raise TypeError("Missing required property 'queue_id'") + __props__.__dict__["queue_id"] = queue_id + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["farmId", "fleetId", "queueId"]) + opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) + super(QueueFleetAssociation, __self__).__init__( + 'aws-native:deadline:QueueFleetAssociation', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'QueueFleetAssociation': + """ + Get an existing QueueFleetAssociation 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__ = QueueFleetAssociationArgs.__new__(QueueFleetAssociationArgs) + + __props__.__dict__["farm_id"] = None + __props__.__dict__["fleet_id"] = None + __props__.__dict__["queue_id"] = None + return QueueFleetAssociation(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="farmId") + def farm_id(self) -> pulumi.Output[str]: + return pulumi.get(self, "farm_id") + + @property + @pulumi.getter(name="fleetId") + def fleet_id(self) -> pulumi.Output[str]: + return pulumi.get(self, "fleet_id") + + @property + @pulumi.getter(name="queueId") + def queue_id(self) -> pulumi.Output[str]: + return pulumi.get(self, "queue_id") + diff --git a/sdk/python/pulumi_aws_native/deadline/storage_profile.py b/sdk/python/pulumi_aws_native/deadline/storage_profile.py new file mode 100644 index 0000000000..655eeba1a4 --- /dev/null +++ b/sdk/python/pulumi_aws_native/deadline/storage_profile.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 * +from ._inputs import * + +__all__ = ['StorageProfileArgs', 'StorageProfile'] + +@pulumi.input_type +class StorageProfileArgs: + def __init__(__self__, *, + display_name: pulumi.Input[str], + os_family: pulumi.Input['StorageProfileOperatingSystemFamily'], + farm_id: Optional[pulumi.Input[str]] = None, + file_system_locations: Optional[pulumi.Input[Sequence[pulumi.Input['StorageProfileFileSystemLocationArgs']]]] = None): + """ + The set of arguments for constructing a StorageProfile resource. + """ + pulumi.set(__self__, "display_name", display_name) + pulumi.set(__self__, "os_family", os_family) + if farm_id is not None: + pulumi.set(__self__, "farm_id", farm_id) + if file_system_locations is not None: + pulumi.set(__self__, "file_system_locations", file_system_locations) + + @property + @pulumi.getter(name="displayName") + def display_name(self) -> pulumi.Input[str]: + return pulumi.get(self, "display_name") + + @display_name.setter + def display_name(self, value: pulumi.Input[str]): + pulumi.set(self, "display_name", value) + + @property + @pulumi.getter(name="osFamily") + def os_family(self) -> pulumi.Input['StorageProfileOperatingSystemFamily']: + return pulumi.get(self, "os_family") + + @os_family.setter + def os_family(self, value: pulumi.Input['StorageProfileOperatingSystemFamily']): + pulumi.set(self, "os_family", value) + + @property + @pulumi.getter(name="farmId") + def farm_id(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "farm_id") + + @farm_id.setter + def farm_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "farm_id", value) + + @property + @pulumi.getter(name="fileSystemLocations") + def file_system_locations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['StorageProfileFileSystemLocationArgs']]]]: + return pulumi.get(self, "file_system_locations") + + @file_system_locations.setter + def file_system_locations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['StorageProfileFileSystemLocationArgs']]]]): + pulumi.set(self, "file_system_locations", value) + + +class StorageProfile(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + display_name: Optional[pulumi.Input[str]] = None, + farm_id: Optional[pulumi.Input[str]] = None, + file_system_locations: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['StorageProfileFileSystemLocationArgs']]]]] = None, + os_family: Optional[pulumi.Input['StorageProfileOperatingSystemFamily']] = None, + __props__=None): + """ + Definition of AWS::Deadline::StorageProfile Resource Type + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: StorageProfileArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Definition of AWS::Deadline::StorageProfile Resource Type + + :param str resource_name: The name of the resource. + :param StorageProfileArgs 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(StorageProfileArgs, 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, + display_name: Optional[pulumi.Input[str]] = None, + farm_id: Optional[pulumi.Input[str]] = None, + file_system_locations: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['StorageProfileFileSystemLocationArgs']]]]] = None, + os_family: Optional[pulumi.Input['StorageProfileOperatingSystemFamily']] = 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__ = StorageProfileArgs.__new__(StorageProfileArgs) + + if display_name is None and not opts.urn: + raise TypeError("Missing required property 'display_name'") + __props__.__dict__["display_name"] = display_name + __props__.__dict__["farm_id"] = farm_id + __props__.__dict__["file_system_locations"] = file_system_locations + if os_family is None and not opts.urn: + raise TypeError("Missing required property 'os_family'") + __props__.__dict__["os_family"] = os_family + __props__.__dict__["storage_profile_id"] = None + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["farmId"]) + opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) + super(StorageProfile, __self__).__init__( + 'aws-native:deadline:StorageProfile', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'StorageProfile': + """ + Get an existing StorageProfile 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__ = StorageProfileArgs.__new__(StorageProfileArgs) + + __props__.__dict__["display_name"] = None + __props__.__dict__["farm_id"] = None + __props__.__dict__["file_system_locations"] = None + __props__.__dict__["os_family"] = None + __props__.__dict__["storage_profile_id"] = None + return StorageProfile(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="displayName") + def display_name(self) -> pulumi.Output[str]: + return pulumi.get(self, "display_name") + + @property + @pulumi.getter(name="farmId") + def farm_id(self) -> pulumi.Output[Optional[str]]: + return pulumi.get(self, "farm_id") + + @property + @pulumi.getter(name="fileSystemLocations") + def file_system_locations(self) -> pulumi.Output[Optional[Sequence['outputs.StorageProfileFileSystemLocation']]]: + return pulumi.get(self, "file_system_locations") + + @property + @pulumi.getter(name="osFamily") + def os_family(self) -> pulumi.Output['StorageProfileOperatingSystemFamily']: + return pulumi.get(self, "os_family") + + @property + @pulumi.getter(name="storageProfileId") + def storage_profile_id(self) -> pulumi.Output[str]: + return pulumi.get(self, "storage_profile_id") + 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..353e79d76d 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,38 @@ 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): + """ + Creates or updates a resource-based policy document that contains the permissions for DDB resources, such as a table, its indexes, and stream. Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource. + In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + While defining resource-based policies in your CFNshort templates, the following considerations apply: + + The maximum size supported for a resource-based policy document in JSON format is 20 KB. DDB counts whitespaces when calculating the size of a policy against this limit. + + Resource-based policies don't support [drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html#). If you update a policy outside of the CFNshort stack template, you'll need to update the CFNshort stack with the changes. + + Resource-based policies don't support out-of-band changes. If you add, update, or delete a policy outside of the CFNshort template, the change won't be overwritten if there are no changes to the policy within the template. + For example, say that your template contains a resource-based policy, which you later update outside of the template. If you don't make any changes to the policy in the template, the updated policy in DDB won’t be synced with the policy in the template. + Conversely, say that your template doesn’t contain a resource-based policy, but you add a policy outside of the template. This policy won’t be removed from DDB as long as you don’t add it to the template. When you add a policy to the template and update the stack, the existing policy in DDB will be updated to match the one defined in the template. + + For a full list of all considerations, see [Resource-based policy considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html). + :param Any policy_document: A resource-based policy document that contains permissions to add to the specified DDB table, index, or both. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + """ + pulumi.set(__self__, "policy_document", policy_document) + + @property + @pulumi.getter(name="policyDocument") + def policy_document(self) -> Any: + """ + A resource-based policy document that contains permissions to add to the specified DDB table, index, or both. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + """ + 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 +1483,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: @@ -1400,8 +1492,12 @@ def __init__(__self__, *, + ``NEW_IMAGE`` - The entire item, as it appears after it was modified, is written to the stream. + ``OLD_IMAGE`` - The entire item, as it appeared before it was modified, is written to the stream. + ``NEW_AND_OLD_IMAGES`` - Both the new and the old item images of the item are written to the stream. + :param pulumi.Input['TableResourcePolicyArgs'] resource_policy: Creates or updates a resource-based policy document that contains the permissions for DDB resources, such as a table's streams. Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource. + In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). """ 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 +1515,19 @@ 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']]: + """ + Creates or updates a resource-based policy document that contains the permissions for DDB resources, such as a table's streams. Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource. + In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + """ + 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: @@ -1429,7 +1538,7 @@ def __init__(__self__, *, Represents the settings used to enable or disable Time to Live (TTL) for the specified table. :param pulumi.Input[bool] enabled: Indicates whether TTL is to be enabled (true) or disabled (false) on the table. :param pulumi.Input[str] attribute_name: The name of the TTL attribute used to store the expiration time for items in the table. - + The ``AttributeName`` property is required when enabling the TTL, or when TTL is already enabled. + + The ``AttributeName`` property is required when enabling the TTL, or when TTL is already enabled. + To update this property, you must first disable TTL and then enable TTL with the new attribute name. """ pulumi.set(__self__, "enabled", enabled) @@ -1453,7 +1562,7 @@ def enabled(self, value: pulumi.Input[bool]): def attribute_name(self) -> Optional[pulumi.Input[str]]: """ The name of the TTL attribute used to store the expiration time for items in the table. - + The ``AttributeName`` property is required when enabling the TTL, or when TTL is already enabled. + + The ``AttributeName`` property is required when enabling the TTL, or when TTL is already enabled. + To update this property, you must first disable TTL and then enable TTL with the new attribute name. """ return pulumi.get(self, "attribute_name") diff --git a/sdk/python/pulumi_aws_native/dynamodb/get_table.py b/sdk/python/pulumi_aws_native/dynamodb/get_table.py index 7cfd0be16f..f1ac02f051 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,15 @@ 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']: + """ + A resource-based policy document that contains permissions to add to the specified table. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + When you attach a resource-based policy while creating a table, the policy creation is *strongly consistent*. For information about the considerations that you should keep in mind while attaching a resource-based policy, see [Resource-based policy considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html). + """ + return pulumi.get(self, "resource_policy") + @property @pulumi.getter(name="sseSpecification") def sse_specification(self) -> Optional['outputs.TableSseSpecification']: @@ -237,6 +249,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, @@ -250,7 +263,7 @@ def get_table(table_name: Optional[str] = None, """ The ``AWS::DynamoDB::Table`` resource creates a DDB table. For more information, see [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) in the *API Reference*. You should be aware of the following behaviors when working with DDB tables: - + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). + + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). Our guidance is to use the latest schema documented here for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. @@ -275,6 +288,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'), @@ -289,7 +303,7 @@ def get_table_output(table_name: Optional[pulumi.Input[str]] = None, """ The ``AWS::DynamoDB::Table`` resource creates a DDB table. For more information, see [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) in the *API Reference*. You should be aware of the following behaviors when working with DDB tables: - + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). + + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). Our guidance is to use the latest schema documented here for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. diff --git a/sdk/python/pulumi_aws_native/dynamodb/outputs.py b/sdk/python/pulumi_aws_native/dynamodb/outputs.py index f74fc84141..e350ef70ad 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,63 @@ def write_capacity_units(self) -> int: return pulumi.get(self, "write_capacity_units") +@pulumi.output_type +class TableResourcePolicy(dict): + """ + Creates or updates a resource-based policy document that contains the permissions for DDB resources, such as a table, its indexes, and stream. Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource. + In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + While defining resource-based policies in your CFNshort templates, the following considerations apply: + + The maximum size supported for a resource-based policy document in JSON format is 20 KB. DDB counts whitespaces when calculating the size of a policy against this limit. + + Resource-based policies don't support [drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html#). If you update a policy outside of the CFNshort stack template, you'll need to update the CFNshort stack with the changes. + + Resource-based policies don't support out-of-band changes. If you add, update, or delete a policy outside of the CFNshort template, the change won't be overwritten if there are no changes to the policy within the template. + For example, say that your template contains a resource-based policy, which you later update outside of the template. If you don't make any changes to the policy in the template, the updated policy in DDB won’t be synced with the policy in the template. + Conversely, say that your template doesn’t contain a resource-based policy, but you add a policy outside of the template. This policy won’t be removed from DDB as long as you don’t add it to the template. When you add a policy to the template and update the stack, the existing policy in DDB will be updated to match the one defined in the template. + + For a full list of all considerations, see [Resource-based policy considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html). + """ + @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): + """ + Creates or updates a resource-based policy document that contains the permissions for DDB resources, such as a table, its indexes, and stream. Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource. + In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + While defining resource-based policies in your CFNshort templates, the following considerations apply: + + The maximum size supported for a resource-based policy document in JSON format is 20 KB. DDB counts whitespaces when calculating the size of a policy against this limit. + + Resource-based policies don't support [drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html#). If you update a policy outside of the CFNshort stack template, you'll need to update the CFNshort stack with the changes. + + Resource-based policies don't support out-of-band changes. If you add, update, or delete a policy outside of the CFNshort template, the change won't be overwritten if there are no changes to the policy within the template. + For example, say that your template contains a resource-based policy, which you later update outside of the template. If you don't make any changes to the policy in the template, the updated policy in DDB won’t be synced with the policy in the template. + Conversely, say that your template doesn’t contain a resource-based policy, but you add a policy outside of the template. This policy won’t be removed from DDB as long as you don’t add it to the template. When you add a policy to the template and update the stack, the existing policy in DDB will be updated to match the one defined in the template. + + For a full list of all considerations, see [Resource-based policy considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html). + :param Any policy_document: A resource-based policy document that contains permissions to add to the specified DDB table, index, or both. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + """ + pulumi.set(__self__, "policy_document", policy_document) + + @property + @pulumi.getter(name="policyDocument") + def policy_document(self) -> Any: + """ + A resource-based policy document that contains permissions to add to the specified DDB table, index, or both. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + """ + return pulumi.get(self, "policy_document") + + @pulumi.output_type class TableS3BucketSource(dict): """ @@ -1689,6 +1827,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 +1842,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: @@ -1710,8 +1851,12 @@ def __init__(__self__, *, + ``NEW_IMAGE`` - The entire item, as it appears after it was modified, is written to the stream. + ``OLD_IMAGE`` - The entire item, as it appeared before it was modified, is written to the stream. + ``NEW_AND_OLD_IMAGES`` - Both the new and the old item images of the item are written to the stream. + :param 'TableResourcePolicy' resource_policy: Creates or updates a resource-based policy document that contains the permissions for DDB resources, such as a table's streams. Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource. + In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). """ 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 +1870,15 @@ 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']: + """ + Creates or updates a resource-based policy document that contains the permissions for DDB resources, such as a table's streams. Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource. + In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + """ + return pulumi.get(self, "resource_policy") + @pulumi.output_type class TableTimeToLiveSpecification(dict): @@ -1755,7 +1909,7 @@ def __init__(__self__, *, Represents the settings used to enable or disable Time to Live (TTL) for the specified table. :param bool enabled: Indicates whether TTL is to be enabled (true) or disabled (false) on the table. :param str attribute_name: The name of the TTL attribute used to store the expiration time for items in the table. - + The ``AttributeName`` property is required when enabling the TTL, or when TTL is already enabled. + + The ``AttributeName`` property is required when enabling the TTL, or when TTL is already enabled. + To update this property, you must first disable TTL and then enable TTL with the new attribute name. """ pulumi.set(__self__, "enabled", enabled) @@ -1775,7 +1929,7 @@ def enabled(self) -> bool: def attribute_name(self) -> Optional[str]: """ The name of the TTL attribute used to store the expiration time for items in the table. - + The ``AttributeName`` property is required when enabling the TTL, or when TTL is already enabled. + + The ``AttributeName`` property is required when enabling the TTL, or when TTL is already enabled. + To update this property, you must first disable TTL and then enable TTL with the new attribute name. """ return pulumi.get(self, "attribute_name") diff --git a/sdk/python/pulumi_aws_native/dynamodb/table.py b/sdk/python/pulumi_aws_native/dynamodb/table.py index fa923a8624..db17dbf2ba 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, @@ -63,6 +64,8 @@ def __init__(__self__, *, :param pulumi.Input['TablePointInTimeRecoverySpecificationArgs'] point_in_time_recovery_specification: The settings used to enable point in time recovery. :param pulumi.Input['TableProvisionedThroughputArgs'] provisioned_throughput: 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. + :param pulumi.Input['TableResourcePolicyArgs'] resource_policy: A resource-based policy document that contains permissions to add to the specified table. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + When you attach a resource-based policy while creating a table, the policy creation is *strongly consistent*. For information about the considerations that you should keep in mind while attaching a resource-based policy, see [Resource-based policy considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html). :param pulumi.Input['TableSseSpecificationArgs'] sse_specification: Specifies the settings to enable server-side encryption. :param pulumi.Input['TableStreamSpecificationArgs'] stream_specification: The settings for the DDB table stream, which capture changes to items stored in the table. :param pulumi.Input[str] table_class: The table class of the new table. Valid values are ``STANDARD`` and ``STANDARD_INFREQUENT_ACCESS``. @@ -94,6 +97,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 +258,19 @@ 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']]: + """ + A resource-based policy document that contains permissions to add to the specified table. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + When you attach a resource-based policy while creating a table, the policy creation is *strongly consistent*. For information about the considerations that you should keep in mind while attaching a resource-based policy, see [Resource-based policy considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html). + """ + 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 +363,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, @@ -355,7 +374,7 @@ def __init__(__self__, """ The ``AWS::DynamoDB::Table`` resource creates a DDB table. For more information, see [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) in the *API Reference*. You should be aware of the following behaviors when working with DDB tables: - + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). + + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). Our guidance is to use the latest schema documented here for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. @@ -612,6 +631,8 @@ def __init__(__self__, :param pulumi.Input[pulumi.InputType['TablePointInTimeRecoverySpecificationArgs']] point_in_time_recovery_specification: The settings used to enable point in time recovery. :param pulumi.Input[pulumi.InputType['TableProvisionedThroughputArgs']] provisioned_throughput: 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. + :param pulumi.Input[pulumi.InputType['TableResourcePolicyArgs']] resource_policy: A resource-based policy document that contains permissions to add to the specified table. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + When you attach a resource-based policy while creating a table, the policy creation is *strongly consistent*. For information about the considerations that you should keep in mind while attaching a resource-based policy, see [Resource-based policy considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html). :param pulumi.Input[pulumi.InputType['TableSseSpecificationArgs']] sse_specification: Specifies the settings to enable server-side encryption. :param pulumi.Input[pulumi.InputType['TableStreamSpecificationArgs']] stream_specification: The settings for the DDB table stream, which capture changes to items stored in the table. :param pulumi.Input[str] table_class: The table class of the new table. Valid values are ``STANDARD`` and ``STANDARD_INFREQUENT_ACCESS``. @@ -631,7 +652,7 @@ def __init__(__self__, """ The ``AWS::DynamoDB::Table`` resource creates a DDB table. For more information, see [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) in the *API Reference*. You should be aware of the following behaviors when working with DDB tables: - + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). + + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). Our guidance is to use the latest schema documented here for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. @@ -887,6 +908,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 +937,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 +982,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 +1099,15 @@ 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']]: + """ + A resource-based policy document that contains permissions to add to the specified table. In a CFNshort template, you can provide the policy in JSON or YAML format because CFNshort converts YAML to JSON before submitting it to DDB. For more information about resource-based policies, see [Using resource-based policies for](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) and [Resource-based policy examples](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html). + When you attach a resource-based policy while creating a table, the policy creation is *strongly consistent*. For information about the considerations that you should keep in mind while attaching a resource-based policy, see [Resource-based policy considerations](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html). + """ + 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..6975088afc 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) @@ -6476,7 +6477,6 @@ def __init__(__self__, *, destination_prefix_list_id: Optional[pulumi.Input[str]] = None, destination_security_group_id: Optional[pulumi.Input[str]] = None, from_port: Optional[pulumi.Input[int]] = None, - source_security_group_id: Optional[pulumi.Input[str]] = None, to_port: Optional[pulumi.Input[int]] = None): pulumi.set(__self__, "ip_protocol", ip_protocol) if cidr_ip is not None: @@ -6491,8 +6491,6 @@ def __init__(__self__, *, pulumi.set(__self__, "destination_security_group_id", destination_security_group_id) if from_port is not None: pulumi.set(__self__, "from_port", from_port) - if source_security_group_id is not None: - pulumi.set(__self__, "source_security_group_id", source_security_group_id) if to_port is not None: pulumi.set(__self__, "to_port", to_port) @@ -6559,15 +6557,6 @@ def from_port(self) -> Optional[pulumi.Input[int]]: def from_port(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "from_port", value) - @property - @pulumi.getter(name="sourceSecurityGroupId") - def source_security_group_id(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "source_security_group_id") - - @source_security_group_id.setter - def source_security_group_id(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "source_security_group_id", value) - @property @pulumi.getter(name="toPort") def to_port(self) -> Optional[pulumi.Input[int]]: 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_nat_gateway.py b/sdk/python/pulumi_aws_native/ec2/get_nat_gateway.py index c4f5a40e5d..440de8a239 100644 --- a/sdk/python/pulumi_aws_native/ec2/get_nat_gateway.py +++ b/sdk/python/pulumi_aws_native/ec2/get_nat_gateway.py @@ -54,7 +54,7 @@ def secondary_allocation_ids(self) -> Optional[Sequence[str]]: def secondary_private_ip_address_count(self) -> Optional[int]: """ [Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*. - ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. + ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. """ return pulumi.get(self, "secondary_private_ip_address_count") @@ -63,7 +63,7 @@ def secondary_private_ip_address_count(self) -> Optional[int]: def secondary_private_ip_addresses(self) -> Optional[Sequence[str]]: """ Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*. - ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. + ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. """ return pulumi.get(self, "secondary_private_ip_addresses") @@ -95,7 +95,7 @@ def get_nat_gateway(nat_gateway_id: Optional[str] = None, Specifies a network address translation (NAT) gateway in the specified subnet. You can create either a public NAT gateway or a private NAT gateway. The default is a public NAT gateway. If you create a public NAT gateway, you must specify an elastic IP address. With a NAT gateway, instances in a private subnet can connect to the internet, other AWS services, or an on-premises network using the IP address of the NAT gateway. For more information, see [NAT gateways](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) in the *Amazon VPC User Guide*. If you add a default route (``AWS::EC2::Route`` resource) that points to a NAT gateway, specify the NAT gateway ID for the route's ``NatGatewayId`` property. - When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*. + When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*. """ __args__ = dict() __args__['natGatewayId'] = nat_gateway_id @@ -117,6 +117,6 @@ def get_nat_gateway_output(nat_gateway_id: Optional[pulumi.Input[str]] = None, Specifies a network address translation (NAT) gateway in the specified subnet. You can create either a public NAT gateway or a private NAT gateway. The default is a public NAT gateway. If you create a public NAT gateway, you must specify an elastic IP address. With a NAT gateway, instances in a private subnet can connect to the internet, other AWS services, or an on-premises network using the IP address of the NAT gateway. For more information, see [NAT gateways](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) in the *Amazon VPC User Guide*. If you add a default route (``AWS::EC2::Route`` resource) that points to a NAT gateway, specify the NAT gateway ID for the route's ``NatGatewayId`` property. - When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*. + When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*. """ ... diff --git a/sdk/python/pulumi_aws_native/ec2/get_security_group_egress.py b/sdk/python/pulumi_aws_native/ec2/get_security_group_egress.py index 2c2d76019f..57852babf6 100644 --- a/sdk/python/pulumi_aws_native/ec2/get_security_group_egress.py +++ b/sdk/python/pulumi_aws_native/ec2/get_security_group_egress.py @@ -56,9 +56,9 @@ def get_security_group_egress(id: Optional[str] = None, """ Adds the specified outbound (egress) rule to a security group. An outbound rule permits instances to send traffic to the specified IPv4 or IPv6 address range, the IP addresses that are specified by a prefix list, or the instances that are associated with a destination security group. For more information, see [Security group rules](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html). - You must specify exactly one of the following destinations: an IPv4 or IPv6 address range, a prefix list, or a security group. Otherwise, the stack launches successfully but the rule is not added to the security group. + You must specify exactly one of the following destinations: an IPv4 address range, an IPv6 address range, a prefix list, or a security group. You must specify a protocol for each rule (for example, TCP). If the protocol is TCP or UDP, you must also specify a port or port range. If the protocol is ICMP or ICMPv6, you must also specify the ICMP/ICMPv6 type and code. To specify all types or all codes, use -1. - Rule changes are propagated to instances associated with the security group as quickly as possible + Rule changes are propagated to instances associated with the security group as quickly as possible. However, a small delay might occur. """ __args__ = dict() __args__['id'] = id @@ -76,8 +76,8 @@ def get_security_group_egress_output(id: Optional[pulumi.Input[str]] = None, """ Adds the specified outbound (egress) rule to a security group. An outbound rule permits instances to send traffic to the specified IPv4 or IPv6 address range, the IP addresses that are specified by a prefix list, or the instances that are associated with a destination security group. For more information, see [Security group rules](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html). - You must specify exactly one of the following destinations: an IPv4 or IPv6 address range, a prefix list, or a security group. Otherwise, the stack launches successfully but the rule is not added to the security group. + You must specify exactly one of the following destinations: an IPv4 address range, an IPv6 address range, a prefix list, or a security group. You must specify a protocol for each rule (for example, TCP). If the protocol is TCP or UDP, you must also specify a port or port range. If the protocol is ICMP or ICMPv6, you must also specify the ICMP/ICMPv6 type and code. To specify all types or all codes, use -1. - Rule changes are propagated to instances associated with the security group as quickly as possible + Rule changes are propagated to instances associated with the security group as quickly as possible. However, a small delay might occur. """ ... 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/nat_gateway.py b/sdk/python/pulumi_aws_native/ec2/nat_gateway.py index 2177fc2188..87251319ac 100644 --- a/sdk/python/pulumi_aws_native/ec2/nat_gateway.py +++ b/sdk/python/pulumi_aws_native/ec2/nat_gateway.py @@ -34,9 +34,9 @@ def __init__(__self__, *, :param pulumi.Input[str] private_ip_address: The private IPv4 address to assign to the NAT gateway. If you don't provide an address, a private IPv4 address will be automatically assigned. :param pulumi.Input[Sequence[pulumi.Input[str]]] secondary_allocation_ids: Secondary EIP allocation IDs. For more information, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon VPC User Guide*. :param pulumi.Input[int] secondary_private_ip_address_count: [Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*. - ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. + ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. :param pulumi.Input[Sequence[pulumi.Input[str]]] secondary_private_ip_addresses: Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*. - ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. + ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. :param pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]] tags: The tags for the NAT gateway. """ pulumi.set(__self__, "subnet_id", subnet_id) @@ -134,7 +134,7 @@ def secondary_allocation_ids(self, value: Optional[pulumi.Input[Sequence[pulumi. def secondary_private_ip_address_count(self) -> Optional[pulumi.Input[int]]: """ [Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*. - ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. + ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. """ return pulumi.get(self, "secondary_private_ip_address_count") @@ -147,7 +147,7 @@ def secondary_private_ip_address_count(self, value: Optional[pulumi.Input[int]]) def secondary_private_ip_addresses(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*. - ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. + ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. """ return pulumi.get(self, "secondary_private_ip_addresses") @@ -187,7 +187,7 @@ def __init__(__self__, Specifies a network address translation (NAT) gateway in the specified subnet. You can create either a public NAT gateway or a private NAT gateway. The default is a public NAT gateway. If you create a public NAT gateway, you must specify an elastic IP address. With a NAT gateway, instances in a private subnet can connect to the internet, other AWS services, or an on-premises network using the IP address of the NAT gateway. For more information, see [NAT gateways](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) in the *Amazon VPC User Guide*. If you add a default route (``AWS::EC2::Route`` resource) that points to a NAT gateway, specify the NAT gateway ID for the route's ``NatGatewayId`` property. - When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*. + When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*. :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. @@ -197,9 +197,9 @@ def __init__(__self__, :param pulumi.Input[str] private_ip_address: The private IPv4 address to assign to the NAT gateway. If you don't provide an address, a private IPv4 address will be automatically assigned. :param pulumi.Input[Sequence[pulumi.Input[str]]] secondary_allocation_ids: Secondary EIP allocation IDs. For more information, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon VPC User Guide*. :param pulumi.Input[int] secondary_private_ip_address_count: [Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*. - ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. + ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. :param pulumi.Input[Sequence[pulumi.Input[str]]] secondary_private_ip_addresses: Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*. - ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. + ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. :param pulumi.Input[str] subnet_id: The ID of the subnet in which the NAT gateway is located. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]] tags: The tags for the NAT gateway. """ @@ -213,7 +213,7 @@ def __init__(__self__, Specifies a network address translation (NAT) gateway in the specified subnet. You can create either a public NAT gateway or a private NAT gateway. The default is a public NAT gateway. If you create a public NAT gateway, you must specify an elastic IP address. With a NAT gateway, instances in a private subnet can connect to the internet, other AWS services, or an on-premises network using the IP address of the NAT gateway. For more information, see [NAT gateways](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) in the *Amazon VPC User Guide*. If you add a default route (``AWS::EC2::Route`` resource) that points to a NAT gateway, specify the NAT gateway ID for the route's ``NatGatewayId`` property. - When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*. + When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the NAT gateway fails to launch. You can see the network border group for the AZ by viewing the details of the subnet. Similarly, you can view the network border group for the Elastic IP address by viewing its details. For more information, see [Allocate an Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip) in the *Amazon VPC User Guide*. :param str resource_name: The name of the resource. :param NatGatewayArgs args: The arguments to use to populate this resource's properties. @@ -346,7 +346,7 @@ def secondary_allocation_ids(self) -> pulumi.Output[Optional[Sequence[str]]]: def secondary_private_ip_address_count(self) -> pulumi.Output[Optional[int]]: """ [Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*. - ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. + ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. """ return pulumi.get(self, "secondary_private_ip_address_count") @@ -355,7 +355,7 @@ def secondary_private_ip_address_count(self) -> pulumi.Output[Optional[int]]: def secondary_private_ip_addresses(self) -> pulumi.Output[Optional[Sequence[str]]]: """ Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*. - ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. + ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. """ return pulumi.get(self, "secondary_private_ip_addresses") diff --git a/sdk/python/pulumi_aws_native/ec2/outputs.py b/sdk/python/pulumi_aws_native/ec2/outputs.py index bfb44b0681..14541e7dc5 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) @@ -8184,8 +8190,6 @@ def __key_warning(key: str): suggest = "destination_security_group_id" elif key == "fromPort": suggest = "from_port" - elif key == "sourceSecurityGroupId": - suggest = "source_security_group_id" elif key == "toPort": suggest = "to_port" @@ -8208,7 +8212,6 @@ def __init__(__self__, *, destination_prefix_list_id: Optional[str] = None, destination_security_group_id: Optional[str] = None, from_port: Optional[int] = None, - source_security_group_id: Optional[str] = None, to_port: Optional[int] = None): pulumi.set(__self__, "ip_protocol", ip_protocol) if cidr_ip is not None: @@ -8223,8 +8226,6 @@ def __init__(__self__, *, pulumi.set(__self__, "destination_security_group_id", destination_security_group_id) if from_port is not None: pulumi.set(__self__, "from_port", from_port) - if source_security_group_id is not None: - pulumi.set(__self__, "source_security_group_id", source_security_group_id) if to_port is not None: pulumi.set(__self__, "to_port", to_port) @@ -8263,11 +8264,6 @@ def destination_security_group_id(self) -> Optional[str]: def from_port(self) -> Optional[int]: return pulumi.get(self, "from_port") - @property - @pulumi.getter(name="sourceSecurityGroupId") - def source_security_group_id(self) -> Optional[str]: - return pulumi.get(self, "source_security_group_id") - @property @pulumi.getter(name="toPort") def to_port(self) -> Optional[int]: diff --git a/sdk/python/pulumi_aws_native/ec2/security_group_egress.py b/sdk/python/pulumi_aws_native/ec2/security_group_egress.py index 73fcd76770..f5c29b6b07 100644 --- a/sdk/python/pulumi_aws_native/ec2/security_group_egress.py +++ b/sdk/python/pulumi_aws_native/ec2/security_group_egress.py @@ -29,17 +29,17 @@ def __init__(__self__, *, :param pulumi.Input[str] ip_protocol: The IP protocol name (``tcp``, ``udp``, ``icmp``, ``icmpv6``) or number (see [Protocol Numbers](https://docs.aws.amazon.com/http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)). Use ``-1`` to specify all protocols. When authorizing security group rules, specifying ``-1`` or a protocol number other than ``tcp``, ``udp``, ``icmp``, or ``icmpv6`` allows traffic on all ports, regardless of any port range you specify. For ``tcp``, ``udp``, and ``icmp``, you must specify a port range. For ``icmpv6``, the port range is optional; if you omit the port range, traffic for all types and codes is allowed. :param pulumi.Input[str] cidr_ip: The IPv4 address range, in CIDR format. - You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*. :param pulumi.Input[str] cidr_ipv6: The IPv6 address range, in CIDR format. - You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*. :param pulumi.Input[str] description: The description of an egress (outbound) security group rule. Constraints: Up to 255 characters in length. Allowed characters are a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=;{}!$* - :param pulumi.Input[str] destination_prefix_list_id: The prefix list IDs for an AWS service. This is the AWS service that you want to access through a VPC endpoint from instances associated with the security group. - You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + :param pulumi.Input[str] destination_prefix_list_id: The prefix list IDs for an AWS service. This is the AWS service to access through a VPC endpoint from instances associated with the security group. + You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. :param pulumi.Input[str] destination_security_group_id: The ID of the security group. - You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. :param pulumi.Input[int] from_port: If the protocol is TCP or UDP, this is the start of the port range. If the protocol is ICMP or ICMPv6, this is the ICMP type or -1 (all ICMP types). :param pulumi.Input[int] to_port: If the protocol is TCP or UDP, this is the end of the port range. If the protocol is ICMP or ICMPv6, this is the ICMP code or -1 (all ICMP codes). If the start port is -1 (all ICMP types), then the end port must be -1 (all ICMP codes). """ @@ -90,7 +90,7 @@ def ip_protocol(self, value: pulumi.Input[str]): def cidr_ip(self) -> Optional[pulumi.Input[str]]: """ The IPv4 address range, in CIDR format. - You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*. """ return pulumi.get(self, "cidr_ip") @@ -104,7 +104,7 @@ def cidr_ip(self, value: Optional[pulumi.Input[str]]): def cidr_ipv6(self) -> Optional[pulumi.Input[str]]: """ The IPv6 address range, in CIDR format. - You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*. """ return pulumi.get(self, "cidr_ipv6") @@ -130,8 +130,8 @@ def description(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="destinationPrefixListId") def destination_prefix_list_id(self) -> Optional[pulumi.Input[str]]: """ - The prefix list IDs for an AWS service. This is the AWS service that you want to access through a VPC endpoint from instances associated with the security group. - You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + The prefix list IDs for an AWS service. This is the AWS service to access through a VPC endpoint from instances associated with the security group. + You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. """ return pulumi.get(self, "destination_prefix_list_id") @@ -144,7 +144,7 @@ def destination_prefix_list_id(self, value: Optional[pulumi.Input[str]]): def destination_security_group_id(self) -> Optional[pulumi.Input[str]]: """ The ID of the security group. - You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. """ return pulumi.get(self, "destination_security_group_id") @@ -195,24 +195,24 @@ def __init__(__self__, """ Adds the specified outbound (egress) rule to a security group. An outbound rule permits instances to send traffic to the specified IPv4 or IPv6 address range, the IP addresses that are specified by a prefix list, or the instances that are associated with a destination security group. For more information, see [Security group rules](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html). - You must specify exactly one of the following destinations: an IPv4 or IPv6 address range, a prefix list, or a security group. Otherwise, the stack launches successfully but the rule is not added to the security group. + You must specify exactly one of the following destinations: an IPv4 address range, an IPv6 address range, a prefix list, or a security group. You must specify a protocol for each rule (for example, TCP). If the protocol is TCP or UDP, you must also specify a port or port range. If the protocol is ICMP or ICMPv6, you must also specify the ICMP/ICMPv6 type and code. To specify all types or all codes, use -1. - Rule changes are propagated to instances associated with the security group as quickly as possible + Rule changes are propagated to instances associated with the security group as quickly as possible. However, a small delay might occur. :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] cidr_ip: The IPv4 address range, in CIDR format. - You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*. :param pulumi.Input[str] cidr_ipv6: The IPv6 address range, in CIDR format. - You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*. :param pulumi.Input[str] description: The description of an egress (outbound) security group rule. Constraints: Up to 255 characters in length. Allowed characters are a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=;{}!$* - :param pulumi.Input[str] destination_prefix_list_id: The prefix list IDs for an AWS service. This is the AWS service that you want to access through a VPC endpoint from instances associated with the security group. - You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + :param pulumi.Input[str] destination_prefix_list_id: The prefix list IDs for an AWS service. This is the AWS service to access through a VPC endpoint from instances associated with the security group. + You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. :param pulumi.Input[str] destination_security_group_id: The ID of the security group. - You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. :param pulumi.Input[int] from_port: If the protocol is TCP or UDP, this is the start of the port range. If the protocol is ICMP or ICMPv6, this is the ICMP type or -1 (all ICMP types). :param pulumi.Input[str] group_id: The ID of the security group. You must specify either the security group ID or the security group name in the request. For security groups in a nondefault VPC, you must specify the security group ID. :param pulumi.Input[str] ip_protocol: The IP protocol name (``tcp``, ``udp``, ``icmp``, ``icmpv6``) or number (see [Protocol Numbers](https://docs.aws.amazon.com/http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)). @@ -228,9 +228,9 @@ def __init__(__self__, """ Adds the specified outbound (egress) rule to a security group. An outbound rule permits instances to send traffic to the specified IPv4 or IPv6 address range, the IP addresses that are specified by a prefix list, or the instances that are associated with a destination security group. For more information, see [Security group rules](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html). - You must specify exactly one of the following destinations: an IPv4 or IPv6 address range, a prefix list, or a security group. Otherwise, the stack launches successfully but the rule is not added to the security group. + You must specify exactly one of the following destinations: an IPv4 address range, an IPv6 address range, a prefix list, or a security group. You must specify a protocol for each rule (for example, TCP). If the protocol is TCP or UDP, you must also specify a port or port range. If the protocol is ICMP or ICMPv6, you must also specify the ICMP/ICMPv6 type and code. To specify all types or all codes, use -1. - Rule changes are propagated to instances associated with the security group as quickly as possible + Rule changes are propagated to instances associated with the security group as quickly as possible. However, a small delay might occur. :param str resource_name: The name of the resource. :param SecurityGroupEgressInitArgs args: The arguments to use to populate this resource's properties. @@ -325,7 +325,7 @@ def aws_id(self) -> pulumi.Output[str]: def cidr_ip(self) -> pulumi.Output[Optional[str]]: """ The IPv4 address range, in CIDR format. - You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*. """ return pulumi.get(self, "cidr_ip") @@ -335,7 +335,7 @@ def cidr_ip(self) -> pulumi.Output[Optional[str]]: def cidr_ipv6(self) -> pulumi.Output[Optional[str]]: """ The IPv6 address range, in CIDR format. - You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*. """ return pulumi.get(self, "cidr_ipv6") @@ -353,8 +353,8 @@ def description(self) -> pulumi.Output[Optional[str]]: @pulumi.getter(name="destinationPrefixListId") def destination_prefix_list_id(self) -> pulumi.Output[Optional[str]]: """ - The prefix list IDs for an AWS service. This is the AWS service that you want to access through a VPC endpoint from instances associated with the security group. - You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + The prefix list IDs for an AWS service. This is the AWS service to access through a VPC endpoint from instances associated with the security group. + You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. """ return pulumi.get(self, "destination_prefix_list_id") @@ -363,7 +363,7 @@ def destination_prefix_list_id(self) -> pulumi.Output[Optional[str]]: def destination_security_group_id(self) -> pulumi.Output[Optional[str]]: """ The ID of the security group. - You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + You must specify exactly one of the following: ``CidrIp``, ``CidrIpv6``, ``DestinationPrefixListId``, or ``DestinationSecurityGroupId``. """ return pulumi.get(self, "destination_security_group_id") 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/ecs/_enums.py b/sdk/python/pulumi_aws_native/ecs/_enums.py index 1e683673da..88b199502f 100644 --- a/sdk/python/pulumi_aws_native/ecs/_enums.py +++ b/sdk/python/pulumi_aws_native/ecs/_enums.py @@ -155,7 +155,7 @@ class TaskDefinitionPortMappingAppProtocol(str, Enum): The application protocol that's used for the port mapping. This parameter only applies to Service Connect. We recommend that you set this parameter to be consistent with the protocol that your application uses. If you set this parameter, Amazon ECS adds protocol-specific connection handling to the Service Connect proxy. If you set this parameter, Amazon ECS adds protocol-specific telemetry in the Amazon ECS console and CloudWatch. If you don't set a value for this parameter, then TCP is used. However, Amazon ECS doesn't add protocol-specific telemetry for TCP. ``appProtocol`` is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment. - Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS se + Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. """ HTTP = "http" HTTP2 = "http2" diff --git a/sdk/python/pulumi_aws_native/ecs/_inputs.py b/sdk/python/pulumi_aws_native/ecs/_inputs.py index c662331bf4..72d2c07000 100644 --- a/sdk/python/pulumi_aws_native/ecs/_inputs.py +++ b/sdk/python/pulumi_aws_native/ecs/_inputs.py @@ -51,6 +51,8 @@ 'TaskDefinitionEfsVolumeConfigurationArgs', 'TaskDefinitionEnvironmentFileArgs', 'TaskDefinitionEphemeralStorageArgs', + 'TaskDefinitionFSxAuthorizationConfigArgs', + 'TaskDefinitionFSxWindowsFileServerVolumeConfigurationArgs', 'TaskDefinitionFirelensConfigurationArgs', 'TaskDefinitionHealthCheckArgs', 'TaskDefinitionHostEntryArgs', @@ -2102,20 +2104,34 @@ def __init__(__self__, *, """ The ``ContainerDefinition`` property specifies a container definition. Container definitions are used in task definitions to describe the different containers that are launched as part of a task. :param pulumi.Input[str] image: The image used to start a container. This string is passed directly to the Docker daemon. By default, images in the Docker Hub registry are available. Other repositories are specified with either ``repository-url/image:tag`` or ``repository-url/image@digest``. Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to ``Image`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``IMAGE`` parameter of [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - + When a new task starts, the Amazon ECS container agent pulls the latest version of the specified image and tag for the container to use. However, subsequent updates to a repository image + + When a new task starts, the Amazon ECS container agent pulls the latest version of the specified image and tag for the container to use. However, subsequent updates to a repository image aren't propagated to already running tasks. + + Images in Amazon ECR repositories can be specified by either using the full ``registry/repository:tag`` or ``registry/repository@digest``. For example, ``012345678910.dkr.ecr..amazonaws.com/:latest`` or ``012345678910.dkr.ecr..amazonaws.com/@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE``. + + Images in official repositories on Docker Hub use a single name (for example, ``ubuntu`` or ``mongo``). + + Images in other repositories on Docker Hub are qualified with an organization name (for example, ``amazon/amazon-ecs-agent``). + + Images in other online repositories are qualified further by a domain name (for example, ``quay.io/assemblyline/ubuntu``). :param pulumi.Input[str] name: The name of a container. If you're linking multiple containers together in a task definition, the ``name`` of one container can be entered in the ``links`` of another container to connect the containers. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. This parameter maps to ``name`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--name`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). :param pulumi.Input[Sequence[pulumi.Input[str]]] command: The command that's passed to the container. This parameter maps to ``Cmd`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``COMMAND`` parameter to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). For more information, see [https://docs.docker.com/engine/reference/builder/#cmd](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/builder/#cmd). If there are multiple arguments, each argument is a separated string in the array. :param pulumi.Input[int] cpu: The number of ``cpu`` units reserved for the container. This parameter maps to ``CpuShares`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cpu-shares`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). This field is optional for tasks using the Fargate launch type, and the only requirement is that the total amount of CPU reserved for all containers within a task be lower than the task-level ``cpu`` value. You can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the [Amazon EC2 Instances](https://docs.aws.amazon.com/ec2/instance-types/) detail page by 1,024. - Linux containers share unallocated CPU units with other containers on the cont + Linux containers share unallocated CPU units with other containers on the container instance with the same ratio as their allocated amount. For example, if you run a single-container task on a single-core instance type with 512 CPU units specified for that container, and that's the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time. However, if you launched another copy of the same task on that container instance, each task is guaranteed a minimum of 512 CPU units when needed. Moreover, each container could float to higher CPU usage if the other container was not using it. If both tasks were 100% active all of the time, they would be limited to 512 CPU units. + On Linux container instances, the Docker daemon on the container instance uses the CPU value to calculate the relative CPU share ratios for running containers. For more information, see [CPU share constraint](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#cpu-share-constraint) in the Docker documentation. The minimum valid CPU share value that the Linux kernel allows is 2. However, the CPU parameter isn't required, and you can use CPU values below 2 in your container definitions. For CPU values below 2 (including null), the behavior varies based on your Amazon ECS container agent version: + + *Agent versions less than or equal to 1.1.0:* Null and zero CPU values are passed to Docker as 0, which Docker then converts to 1,024 CPU shares. CPU values of 1 are passed to Docker as 1, which the Linux kernel converts to two CPU shares. + + *Agent versions greater than or equal to 1.2.0:* Null, zero, and CPU values of 1 are passed to Docker as 2. + + On Windows container instances, the CPU limit is enforced as an absolute limit, or a quota. Windows containers only have access to the specified amount of CPU that's described in the task definition. A null or zero CPU value is passed to Docker as ``0``, which Windows interprets as 1% of one CPU. :param pulumi.Input[Sequence[pulumi.Input[str]]] credential_specs: A list of ARNs in SSM or Amazon S3 to a credential spec (``CredSpec``) file that configures the container for Active Directory authentication. We recommend that you use this parameter instead of the ``dockerSecurityOptions``. The maximum number of ARNs is 1. There are two formats for each ARN. + credentialspecdomainless:MyARN You use credentialspecdomainless:MyARN to provide a CredSpec with an additional section for a secret in . You provide the login credentials to the domain in the secret. Each task that runs on any container instance can join different domains. You can use this format without joining the container instance to a domain. + credentialspec:MyARN You use credentialspec:MyARN to provide a CredSpec for a single domain. You must join the container instance to the domain before you start any tasks that use this task definition. In both formats, replace ``MyARN`` with the ARN in SSM or Amazon S3. - If you provide a ``credentialspecdomainless:MyARN``, the ``credspec`` must + If you provide a ``credentialspecdomainless:MyARN``, the ``credspec`` must provide a ARN in ASMlong for a secret containing the username, password, and the domain to connect to. For better security, the instance isn't joined to the domain for domainless authentication. Other applications on the instance can't use the domainless credentials. You can use this parameter to run tasks on the same instance, even it the tasks need to join different domains. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) and [Using gMSAs for Linux Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html). :param pulumi.Input[Sequence[pulumi.Input['TaskDefinitionContainerDependencyArgs']]] depends_on: The dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed. - For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [ + For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + For tasks using the Fargate launch type, the task or service requires the following platforms: + + Linux platform version ``1.3.0`` or later. + + Windows platform version ``1.0.0`` or later. + + If the task definition is used in a blue/green deployment that uses [AWS::CodeDeploy::DeploymentGroup BlueGreenDeploymentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-bluegreendeploymentconfiguration.html), the ``dependsOn`` parameter is not supported. For more information see [Issue #680](https://docs.aws.amazon.com/https://github.com/aws-cloudformation/cloudformation-coverage-roadmap/issues/680) on the on the GitHub website. :param pulumi.Input[bool] disable_networking: When this parameter is true, networking is off within the container. This parameter maps to ``NetworkDisabled`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/). This parameter is not supported for Windows containers. :param pulumi.Input[Sequence[pulumi.Input[str]]] dns_search_domains: A list of DNS search domains that are presented to the container. This parameter maps to ``DnsSearch`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--dns-search`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). @@ -2126,14 +2142,17 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] docker_security_options: A list of strings to provide custom configuration for multiple security systems. For more information about valid values, see [Docker Run Security Configuration](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). This field isn't valid for containers in tasks using the Fargate launch type. For Linux tasks on EC2, this parameter can be used to reference custom labels for SELinux and AppArmor multi-level security systems. For any tasks on EC2, this parameter can be used to reference a credential spec file that configures a container for Active Directory authentication. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) and [Using gMSAs for Linux Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html) in the *Amazon Elastic Container Service Developer Guide*. - This parameter maps to ``SecurityOpt`` in the [Create a co + This parameter maps to ``SecurityOpt`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--security-opt`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + The Amazon ECS container agent running on a container instance must register with the ``ECS_SELINUX_CAPABLE=true`` or ``ECS_APPARMOR_CAPABLE=true`` environment variables before containers placed on that instance can use these security options. For more information, see [Amazon ECS Container Agent Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*. + For more information about valid values, see [Docker Run Security Configuration](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + Valid values: "no-new-privileges" | "apparmor:PROFILE" | "label:value" | "credentialspec:CredentialSpecFilePath" :param pulumi.Input[Sequence[pulumi.Input[str]]] entry_point: Early versions of the Amazon ECS container agent don't properly handle ``entryPoint`` parameters. If you have problems using ``entryPoint``, update your container agent or enter your commands and arguments as ``command`` array items instead. The entry point that's passed to the container. This parameter maps to ``Entrypoint`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--entrypoint`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). For more information, see [https://docs.docker.com/engine/reference/builder/#entrypoint](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/builder/#entrypoint). :param pulumi.Input[Sequence[pulumi.Input['TaskDefinitionKeyValuePairArgs']]] environment: The environment variables to pass to a container. This parameter maps to ``Env`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--env`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). We don't recommend that you use plaintext environment variables for sensitive information, such as credential data. :param pulumi.Input[Sequence[pulumi.Input['TaskDefinitionEnvironmentFileArgs']]] environment_files: A list of files containing the environment variables to pass to a container. This parameter maps to the ``--env-file`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). You can specify up to ten environment files. The file must have a ``.env`` file extension. Each line in an environment file contains an environment variable in ``VARIABLE=VALUE`` format. Lines beginning with ``#`` are treated as comments and are ignored. For more information about the environment variable file syntax, see [Declare default environment variables in file](https://docs.aws.amazon.com/https://docs.docker.com/compose/env-file/). - If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend t + If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Specifying Environment Variables](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) in the *Amazon Elastic Container Service Developer Guide*. :param pulumi.Input[bool] essential: If the ``essential`` parameter of a container is marked as ``true``, and that container fails or stops for any reason, all other containers that are part of the task are stopped. If the ``essential`` parameter of a container is marked as ``false``, its failure doesn't affect the rest of the containers in a task. If this parameter is omitted, a container is assumed to be essential. All tasks must have at least one essential container. If you have an application that's composed of multiple containers, group containers that are used for a common purpose into components, and separate the different components into multiple task definitions. For more information, see [Application Architecture](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html) in the *Amazon Elastic Container Service Developer Guide*. :param pulumi.Input[Sequence[pulumi.Input['TaskDefinitionHostEntryArgs']]] extra_hosts: A list of hostnames and IP address mappings to append to the ``/etc/hosts`` file on the container. This parameter maps to ``ExtraHosts`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--add-host`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). @@ -2144,23 +2163,33 @@ def __init__(__self__, *, The ``hostname`` parameter is not supported if you're using the ``awsvpc`` network mode. :param pulumi.Input[bool] interactive: When this parameter is ``true``, you can deploy containerized applications that require ``stdin`` or a ``tty`` to be allocated. This parameter maps to ``OpenStdin`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--interactive`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). :param pulumi.Input[Sequence[pulumi.Input[str]]] links: The ``links`` parameter allows containers to communicate with each other without the need for port mappings. This parameter is only supported if the network mode of a task definition is ``bridge``. The ``name:internalName`` construct is analogous to ``name:alias`` in Docker links. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. For more information about linking Docker containers, go to [Legacy container links](https://docs.aws.amazon.com/https://docs.docker.com/network/links/) in the Docker documentation. This parameter maps to ``Links`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--link`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - This parameter is not supported for W + This parameter is not supported for Windows containers. + Containers that are collocated on a single container instance may be able to communicate with each other without requiring links or host port mappings. Network isolation is achieved on the container instance using security groups and VPC settings. :param pulumi.Input['TaskDefinitionLinuxParametersArgs'] linux_parameters: Linux-specific modifications that are applied to the container, such as Linux kernel capabilities. For more information see [KernelCapabilities](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_KernelCapabilities.html). This parameter is not supported for Windows containers. :param pulumi.Input['TaskDefinitionLogConfigurationArgs'] log_configuration: The log configuration specification for the container. - This parameter maps to ``LogConfig`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--log-driver`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). By default, containers use the same logging driver that the Docker daemon uses. However, the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.aws.amazon.com/htt + This parameter maps to ``LogConfig`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--log-driver`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). By default, containers use the same logging driver that the Docker daemon uses. However, the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.aws.amazon.com/https://docs.docker.com/engine/admin/logging/overview/) in the Docker documentation. + Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon (shown in the [LogConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_LogConfiguration.html) data type). Additional log drivers may be available in future releases of the Amazon ECS container agent. + This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'`` + The Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the ``ECS_AVAILABLE_LOGGING_DRIVERS`` environment variable before containers placed on that instance can use these log configuration options. For more information, see [Amazon ECS Container Agent Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*. :param pulumi.Input[int] memory: The amount (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. The total amount of memory reserved for all containers within a task must be lower than the task ``memory`` value, if one is specified. This parameter maps to ``Memory`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). If using the Fargate launch type, this parameter is optional. - If using the EC2 launch type, you must specify either a task-level memory value or a container-level memory value. If you specify both a container-level ``memory`` and ``memoryReservation`` value, ``memory`` must be greater than ``memoryReserva + If using the EC2 launch type, you must specify either a task-level memory value or a container-level memory value. If you specify both a container-level ``memory`` and ``memoryReservation`` value, ``memory`` must be greater than ``memoryReservation``. If you specify ``memoryReservation``, then that value is subtracted from the available memory resources for the container instance where the container is placed. Otherwise, the value of ``memory`` is used. + The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container, so you should not specify fewer than 6 MiB of memory for your containers. + The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container, so you should not specify fewer than 4 MiB of memory for your containers. :param pulumi.Input[int] memory_reservation: The soft limit (in MiB) of memory to reserve for the container. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit. However, your container can consume more memory when it needs to, up to either the hard limit specified with the ``memory`` parameter (if applicable), or all of the available memory on the container instance, whichever comes first. This parameter maps to ``MemoryReservation`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory-reservation`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - If a task-level memory value is not specified, you must specify a non-zero integer for one or both of ``memory`` or ``memoryReservation`` in a container definiti + If a task-level memory value is not specified, you must specify a non-zero integer for one or both of ``memory`` or ``memoryReservation`` in a container definition. If you specify both, ``memory`` must be greater than ``memoryReservation``. If you specify ``memoryReservation``, then that value is subtracted from the available memory resources for the container instance where the container is placed. Otherwise, the value of ``memory`` is used. + For example, if your container normally uses 128 MiB of memory, but occasionally bursts to 256 MiB of memory for short periods of time, you can set a ``memoryReservation`` of 128 MiB, and a ``memory`` hard limit of 300 MiB. This configuration would allow the container to only reserve 128 MiB of memory from the remaining resources on the container instance, but also allow the container to consume more memory resources when needed. + The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container. So, don't specify less than 6 MiB of memory for your containers. + The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container. So, don't specify less than 4 MiB of memory for your containers. :param pulumi.Input[Sequence[pulumi.Input['TaskDefinitionMountPointArgs']]] mount_points: The mount points for data volumes in your container. This parameter maps to ``Volumes`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--volume`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). Windows containers can mount whole directories on the same drive as ``$env:ProgramData``. Windows containers can't mount directories on a different drive, and mount point can't be across drives. :param pulumi.Input[Sequence[pulumi.Input['TaskDefinitionPortMappingArgs']]] port_mappings: The list of port mappings for the container. Port mappings allow containers to access ports on the host container instance to send or receive traffic. For task definitions that use the ``awsvpc`` network mode, you should only specify the ``containerPort``. The ``hostPort`` can be left blank or it must be the same value as the ``containerPort``. Port mappings on Windows use the ``NetNAT`` gateway address rather than ``localhost``. There is no loopback for port mappings on Windows, so you cannot access a container's mapped port from the host itself. - This parameter maps to ``PortBindings`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--publish`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). If the network mode of a task definition is set to + This parameter maps to ``PortBindings`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--publish`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). If the network mode of a task definition is set to ``none``, then you can't specify port mappings. If the network mode of a task definition is set to ``host``, then host ports must either be undefined or they must match the container port in the port mapping. + After a task reaches the ``RUNNING`` status, manual and automatic host and container port assignments are visible in the *Network Bindings* section of a container description for a selected task in the Amazon ECS console. The assignments are also visible in the ``networkBindings`` section [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) responses. :param pulumi.Input[bool] privileged: When this parameter is true, the container is given elevated privileges on the host container instance (similar to the ``root`` user). This parameter maps to ``Privileged`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--privileged`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). This parameter is not supported for Windows containers or tasks run on FARGATElong. :param pulumi.Input[bool] pseudo_terminal: When this parameter is ``true``, a TTY is allocated. This parameter maps to ``Tty`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--tty`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). @@ -2175,14 +2204,16 @@ def __init__(__self__, *, + Linux platform version ``1.3.0`` or later. + Windows platform version ``1.0.0`` or later. - For tasks using the EC2 launch type, your container instances require at least version ``1.26.0`` of the container agent to use a container start timeout value. However + For tasks using the EC2 launch type, your container instances require at least version ``1.26.0`` of the container agent to use a container start timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version ``1.26.0-1`` of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + The valid values are 2-120 seconds. :param pulumi.Input[int] stop_timeout: Time duration (in seconds) to wait before the container is forcefully killed if it doesn't exit normally on its own. For tasks using the Fargate launch type, the task or service requires the following platforms: + Linux platform version ``1.3.0`` or later. + Windows platform version ``1.0.0`` or later. The max stop timeout value is 120 seconds and if the parameter is not specified, the default value of 30 seconds is used. - For tasks that use the EC2 launch type, if the ``stopTimeout`` parameter isn't specified, the value set for the Amazon ECS container agent configuration variable ``ECS_CONTAINER_STOP_TIMEOUT`` is used. If neither the ``stopTimeout`` parameter or the ``ECS_CONTAINER_STOP_TIMEOUT`` agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to use a container stop timeout value. However, we recomm + For tasks that use the EC2 launch type, if the ``stopTimeout`` parameter isn't specified, the value set for the Amazon ECS container agent configuration variable ``ECS_CONTAINER_STOP_TIMEOUT`` is used. If neither the ``stopTimeout`` parameter or the ``ECS_CONTAINER_STOP_TIMEOUT`` agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to use a container stop timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + The valid values are 2-120 seconds. :param pulumi.Input[Sequence[pulumi.Input['TaskDefinitionSystemControlArgs']]] system_controls: A list of namespaced kernel parameters to set in the container. This parameter maps to ``Sysctls`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--sysctl`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). For example, you can configure ``net.ipv4.tcp_keepalive_time`` setting to maintain longer lived connections. :param pulumi.Input[Sequence[pulumi.Input['TaskDefinitionUlimitArgs']]] ulimits: A list of ``ulimits`` to set in the container. This parameter maps to ``Ulimits`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--ulimit`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). Valid naming values are displayed in the [Ulimit](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_Ulimit.html) data type. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'`` This parameter is not supported for Windows containers. @@ -2284,7 +2315,11 @@ def __init__(__self__, *, def image(self) -> pulumi.Input[str]: """ The image used to start a container. This string is passed directly to the Docker daemon. By default, images in the Docker Hub registry are available. Other repositories are specified with either ``repository-url/image:tag`` or ``repository-url/image@digest``. Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to ``Image`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``IMAGE`` parameter of [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - + When a new task starts, the Amazon ECS container agent pulls the latest version of the specified image and tag for the container to use. However, subsequent updates to a repository image + + When a new task starts, the Amazon ECS container agent pulls the latest version of the specified image and tag for the container to use. However, subsequent updates to a repository image aren't propagated to already running tasks. + + Images in Amazon ECR repositories can be specified by either using the full ``registry/repository:tag`` or ``registry/repository@digest``. For example, ``012345678910.dkr.ecr..amazonaws.com/:latest`` or ``012345678910.dkr.ecr..amazonaws.com/@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE``. + + Images in official repositories on Docker Hub use a single name (for example, ``ubuntu`` or ``mongo``). + + Images in other repositories on Docker Hub are qualified with an organization name (for example, ``amazon/amazon-ecs-agent``). + + Images in other online repositories are qualified further by a domain name (for example, ``quay.io/assemblyline/ubuntu``). """ return pulumi.get(self, "image") @@ -2323,7 +2358,12 @@ def cpu(self) -> Optional[pulumi.Input[int]]: The number of ``cpu`` units reserved for the container. This parameter maps to ``CpuShares`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cpu-shares`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). This field is optional for tasks using the Fargate launch type, and the only requirement is that the total amount of CPU reserved for all containers within a task be lower than the task-level ``cpu`` value. You can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the [Amazon EC2 Instances](https://docs.aws.amazon.com/ec2/instance-types/) detail page by 1,024. - Linux containers share unallocated CPU units with other containers on the cont + Linux containers share unallocated CPU units with other containers on the container instance with the same ratio as their allocated amount. For example, if you run a single-container task on a single-core instance type with 512 CPU units specified for that container, and that's the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time. However, if you launched another copy of the same task on that container instance, each task is guaranteed a minimum of 512 CPU units when needed. Moreover, each container could float to higher CPU usage if the other container was not using it. If both tasks were 100% active all of the time, they would be limited to 512 CPU units. + On Linux container instances, the Docker daemon on the container instance uses the CPU value to calculate the relative CPU share ratios for running containers. For more information, see [CPU share constraint](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#cpu-share-constraint) in the Docker documentation. The minimum valid CPU share value that the Linux kernel allows is 2. However, the CPU parameter isn't required, and you can use CPU values below 2 in your container definitions. For CPU values below 2 (including null), the behavior varies based on your Amazon ECS container agent version: + + *Agent versions less than or equal to 1.1.0:* Null and zero CPU values are passed to Docker as 0, which Docker then converts to 1,024 CPU shares. CPU values of 1 are passed to Docker as 1, which the Linux kernel converts to two CPU shares. + + *Agent versions greater than or equal to 1.2.0:* Null, zero, and CPU values of 1 are passed to Docker as 2. + + On Windows container instances, the CPU limit is enforced as an absolute limit, or a quota. Windows containers only have access to the specified amount of CPU that's described in the task definition. A null or zero CPU value is passed to Docker as ``0``, which Windows interprets as 1% of one CPU. """ return pulumi.get(self, "cpu") @@ -2339,7 +2379,7 @@ def credential_specs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]] There are two formats for each ARN. + credentialspecdomainless:MyARN You use credentialspecdomainless:MyARN to provide a CredSpec with an additional section for a secret in . You provide the login credentials to the domain in the secret. Each task that runs on any container instance can join different domains. You can use this format without joining the container instance to a domain. + credentialspec:MyARN You use credentialspec:MyARN to provide a CredSpec for a single domain. You must join the container instance to the domain before you start any tasks that use this task definition. In both formats, replace ``MyARN`` with the ARN in SSM or Amazon S3. - If you provide a ``credentialspecdomainless:MyARN``, the ``credspec`` must + If you provide a ``credentialspecdomainless:MyARN``, the ``credspec`` must provide a ARN in ASMlong for a secret containing the username, password, and the domain to connect to. For better security, the instance isn't joined to the domain for domainless authentication. Other applications on the instance can't use the domainless credentials. You can use this parameter to run tasks on the same instance, even it the tasks need to join different domains. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) and [Using gMSAs for Linux Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html). """ return pulumi.get(self, "credential_specs") @@ -2352,7 +2392,12 @@ def credential_specs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st def depends_on(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['TaskDefinitionContainerDependencyArgs']]]]: """ The dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed. - For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [ + For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + For tasks using the Fargate launch type, the task or service requires the following platforms: + + Linux platform version ``1.3.0`` or later. + + Windows platform version ``1.0.0`` or later. + + If the task definition is used in a blue/green deployment that uses [AWS::CodeDeploy::DeploymentGroup BlueGreenDeploymentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-bluegreendeploymentconfiguration.html), the ``dependsOn`` parameter is not supported. For more information see [Issue #680](https://docs.aws.amazon.com/https://github.com/aws-cloudformation/cloudformation-coverage-roadmap/issues/680) on the on the GitHub website. """ return pulumi.get(self, "depends_on") @@ -2418,7 +2463,10 @@ def docker_security_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input A list of strings to provide custom configuration for multiple security systems. For more information about valid values, see [Docker Run Security Configuration](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). This field isn't valid for containers in tasks using the Fargate launch type. For Linux tasks on EC2, this parameter can be used to reference custom labels for SELinux and AppArmor multi-level security systems. For any tasks on EC2, this parameter can be used to reference a credential spec file that configures a container for Active Directory authentication. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) and [Using gMSAs for Linux Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html) in the *Amazon Elastic Container Service Developer Guide*. - This parameter maps to ``SecurityOpt`` in the [Create a co + This parameter maps to ``SecurityOpt`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--security-opt`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + The Amazon ECS container agent running on a container instance must register with the ``ECS_SELINUX_CAPABLE=true`` or ``ECS_APPARMOR_CAPABLE=true`` environment variables before containers placed on that instance can use these security options. For more information, see [Amazon ECS Container Agent Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*. + For more information about valid values, see [Docker Run Security Configuration](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + Valid values: "no-new-privileges" | "apparmor:PROFILE" | "label:value" | "credentialspec:CredentialSpecFilePath" """ return pulumi.get(self, "docker_security_options") @@ -2458,7 +2506,7 @@ def environment_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['Task """ A list of files containing the environment variables to pass to a container. This parameter maps to the ``--env-file`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). You can specify up to ten environment files. The file must have a ``.env`` file extension. Each line in an environment file contains an environment variable in ``VARIABLE=VALUE`` format. Lines beginning with ``#`` are treated as comments and are ignored. For more information about the environment variable file syntax, see [Declare default environment variables in file](https://docs.aws.amazon.com/https://docs.docker.com/compose/env-file/). - If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend t + If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Specifying Environment Variables](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) in the *Amazon Elastic Container Service Developer Guide*. """ return pulumi.get(self, "environment_files") @@ -2546,7 +2594,8 @@ def interactive(self, value: Optional[pulumi.Input[bool]]): def links(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ The ``links`` parameter allows containers to communicate with each other without the need for port mappings. This parameter is only supported if the network mode of a task definition is ``bridge``. The ``name:internalName`` construct is analogous to ``name:alias`` in Docker links. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. For more information about linking Docker containers, go to [Legacy container links](https://docs.aws.amazon.com/https://docs.docker.com/network/links/) in the Docker documentation. This parameter maps to ``Links`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--link`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - This parameter is not supported for W + This parameter is not supported for Windows containers. + Containers that are collocated on a single container instance may be able to communicate with each other without requiring links or host port mappings. Network isolation is achieved on the container instance using security groups and VPC settings. """ return pulumi.get(self, "links") @@ -2572,7 +2621,10 @@ def linux_parameters(self, value: Optional[pulumi.Input['TaskDefinitionLinuxPara def log_configuration(self) -> Optional[pulumi.Input['TaskDefinitionLogConfigurationArgs']]: """ The log configuration specification for the container. - This parameter maps to ``LogConfig`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--log-driver`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). By default, containers use the same logging driver that the Docker daemon uses. However, the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.aws.amazon.com/htt + This parameter maps to ``LogConfig`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--log-driver`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). By default, containers use the same logging driver that the Docker daemon uses. However, the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.aws.amazon.com/https://docs.docker.com/engine/admin/logging/overview/) in the Docker documentation. + Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon (shown in the [LogConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_LogConfiguration.html) data type). Additional log drivers may be available in future releases of the Amazon ECS container agent. + This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'`` + The Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the ``ECS_AVAILABLE_LOGGING_DRIVERS`` environment variable before containers placed on that instance can use these log configuration options. For more information, see [Amazon ECS Container Agent Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*. """ return pulumi.get(self, "log_configuration") @@ -2586,7 +2638,9 @@ def memory(self) -> Optional[pulumi.Input[int]]: """ The amount (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. The total amount of memory reserved for all containers within a task must be lower than the task ``memory`` value, if one is specified. This parameter maps to ``Memory`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). If using the Fargate launch type, this parameter is optional. - If using the EC2 launch type, you must specify either a task-level memory value or a container-level memory value. If you specify both a container-level ``memory`` and ``memoryReservation`` value, ``memory`` must be greater than ``memoryReserva + If using the EC2 launch type, you must specify either a task-level memory value or a container-level memory value. If you specify both a container-level ``memory`` and ``memoryReservation`` value, ``memory`` must be greater than ``memoryReservation``. If you specify ``memoryReservation``, then that value is subtracted from the available memory resources for the container instance where the container is placed. Otherwise, the value of ``memory`` is used. + The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container, so you should not specify fewer than 6 MiB of memory for your containers. + The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container, so you should not specify fewer than 4 MiB of memory for your containers. """ return pulumi.get(self, "memory") @@ -2599,7 +2653,10 @@ def memory(self, value: Optional[pulumi.Input[int]]): def memory_reservation(self) -> Optional[pulumi.Input[int]]: """ The soft limit (in MiB) of memory to reserve for the container. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit. However, your container can consume more memory when it needs to, up to either the hard limit specified with the ``memory`` parameter (if applicable), or all of the available memory on the container instance, whichever comes first. This parameter maps to ``MemoryReservation`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory-reservation`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - If a task-level memory value is not specified, you must specify a non-zero integer for one or both of ``memory`` or ``memoryReservation`` in a container definiti + If a task-level memory value is not specified, you must specify a non-zero integer for one or both of ``memory`` or ``memoryReservation`` in a container definition. If you specify both, ``memory`` must be greater than ``memoryReservation``. If you specify ``memoryReservation``, then that value is subtracted from the available memory resources for the container instance where the container is placed. Otherwise, the value of ``memory`` is used. + For example, if your container normally uses 128 MiB of memory, but occasionally bursts to 256 MiB of memory for short periods of time, you can set a ``memoryReservation`` of 128 MiB, and a ``memory`` hard limit of 300 MiB. This configuration would allow the container to only reserve 128 MiB of memory from the remaining resources on the container instance, but also allow the container to consume more memory resources when needed. + The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container. So, don't specify less than 6 MiB of memory for your containers. + The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container. So, don't specify less than 4 MiB of memory for your containers. """ return pulumi.get(self, "memory_reservation") @@ -2628,7 +2685,8 @@ def port_mappings(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['TaskDefi The list of port mappings for the container. Port mappings allow containers to access ports on the host container instance to send or receive traffic. For task definitions that use the ``awsvpc`` network mode, you should only specify the ``containerPort``. The ``hostPort`` can be left blank or it must be the same value as the ``containerPort``. Port mappings on Windows use the ``NetNAT`` gateway address rather than ``localhost``. There is no loopback for port mappings on Windows, so you cannot access a container's mapped port from the host itself. - This parameter maps to ``PortBindings`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--publish`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). If the network mode of a task definition is set to + This parameter maps to ``PortBindings`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--publish`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). If the network mode of a task definition is set to ``none``, then you can't specify port mappings. If the network mode of a task definition is set to ``host``, then host ports must either be undefined or they must match the container port in the port mapping. + After a task reaches the ``RUNNING`` status, manual and automatic host and container port assignments are visible in the *Network Bindings* section of a container description for a selected task in the Amazon ECS console. The assignments are also visible in the ``networkBindings`` section [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) responses. """ return pulumi.get(self, "port_mappings") @@ -2720,7 +2778,8 @@ def start_timeout(self) -> Optional[pulumi.Input[int]]: + Linux platform version ``1.3.0`` or later. + Windows platform version ``1.0.0`` or later. - For tasks using the EC2 launch type, your container instances require at least version ``1.26.0`` of the container agent to use a container start timeout value. However + For tasks using the EC2 launch type, your container instances require at least version ``1.26.0`` of the container agent to use a container start timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version ``1.26.0-1`` of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + The valid values are 2-120 seconds. """ return pulumi.get(self, "start_timeout") @@ -2738,7 +2797,8 @@ def stop_timeout(self) -> Optional[pulumi.Input[int]]: + Windows platform version ``1.0.0`` or later. The max stop timeout value is 120 seconds and if the parameter is not specified, the default value of 30 seconds is used. - For tasks that use the EC2 launch type, if the ``stopTimeout`` parameter isn't specified, the value set for the Amazon ECS container agent configuration variable ``ECS_CONTAINER_STOP_TIMEOUT`` is used. If neither the ``stopTimeout`` parameter or the ``ECS_CONTAINER_STOP_TIMEOUT`` agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to use a container stop timeout value. However, we recomm + For tasks that use the EC2 launch type, if the ``stopTimeout`` parameter isn't specified, the value set for the Amazon ECS container agent configuration variable ``ECS_CONTAINER_STOP_TIMEOUT`` is used. If neither the ``stopTimeout`` parameter or the ``ECS_CONTAINER_STOP_TIMEOUT`` agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to use a container stop timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + The valid values are 2-120 seconds. """ return pulumi.get(self, "stop_timeout") @@ -2825,12 +2885,13 @@ def __init__(__self__, *, container_name: Optional[pulumi.Input[str]] = None): """ The ``ContainerDependency`` property specifies the dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed. - Your Amazon ECS container instances require at least version 1.26.0 of the container agent to enable container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you are using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For m + Your Amazon ECS container instances require at least version 1.26.0 of the container agent to enable container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you are using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + For tasks using the Fargate launch type, this parameter requires that the task or service uses platform version 1.3.0 or later. :param pulumi.Input[str] condition: The dependency condition of the container. The following are the available conditions and their behavior: + ``START`` - This condition emulates the behavior of links and volumes today. It validates that a dependent container is started before permitting other containers to start. + ``COMPLETE`` - This condition validates that a dependent container runs to completion (exits) before permitting other containers to start. This can be useful for nonessential containers that run a script and then exit. This condition can't be set on an essential container. + ``SUCCESS`` - This condition is the same as ``COMPLETE``, but it also requires that the container exits with a ``zero`` status. This condition can't be set on an essential container. - + ``HEALTHY`` - This condition validates that the dependent container passes its Docker health check before permitting other containers to start. This requires that the dependent container has health checks configured. This condition is confi + + ``HEALTHY`` - This condition validates that the dependent container passes its Docker health check before permitting other containers to start. This requires that the dependent container has health checks configured. This condition is confirmed only at task startup. :param pulumi.Input[str] container_name: The name of a container. """ if condition is not None: @@ -2846,7 +2907,7 @@ def condition(self) -> Optional[pulumi.Input[str]]: + ``START`` - This condition emulates the behavior of links and volumes today. It validates that a dependent container is started before permitting other containers to start. + ``COMPLETE`` - This condition validates that a dependent container runs to completion (exits) before permitting other containers to start. This can be useful for nonessential containers that run a script and then exit. This condition can't be set on an essential container. + ``SUCCESS`` - This condition is the same as ``COMPLETE``, but it also requires that the container exits with a ``zero`` status. This condition can't be set on an essential container. - + ``HEALTHY`` - This condition validates that the dependent container passes its Docker health check before permitting other containers to start. This requires that the dependent container has health checks configured. This condition is confi + + ``HEALTHY`` - This condition validates that the dependent container passes its Docker health check before permitting other containers to start. This requires that the dependent container has health checks configured. This condition is confirmed only at task startup. """ return pulumi.get(self, "condition") @@ -3109,10 +3170,17 @@ def __init__(__self__, *, value: Optional[pulumi.Input[str]] = None): """ A list of files containing the environment variables to pass to a container. You can specify up to ten environment files. The file must have a ``.env`` file extension. Each line in an environment file should contain an environment variable in ``VARIABLE=VALUE`` format. Lines beginning with ``#`` are treated as comments and are ignored. - If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Specifying environment variables](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) in the *Amazon Elastic Container Service Developer Guide*. + If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Use a file to pass environment variables to a container](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/use-environment-file.html) in the *Amazon Elastic Container Service Developer Guide*. + Environment variable files are objects in Amazon S3 and all Amazon S3 security considerations apply. You must use the following platforms for the Fargate launch type: - + Linux platform version ``1.4.0`` or la - :param pulumi.Input[str] type: The file type to use. The only supported value is ``s3``. + + Linux platform version ``1.4.0`` or later. + + Windows platform version ``1.0.0`` or later. + + Consider the following when using the Fargate launch type: + + The file is handled like a native Docker env-file. + + There is no support for shell escape handling. + + The container entry point interperts the ``VARIABLE`` values. + :param pulumi.Input[str] type: The file type to use. Environment files are objects in Amazon S3. The only supported value is ``s3``. :param pulumi.Input[str] value: The Amazon Resource Name (ARN) of the Amazon S3 object containing the environment variable file. """ if type is not None: @@ -3124,7 +3192,7 @@ def __init__(__self__, *, @pulumi.getter def type(self) -> Optional[pulumi.Input[str]]: """ - The file type to use. The only supported value is ``s3``. + The file type to use. Environment files are objects in Amazon S3. The only supported value is ``s3``. """ return pulumi.get(self, "type") @@ -3154,7 +3222,7 @@ def __init__(__self__, *, For tasks using the Fargate launch type, the task requires the following platforms: + Linux platform version ``1.4.0`` or later. + Windows platform version ``1.0.0`` or later. - :param pulumi.Input[int] size_in_gi_b: The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``21`` GiB and the maximum supported value is ``200`` GiB. + :param pulumi.Input[int] size_in_gi_b: The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``20`` GiB and the maximum supported value is ``200`` GiB. """ if size_in_gi_b is not None: pulumi.set(__self__, "size_in_gi_b", size_in_gi_b) @@ -3163,7 +3231,7 @@ def __init__(__self__, *, @pulumi.getter(name="sizeInGiB") def size_in_gi_b(self) -> Optional[pulumi.Input[int]]: """ - The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``21`` GiB and the maximum supported value is ``200`` GiB. + The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``20`` GiB and the maximum supported value is ``200`` GiB. """ return pulumi.get(self, "size_in_gi_b") @@ -3172,6 +3240,72 @@ def size_in_gi_b(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "size_in_gi_b", value) +@pulumi.input_type +class TaskDefinitionFSxAuthorizationConfigArgs: + def __init__(__self__, *, + credentials_parameter: pulumi.Input[str], + domain: pulumi.Input[str]): + pulumi.set(__self__, "credentials_parameter", credentials_parameter) + pulumi.set(__self__, "domain", domain) + + @property + @pulumi.getter(name="credentialsParameter") + def credentials_parameter(self) -> pulumi.Input[str]: + return pulumi.get(self, "credentials_parameter") + + @credentials_parameter.setter + def credentials_parameter(self, value: pulumi.Input[str]): + pulumi.set(self, "credentials_parameter", value) + + @property + @pulumi.getter + def domain(self) -> pulumi.Input[str]: + return pulumi.get(self, "domain") + + @domain.setter + def domain(self, value: pulumi.Input[str]): + pulumi.set(self, "domain", value) + + +@pulumi.input_type +class TaskDefinitionFSxWindowsFileServerVolumeConfigurationArgs: + def __init__(__self__, *, + file_system_id: pulumi.Input[str], + root_directory: pulumi.Input[str], + authorization_config: Optional[pulumi.Input['TaskDefinitionFSxAuthorizationConfigArgs']] = None): + pulumi.set(__self__, "file_system_id", file_system_id) + pulumi.set(__self__, "root_directory", root_directory) + if authorization_config is not None: + pulumi.set(__self__, "authorization_config", authorization_config) + + @property + @pulumi.getter(name="fileSystemId") + def file_system_id(self) -> pulumi.Input[str]: + return pulumi.get(self, "file_system_id") + + @file_system_id.setter + def file_system_id(self, value: pulumi.Input[str]): + pulumi.set(self, "file_system_id", value) + + @property + @pulumi.getter(name="rootDirectory") + def root_directory(self) -> pulumi.Input[str]: + return pulumi.get(self, "root_directory") + + @root_directory.setter + def root_directory(self, value: pulumi.Input[str]): + pulumi.set(self, "root_directory", value) + + @property + @pulumi.getter(name="authorizationConfig") + def authorization_config(self) -> Optional[pulumi.Input['TaskDefinitionFSxAuthorizationConfigArgs']]: + return pulumi.get(self, "authorization_config") + + @authorization_config.setter + def authorization_config(self, value: Optional[pulumi.Input['TaskDefinitionFSxAuthorizationConfigArgs']]): + pulumi.set(self, "authorization_config", value) + + @pulumi.input_type class TaskDefinitionFirelensConfigurationArgs: def __init__(__self__, *, @@ -3181,9 +3315,9 @@ def __init__(__self__, *, The FireLens configuration for the container. This is used to specify and configure a log router for container logs. For more information, see [Custom log routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] options: The options to use when configuring the log router. This field is optional and can be used to add additional metadata, such as the task, task definition, cluster, and container instance details to the log event. If specified, valid option keys are: - + ``enable-ecs-log-metadata``, which can be ``true`` or ``false`` - + ``config-file-type``, which can be ``s3`` or ``file`` - + ``config-file-value``, which is either an S3 ARN or a file path + + ``enable-ecs-log-metadata``, which can be ``true`` or ``false`` + + ``config-file-type``, which can be ``s3`` or ``file`` + + ``config-file-value``, which is either an S3 ARN or a file path :param pulumi.Input[str] type: The log router to use. The valid values are ``fluentd`` or ``fluentbit``. """ if options is not None: @@ -3197,9 +3331,9 @@ def options(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: """ The options to use when configuring the log router. This field is optional and can be used to add additional metadata, such as the task, task definition, cluster, and container instance details to the log event. If specified, valid option keys are: - + ``enable-ecs-log-metadata``, which can be ``true`` or ``false`` - + ``config-file-type``, which can be ``s3`` or ``file`` - + ``config-file-value``, which is either an S3 ARN or a file path + + ``enable-ecs-log-metadata``, which can be ``true`` or ``false`` + + ``config-file-type``, which can be ``s3`` or ``file`` + + ``config-file-value``, which is either an S3 ARN or a file path """ return pulumi.get(self, "options") @@ -3231,7 +3365,11 @@ def __init__(__self__, *, """ The ``HealthCheck`` property specifies an object representing a container health check. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image (such as those specified in a parent image or from the image's Dockerfile). This configuration maps to the ``HEALTHCHECK`` parameter of [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). The Amazon ECS container agent only monitors and reports on the health checks specified in the task definition. Amazon ECS does not monitor Docker health checks that are embedded in a container image and not specified in the container definition. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image. - If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a servi + If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a service, if the task reports as unhealthy then the task will be stopped and the service scheduler will replace it. + The following are notes about container health check support: + + Container health checks require version 1.17.0 or greater of the Amazon ECS container agent. For more information, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html). + + Container health checks are supported for Fargate tasks if you are using platform version 1.1.0 or greater. For more information, see [Platform Versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). + + Container health checks are not supported for tasks that are part of a service that is configured to use a Classic Load Balancer. :param pulumi.Input[Sequence[pulumi.Input[str]]] command: A string array representing the command that the container runs to determine if it is healthy. The string array must start with ``CMD`` to run the command arguments directly, or ``CMD-SHELL`` to run the command with the container's default shell. When you use the AWS Management Console JSON panel, the CLIlong, or the APIs, enclose the list of commands in double quotes and brackets. ``[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]`` @@ -3434,12 +3572,12 @@ def __init__(__self__, *, add: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, drop: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ - The ``KernelCapabilities`` property specifies the Linux capabilities for the container that are added to or dropped from the default configuration that is provided by Docker. For more information on the default capabilities and the non-default available capabilities, see [Runtime privilege and Linux capabilities](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) in the *Docker run reference*. For more detailed information on these Linux capabilities, see the [capabilities(7)](https://docs.aws.amazon.com/http://man7.org/linux/man-pages/man7/capabilities.7.html) Linux manual page. + The Linux capabilities to add or remove from the default Docker configuration for a container defined in the task definition. For more information about the default capabilities and the non-default available capabilities, see [Runtime privilege and Linux capabilities](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) in the *Docker run reference*. For more detailed information about these Linux capabilities, see the [capabilities(7)](https://docs.aws.amazon.com/http://man7.org/linux/man-pages/man7/capabilities.7.html) Linux manual page. :param pulumi.Input[Sequence[pulumi.Input[str]]] add: The Linux capabilities for the container that have been added to the default configuration provided by Docker. This parameter maps to ``CapAdd`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-add`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). Tasks launched on FARGATElong only support adding the ``SYS_PTRACE`` kernel capability. - Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" + Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"`` :param pulumi.Input[Sequence[pulumi.Input[str]]] drop: The Linux capabilities for the container that have been removed from the default configuration provided by Docker. This parameter maps to ``CapDrop`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-drop`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" + Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"`` """ if add is not None: pulumi.set(__self__, "add", add) @@ -3452,7 +3590,7 @@ def add(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ The Linux capabilities for the container that have been added to the default configuration provided by Docker. This parameter maps to ``CapAdd`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-add`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). Tasks launched on FARGATElong only support adding the ``SYS_PTRACE`` kernel capability. - Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" + Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"`` """ return pulumi.get(self, "add") @@ -3465,7 +3603,7 @@ def add(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): def drop(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ The Linux capabilities for the container that have been removed from the default configuration provided by Docker. This parameter maps to ``CapDrop`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-drop`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" + Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"`` """ return pulumi.get(self, "drop") @@ -3665,7 +3803,7 @@ def __init__(__self__, *, For tasks hosted on Amazon EC2 instances, the supported log drivers are ``awslogs``, ``fluentd``, ``gelf``, ``json-file``, ``journald``, ``logentries``,``syslog``, ``splunk``, and ``awsfirelens``. For more information about using the ``awslogs`` log driver, see [Using the awslogs log driver](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html) in the *Amazon Elastic Container Service Developer Guide*. For more information about using the ``awsfirelens`` log driver, see [Custom log routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*. - If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs + If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs-agent) and customize it to work with that driver. We encourage you to submit pull requests for changes that you would like to have included. However, we don't currently provide support for running modified copies of this software. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] options: The configuration options to send to the log driver. This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'`` :param pulumi.Input[Sequence[pulumi.Input['TaskDefinitionSecretArgs']]] secret_options: The secrets to pass to the log configuration. For more information, see [Specifying sensitive data](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) in the *Amazon Elastic Container Service Developer Guide*. """ @@ -3684,7 +3822,7 @@ def log_driver(self) -> pulumi.Input[str]: For tasks hosted on Amazon EC2 instances, the supported log drivers are ``awslogs``, ``fluentd``, ``gelf``, ``json-file``, ``journald``, ``logentries``,``syslog``, ``splunk``, and ``awsfirelens``. For more information about using the ``awslogs`` log driver, see [Using the awslogs log driver](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html) in the *Amazon Elastic Container Service Developer Guide*. For more information about using the ``awsfirelens`` log driver, see [Custom log routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*. - If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs + If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs-agent) and customize it to work with that driver. We encourage you to submit pull requests for changes that you would like to have included. However, we don't currently provide support for running modified copies of this software. """ return pulumi.get(self, "log_driver") @@ -3829,7 +3967,7 @@ def __init__(__self__, *, :param pulumi.Input['TaskDefinitionPortMappingAppProtocol'] app_protocol: The application protocol that's used for the port mapping. This parameter only applies to Service Connect. We recommend that you set this parameter to be consistent with the protocol that your application uses. If you set this parameter, Amazon ECS adds protocol-specific connection handling to the Service Connect proxy. If you set this parameter, Amazon ECS adds protocol-specific telemetry in the Amazon ECS console and CloudWatch. If you don't set a value for this parameter, then TCP is used. However, Amazon ECS doesn't add protocol-specific telemetry for TCP. ``appProtocol`` is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment. - Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS se + Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. :param pulumi.Input[int] container_port: The port number on the container that's bound to the user-specified or automatically assigned host port. If you use containers in a task with the ``awsvpc`` or ``host`` network mode, specify the exposed ports using ``containerPort``. If you use containers in a task with the ``bridge`` network mode and you specify a container port and not a host port, your container automatically receives a host port in the ephemeral port range. For more information, see ``hostPort``. Port mappings that are automatically assigned in this way do not count toward the 100 reserved ports limit of a container instance. @@ -3842,14 +3980,26 @@ def __init__(__self__, *, + You can specify a maximum of 100 port ranges per container. + You do not specify a ``hostPortRange``. The value of the ``hostPortRange`` is set as follows: + For containers in a task with the ``awsvpc`` network mode, the ``hostPortRange`` is set to the same value as the ``containerPortRange``. This is a static mapping strategy. - + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open host + + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open host ports from the default ephemeral range and passes it to docker to bind them to the container ports. + + + The ``containerPortRange`` valid values are between 1 and 65535. + + A port can only be included in one port mapping per container. + + You cannot specify overlapping port ranges. + + The first port in the range must be less than last port in the range. + + Docker recommends that you turn off the docker-proxy in the Docker daemon config file when you have a large number of ports. + For more information, see [Issue #11185](https://docs.aws.amazon.com/https://github.com/moby/moby/issues/11185) on the Github website. + For information about how to turn off the docker-proxy in the Docker daemon config file, see [Docker daemon](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/bootstrap_container_instance.html#bootstrap_docker_daemon) in the *Amazon ECS Developer Guide*. + + You can call [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) to view the ``hostPortRange`` which are the host ports that are bound to the container ports. :param pulumi.Input[int] host_port: The port number on the container instance to reserve for your container. If you specify a ``containerPortRange``, leave this field empty and the value of the ``hostPort`` is set as follows: + For containers in a task with the ``awsvpc`` network mode, the ``hostPort`` is set to the same value as the ``containerPort``. This is a static mapping strategy. + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open ports on the host and automatically binds them to the container ports. This is a dynamic mapping strategy. If you use containers in a task with the ``awsvpc`` or ``host`` network mode, the ``hostPort`` can either be left blank or set to the same value as the ``containerPort``. - If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0``) while specifying a ``containerPort`` and your container automatically + If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0``) while specifying a ``containerPort`` and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version. + The default ephemeral port range for Docker version 1.6.0 and later is listed on the instance under ``/proc/sys/net/ipv4/ip_local_port_range``. If this kernel parameter is unavailable, the default ephemeral port range from 49153 through 65535 (Linux) or 49152 through 65535 (Windows) is used. Do not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range. + The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678-51680. Any host port that was previously specified in a running task is also reserved while the task is running. That is, after a task stops, the host port is released. The current reserved ports are displayed in the ``remainingResources`` of [DescribeContainerInstances](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html) output. A container instance can have up to 100 reserved ports at a time. This number includes the default reserved ports. Automatically assigned ports aren't included in the 100 reserved ports quota. :param pulumi.Input[str] name: The name that's used for the port mapping. This parameter only applies to Service Connect. This parameter is the name that you use in the ``serviceConnectConfiguration`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen. For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. :param pulumi.Input[str] protocol: The protocol used for the port mapping. Valid values are ``tcp`` and ``udp``. The default is ``tcp``. ``protocol`` is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment. @@ -3874,7 +4024,7 @@ def app_protocol(self) -> Optional[pulumi.Input['TaskDefinitionPortMappingAppPro The application protocol that's used for the port mapping. This parameter only applies to Service Connect. We recommend that you set this parameter to be consistent with the protocol that your application uses. If you set this parameter, Amazon ECS adds protocol-specific connection handling to the Service Connect proxy. If you set this parameter, Amazon ECS adds protocol-specific telemetry in the Amazon ECS console and CloudWatch. If you don't set a value for this parameter, then TCP is used. However, Amazon ECS doesn't add protocol-specific telemetry for TCP. ``appProtocol`` is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment. - Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS se + Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. """ return pulumi.get(self, "app_protocol") @@ -3909,7 +4059,17 @@ def container_port_range(self) -> Optional[pulumi.Input[str]]: + You can specify a maximum of 100 port ranges per container. + You do not specify a ``hostPortRange``. The value of the ``hostPortRange`` is set as follows: + For containers in a task with the ``awsvpc`` network mode, the ``hostPortRange`` is set to the same value as the ``containerPortRange``. This is a static mapping strategy. - + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open host + + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open host ports from the default ephemeral range and passes it to docker to bind them to the container ports. + + + The ``containerPortRange`` valid values are between 1 and 65535. + + A port can only be included in one port mapping per container. + + You cannot specify overlapping port ranges. + + The first port in the range must be less than last port in the range. + + Docker recommends that you turn off the docker-proxy in the Docker daemon config file when you have a large number of ports. + For more information, see [Issue #11185](https://docs.aws.amazon.com/https://github.com/moby/moby/issues/11185) on the Github website. + For information about how to turn off the docker-proxy in the Docker daemon config file, see [Docker daemon](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/bootstrap_container_instance.html#bootstrap_docker_daemon) in the *Amazon ECS Developer Guide*. + + You can call [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) to view the ``hostPortRange`` which are the host ports that are bound to the container ports. """ return pulumi.get(self, "container_port_range") @@ -3927,7 +4087,9 @@ def host_port(self) -> Optional[pulumi.Input[int]]: + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open ports on the host and automatically binds them to the container ports. This is a dynamic mapping strategy. If you use containers in a task with the ``awsvpc`` or ``host`` network mode, the ``hostPort`` can either be left blank or set to the same value as the ``containerPort``. - If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0``) while specifying a ``containerPort`` and your container automatically + If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0``) while specifying a ``containerPort`` and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version. + The default ephemeral port range for Docker version 1.6.0 and later is listed on the instance under ``/proc/sys/net/ipv4/ip_local_port_range``. If this kernel parameter is unavailable, the default ephemeral port range from 49153 through 65535 (Linux) or 49152 through 65535 (Windows) is used. Do not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range. + The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678-51680. Any host port that was previously specified in a running task is also reserved while the task is running. That is, after a task stops, the host port is released. The current reserved ports are displayed in the ``remainingResources`` of [DescribeContainerInstances](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html) output. A container instance can have up to 100 reserved ports at a time. This number includes the default reserved ports. Automatically assigned ports aren't included in the 100 reserved ports quota. """ return pulumi.get(self, "host_port") @@ -3976,7 +4138,9 @@ def __init__(__self__, *, + ``IgnoredGID`` - (Required) The group ID (GID) of the proxy container as defined by the ``user`` parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If ``IgnoredUID`` is specified, this field can be empty. + ``AppPorts`` - (Required) The list of ports that the application uses. Network traffic to these ports is forwarded to the ``ProxyIngressPort`` and ``ProxyEgressPort``. + ``ProxyIngressPort`` - (Required) Specifies the port that incoming traffic to the ``AppPorts`` is directed to. - + ``ProxyEgressPort`` - (Required) Specifies the port that outgoi + + ``ProxyEgressPort`` - (Required) Specifies the port that outgoing traffic from the ``AppPorts`` is directed to. + + ``EgressIgnoredPorts`` - (Required) The egress traffic going to the specified ports is ignored and not redirected to the ``ProxyEgressPort``. It can be an empty list. + + ``EgressIgnoredIPs`` - (Required) The egress traffic going to the specified IP addresses is ignored and not redirected to the ``ProxyEgressPort``. It can be an empty list. :param pulumi.Input[str] type: The proxy type. The only supported value is ``APPMESH``. """ pulumi.set(__self__, "container_name", container_name) @@ -4006,7 +4170,9 @@ def proxy_configuration_properties(self) -> Optional[pulumi.Input[Sequence[pulum + ``IgnoredGID`` - (Required) The group ID (GID) of the proxy container as defined by the ``user`` parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If ``IgnoredUID`` is specified, this field can be empty. + ``AppPorts`` - (Required) The list of ports that the application uses. Network traffic to these ports is forwarded to the ``ProxyIngressPort`` and ``ProxyEgressPort``. + ``ProxyIngressPort`` - (Required) Specifies the port that incoming traffic to the ``AppPorts`` is directed to. - + ``ProxyEgressPort`` - (Required) Specifies the port that outgoi + + ``ProxyEgressPort`` - (Required) Specifies the port that outgoing traffic from the ``AppPorts`` is directed to. + + ``EgressIgnoredPorts`` - (Required) The egress traffic going to the specified ports is ignored and not redirected to the ``ProxyEgressPort``. It can be an empty list. + + ``EgressIgnoredIPs`` - (Required) The egress traffic going to the specified IP addresses is ignored and not redirected to the ``ProxyEgressPort``. It can be an empty list. """ return pulumi.get(self, "proxy_configuration_properties") @@ -4192,7 +4358,15 @@ def __init__(__self__, *, """ A list of namespaced kernel parameters to set in the container. This parameter maps to ``Sysctls`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--sysctl`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). For example, you can configure ``net.ipv4.tcp_keepalive_time`` setting to maintain longer lived connections. We don't recommend that you specify network-related ``systemControls`` parameters for multiple containers in a single task that also uses either the ``awsvpc`` or ``host`` network mode. Doing this has the following disadvantages: - + For tasks that use the ``awsvpc`` network mode including Fargate, if you set ``systemControls`` for any container, it applies to all containers in the task. If you set different ``sy + + For tasks that use the ``awsvpc`` network mode including Fargate, if you set ``systemControls`` for any container, it applies to all containers in the task. If you set different ``systemControls`` for multiple containers in a single task, the container that's started last determines which ``systemControls`` take effect. + + For tasks that use the ``host`` network mode, the network namespace ``systemControls`` aren't supported. + + If you're setting an IPC resource namespace to use for the containers in the task, the following conditions apply to your system controls. For more information, see [IPC mode](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#task_definition_ipcmode). + + For tasks that use the ``host`` IPC mode, IPC namespace ``systemControls`` aren't supported. + + For tasks that use the ``task`` IPC mode, IPC namespace ``systemControls`` values apply to all containers within a task. + + This parameter is not supported for Windows containers. + This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate. :param pulumi.Input[str] namespace: The namespaced kernel parameter to set a ``value`` for. :param pulumi.Input[str] value: The namespaced kernel parameter to set a ``value`` for. Valid IPC namespace values: ``"kernel.msgmax" | "kernel.msgmnb" | "kernel.msgmni" | "kernel.sem" | "kernel.shmall" | "kernel.shmmax" | "kernel.shmmni" | "kernel.shm_rmid_forced"``, and ``Sysctls`` that start with ``"fs.mqueue.*"`` @@ -4390,6 +4564,7 @@ def __init__(__self__, *, configured_at_launch: Optional[pulumi.Input[bool]] = None, docker_volume_configuration: Optional[pulumi.Input['TaskDefinitionDockerVolumeConfigurationArgs']] = None, efs_volume_configuration: Optional[pulumi.Input['TaskDefinitionEfsVolumeConfigurationArgs']] = None, + f_sx_windows_file_server_volume_configuration: Optional[pulumi.Input['TaskDefinitionFSxWindowsFileServerVolumeConfigurationArgs']] = None, host: Optional[pulumi.Input['TaskDefinitionHostVolumePropertiesArgs']] = None, name: Optional[pulumi.Input[str]] = None): """ @@ -4413,6 +4588,8 @@ def __init__(__self__, *, pulumi.set(__self__, "docker_volume_configuration", docker_volume_configuration) if efs_volume_configuration is not None: pulumi.set(__self__, "efs_volume_configuration", efs_volume_configuration) + if f_sx_windows_file_server_volume_configuration is not None: + pulumi.set(__self__, "f_sx_windows_file_server_volume_configuration", f_sx_windows_file_server_volume_configuration) if host is not None: pulumi.set(__self__, "host", host) if name is not None: @@ -4457,6 +4634,15 @@ def efs_volume_configuration(self) -> Optional[pulumi.Input['TaskDefinitionEfsVo def efs_volume_configuration(self, value: Optional[pulumi.Input['TaskDefinitionEfsVolumeConfigurationArgs']]): pulumi.set(self, "efs_volume_configuration", value) + @property + @pulumi.getter(name="fSxWindowsFileServerVolumeConfiguration") + def f_sx_windows_file_server_volume_configuration(self) -> Optional[pulumi.Input['TaskDefinitionFSxWindowsFileServerVolumeConfigurationArgs']]: + return pulumi.get(self, "f_sx_windows_file_server_volume_configuration") + + @f_sx_windows_file_server_volume_configuration.setter + def f_sx_windows_file_server_volume_configuration(self, value: Optional[pulumi.Input['TaskDefinitionFSxWindowsFileServerVolumeConfigurationArgs']]): + pulumi.set(self, "f_sx_windows_file_server_volume_configuration", value) + @property @pulumi.getter def host(self) -> Optional[pulumi.Input['TaskDefinitionHostVolumePropertiesArgs']]: diff --git a/sdk/python/pulumi_aws_native/ecs/get_task_definition.py b/sdk/python/pulumi_aws_native/ecs/get_task_definition.py index 621c834d47..aeb74911f2 100644 --- a/sdk/python/pulumi_aws_native/ecs/get_task_definition.py +++ b/sdk/python/pulumi_aws_native/ecs/get_task_definition.py @@ -39,7 +39,7 @@ def tags(self) -> Optional[Sequence['_root_outputs.Tag']]: + Maximum value length - 256 Unicode characters in UTF-8 + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. + Tag keys and values are case-sensitive. - + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values + + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. """ return pulumi.get(self, "tags") @@ -64,7 +64,9 @@ def get_task_definition(task_definition_arn: Optional[str] = None, """ Registers a new task definition from the supplied ``family`` and ``containerDefinitions``. Optionally, you can add data volumes to your containers with the ``volumes`` parameter. For more information about task definition parameters and defaults, see [Amazon ECS Task Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) in the *Amazon Elastic Container Service Developer Guide*. You can specify a role for your task with the ``taskRoleArn`` parameter. When you specify a role for a task, its containers can then use the latest versions of the CLI or SDKs to make API requests to the AWS services that are specified in the policy that's associated with the role. For more information, see [IAM Roles for Tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*. - You can specify a Docker networking mode for the containers in your task definition with the ``networkMod + You can specify a Docker networking mode for the containers in your task definition with the ``networkMode`` parameter. The available network modes correspond to those described in [Network settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#/network-settings) in the Docker run reference. If you specify the ``awsvpc`` network mode, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*. + In the following example or examples, the Authorization header contents (``AUTHPARAMS``) must be replaced with an AWS Signature Version 4 signature. For more information, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the *General Reference*. + You only need to learn how to sign HTTP requests if you intend to create them manually. When you use the [](https://docs.aws.amazon.com/cli/) or one of the [SDKs](https://docs.aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you, with the access key that you specify when you configure the tools. When you use these tools, you don't have to sign requests yourself. """ __args__ = dict() __args__['taskDefinitionArn'] = task_definition_arn @@ -82,6 +84,8 @@ def get_task_definition_output(task_definition_arn: Optional[pulumi.Input[str]] """ Registers a new task definition from the supplied ``family`` and ``containerDefinitions``. Optionally, you can add data volumes to your containers with the ``volumes`` parameter. For more information about task definition parameters and defaults, see [Amazon ECS Task Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) in the *Amazon Elastic Container Service Developer Guide*. You can specify a role for your task with the ``taskRoleArn`` parameter. When you specify a role for a task, its containers can then use the latest versions of the CLI or SDKs to make API requests to the AWS services that are specified in the policy that's associated with the role. For more information, see [IAM Roles for Tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*. - You can specify a Docker networking mode for the containers in your task definition with the ``networkMod + You can specify a Docker networking mode for the containers in your task definition with the ``networkMode`` parameter. The available network modes correspond to those described in [Network settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#/network-settings) in the Docker run reference. If you specify the ``awsvpc`` network mode, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*. + In the following example or examples, the Authorization header contents (``AUTHPARAMS``) must be replaced with an AWS Signature Version 4 signature. For more information, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the *General Reference*. + You only need to learn how to sign HTTP requests if you intend to create them manually. When you use the [](https://docs.aws.amazon.com/cli/) or one of the [SDKs](https://docs.aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you, with the access key that you specify when you configure the tools. When you use these tools, you don't have to sign requests yourself. """ ... diff --git a/sdk/python/pulumi_aws_native/ecs/outputs.py b/sdk/python/pulumi_aws_native/ecs/outputs.py index 11290b3e97..ea1567bc0a 100644 --- a/sdk/python/pulumi_aws_native/ecs/outputs.py +++ b/sdk/python/pulumi_aws_native/ecs/outputs.py @@ -52,6 +52,8 @@ 'TaskDefinitionEfsVolumeConfiguration', 'TaskDefinitionEnvironmentFile', 'TaskDefinitionEphemeralStorage', + 'TaskDefinitionFSxAuthorizationConfig', + 'TaskDefinitionFSxWindowsFileServerVolumeConfiguration', 'TaskDefinitionFirelensConfiguration', 'TaskDefinitionHealthCheck', 'TaskDefinitionHostEntry', @@ -2418,20 +2420,34 @@ def __init__(__self__, *, """ The ``ContainerDefinition`` property specifies a container definition. Container definitions are used in task definitions to describe the different containers that are launched as part of a task. :param str image: The image used to start a container. This string is passed directly to the Docker daemon. By default, images in the Docker Hub registry are available. Other repositories are specified with either ``repository-url/image:tag`` or ``repository-url/image@digest``. Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to ``Image`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``IMAGE`` parameter of [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - + When a new task starts, the Amazon ECS container agent pulls the latest version of the specified image and tag for the container to use. However, subsequent updates to a repository image + + When a new task starts, the Amazon ECS container agent pulls the latest version of the specified image and tag for the container to use. However, subsequent updates to a repository image aren't propagated to already running tasks. + + Images in Amazon ECR repositories can be specified by either using the full ``registry/repository:tag`` or ``registry/repository@digest``. For example, ``012345678910.dkr.ecr..amazonaws.com/:latest`` or ``012345678910.dkr.ecr..amazonaws.com/@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE``. + + Images in official repositories on Docker Hub use a single name (for example, ``ubuntu`` or ``mongo``). + + Images in other repositories on Docker Hub are qualified with an organization name (for example, ``amazon/amazon-ecs-agent``). + + Images in other online repositories are qualified further by a domain name (for example, ``quay.io/assemblyline/ubuntu``). :param str name: The name of a container. If you're linking multiple containers together in a task definition, the ``name`` of one container can be entered in the ``links`` of another container to connect the containers. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. This parameter maps to ``name`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--name`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). :param Sequence[str] command: The command that's passed to the container. This parameter maps to ``Cmd`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``COMMAND`` parameter to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). For more information, see [https://docs.docker.com/engine/reference/builder/#cmd](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/builder/#cmd). If there are multiple arguments, each argument is a separated string in the array. :param int cpu: The number of ``cpu`` units reserved for the container. This parameter maps to ``CpuShares`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cpu-shares`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). This field is optional for tasks using the Fargate launch type, and the only requirement is that the total amount of CPU reserved for all containers within a task be lower than the task-level ``cpu`` value. You can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the [Amazon EC2 Instances](https://docs.aws.amazon.com/ec2/instance-types/) detail page by 1,024. - Linux containers share unallocated CPU units with other containers on the cont + Linux containers share unallocated CPU units with other containers on the container instance with the same ratio as their allocated amount. For example, if you run a single-container task on a single-core instance type with 512 CPU units specified for that container, and that's the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time. However, if you launched another copy of the same task on that container instance, each task is guaranteed a minimum of 512 CPU units when needed. Moreover, each container could float to higher CPU usage if the other container was not using it. If both tasks were 100% active all of the time, they would be limited to 512 CPU units. + On Linux container instances, the Docker daemon on the container instance uses the CPU value to calculate the relative CPU share ratios for running containers. For more information, see [CPU share constraint](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#cpu-share-constraint) in the Docker documentation. The minimum valid CPU share value that the Linux kernel allows is 2. However, the CPU parameter isn't required, and you can use CPU values below 2 in your container definitions. For CPU values below 2 (including null), the behavior varies based on your Amazon ECS container agent version: + + *Agent versions less than or equal to 1.1.0:* Null and zero CPU values are passed to Docker as 0, which Docker then converts to 1,024 CPU shares. CPU values of 1 are passed to Docker as 1, which the Linux kernel converts to two CPU shares. + + *Agent versions greater than or equal to 1.2.0:* Null, zero, and CPU values of 1 are passed to Docker as 2. + + On Windows container instances, the CPU limit is enforced as an absolute limit, or a quota. Windows containers only have access to the specified amount of CPU that's described in the task definition. A null or zero CPU value is passed to Docker as ``0``, which Windows interprets as 1% of one CPU. :param Sequence[str] credential_specs: A list of ARNs in SSM or Amazon S3 to a credential spec (``CredSpec``) file that configures the container for Active Directory authentication. We recommend that you use this parameter instead of the ``dockerSecurityOptions``. The maximum number of ARNs is 1. There are two formats for each ARN. + credentialspecdomainless:MyARN You use credentialspecdomainless:MyARN to provide a CredSpec with an additional section for a secret in . You provide the login credentials to the domain in the secret. Each task that runs on any container instance can join different domains. You can use this format without joining the container instance to a domain. + credentialspec:MyARN You use credentialspec:MyARN to provide a CredSpec for a single domain. You must join the container instance to the domain before you start any tasks that use this task definition. In both formats, replace ``MyARN`` with the ARN in SSM or Amazon S3. - If you provide a ``credentialspecdomainless:MyARN``, the ``credspec`` must + If you provide a ``credentialspecdomainless:MyARN``, the ``credspec`` must provide a ARN in ASMlong for a secret containing the username, password, and the domain to connect to. For better security, the instance isn't joined to the domain for domainless authentication. Other applications on the instance can't use the domainless credentials. You can use this parameter to run tasks on the same instance, even it the tasks need to join different domains. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) and [Using gMSAs for Linux Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html). :param Sequence['TaskDefinitionContainerDependency'] depends_on: The dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed. - For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [ + For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + For tasks using the Fargate launch type, the task or service requires the following platforms: + + Linux platform version ``1.3.0`` or later. + + Windows platform version ``1.0.0`` or later. + + If the task definition is used in a blue/green deployment that uses [AWS::CodeDeploy::DeploymentGroup BlueGreenDeploymentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-bluegreendeploymentconfiguration.html), the ``dependsOn`` parameter is not supported. For more information see [Issue #680](https://docs.aws.amazon.com/https://github.com/aws-cloudformation/cloudformation-coverage-roadmap/issues/680) on the on the GitHub website. :param bool disable_networking: When this parameter is true, networking is off within the container. This parameter maps to ``NetworkDisabled`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/). This parameter is not supported for Windows containers. :param Sequence[str] dns_search_domains: A list of DNS search domains that are presented to the container. This parameter maps to ``DnsSearch`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--dns-search`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). @@ -2442,14 +2458,17 @@ def __init__(__self__, *, :param Sequence[str] docker_security_options: A list of strings to provide custom configuration for multiple security systems. For more information about valid values, see [Docker Run Security Configuration](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). This field isn't valid for containers in tasks using the Fargate launch type. For Linux tasks on EC2, this parameter can be used to reference custom labels for SELinux and AppArmor multi-level security systems. For any tasks on EC2, this parameter can be used to reference a credential spec file that configures a container for Active Directory authentication. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) and [Using gMSAs for Linux Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html) in the *Amazon Elastic Container Service Developer Guide*. - This parameter maps to ``SecurityOpt`` in the [Create a co + This parameter maps to ``SecurityOpt`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--security-opt`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + The Amazon ECS container agent running on a container instance must register with the ``ECS_SELINUX_CAPABLE=true`` or ``ECS_APPARMOR_CAPABLE=true`` environment variables before containers placed on that instance can use these security options. For more information, see [Amazon ECS Container Agent Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*. + For more information about valid values, see [Docker Run Security Configuration](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + Valid values: "no-new-privileges" | "apparmor:PROFILE" | "label:value" | "credentialspec:CredentialSpecFilePath" :param Sequence[str] entry_point: Early versions of the Amazon ECS container agent don't properly handle ``entryPoint`` parameters. If you have problems using ``entryPoint``, update your container agent or enter your commands and arguments as ``command`` array items instead. The entry point that's passed to the container. This parameter maps to ``Entrypoint`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--entrypoint`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). For more information, see [https://docs.docker.com/engine/reference/builder/#entrypoint](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/builder/#entrypoint). :param Sequence['TaskDefinitionKeyValuePair'] environment: The environment variables to pass to a container. This parameter maps to ``Env`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--env`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). We don't recommend that you use plaintext environment variables for sensitive information, such as credential data. :param Sequence['TaskDefinitionEnvironmentFile'] environment_files: A list of files containing the environment variables to pass to a container. This parameter maps to the ``--env-file`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). You can specify up to ten environment files. The file must have a ``.env`` file extension. Each line in an environment file contains an environment variable in ``VARIABLE=VALUE`` format. Lines beginning with ``#`` are treated as comments and are ignored. For more information about the environment variable file syntax, see [Declare default environment variables in file](https://docs.aws.amazon.com/https://docs.docker.com/compose/env-file/). - If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend t + If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Specifying Environment Variables](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) in the *Amazon Elastic Container Service Developer Guide*. :param bool essential: If the ``essential`` parameter of a container is marked as ``true``, and that container fails or stops for any reason, all other containers that are part of the task are stopped. If the ``essential`` parameter of a container is marked as ``false``, its failure doesn't affect the rest of the containers in a task. If this parameter is omitted, a container is assumed to be essential. All tasks must have at least one essential container. If you have an application that's composed of multiple containers, group containers that are used for a common purpose into components, and separate the different components into multiple task definitions. For more information, see [Application Architecture](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html) in the *Amazon Elastic Container Service Developer Guide*. :param Sequence['TaskDefinitionHostEntry'] extra_hosts: A list of hostnames and IP address mappings to append to the ``/etc/hosts`` file on the container. This parameter maps to ``ExtraHosts`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--add-host`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). @@ -2460,23 +2479,33 @@ def __init__(__self__, *, The ``hostname`` parameter is not supported if you're using the ``awsvpc`` network mode. :param bool interactive: When this parameter is ``true``, you can deploy containerized applications that require ``stdin`` or a ``tty`` to be allocated. This parameter maps to ``OpenStdin`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--interactive`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). :param Sequence[str] links: The ``links`` parameter allows containers to communicate with each other without the need for port mappings. This parameter is only supported if the network mode of a task definition is ``bridge``. The ``name:internalName`` construct is analogous to ``name:alias`` in Docker links. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. For more information about linking Docker containers, go to [Legacy container links](https://docs.aws.amazon.com/https://docs.docker.com/network/links/) in the Docker documentation. This parameter maps to ``Links`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--link`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - This parameter is not supported for W + This parameter is not supported for Windows containers. + Containers that are collocated on a single container instance may be able to communicate with each other without requiring links or host port mappings. Network isolation is achieved on the container instance using security groups and VPC settings. :param 'TaskDefinitionLinuxParameters' linux_parameters: Linux-specific modifications that are applied to the container, such as Linux kernel capabilities. For more information see [KernelCapabilities](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_KernelCapabilities.html). This parameter is not supported for Windows containers. :param 'TaskDefinitionLogConfiguration' log_configuration: The log configuration specification for the container. - This parameter maps to ``LogConfig`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--log-driver`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). By default, containers use the same logging driver that the Docker daemon uses. However, the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.aws.amazon.com/htt + This parameter maps to ``LogConfig`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--log-driver`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). By default, containers use the same logging driver that the Docker daemon uses. However, the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.aws.amazon.com/https://docs.docker.com/engine/admin/logging/overview/) in the Docker documentation. + Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon (shown in the [LogConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_LogConfiguration.html) data type). Additional log drivers may be available in future releases of the Amazon ECS container agent. + This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'`` + The Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the ``ECS_AVAILABLE_LOGGING_DRIVERS`` environment variable before containers placed on that instance can use these log configuration options. For more information, see [Amazon ECS Container Agent Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*. :param int memory: The amount (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. The total amount of memory reserved for all containers within a task must be lower than the task ``memory`` value, if one is specified. This parameter maps to ``Memory`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). If using the Fargate launch type, this parameter is optional. - If using the EC2 launch type, you must specify either a task-level memory value or a container-level memory value. If you specify both a container-level ``memory`` and ``memoryReservation`` value, ``memory`` must be greater than ``memoryReserva + If using the EC2 launch type, you must specify either a task-level memory value or a container-level memory value. If you specify both a container-level ``memory`` and ``memoryReservation`` value, ``memory`` must be greater than ``memoryReservation``. If you specify ``memoryReservation``, then that value is subtracted from the available memory resources for the container instance where the container is placed. Otherwise, the value of ``memory`` is used. + The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container, so you should not specify fewer than 6 MiB of memory for your containers. + The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container, so you should not specify fewer than 4 MiB of memory for your containers. :param int memory_reservation: The soft limit (in MiB) of memory to reserve for the container. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit. However, your container can consume more memory when it needs to, up to either the hard limit specified with the ``memory`` parameter (if applicable), or all of the available memory on the container instance, whichever comes first. This parameter maps to ``MemoryReservation`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory-reservation`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - If a task-level memory value is not specified, you must specify a non-zero integer for one or both of ``memory`` or ``memoryReservation`` in a container definiti + If a task-level memory value is not specified, you must specify a non-zero integer for one or both of ``memory`` or ``memoryReservation`` in a container definition. If you specify both, ``memory`` must be greater than ``memoryReservation``. If you specify ``memoryReservation``, then that value is subtracted from the available memory resources for the container instance where the container is placed. Otherwise, the value of ``memory`` is used. + For example, if your container normally uses 128 MiB of memory, but occasionally bursts to 256 MiB of memory for short periods of time, you can set a ``memoryReservation`` of 128 MiB, and a ``memory`` hard limit of 300 MiB. This configuration would allow the container to only reserve 128 MiB of memory from the remaining resources on the container instance, but also allow the container to consume more memory resources when needed. + The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container. So, don't specify less than 6 MiB of memory for your containers. + The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container. So, don't specify less than 4 MiB of memory for your containers. :param Sequence['TaskDefinitionMountPoint'] mount_points: The mount points for data volumes in your container. This parameter maps to ``Volumes`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--volume`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). Windows containers can mount whole directories on the same drive as ``$env:ProgramData``. Windows containers can't mount directories on a different drive, and mount point can't be across drives. :param Sequence['TaskDefinitionPortMapping'] port_mappings: The list of port mappings for the container. Port mappings allow containers to access ports on the host container instance to send or receive traffic. For task definitions that use the ``awsvpc`` network mode, you should only specify the ``containerPort``. The ``hostPort`` can be left blank or it must be the same value as the ``containerPort``. Port mappings on Windows use the ``NetNAT`` gateway address rather than ``localhost``. There is no loopback for port mappings on Windows, so you cannot access a container's mapped port from the host itself. - This parameter maps to ``PortBindings`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--publish`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). If the network mode of a task definition is set to + This parameter maps to ``PortBindings`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--publish`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). If the network mode of a task definition is set to ``none``, then you can't specify port mappings. If the network mode of a task definition is set to ``host``, then host ports must either be undefined or they must match the container port in the port mapping. + After a task reaches the ``RUNNING`` status, manual and automatic host and container port assignments are visible in the *Network Bindings* section of a container description for a selected task in the Amazon ECS console. The assignments are also visible in the ``networkBindings`` section [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) responses. :param bool privileged: When this parameter is true, the container is given elevated privileges on the host container instance (similar to the ``root`` user). This parameter maps to ``Privileged`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--privileged`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). This parameter is not supported for Windows containers or tasks run on FARGATElong. :param bool pseudo_terminal: When this parameter is ``true``, a TTY is allocated. This parameter maps to ``Tty`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--tty`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). @@ -2491,14 +2520,16 @@ def __init__(__self__, *, + Linux platform version ``1.3.0`` or later. + Windows platform version ``1.0.0`` or later. - For tasks using the EC2 launch type, your container instances require at least version ``1.26.0`` of the container agent to use a container start timeout value. However + For tasks using the EC2 launch type, your container instances require at least version ``1.26.0`` of the container agent to use a container start timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version ``1.26.0-1`` of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + The valid values are 2-120 seconds. :param int stop_timeout: Time duration (in seconds) to wait before the container is forcefully killed if it doesn't exit normally on its own. For tasks using the Fargate launch type, the task or service requires the following platforms: + Linux platform version ``1.3.0`` or later. + Windows platform version ``1.0.0`` or later. The max stop timeout value is 120 seconds and if the parameter is not specified, the default value of 30 seconds is used. - For tasks that use the EC2 launch type, if the ``stopTimeout`` parameter isn't specified, the value set for the Amazon ECS container agent configuration variable ``ECS_CONTAINER_STOP_TIMEOUT`` is used. If neither the ``stopTimeout`` parameter or the ``ECS_CONTAINER_STOP_TIMEOUT`` agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to use a container stop timeout value. However, we recomm + For tasks that use the EC2 launch type, if the ``stopTimeout`` parameter isn't specified, the value set for the Amazon ECS container agent configuration variable ``ECS_CONTAINER_STOP_TIMEOUT`` is used. If neither the ``stopTimeout`` parameter or the ``ECS_CONTAINER_STOP_TIMEOUT`` agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to use a container stop timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + The valid values are 2-120 seconds. :param Sequence['TaskDefinitionSystemControl'] system_controls: A list of namespaced kernel parameters to set in the container. This parameter maps to ``Sysctls`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--sysctl`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). For example, you can configure ``net.ipv4.tcp_keepalive_time`` setting to maintain longer lived connections. :param Sequence['TaskDefinitionUlimit'] ulimits: A list of ``ulimits`` to set in the container. This parameter maps to ``Ulimits`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--ulimit`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). Valid naming values are displayed in the [Ulimit](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_Ulimit.html) data type. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'`` This parameter is not supported for Windows containers. @@ -2600,7 +2631,11 @@ def __init__(__self__, *, def image(self) -> str: """ The image used to start a container. This string is passed directly to the Docker daemon. By default, images in the Docker Hub registry are available. Other repositories are specified with either ``repository-url/image:tag`` or ``repository-url/image@digest``. Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to ``Image`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``IMAGE`` parameter of [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - + When a new task starts, the Amazon ECS container agent pulls the latest version of the specified image and tag for the container to use. However, subsequent updates to a repository image + + When a new task starts, the Amazon ECS container agent pulls the latest version of the specified image and tag for the container to use. However, subsequent updates to a repository image aren't propagated to already running tasks. + + Images in Amazon ECR repositories can be specified by either using the full ``registry/repository:tag`` or ``registry/repository@digest``. For example, ``012345678910.dkr.ecr..amazonaws.com/:latest`` or ``012345678910.dkr.ecr..amazonaws.com/@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE``. + + Images in official repositories on Docker Hub use a single name (for example, ``ubuntu`` or ``mongo``). + + Images in other repositories on Docker Hub are qualified with an organization name (for example, ``amazon/amazon-ecs-agent``). + + Images in other online repositories are qualified further by a domain name (for example, ``quay.io/assemblyline/ubuntu``). """ return pulumi.get(self, "image") @@ -2627,7 +2662,12 @@ def cpu(self) -> Optional[int]: The number of ``cpu`` units reserved for the container. This parameter maps to ``CpuShares`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cpu-shares`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). This field is optional for tasks using the Fargate launch type, and the only requirement is that the total amount of CPU reserved for all containers within a task be lower than the task-level ``cpu`` value. You can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the [Amazon EC2 Instances](https://docs.aws.amazon.com/ec2/instance-types/) detail page by 1,024. - Linux containers share unallocated CPU units with other containers on the cont + Linux containers share unallocated CPU units with other containers on the container instance with the same ratio as their allocated amount. For example, if you run a single-container task on a single-core instance type with 512 CPU units specified for that container, and that's the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time. However, if you launched another copy of the same task on that container instance, each task is guaranteed a minimum of 512 CPU units when needed. Moreover, each container could float to higher CPU usage if the other container was not using it. If both tasks were 100% active all of the time, they would be limited to 512 CPU units. + On Linux container instances, the Docker daemon on the container instance uses the CPU value to calculate the relative CPU share ratios for running containers. For more information, see [CPU share constraint](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#cpu-share-constraint) in the Docker documentation. The minimum valid CPU share value that the Linux kernel allows is 2. However, the CPU parameter isn't required, and you can use CPU values below 2 in your container definitions. For CPU values below 2 (including null), the behavior varies based on your Amazon ECS container agent version: + + *Agent versions less than or equal to 1.1.0:* Null and zero CPU values are passed to Docker as 0, which Docker then converts to 1,024 CPU shares. CPU values of 1 are passed to Docker as 1, which the Linux kernel converts to two CPU shares. + + *Agent versions greater than or equal to 1.2.0:* Null, zero, and CPU values of 1 are passed to Docker as 2. + + On Windows container instances, the CPU limit is enforced as an absolute limit, or a quota. Windows containers only have access to the specified amount of CPU that's described in the task definition. A null or zero CPU value is passed to Docker as ``0``, which Windows interprets as 1% of one CPU. """ return pulumi.get(self, "cpu") @@ -2639,7 +2679,7 @@ def credential_specs(self) -> Optional[Sequence[str]]: There are two formats for each ARN. + credentialspecdomainless:MyARN You use credentialspecdomainless:MyARN to provide a CredSpec with an additional section for a secret in . You provide the login credentials to the domain in the secret. Each task that runs on any container instance can join different domains. You can use this format without joining the container instance to a domain. + credentialspec:MyARN You use credentialspec:MyARN to provide a CredSpec for a single domain. You must join the container instance to the domain before you start any tasks that use this task definition. In both formats, replace ``MyARN`` with the ARN in SSM or Amazon S3. - If you provide a ``credentialspecdomainless:MyARN``, the ``credspec`` must + If you provide a ``credentialspecdomainless:MyARN``, the ``credspec`` must provide a ARN in ASMlong for a secret containing the username, password, and the domain to connect to. For better security, the instance isn't joined to the domain for domainless authentication. Other applications on the instance can't use the domainless credentials. You can use this parameter to run tasks on the same instance, even it the tasks need to join different domains. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) and [Using gMSAs for Linux Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html). """ return pulumi.get(self, "credential_specs") @@ -2648,7 +2688,12 @@ def credential_specs(self) -> Optional[Sequence[str]]: def depends_on(self) -> Optional[Sequence['outputs.TaskDefinitionContainerDependency']]: """ The dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed. - For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [ + For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + For tasks using the Fargate launch type, the task or service requires the following platforms: + + Linux platform version ``1.3.0`` or later. + + Windows platform version ``1.0.0`` or later. + + If the task definition is used in a blue/green deployment that uses [AWS::CodeDeploy::DeploymentGroup BlueGreenDeploymentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-bluegreendeploymentconfiguration.html), the ``dependsOn`` parameter is not supported. For more information see [Issue #680](https://docs.aws.amazon.com/https://github.com/aws-cloudformation/cloudformation-coverage-roadmap/issues/680) on the on the GitHub website. """ return pulumi.get(self, "depends_on") @@ -2694,7 +2739,10 @@ def docker_security_options(self) -> Optional[Sequence[str]]: A list of strings to provide custom configuration for multiple security systems. For more information about valid values, see [Docker Run Security Configuration](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). This field isn't valid for containers in tasks using the Fargate launch type. For Linux tasks on EC2, this parameter can be used to reference custom labels for SELinux and AppArmor multi-level security systems. For any tasks on EC2, this parameter can be used to reference a credential spec file that configures a container for Active Directory authentication. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) and [Using gMSAs for Linux Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html) in the *Amazon Elastic Container Service Developer Guide*. - This parameter maps to ``SecurityOpt`` in the [Create a co + This parameter maps to ``SecurityOpt`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--security-opt`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + The Amazon ECS container agent running on a container instance must register with the ``ECS_SELINUX_CAPABLE=true`` or ``ECS_APPARMOR_CAPABLE=true`` environment variables before containers placed on that instance can use these security options. For more information, see [Amazon ECS Container Agent Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*. + For more information about valid values, see [Docker Run Security Configuration](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + Valid values: "no-new-privileges" | "apparmor:PROFILE" | "label:value" | "credentialspec:CredentialSpecFilePath" """ return pulumi.get(self, "docker_security_options") @@ -2722,7 +2770,7 @@ def environment_files(self) -> Optional[Sequence['outputs.TaskDefinitionEnvironm """ A list of files containing the environment variables to pass to a container. This parameter maps to the ``--env-file`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). You can specify up to ten environment files. The file must have a ``.env`` file extension. Each line in an environment file contains an environment variable in ``VARIABLE=VALUE`` format. Lines beginning with ``#`` are treated as comments and are ignored. For more information about the environment variable file syntax, see [Declare default environment variables in file](https://docs.aws.amazon.com/https://docs.docker.com/compose/env-file/). - If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend t + If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Specifying Environment Variables](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) in the *Amazon Elastic Container Service Developer Guide*. """ return pulumi.get(self, "environment_files") @@ -2782,7 +2830,8 @@ def interactive(self) -> Optional[bool]: def links(self) -> Optional[Sequence[str]]: """ The ``links`` parameter allows containers to communicate with each other without the need for port mappings. This parameter is only supported if the network mode of a task definition is ``bridge``. The ``name:internalName`` construct is analogous to ``name:alias`` in Docker links. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. For more information about linking Docker containers, go to [Legacy container links](https://docs.aws.amazon.com/https://docs.docker.com/network/links/) in the Docker documentation. This parameter maps to ``Links`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--link`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - This parameter is not supported for W + This parameter is not supported for Windows containers. + Containers that are collocated on a single container instance may be able to communicate with each other without requiring links or host port mappings. Network isolation is achieved on the container instance using security groups and VPC settings. """ return pulumi.get(self, "links") @@ -2800,7 +2849,10 @@ def linux_parameters(self) -> Optional['outputs.TaskDefinitionLinuxParameters']: def log_configuration(self) -> Optional['outputs.TaskDefinitionLogConfiguration']: """ The log configuration specification for the container. - This parameter maps to ``LogConfig`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--log-driver`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). By default, containers use the same logging driver that the Docker daemon uses. However, the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.aws.amazon.com/htt + This parameter maps to ``LogConfig`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--log-driver`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). By default, containers use the same logging driver that the Docker daemon uses. However, the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.aws.amazon.com/https://docs.docker.com/engine/admin/logging/overview/) in the Docker documentation. + Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon (shown in the [LogConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_LogConfiguration.html) data type). Additional log drivers may be available in future releases of the Amazon ECS container agent. + This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'`` + The Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the ``ECS_AVAILABLE_LOGGING_DRIVERS`` environment variable before containers placed on that instance can use these log configuration options. For more information, see [Amazon ECS Container Agent Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*. """ return pulumi.get(self, "log_configuration") @@ -2810,7 +2862,9 @@ def memory(self) -> Optional[int]: """ The amount (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. The total amount of memory reserved for all containers within a task must be lower than the task ``memory`` value, if one is specified. This parameter maps to ``Memory`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). If using the Fargate launch type, this parameter is optional. - If using the EC2 launch type, you must specify either a task-level memory value or a container-level memory value. If you specify both a container-level ``memory`` and ``memoryReservation`` value, ``memory`` must be greater than ``memoryReserva + If using the EC2 launch type, you must specify either a task-level memory value or a container-level memory value. If you specify both a container-level ``memory`` and ``memoryReservation`` value, ``memory`` must be greater than ``memoryReservation``. If you specify ``memoryReservation``, then that value is subtracted from the available memory resources for the container instance where the container is placed. Otherwise, the value of ``memory`` is used. + The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container, so you should not specify fewer than 6 MiB of memory for your containers. + The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container, so you should not specify fewer than 4 MiB of memory for your containers. """ return pulumi.get(self, "memory") @@ -2819,7 +2873,10 @@ def memory(self) -> Optional[int]: def memory_reservation(self) -> Optional[int]: """ The soft limit (in MiB) of memory to reserve for the container. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit. However, your container can consume more memory when it needs to, up to either the hard limit specified with the ``memory`` parameter (if applicable), or all of the available memory on the container instance, whichever comes first. This parameter maps to ``MemoryReservation`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory-reservation`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - If a task-level memory value is not specified, you must specify a non-zero integer for one or both of ``memory`` or ``memoryReservation`` in a container definiti + If a task-level memory value is not specified, you must specify a non-zero integer for one or both of ``memory`` or ``memoryReservation`` in a container definition. If you specify both, ``memory`` must be greater than ``memoryReservation``. If you specify ``memoryReservation``, then that value is subtracted from the available memory resources for the container instance where the container is placed. Otherwise, the value of ``memory`` is used. + For example, if your container normally uses 128 MiB of memory, but occasionally bursts to 256 MiB of memory for short periods of time, you can set a ``memoryReservation`` of 128 MiB, and a ``memory`` hard limit of 300 MiB. This configuration would allow the container to only reserve 128 MiB of memory from the remaining resources on the container instance, but also allow the container to consume more memory resources when needed. + The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container. So, don't specify less than 6 MiB of memory for your containers. + The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container. So, don't specify less than 4 MiB of memory for your containers. """ return pulumi.get(self, "memory_reservation") @@ -2840,7 +2897,8 @@ def port_mappings(self) -> Optional[Sequence['outputs.TaskDefinitionPortMapping' The list of port mappings for the container. Port mappings allow containers to access ports on the host container instance to send or receive traffic. For task definitions that use the ``awsvpc`` network mode, you should only specify the ``containerPort``. The ``hostPort`` can be left blank or it must be the same value as the ``containerPort``. Port mappings on Windows use the ``NetNAT`` gateway address rather than ``localhost``. There is no loopback for port mappings on Windows, so you cannot access a container's mapped port from the host itself. - This parameter maps to ``PortBindings`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--publish`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). If the network mode of a task definition is set to + This parameter maps to ``PortBindings`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--publish`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). If the network mode of a task definition is set to ``none``, then you can't specify port mappings. If the network mode of a task definition is set to ``host``, then host ports must either be undefined or they must match the container port in the port mapping. + After a task reaches the ``RUNNING`` status, manual and automatic host and container port assignments are visible in the *Network Bindings* section of a container description for a selected task in the Amazon ECS console. The assignments are also visible in the ``networkBindings`` section [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) responses. """ return pulumi.get(self, "port_mappings") @@ -2904,7 +2962,8 @@ def start_timeout(self) -> Optional[int]: + Linux platform version ``1.3.0`` or later. + Windows platform version ``1.0.0`` or later. - For tasks using the EC2 launch type, your container instances require at least version ``1.26.0`` of the container agent to use a container start timeout value. However + For tasks using the EC2 launch type, your container instances require at least version ``1.26.0`` of the container agent to use a container start timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version ``1.26.0-1`` of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + The valid values are 2-120 seconds. """ return pulumi.get(self, "start_timeout") @@ -2918,7 +2977,8 @@ def stop_timeout(self) -> Optional[int]: + Windows platform version ``1.0.0`` or later. The max stop timeout value is 120 seconds and if the parameter is not specified, the default value of 30 seconds is used. - For tasks that use the EC2 launch type, if the ``stopTimeout`` parameter isn't specified, the value set for the Amazon ECS container agent configuration variable ``ECS_CONTAINER_STOP_TIMEOUT`` is used. If neither the ``stopTimeout`` parameter or the ``ECS_CONTAINER_STOP_TIMEOUT`` agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to use a container stop timeout value. However, we recomm + For tasks that use the EC2 launch type, if the ``stopTimeout`` parameter isn't specified, the value set for the Amazon ECS container agent configuration variable ``ECS_CONTAINER_STOP_TIMEOUT`` is used. If neither the ``stopTimeout`` parameter or the ``ECS_CONTAINER_STOP_TIMEOUT`` agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to use a container stop timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + The valid values are 2-120 seconds. """ return pulumi.get(self, "stop_timeout") @@ -2978,7 +3038,8 @@ def working_directory(self) -> Optional[str]: class TaskDefinitionContainerDependency(dict): """ The ``ContainerDependency`` property specifies the dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed. - Your Amazon ECS container instances require at least version 1.26.0 of the container agent to enable container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you are using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For m + Your Amazon ECS container instances require at least version 1.26.0 of the container agent to enable container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you are using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + For tasks using the Fargate launch type, this parameter requires that the task or service uses platform version 1.3.0 or later. """ @staticmethod def __key_warning(key: str): @@ -3002,12 +3063,13 @@ def __init__(__self__, *, container_name: Optional[str] = None): """ The ``ContainerDependency`` property specifies the dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed. - Your Amazon ECS container instances require at least version 1.26.0 of the container agent to enable container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you are using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For m + Your Amazon ECS container instances require at least version 1.26.0 of the container agent to enable container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you are using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. + For tasks using the Fargate launch type, this parameter requires that the task or service uses platform version 1.3.0 or later. :param str condition: The dependency condition of the container. The following are the available conditions and their behavior: + ``START`` - This condition emulates the behavior of links and volumes today. It validates that a dependent container is started before permitting other containers to start. + ``COMPLETE`` - This condition validates that a dependent container runs to completion (exits) before permitting other containers to start. This can be useful for nonessential containers that run a script and then exit. This condition can't be set on an essential container. + ``SUCCESS`` - This condition is the same as ``COMPLETE``, but it also requires that the container exits with a ``zero`` status. This condition can't be set on an essential container. - + ``HEALTHY`` - This condition validates that the dependent container passes its Docker health check before permitting other containers to start. This requires that the dependent container has health checks configured. This condition is confi + + ``HEALTHY`` - This condition validates that the dependent container passes its Docker health check before permitting other containers to start. This requires that the dependent container has health checks configured. This condition is confirmed only at task startup. :param str container_name: The name of a container. """ if condition is not None: @@ -3023,7 +3085,7 @@ def condition(self) -> Optional[str]: + ``START`` - This condition emulates the behavior of links and volumes today. It validates that a dependent container is started before permitting other containers to start. + ``COMPLETE`` - This condition validates that a dependent container runs to completion (exits) before permitting other containers to start. This can be useful for nonessential containers that run a script and then exit. This condition can't be set on an essential container. + ``SUCCESS`` - This condition is the same as ``COMPLETE``, but it also requires that the container exits with a ``zero`` status. This condition can't be set on an essential container. - + ``HEALTHY`` - This condition validates that the dependent container passes its Docker health check before permitting other containers to start. This requires that the dependent container has health checks configured. This condition is confi + + ``HEALTHY`` - This condition validates that the dependent container passes its Docker health check before permitting other containers to start. This requires that the dependent container has health checks configured. This condition is confirmed only at task startup. """ return pulumi.get(self, "condition") @@ -3293,19 +3355,33 @@ def transit_encryption_port(self) -> Optional[int]: class TaskDefinitionEnvironmentFile(dict): """ A list of files containing the environment variables to pass to a container. You can specify up to ten environment files. The file must have a ``.env`` file extension. Each line in an environment file should contain an environment variable in ``VARIABLE=VALUE`` format. Lines beginning with ``#`` are treated as comments and are ignored. - If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Specifying environment variables](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) in the *Amazon Elastic Container Service Developer Guide*. + If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Use a file to pass environment variables to a container](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/use-environment-file.html) in the *Amazon Elastic Container Service Developer Guide*. + Environment variable files are objects in Amazon S3 and all Amazon S3 security considerations apply. You must use the following platforms for the Fargate launch type: - + Linux platform version ``1.4.0`` or la + + Linux platform version ``1.4.0`` or later. + + Windows platform version ``1.0.0`` or later. + + Consider the following when using the Fargate launch type: + + The file is handled like a native Docker env-file. + + There is no support for shell escape handling. + + The container entry point interperts the ``VARIABLE`` values. """ def __init__(__self__, *, type: Optional[str] = None, value: Optional[str] = None): """ A list of files containing the environment variables to pass to a container. You can specify up to ten environment files. The file must have a ``.env`` file extension. Each line in an environment file should contain an environment variable in ``VARIABLE=VALUE`` format. Lines beginning with ``#`` are treated as comments and are ignored. - If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Specifying environment variables](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) in the *Amazon Elastic Container Service Developer Guide*. + If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see [Use a file to pass environment variables to a container](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/use-environment-file.html) in the *Amazon Elastic Container Service Developer Guide*. + Environment variable files are objects in Amazon S3 and all Amazon S3 security considerations apply. You must use the following platforms for the Fargate launch type: - + Linux platform version ``1.4.0`` or la - :param str type: The file type to use. The only supported value is ``s3``. + + Linux platform version ``1.4.0`` or later. + + Windows platform version ``1.0.0`` or later. + + Consider the following when using the Fargate launch type: + + The file is handled like a native Docker env-file. + + There is no support for shell escape handling. + + The container entry point interperts the ``VARIABLE`` values. + :param str type: The file type to use. Environment files are objects in Amazon S3. The only supported value is ``s3``. :param str value: The Amazon Resource Name (ARN) of the Amazon S3 object containing the environment variable file. """ if type is not None: @@ -3317,7 +3393,7 @@ def __init__(__self__, *, @pulumi.getter def type(self) -> Optional[str]: """ - The file type to use. The only supported value is ``s3``. + The file type to use. Environment files are objects in Amazon S3. The only supported value is ``s3``. """ return pulumi.get(self, "type") @@ -3362,7 +3438,7 @@ def __init__(__self__, *, For tasks using the Fargate launch type, the task requires the following platforms: + Linux platform version ``1.4.0`` or later. + Windows platform version ``1.0.0`` or later. - :param int size_in_gi_b: The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``21`` GiB and the maximum supported value is ``200`` GiB. + :param int size_in_gi_b: The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``20`` GiB and the maximum supported value is ``200`` GiB. """ if size_in_gi_b is not None: pulumi.set(__self__, "size_in_gi_b", size_in_gi_b) @@ -3371,11 +3447,95 @@ def __init__(__self__, *, @pulumi.getter(name="sizeInGiB") def size_in_gi_b(self) -> Optional[int]: """ - The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``21`` GiB and the maximum supported value is ``200`` GiB. + The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``20`` GiB and the maximum supported value is ``200`` GiB. """ return pulumi.get(self, "size_in_gi_b") +@pulumi.output_type +class TaskDefinitionFSxAuthorizationConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "credentialsParameter": + suggest = "credentials_parameter" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in TaskDefinitionFSxAuthorizationConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + TaskDefinitionFSxAuthorizationConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + TaskDefinitionFSxAuthorizationConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + credentials_parameter: str, + domain: str): + pulumi.set(__self__, "credentials_parameter", credentials_parameter) + pulumi.set(__self__, "domain", domain) + + @property + @pulumi.getter(name="credentialsParameter") + def credentials_parameter(self) -> str: + return pulumi.get(self, "credentials_parameter") + + @property + @pulumi.getter + def domain(self) -> str: + return pulumi.get(self, "domain") + + +@pulumi.output_type +class TaskDefinitionFSxWindowsFileServerVolumeConfiguration(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "fileSystemId": + suggest = "file_system_id" + elif key == "rootDirectory": + suggest = "root_directory" + elif key == "authorizationConfig": + suggest = "authorization_config" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in TaskDefinitionFSxWindowsFileServerVolumeConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + TaskDefinitionFSxWindowsFileServerVolumeConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + TaskDefinitionFSxWindowsFileServerVolumeConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + file_system_id: str, + root_directory: str, + authorization_config: Optional['outputs.TaskDefinitionFSxAuthorizationConfig'] = None): + pulumi.set(__self__, "file_system_id", file_system_id) + pulumi.set(__self__, "root_directory", root_directory) + if authorization_config is not None: + pulumi.set(__self__, "authorization_config", authorization_config) + + @property + @pulumi.getter(name="fileSystemId") + def file_system_id(self) -> str: + return pulumi.get(self, "file_system_id") + + @property + @pulumi.getter(name="rootDirectory") + def root_directory(self) -> str: + return pulumi.get(self, "root_directory") + + @property + @pulumi.getter(name="authorizationConfig") + def authorization_config(self) -> Optional['outputs.TaskDefinitionFSxAuthorizationConfig']: + return pulumi.get(self, "authorization_config") + + @pulumi.output_type class TaskDefinitionFirelensConfiguration(dict): """ @@ -3388,9 +3548,9 @@ def __init__(__self__, *, The FireLens configuration for the container. This is used to specify and configure a log router for container logs. For more information, see [Custom log routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*. :param Mapping[str, str] options: The options to use when configuring the log router. This field is optional and can be used to add additional metadata, such as the task, task definition, cluster, and container instance details to the log event. If specified, valid option keys are: - + ``enable-ecs-log-metadata``, which can be ``true`` or ``false`` - + ``config-file-type``, which can be ``s3`` or ``file`` - + ``config-file-value``, which is either an S3 ARN or a file path + + ``enable-ecs-log-metadata``, which can be ``true`` or ``false`` + + ``config-file-type``, which can be ``s3`` or ``file`` + + ``config-file-value``, which is either an S3 ARN or a file path :param str type: The log router to use. The valid values are ``fluentd`` or ``fluentbit``. """ if options is not None: @@ -3404,9 +3564,9 @@ def options(self) -> Optional[Mapping[str, str]]: """ The options to use when configuring the log router. This field is optional and can be used to add additional metadata, such as the task, task definition, cluster, and container instance details to the log event. If specified, valid option keys are: - + ``enable-ecs-log-metadata``, which can be ``true`` or ``false`` - + ``config-file-type``, which can be ``s3`` or ``file`` - + ``config-file-value``, which is either an S3 ARN or a file path + + ``enable-ecs-log-metadata``, which can be ``true`` or ``false`` + + ``config-file-type``, which can be ``s3`` or ``file`` + + ``config-file-value``, which is either an S3 ARN or a file path """ return pulumi.get(self, "options") @@ -3424,7 +3584,11 @@ class TaskDefinitionHealthCheck(dict): """ The ``HealthCheck`` property specifies an object representing a container health check. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image (such as those specified in a parent image or from the image's Dockerfile). This configuration maps to the ``HEALTHCHECK`` parameter of [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). The Amazon ECS container agent only monitors and reports on the health checks specified in the task definition. Amazon ECS does not monitor Docker health checks that are embedded in a container image and not specified in the container definition. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image. - If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a servi + If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a service, if the task reports as unhealthy then the task will be stopped and the service scheduler will replace it. + The following are notes about container health check support: + + Container health checks require version 1.17.0 or greater of the Amazon ECS container agent. For more information, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html). + + Container health checks are supported for Fargate tasks if you are using platform version 1.1.0 or greater. For more information, see [Platform Versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). + + Container health checks are not supported for tasks that are part of a service that is configured to use a Classic Load Balancer. """ @staticmethod def __key_warning(key: str): @@ -3452,7 +3616,11 @@ def __init__(__self__, *, """ The ``HealthCheck`` property specifies an object representing a container health check. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image (such as those specified in a parent image or from the image's Dockerfile). This configuration maps to the ``HEALTHCHECK`` parameter of [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). The Amazon ECS container agent only monitors and reports on the health checks specified in the task definition. Amazon ECS does not monitor Docker health checks that are embedded in a container image and not specified in the container definition. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image. - If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a servi + If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a service, if the task reports as unhealthy then the task will be stopped and the service scheduler will replace it. + The following are notes about container health check support: + + Container health checks require version 1.17.0 or greater of the Amazon ECS container agent. For more information, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html). + + Container health checks are supported for Fargate tasks if you are using platform version 1.1.0 or greater. For more information, see [Platform Versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). + + Container health checks are not supported for tasks that are part of a service that is configured to use a Classic Load Balancer. :param Sequence[str] command: A string array representing the command that the container runs to determine if it is healthy. The string array must start with ``CMD`` to run the command arguments directly, or ``CMD-SHELL`` to run the command with the container's default shell. When you use the AWS Management Console JSON panel, the CLIlong, or the APIs, enclose the list of commands in double quotes and brackets. ``[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]`` @@ -3674,18 +3842,18 @@ def device_type(self) -> Optional[str]: @pulumi.output_type class TaskDefinitionKernelCapabilities(dict): """ - The ``KernelCapabilities`` property specifies the Linux capabilities for the container that are added to or dropped from the default configuration that is provided by Docker. For more information on the default capabilities and the non-default available capabilities, see [Runtime privilege and Linux capabilities](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) in the *Docker run reference*. For more detailed information on these Linux capabilities, see the [capabilities(7)](https://docs.aws.amazon.com/http://man7.org/linux/man-pages/man7/capabilities.7.html) Linux manual page. + The Linux capabilities to add or remove from the default Docker configuration for a container defined in the task definition. For more information about the default capabilities and the non-default available capabilities, see [Runtime privilege and Linux capabilities](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) in the *Docker run reference*. For more detailed information about these Linux capabilities, see the [capabilities(7)](https://docs.aws.amazon.com/http://man7.org/linux/man-pages/man7/capabilities.7.html) Linux manual page. """ def __init__(__self__, *, add: Optional[Sequence[str]] = None, drop: Optional[Sequence[str]] = None): """ - The ``KernelCapabilities`` property specifies the Linux capabilities for the container that are added to or dropped from the default configuration that is provided by Docker. For more information on the default capabilities and the non-default available capabilities, see [Runtime privilege and Linux capabilities](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) in the *Docker run reference*. For more detailed information on these Linux capabilities, see the [capabilities(7)](https://docs.aws.amazon.com/http://man7.org/linux/man-pages/man7/capabilities.7.html) Linux manual page. + The Linux capabilities to add or remove from the default Docker configuration for a container defined in the task definition. For more information about the default capabilities and the non-default available capabilities, see [Runtime privilege and Linux capabilities](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) in the *Docker run reference*. For more detailed information about these Linux capabilities, see the [capabilities(7)](https://docs.aws.amazon.com/http://man7.org/linux/man-pages/man7/capabilities.7.html) Linux manual page. :param Sequence[str] add: The Linux capabilities for the container that have been added to the default configuration provided by Docker. This parameter maps to ``CapAdd`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-add`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). Tasks launched on FARGATElong only support adding the ``SYS_PTRACE`` kernel capability. - Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" + Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"`` :param Sequence[str] drop: The Linux capabilities for the container that have been removed from the default configuration provided by Docker. This parameter maps to ``CapDrop`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-drop`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" + Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"`` """ if add is not None: pulumi.set(__self__, "add", add) @@ -3698,7 +3866,7 @@ def add(self) -> Optional[Sequence[str]]: """ The Linux capabilities for the container that have been added to the default configuration provided by Docker. This parameter maps to ``CapAdd`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-add`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). Tasks launched on FARGATElong only support adding the ``SYS_PTRACE`` kernel capability. - Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" + Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"`` """ return pulumi.get(self, "add") @@ -3707,7 +3875,7 @@ def add(self) -> Optional[Sequence[str]]: def drop(self) -> Optional[Sequence[str]]: """ The Linux capabilities for the container that have been removed from the default configuration provided by Docker. This parameter maps to ``CapDrop`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-drop`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). - Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" + Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"`` """ return pulumi.get(self, "drop") @@ -3916,7 +4084,7 @@ def __init__(__self__, *, For tasks hosted on Amazon EC2 instances, the supported log drivers are ``awslogs``, ``fluentd``, ``gelf``, ``json-file``, ``journald``, ``logentries``,``syslog``, ``splunk``, and ``awsfirelens``. For more information about using the ``awslogs`` log driver, see [Using the awslogs log driver](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html) in the *Amazon Elastic Container Service Developer Guide*. For more information about using the ``awsfirelens`` log driver, see [Custom log routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*. - If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs + If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs-agent) and customize it to work with that driver. We encourage you to submit pull requests for changes that you would like to have included. However, we don't currently provide support for running modified copies of this software. :param Mapping[str, str] options: The configuration options to send to the log driver. This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'`` :param Sequence['TaskDefinitionSecret'] secret_options: The secrets to pass to the log configuration. For more information, see [Specifying sensitive data](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) in the *Amazon Elastic Container Service Developer Guide*. """ @@ -3935,7 +4103,7 @@ def log_driver(self) -> str: For tasks hosted on Amazon EC2 instances, the supported log drivers are ``awslogs``, ``fluentd``, ``gelf``, ``json-file``, ``journald``, ``logentries``,``syslog``, ``splunk``, and ``awsfirelens``. For more information about using the ``awslogs`` log driver, see [Using the awslogs log driver](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html) in the *Amazon Elastic Container Service Developer Guide*. For more information about using the ``awsfirelens`` log driver, see [Custom log routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*. - If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs + If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs-agent) and customize it to work with that driver. We encourage you to submit pull requests for changes that you would like to have included. However, we don't currently provide support for running modified copies of this software. """ return pulumi.get(self, "log_driver") @@ -4104,7 +4272,7 @@ def __init__(__self__, *, :param 'TaskDefinitionPortMappingAppProtocol' app_protocol: The application protocol that's used for the port mapping. This parameter only applies to Service Connect. We recommend that you set this parameter to be consistent with the protocol that your application uses. If you set this parameter, Amazon ECS adds protocol-specific connection handling to the Service Connect proxy. If you set this parameter, Amazon ECS adds protocol-specific telemetry in the Amazon ECS console and CloudWatch. If you don't set a value for this parameter, then TCP is used. However, Amazon ECS doesn't add protocol-specific telemetry for TCP. ``appProtocol`` is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment. - Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS se + Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. :param int container_port: The port number on the container that's bound to the user-specified or automatically assigned host port. If you use containers in a task with the ``awsvpc`` or ``host`` network mode, specify the exposed ports using ``containerPort``. If you use containers in a task with the ``bridge`` network mode and you specify a container port and not a host port, your container automatically receives a host port in the ephemeral port range. For more information, see ``hostPort``. Port mappings that are automatically assigned in this way do not count toward the 100 reserved ports limit of a container instance. @@ -4117,14 +4285,26 @@ def __init__(__self__, *, + You can specify a maximum of 100 port ranges per container. + You do not specify a ``hostPortRange``. The value of the ``hostPortRange`` is set as follows: + For containers in a task with the ``awsvpc`` network mode, the ``hostPortRange`` is set to the same value as the ``containerPortRange``. This is a static mapping strategy. - + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open host + + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open host ports from the default ephemeral range and passes it to docker to bind them to the container ports. + + + The ``containerPortRange`` valid values are between 1 and 65535. + + A port can only be included in one port mapping per container. + + You cannot specify overlapping port ranges. + + The first port in the range must be less than last port in the range. + + Docker recommends that you turn off the docker-proxy in the Docker daemon config file when you have a large number of ports. + For more information, see [Issue #11185](https://docs.aws.amazon.com/https://github.com/moby/moby/issues/11185) on the Github website. + For information about how to turn off the docker-proxy in the Docker daemon config file, see [Docker daemon](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/bootstrap_container_instance.html#bootstrap_docker_daemon) in the *Amazon ECS Developer Guide*. + + You can call [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) to view the ``hostPortRange`` which are the host ports that are bound to the container ports. :param int host_port: The port number on the container instance to reserve for your container. If you specify a ``containerPortRange``, leave this field empty and the value of the ``hostPort`` is set as follows: + For containers in a task with the ``awsvpc`` network mode, the ``hostPort`` is set to the same value as the ``containerPort``. This is a static mapping strategy. + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open ports on the host and automatically binds them to the container ports. This is a dynamic mapping strategy. If you use containers in a task with the ``awsvpc`` or ``host`` network mode, the ``hostPort`` can either be left blank or set to the same value as the ``containerPort``. - If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0``) while specifying a ``containerPort`` and your container automatically + If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0``) while specifying a ``containerPort`` and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version. + The default ephemeral port range for Docker version 1.6.0 and later is listed on the instance under ``/proc/sys/net/ipv4/ip_local_port_range``. If this kernel parameter is unavailable, the default ephemeral port range from 49153 through 65535 (Linux) or 49152 through 65535 (Windows) is used. Do not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range. + The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678-51680. Any host port that was previously specified in a running task is also reserved while the task is running. That is, after a task stops, the host port is released. The current reserved ports are displayed in the ``remainingResources`` of [DescribeContainerInstances](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html) output. A container instance can have up to 100 reserved ports at a time. This number includes the default reserved ports. Automatically assigned ports aren't included in the 100 reserved ports quota. :param str name: The name that's used for the port mapping. This parameter only applies to Service Connect. This parameter is the name that you use in the ``serviceConnectConfiguration`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen. For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. :param str protocol: The protocol used for the port mapping. Valid values are ``tcp`` and ``udp``. The default is ``tcp``. ``protocol`` is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment. @@ -4149,7 +4329,7 @@ def app_protocol(self) -> Optional['TaskDefinitionPortMappingAppProtocol']: The application protocol that's used for the port mapping. This parameter only applies to Service Connect. We recommend that you set this parameter to be consistent with the protocol that your application uses. If you set this parameter, Amazon ECS adds protocol-specific connection handling to the Service Connect proxy. If you set this parameter, Amazon ECS adds protocol-specific telemetry in the Amazon ECS console and CloudWatch. If you don't set a value for this parameter, then TCP is used. However, Amazon ECS doesn't add protocol-specific telemetry for TCP. ``appProtocol`` is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment. - Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS se + Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. """ return pulumi.get(self, "app_protocol") @@ -4176,7 +4356,17 @@ def container_port_range(self) -> Optional[str]: + You can specify a maximum of 100 port ranges per container. + You do not specify a ``hostPortRange``. The value of the ``hostPortRange`` is set as follows: + For containers in a task with the ``awsvpc`` network mode, the ``hostPortRange`` is set to the same value as the ``containerPortRange``. This is a static mapping strategy. - + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open host + + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open host ports from the default ephemeral range and passes it to docker to bind them to the container ports. + + + The ``containerPortRange`` valid values are between 1 and 65535. + + A port can only be included in one port mapping per container. + + You cannot specify overlapping port ranges. + + The first port in the range must be less than last port in the range. + + Docker recommends that you turn off the docker-proxy in the Docker daemon config file when you have a large number of ports. + For more information, see [Issue #11185](https://docs.aws.amazon.com/https://github.com/moby/moby/issues/11185) on the Github website. + For information about how to turn off the docker-proxy in the Docker daemon config file, see [Docker daemon](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/bootstrap_container_instance.html#bootstrap_docker_daemon) in the *Amazon ECS Developer Guide*. + + You can call [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) to view the ``hostPortRange`` which are the host ports that are bound to the container ports. """ return pulumi.get(self, "container_port_range") @@ -4190,7 +4380,9 @@ def host_port(self) -> Optional[int]: + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open ports on the host and automatically binds them to the container ports. This is a dynamic mapping strategy. If you use containers in a task with the ``awsvpc`` or ``host`` network mode, the ``hostPort`` can either be left blank or set to the same value as the ``containerPort``. - If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0``) while specifying a ``containerPort`` and your container automatically + If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0``) while specifying a ``containerPort`` and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version. + The default ephemeral port range for Docker version 1.6.0 and later is listed on the instance under ``/proc/sys/net/ipv4/ip_local_port_range``. If this kernel parameter is unavailable, the default ephemeral port range from 49153 through 65535 (Linux) or 49152 through 65535 (Windows) is used. Do not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range. + The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678-51680. Any host port that was previously specified in a running task is also reserved while the task is running. That is, after a task stops, the host port is released. The current reserved ports are displayed in the ``remainingResources`` of [DescribeContainerInstances](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html) output. A container instance can have up to 100 reserved ports at a time. This number includes the default reserved ports. Automatically assigned ports aren't included in the 100 reserved ports quota. """ return pulumi.get(self, "host_port") @@ -4250,7 +4442,9 @@ def __init__(__self__, *, + ``IgnoredGID`` - (Required) The group ID (GID) of the proxy container as defined by the ``user`` parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If ``IgnoredUID`` is specified, this field can be empty. + ``AppPorts`` - (Required) The list of ports that the application uses. Network traffic to these ports is forwarded to the ``ProxyIngressPort`` and ``ProxyEgressPort``. + ``ProxyIngressPort`` - (Required) Specifies the port that incoming traffic to the ``AppPorts`` is directed to. - + ``ProxyEgressPort`` - (Required) Specifies the port that outgoi + + ``ProxyEgressPort`` - (Required) Specifies the port that outgoing traffic from the ``AppPorts`` is directed to. + + ``EgressIgnoredPorts`` - (Required) The egress traffic going to the specified ports is ignored and not redirected to the ``ProxyEgressPort``. It can be an empty list. + + ``EgressIgnoredIPs`` - (Required) The egress traffic going to the specified IP addresses is ignored and not redirected to the ``ProxyEgressPort``. It can be an empty list. :param str type: The proxy type. The only supported value is ``APPMESH``. """ pulumi.set(__self__, "container_name", container_name) @@ -4276,7 +4470,9 @@ def proxy_configuration_properties(self) -> Optional[Sequence['outputs.TaskDefin + ``IgnoredGID`` - (Required) The group ID (GID) of the proxy container as defined by the ``user`` parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If ``IgnoredUID`` is specified, this field can be empty. + ``AppPorts`` - (Required) The list of ports that the application uses. Network traffic to these ports is forwarded to the ``ProxyIngressPort`` and ``ProxyEgressPort``. + ``ProxyIngressPort`` - (Required) Specifies the port that incoming traffic to the ``AppPorts`` is directed to. - + ``ProxyEgressPort`` - (Required) Specifies the port that outgoi + + ``ProxyEgressPort`` - (Required) Specifies the port that outgoing traffic from the ``AppPorts`` is directed to. + + ``EgressIgnoredPorts`` - (Required) The egress traffic going to the specified ports is ignored and not redirected to the ``ProxyEgressPort``. It can be an empty list. + + ``EgressIgnoredIPs`` - (Required) The egress traffic going to the specified IP addresses is ignored and not redirected to the ``ProxyEgressPort``. It can be an empty list. """ return pulumi.get(self, "proxy_configuration_properties") @@ -4493,7 +4689,15 @@ class TaskDefinitionSystemControl(dict): """ A list of namespaced kernel parameters to set in the container. This parameter maps to ``Sysctls`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--sysctl`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). For example, you can configure ``net.ipv4.tcp_keepalive_time`` setting to maintain longer lived connections. We don't recommend that you specify network-related ``systemControls`` parameters for multiple containers in a single task that also uses either the ``awsvpc`` or ``host`` network mode. Doing this has the following disadvantages: - + For tasks that use the ``awsvpc`` network mode including Fargate, if you set ``systemControls`` for any container, it applies to all containers in the task. If you set different ``sy + + For tasks that use the ``awsvpc`` network mode including Fargate, if you set ``systemControls`` for any container, it applies to all containers in the task. If you set different ``systemControls`` for multiple containers in a single task, the container that's started last determines which ``systemControls`` take effect. + + For tasks that use the ``host`` network mode, the network namespace ``systemControls`` aren't supported. + + If you're setting an IPC resource namespace to use for the containers in the task, the following conditions apply to your system controls. For more information, see [IPC mode](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#task_definition_ipcmode). + + For tasks that use the ``host`` IPC mode, IPC namespace ``systemControls`` aren't supported. + + For tasks that use the ``task`` IPC mode, IPC namespace ``systemControls`` values apply to all containers within a task. + + This parameter is not supported for Windows containers. + This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate. """ def __init__(__self__, *, namespace: Optional[str] = None, @@ -4501,7 +4705,15 @@ def __init__(__self__, *, """ A list of namespaced kernel parameters to set in the container. This parameter maps to ``Sysctls`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--sysctl`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). For example, you can configure ``net.ipv4.tcp_keepalive_time`` setting to maintain longer lived connections. We don't recommend that you specify network-related ``systemControls`` parameters for multiple containers in a single task that also uses either the ``awsvpc`` or ``host`` network mode. Doing this has the following disadvantages: - + For tasks that use the ``awsvpc`` network mode including Fargate, if you set ``systemControls`` for any container, it applies to all containers in the task. If you set different ``sy + + For tasks that use the ``awsvpc`` network mode including Fargate, if you set ``systemControls`` for any container, it applies to all containers in the task. If you set different ``systemControls`` for multiple containers in a single task, the container that's started last determines which ``systemControls`` take effect. + + For tasks that use the ``host`` network mode, the network namespace ``systemControls`` aren't supported. + + If you're setting an IPC resource namespace to use for the containers in the task, the following conditions apply to your system controls. For more information, see [IPC mode](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#task_definition_ipcmode). + + For tasks that use the ``host`` IPC mode, IPC namespace ``systemControls`` aren't supported. + + For tasks that use the ``task`` IPC mode, IPC namespace ``systemControls`` values apply to all containers within a task. + + This parameter is not supported for Windows containers. + This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate. :param str namespace: The namespaced kernel parameter to set a ``value`` for. :param str value: The namespaced kernel parameter to set a ``value`` for. Valid IPC namespace values: ``"kernel.msgmax" | "kernel.msgmnb" | "kernel.msgmni" | "kernel.sem" | "kernel.shmall" | "kernel.shmmax" | "kernel.shmmni" | "kernel.shm_rmid_forced"``, and ``Sysctls`` that start with ``"fs.mqueue.*"`` @@ -4681,6 +4893,8 @@ def __key_warning(key: str): suggest = "docker_volume_configuration" elif key == "efsVolumeConfiguration": suggest = "efs_volume_configuration" + elif key == "fSxWindowsFileServerVolumeConfiguration": + suggest = "f_sx_windows_file_server_volume_configuration" if suggest: pulumi.log.warn(f"Key '{key}' not found in TaskDefinitionVolume. Access the value via the '{suggest}' property getter instead.") @@ -4697,6 +4911,7 @@ def __init__(__self__, *, configured_at_launch: Optional[bool] = None, docker_volume_configuration: Optional['outputs.TaskDefinitionDockerVolumeConfiguration'] = None, efs_volume_configuration: Optional['outputs.TaskDefinitionEfsVolumeConfiguration'] = None, + f_sx_windows_file_server_volume_configuration: Optional['outputs.TaskDefinitionFSxWindowsFileServerVolumeConfiguration'] = None, host: Optional['outputs.TaskDefinitionHostVolumeProperties'] = None, name: Optional[str] = None): """ @@ -4720,6 +4935,8 @@ def __init__(__self__, *, pulumi.set(__self__, "docker_volume_configuration", docker_volume_configuration) if efs_volume_configuration is not None: pulumi.set(__self__, "efs_volume_configuration", efs_volume_configuration) + if f_sx_windows_file_server_volume_configuration is not None: + pulumi.set(__self__, "f_sx_windows_file_server_volume_configuration", f_sx_windows_file_server_volume_configuration) if host is not None: pulumi.set(__self__, "host", host) if name is not None: @@ -4752,6 +4969,11 @@ def efs_volume_configuration(self) -> Optional['outputs.TaskDefinitionEfsVolumeC """ return pulumi.get(self, "efs_volume_configuration") + @property + @pulumi.getter(name="fSxWindowsFileServerVolumeConfiguration") + def f_sx_windows_file_server_volume_configuration(self) -> Optional['outputs.TaskDefinitionFSxWindowsFileServerVolumeConfiguration']: + return pulumi.get(self, "f_sx_windows_file_server_volume_configuration") + @property @pulumi.getter def host(self) -> Optional['outputs.TaskDefinitionHostVolumeProperties']: diff --git a/sdk/python/pulumi_aws_native/ecs/task_definition.py b/sdk/python/pulumi_aws_native/ecs/task_definition.py index 0caf844206..ef665db245 100644 --- a/sdk/python/pulumi_aws_native/ecs/task_definition.py +++ b/sdk/python/pulumi_aws_native/ecs/task_definition.py @@ -46,7 +46,10 @@ def __init__(__self__, *, + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - + 8192 (8 vCPU) - Available ``memory`` va + + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments + This option requires Linux platform ``1.4.0`` or later. + + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments + This option requires Linux platform ``1.4.0`` or later. :param pulumi.Input['TaskDefinitionEphemeralStorageArgs'] ephemeral_storage: The ephemeral storage settings to use for tasks run with the task definition. :param pulumi.Input[str] execution_role_arn: The Amazon Resource Name (ARN) of the task execution role that grants the Amazon ECS container agent permission to make AWS API calls on your behalf. The task execution IAM role is required depending on the requirements of your task. For more information, see [Amazon ECS task execution IAM role](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html) in the *Amazon Elastic Container Service Developer Guide*. :param pulumi.Input[str] family: The name of a family that this task definition is registered to. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. @@ -54,21 +57,38 @@ def __init__(__self__, *, To use revision numbers when you update a task definition, specify this property. If you don't specify a value, CFNlong generates a new task definition each time that you update it. :param pulumi.Input[Sequence[pulumi.Input['TaskDefinitionInferenceAcceleratorArgs']]] inference_accelerators: The Elastic Inference accelerators to use for the containers in the task. :param pulumi.Input[str] ipc_mode: The IPC resource namespace to use for the containers in the task. The valid values are ``host``, ``task``, or ``none``. If ``host`` is specified, then all containers within the tasks that specified the ``host`` IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If ``task`` is specified, all containers within the specified task share the same IPC resources. If ``none`` is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see [IPC settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#ipc-settings---ipc) in the *Docker run reference*. - If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more inform + If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/). + If you are setting namespaced kernel parameters using ``systemControls`` for the containers in the task, the following will apply to your IPC resource namespace. For more information, see [System Controls](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html) in the *Amazon Elastic Container Service Developer Guide*. + + For tasks that use the ``host`` IPC mode, IPC namespace related ``systemControls`` are not supported. + + For tasks that use the ``task`` IPC mode, IPC namespace related ``systemControls`` will apply to all containers within a task. + + This parameter is not supported for Windows containers or tasks run on FARGATElong. :param pulumi.Input[str] memory: The amount (in MiB) of memory used by the task. If your tasks runs on Amazon EC2 instances, you must specify either a task-level memory value or a container-level memory value. This field is optional and any value can be used. If a task-level memory value is specified, the container-level memory value is optional. For more information regarding container-level memory and memory reservation, see [ContainerDefinition](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html). If your tasks runs on FARGATElong, this field is required. You must use one of the following values. The value you choose determines your range of valid values for the ``cpu`` parameter. + 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available ``cpu`` values: 256 (.25 vCPU) + 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available ``cpu`` values: 512 (.5 vCPU) - + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` va + + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` values: 1024 (1 vCPU) + + Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 2048 (2 vCPU) + + Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 4096 (4 vCPU) + + Between 16 GB and 60 GB in 4 GB increments - Available ``cpu`` values: 8192 (8 vCPU) + This option requires Linux platform ``1.4.0`` or later. + + Between 32GB and 120 GB in 8 GB increments - Available ``cpu`` values: 16384 (16 vCPU) + This option requires Linux platform ``1.4.0`` or later. :param pulumi.Input[str] network_mode: The Docker networking mode to use for the containers in the task. The valid values are ``none``, ``bridge``, ``awsvpc``, and ``host``. If no network mode is specified, the default is ``bridge``. For Amazon ECS tasks on Fargate, the ``awsvpc`` network mode is required. For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, ```` or ``awsvpc`` can be used. If the network mode is set to ``none``, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The ``host`` and ``awsvpc`` network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the ``bridge`` mode. - With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elasti + With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elastic network interface port (for the ``awsvpc`` network mode), so you cannot take advantage of dynamic host port mappings. + When using the ``host`` network mode, you should not run containers using the root user (UID 0). It is considered best practice to use a non-root user. + If the network mode is ``awsvpc``, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration value when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*. + If the network mode is ``host``, you cannot run multiple instantiations of the same task on a single container instance when port mappings are used. + For more information, see [Network settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#network-settings) in the *Docker run reference*. :param pulumi.Input[str] pid_mode: The process namespace to use for the containers in the task. The valid values are ``host`` or ``task``. On Fargate for Linux containers, the only valid value is ``task``. For example, monitoring sidecars might need ``pidMode`` to access information about other containers running in the same task. If ``host`` is specified, all containers within the tasks that specified the ``host`` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance. If ``task`` is specified, all containers within the specified task share the same process namespace. If no value is specified, the default is a private namespace for each container. For more information, see [PID settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#pid-settings---pid) in the *Docker run reference*. - If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://doc + If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/). + This parameter is not supported for Windows containers. + This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate. :param pulumi.Input[Sequence[pulumi.Input['TaskDefinitionPlacementConstraintArgs']]] placement_constraints: An array of placement constraint objects to use for tasks. This parameter isn't supported for tasks run on FARGATElong. :param pulumi.Input['TaskDefinitionProxyConfigurationArgs'] proxy_configuration: The configuration details for the App Mesh proxy. @@ -84,7 +104,7 @@ def __init__(__self__, *, + Maximum value length - 256 Unicode characters in UTF-8 + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. + Tag keys and values are case-sensitive. - + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values + + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. :param pulumi.Input[str] task_role_arn: The short name or full Amazon Resource Name (ARN) of the IAMlong role that grants containers in the task permission to call AWS APIs on your behalf. For more information, see [Amazon ECS Task Role](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*. IAM roles for tasks on Windows require that the ``-EnableTaskIAMRole`` option is set when you launch the Amazon ECS-optimized Windows AMI. Your containers must also run some configuration code to use the feature. For more information, see [Windows IAM roles for tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows_task_IAM_roles.html) in the *Amazon Elastic Container Service Developer Guide*. :param pulumi.Input[Sequence[pulumi.Input['TaskDefinitionVolumeArgs']]] volumes: The list of data volume definitions for the task. For more information, see [Using data volumes in tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html) in the *Amazon Elastic Container Service Developer Guide*. @@ -148,7 +168,10 @@ def cpu(self) -> Optional[pulumi.Input[str]]: + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - + 8192 (8 vCPU) - Available ``memory`` va + + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments + This option requires Linux platform ``1.4.0`` or later. + + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments + This option requires Linux platform ``1.4.0`` or later. """ return pulumi.get(self, "cpu") @@ -211,7 +234,12 @@ def inference_accelerators(self, value: Optional[pulumi.Input[Sequence[pulumi.In def ipc_mode(self) -> Optional[pulumi.Input[str]]: """ The IPC resource namespace to use for the containers in the task. The valid values are ``host``, ``task``, or ``none``. If ``host`` is specified, then all containers within the tasks that specified the ``host`` IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If ``task`` is specified, all containers within the specified task share the same IPC resources. If ``none`` is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see [IPC settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#ipc-settings---ipc) in the *Docker run reference*. - If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more inform + If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/). + If you are setting namespaced kernel parameters using ``systemControls`` for the containers in the task, the following will apply to your IPC resource namespace. For more information, see [System Controls](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html) in the *Amazon Elastic Container Service Developer Guide*. + + For tasks that use the ``host`` IPC mode, IPC namespace related ``systemControls`` are not supported. + + For tasks that use the ``task`` IPC mode, IPC namespace related ``systemControls`` will apply to all containers within a task. + + This parameter is not supported for Windows containers or tasks run on FARGATElong. """ return pulumi.get(self, "ipc_mode") @@ -228,7 +256,13 @@ def memory(self) -> Optional[pulumi.Input[str]]: If your tasks runs on FARGATElong, this field is required. You must use one of the following values. The value you choose determines your range of valid values for the ``cpu`` parameter. + 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available ``cpu`` values: 256 (.25 vCPU) + 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available ``cpu`` values: 512 (.5 vCPU) - + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` va + + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` values: 1024 (1 vCPU) + + Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 2048 (2 vCPU) + + Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 4096 (4 vCPU) + + Between 16 GB and 60 GB in 4 GB increments - Available ``cpu`` values: 8192 (8 vCPU) + This option requires Linux platform ``1.4.0`` or later. + + Between 32GB and 120 GB in 8 GB increments - Available ``cpu`` values: 16384 (16 vCPU) + This option requires Linux platform ``1.4.0`` or later. """ return pulumi.get(self, "memory") @@ -242,7 +276,11 @@ def network_mode(self) -> Optional[pulumi.Input[str]]: """ The Docker networking mode to use for the containers in the task. The valid values are ``none``, ``bridge``, ``awsvpc``, and ``host``. If no network mode is specified, the default is ``bridge``. For Amazon ECS tasks on Fargate, the ``awsvpc`` network mode is required. For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, ```` or ``awsvpc`` can be used. If the network mode is set to ``none``, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The ``host`` and ``awsvpc`` network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the ``bridge`` mode. - With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elasti + With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elastic network interface port (for the ``awsvpc`` network mode), so you cannot take advantage of dynamic host port mappings. + When using the ``host`` network mode, you should not run containers using the root user (UID 0). It is considered best practice to use a non-root user. + If the network mode is ``awsvpc``, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration value when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*. + If the network mode is ``host``, you cannot run multiple instantiations of the same task on a single container instance when port mappings are used. + For more information, see [Network settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#network-settings) in the *Docker run reference*. """ return pulumi.get(self, "network_mode") @@ -258,7 +296,9 @@ def pid_mode(self) -> Optional[pulumi.Input[str]]: If ``host`` is specified, all containers within the tasks that specified the ``host`` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance. If ``task`` is specified, all containers within the specified task share the same process namespace. If no value is specified, the default is a private namespace for each container. For more information, see [PID settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#pid-settings---pid) in the *Docker run reference*. - If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://doc + If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/). + This parameter is not supported for Windows containers. + This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate. """ return pulumi.get(self, "pid_mode") @@ -329,7 +369,7 @@ def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagA + Maximum value length - 256 Unicode characters in UTF-8 + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. + Tag keys and values are case-sensitive. - + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values + + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. """ return pulumi.get(self, "tags") @@ -390,7 +430,9 @@ def __init__(__self__, """ Registers a new task definition from the supplied ``family`` and ``containerDefinitions``. Optionally, you can add data volumes to your containers with the ``volumes`` parameter. For more information about task definition parameters and defaults, see [Amazon ECS Task Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) in the *Amazon Elastic Container Service Developer Guide*. You can specify a role for your task with the ``taskRoleArn`` parameter. When you specify a role for a task, its containers can then use the latest versions of the CLI or SDKs to make API requests to the AWS services that are specified in the policy that's associated with the role. For more information, see [IAM Roles for Tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*. - You can specify a Docker networking mode for the containers in your task definition with the ``networkMod + You can specify a Docker networking mode for the containers in your task definition with the ``networkMode`` parameter. The available network modes correspond to those described in [Network settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#/network-settings) in the Docker run reference. If you specify the ``awsvpc`` network mode, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*. + In the following example or examples, the Authorization header contents (``AUTHPARAMS``) must be replaced with an AWS Signature Version 4 signature. For more information, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the *General Reference*. + You only need to learn how to sign HTTP requests if you intend to create them manually. When you use the [](https://docs.aws.amazon.com/cli/) or one of the [SDKs](https://docs.aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you, with the access key that you specify when you configure the tools. When you use these tools, you don't have to sign requests yourself. ## Example Usage ### Example @@ -576,7 +618,10 @@ def __init__(__self__, + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - + 8192 (8 vCPU) - Available ``memory`` va + + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments + This option requires Linux platform ``1.4.0`` or later. + + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments + This option requires Linux platform ``1.4.0`` or later. :param pulumi.Input[pulumi.InputType['TaskDefinitionEphemeralStorageArgs']] ephemeral_storage: The ephemeral storage settings to use for tasks run with the task definition. :param pulumi.Input[str] execution_role_arn: The Amazon Resource Name (ARN) of the task execution role that grants the Amazon ECS container agent permission to make AWS API calls on your behalf. The task execution IAM role is required depending on the requirements of your task. For more information, see [Amazon ECS task execution IAM role](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html) in the *Amazon Elastic Container Service Developer Guide*. :param pulumi.Input[str] family: The name of a family that this task definition is registered to. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. @@ -584,21 +629,38 @@ def __init__(__self__, To use revision numbers when you update a task definition, specify this property. If you don't specify a value, CFNlong generates a new task definition each time that you update it. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['TaskDefinitionInferenceAcceleratorArgs']]]] inference_accelerators: The Elastic Inference accelerators to use for the containers in the task. :param pulumi.Input[str] ipc_mode: The IPC resource namespace to use for the containers in the task. The valid values are ``host``, ``task``, or ``none``. If ``host`` is specified, then all containers within the tasks that specified the ``host`` IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If ``task`` is specified, all containers within the specified task share the same IPC resources. If ``none`` is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see [IPC settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#ipc-settings---ipc) in the *Docker run reference*. - If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more inform + If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/). + If you are setting namespaced kernel parameters using ``systemControls`` for the containers in the task, the following will apply to your IPC resource namespace. For more information, see [System Controls](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html) in the *Amazon Elastic Container Service Developer Guide*. + + For tasks that use the ``host`` IPC mode, IPC namespace related ``systemControls`` are not supported. + + For tasks that use the ``task`` IPC mode, IPC namespace related ``systemControls`` will apply to all containers within a task. + + This parameter is not supported for Windows containers or tasks run on FARGATElong. :param pulumi.Input[str] memory: The amount (in MiB) of memory used by the task. If your tasks runs on Amazon EC2 instances, you must specify either a task-level memory value or a container-level memory value. This field is optional and any value can be used. If a task-level memory value is specified, the container-level memory value is optional. For more information regarding container-level memory and memory reservation, see [ContainerDefinition](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html). If your tasks runs on FARGATElong, this field is required. You must use one of the following values. The value you choose determines your range of valid values for the ``cpu`` parameter. + 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available ``cpu`` values: 256 (.25 vCPU) + 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available ``cpu`` values: 512 (.5 vCPU) - + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` va + + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` values: 1024 (1 vCPU) + + Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 2048 (2 vCPU) + + Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 4096 (4 vCPU) + + Between 16 GB and 60 GB in 4 GB increments - Available ``cpu`` values: 8192 (8 vCPU) + This option requires Linux platform ``1.4.0`` or later. + + Between 32GB and 120 GB in 8 GB increments - Available ``cpu`` values: 16384 (16 vCPU) + This option requires Linux platform ``1.4.0`` or later. :param pulumi.Input[str] network_mode: The Docker networking mode to use for the containers in the task. The valid values are ``none``, ``bridge``, ``awsvpc``, and ``host``. If no network mode is specified, the default is ``bridge``. For Amazon ECS tasks on Fargate, the ``awsvpc`` network mode is required. For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, ```` or ``awsvpc`` can be used. If the network mode is set to ``none``, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The ``host`` and ``awsvpc`` network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the ``bridge`` mode. - With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elasti + With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elastic network interface port (for the ``awsvpc`` network mode), so you cannot take advantage of dynamic host port mappings. + When using the ``host`` network mode, you should not run containers using the root user (UID 0). It is considered best practice to use a non-root user. + If the network mode is ``awsvpc``, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration value when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*. + If the network mode is ``host``, you cannot run multiple instantiations of the same task on a single container instance when port mappings are used. + For more information, see [Network settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#network-settings) in the *Docker run reference*. :param pulumi.Input[str] pid_mode: The process namespace to use for the containers in the task. The valid values are ``host`` or ``task``. On Fargate for Linux containers, the only valid value is ``task``. For example, monitoring sidecars might need ``pidMode`` to access information about other containers running in the same task. If ``host`` is specified, all containers within the tasks that specified the ``host`` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance. If ``task`` is specified, all containers within the specified task share the same process namespace. If no value is specified, the default is a private namespace for each container. For more information, see [PID settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#pid-settings---pid) in the *Docker run reference*. - If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://doc + If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/). + This parameter is not supported for Windows containers. + This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['TaskDefinitionPlacementConstraintArgs']]]] placement_constraints: An array of placement constraint objects to use for tasks. This parameter isn't supported for tasks run on FARGATElong. :param pulumi.Input[pulumi.InputType['TaskDefinitionProxyConfigurationArgs']] proxy_configuration: The configuration details for the App Mesh proxy. @@ -614,7 +676,7 @@ def __init__(__self__, + Maximum value length - 256 Unicode characters in UTF-8 + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. + Tag keys and values are case-sensitive. - + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values + + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. :param pulumi.Input[str] task_role_arn: The short name or full Amazon Resource Name (ARN) of the IAMlong role that grants containers in the task permission to call AWS APIs on your behalf. For more information, see [Amazon ECS Task Role](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*. IAM roles for tasks on Windows require that the ``-EnableTaskIAMRole`` option is set when you launch the Amazon ECS-optimized Windows AMI. Your containers must also run some configuration code to use the feature. For more information, see [Windows IAM roles for tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows_task_IAM_roles.html) in the *Amazon Elastic Container Service Developer Guide*. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['TaskDefinitionVolumeArgs']]]] volumes: The list of data volume definitions for the task. For more information, see [Using data volumes in tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html) in the *Amazon Elastic Container Service Developer Guide*. @@ -629,7 +691,9 @@ def __init__(__self__, """ Registers a new task definition from the supplied ``family`` and ``containerDefinitions``. Optionally, you can add data volumes to your containers with the ``volumes`` parameter. For more information about task definition parameters and defaults, see [Amazon ECS Task Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) in the *Amazon Elastic Container Service Developer Guide*. You can specify a role for your task with the ``taskRoleArn`` parameter. When you specify a role for a task, its containers can then use the latest versions of the CLI or SDKs to make API requests to the AWS services that are specified in the policy that's associated with the role. For more information, see [IAM Roles for Tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*. - You can specify a Docker networking mode for the containers in your task definition with the ``networkMod + You can specify a Docker networking mode for the containers in your task definition with the ``networkMode`` parameter. The available network modes correspond to those described in [Network settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#/network-settings) in the Docker run reference. If you specify the ``awsvpc`` network mode, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*. + In the following example or examples, the Authorization header contents (``AUTHPARAMS``) must be replaced with an AWS Signature Version 4 signature. For more information, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the *General Reference*. + You only need to learn how to sign HTTP requests if you intend to create them manually. When you use the [](https://docs.aws.amazon.com/cli/) or one of the [SDKs](https://docs.aws.amazon.com/tools/) to make requests to AWS, these tools automatically sign the requests for you, with the access key that you specify when you configure the tools. When you use these tools, you don't have to sign requests yourself. ## Example Usage ### Example @@ -927,7 +991,10 @@ def cpu(self) -> pulumi.Output[Optional[str]]: + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - + 8192 (8 vCPU) - Available ``memory`` va + + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments + This option requires Linux platform ``1.4.0`` or later. + + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments + This option requires Linux platform ``1.4.0`` or later. """ return pulumi.get(self, "cpu") @@ -970,7 +1037,12 @@ def inference_accelerators(self) -> pulumi.Output[Optional[Sequence['outputs.Tas def ipc_mode(self) -> pulumi.Output[Optional[str]]: """ The IPC resource namespace to use for the containers in the task. The valid values are ``host``, ``task``, or ``none``. If ``host`` is specified, then all containers within the tasks that specified the ``host`` IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If ``task`` is specified, all containers within the specified task share the same IPC resources. If ``none`` is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see [IPC settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#ipc-settings---ipc) in the *Docker run reference*. - If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more inform + If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/). + If you are setting namespaced kernel parameters using ``systemControls`` for the containers in the task, the following will apply to your IPC resource namespace. For more information, see [System Controls](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html) in the *Amazon Elastic Container Service Developer Guide*. + + For tasks that use the ``host`` IPC mode, IPC namespace related ``systemControls`` are not supported. + + For tasks that use the ``task`` IPC mode, IPC namespace related ``systemControls`` will apply to all containers within a task. + + This parameter is not supported for Windows containers or tasks run on FARGATElong. """ return pulumi.get(self, "ipc_mode") @@ -983,7 +1055,13 @@ def memory(self) -> pulumi.Output[Optional[str]]: If your tasks runs on FARGATElong, this field is required. You must use one of the following values. The value you choose determines your range of valid values for the ``cpu`` parameter. + 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available ``cpu`` values: 256 (.25 vCPU) + 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available ``cpu`` values: 512 (.5 vCPU) - + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` va + + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` values: 1024 (1 vCPU) + + Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 2048 (2 vCPU) + + Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available ``cpu`` values: 4096 (4 vCPU) + + Between 16 GB and 60 GB in 4 GB increments - Available ``cpu`` values: 8192 (8 vCPU) + This option requires Linux platform ``1.4.0`` or later. + + Between 32GB and 120 GB in 8 GB increments - Available ``cpu`` values: 16384 (16 vCPU) + This option requires Linux platform ``1.4.0`` or later. """ return pulumi.get(self, "memory") @@ -993,7 +1071,11 @@ def network_mode(self) -> pulumi.Output[Optional[str]]: """ The Docker networking mode to use for the containers in the task. The valid values are ``none``, ``bridge``, ``awsvpc``, and ``host``. If no network mode is specified, the default is ``bridge``. For Amazon ECS tasks on Fargate, the ``awsvpc`` network mode is required. For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, ```` or ``awsvpc`` can be used. If the network mode is set to ``none``, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The ``host`` and ``awsvpc`` network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the ``bridge`` mode. - With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elasti + With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elastic network interface port (for the ``awsvpc`` network mode), so you cannot take advantage of dynamic host port mappings. + When using the ``host`` network mode, you should not run containers using the root user (UID 0). It is considered best practice to use a non-root user. + If the network mode is ``awsvpc``, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration value when you create a service or run a task with the task definition. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*. + If the network mode is ``host``, you cannot run multiple instantiations of the same task on a single container instance when port mappings are used. + For more information, see [Network settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#network-settings) in the *Docker run reference*. """ return pulumi.get(self, "network_mode") @@ -1005,7 +1087,9 @@ def pid_mode(self) -> pulumi.Output[Optional[str]]: If ``host`` is specified, all containers within the tasks that specified the ``host`` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance. If ``task`` is specified, all containers within the specified task share the same process namespace. If no value is specified, the default is a private namespace for each container. For more information, see [PID settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#pid-settings---pid) in the *Docker run reference*. - If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://doc + If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://docs.aws.amazon.com/https://docs.docker.com/engine/security/security/). + This parameter is not supported for Windows containers. + This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate. """ return pulumi.get(self, "pid_mode") @@ -1056,7 +1140,7 @@ def tags(self) -> pulumi.Output[Optional[Sequence['_root_outputs.Tag']]]: + Maximum value length - 256 Unicode characters in UTF-8 + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. + Tag keys and values are case-sensitive. - + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values + + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. """ return pulumi.get(self, "tags") 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/__init__.py b/sdk/python/pulumi_aws_native/entityresolution/__init__.py index 3c4436e250..4991cdaad5 100644 --- a/sdk/python/pulumi_aws_native/entityresolution/__init__.py +++ b/sdk/python/pulumi_aws_native/entityresolution/__init__.py @@ -7,10 +7,14 @@ # Export this package's modules as members: from ._enums import * from .get_id_mapping_workflow import * +from .get_id_namespace import * from .get_matching_workflow import * +from .get_policy_statement import * from .get_schema_mapping import * from .id_mapping_workflow import * +from .id_namespace import * from .matching_workflow import * +from .policy_statement import * from .schema_mapping import * from ._inputs import * from . import outputs diff --git a/sdk/python/pulumi_aws_native/entityresolution/_enums.py b/sdk/python/pulumi_aws_native/entityresolution/_enums.py index 220b2b5b90..2649d840d5 100644 --- a/sdk/python/pulumi_aws_native/entityresolution/_enums.py +++ b/sdk/python/pulumi_aws_native/entityresolution/_enums.py @@ -6,8 +6,12 @@ __all__ = [ 'IdMappingWorkflowIdMappingTechniquesIdMappingType', + 'IdMappingWorkflowInputSourceType', + 'IdNamespaceIdMappingWorkflowPropertiesIdMappingType', + 'IdNamespaceType', 'MatchingWorkflowResolutionTechniquesResolutionType', 'MatchingWorkflowRuleBasedPropertiesAttributeMatchingModel', + 'PolicyStatementStatementEffect', 'SchemaMappingSchemaAttributeType', ] @@ -16,6 +20,20 @@ class IdMappingWorkflowIdMappingTechniquesIdMappingType(str, Enum): PROVIDER = "PROVIDER" +class IdMappingWorkflowInputSourceType(str, Enum): + SOURCE = "SOURCE" + TARGET = "TARGET" + + +class IdNamespaceIdMappingWorkflowPropertiesIdMappingType(str, Enum): + PROVIDER = "PROVIDER" + + +class IdNamespaceType(str, Enum): + SOURCE = "SOURCE" + TARGET = "TARGET" + + class MatchingWorkflowResolutionTechniquesResolutionType(str, Enum): RULE_MATCHING = "RULE_MATCHING" ML_MATCHING = "ML_MATCHING" @@ -27,6 +45,11 @@ class MatchingWorkflowRuleBasedPropertiesAttributeMatchingModel(str, Enum): MANY_TO_MANY = "MANY_TO_MANY" +class PolicyStatementStatementEffect(str, Enum): + ALLOW = "Allow" + DENY = "Deny" + + class SchemaMappingSchemaAttributeType(str, Enum): NAME = "NAME" NAME_FIRST = "NAME_FIRST" diff --git a/sdk/python/pulumi_aws_native/entityresolution/_inputs.py b/sdk/python/pulumi_aws_native/entityresolution/_inputs.py index cfb6138033..c40de9242d 100644 --- a/sdk/python/pulumi_aws_native/entityresolution/_inputs.py +++ b/sdk/python/pulumi_aws_native/entityresolution/_inputs.py @@ -16,6 +16,9 @@ 'IdMappingWorkflowIntermediateSourceConfigurationArgs', 'IdMappingWorkflowOutputSourceArgs', 'IdMappingWorkflowProviderPropertiesArgs', + 'IdNamespaceIdMappingWorkflowPropertiesArgs', + 'IdNamespaceInputSourceArgs', + 'IdNamespaceNamespaceProviderPropertiesArgs', 'MatchingWorkflowInputSourceArgs', 'MatchingWorkflowIntermediateSourceConfigurationArgs', 'MatchingWorkflowOutputAttributeArgs', @@ -60,18 +63,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 +88,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: @@ -195,6 +211,96 @@ def provider_configuration(self, value: Optional[pulumi.Input[Mapping[str, pulum pulumi.set(self, "provider_configuration", value) +@pulumi.input_type +class IdNamespaceIdMappingWorkflowPropertiesArgs: + def __init__(__self__, *, + id_mapping_type: pulumi.Input['IdNamespaceIdMappingWorkflowPropertiesIdMappingType'], + provider_properties: Optional[pulumi.Input['IdNamespaceNamespaceProviderPropertiesArgs']] = None): + pulumi.set(__self__, "id_mapping_type", id_mapping_type) + if provider_properties is not None: + pulumi.set(__self__, "provider_properties", provider_properties) + + @property + @pulumi.getter(name="idMappingType") + def id_mapping_type(self) -> pulumi.Input['IdNamespaceIdMappingWorkflowPropertiesIdMappingType']: + return pulumi.get(self, "id_mapping_type") + + @id_mapping_type.setter + def id_mapping_type(self, value: pulumi.Input['IdNamespaceIdMappingWorkflowPropertiesIdMappingType']): + pulumi.set(self, "id_mapping_type", value) + + @property + @pulumi.getter(name="providerProperties") + def provider_properties(self) -> Optional[pulumi.Input['IdNamespaceNamespaceProviderPropertiesArgs']]: + return pulumi.get(self, "provider_properties") + + @provider_properties.setter + def provider_properties(self, value: Optional[pulumi.Input['IdNamespaceNamespaceProviderPropertiesArgs']]): + pulumi.set(self, "provider_properties", value) + + +@pulumi.input_type +class IdNamespaceInputSourceArgs: + def __init__(__self__, *, + input_source_arn: pulumi.Input[str], + schema_name: Optional[pulumi.Input[str]] = None): + pulumi.set(__self__, "input_source_arn", input_source_arn) + if schema_name is not None: + pulumi.set(__self__, "schema_name", schema_name) + + @property + @pulumi.getter(name="inputSourceArn") + def input_source_arn(self) -> pulumi.Input[str]: + return pulumi.get(self, "input_source_arn") + + @input_source_arn.setter + def input_source_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "input_source_arn", value) + + @property + @pulumi.getter(name="schemaName") + def schema_name(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "schema_name") + + @schema_name.setter + def schema_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "schema_name", value) + + +@pulumi.input_type +class IdNamespaceNamespaceProviderPropertiesArgs: + def __init__(__self__, *, + provider_service_arn: pulumi.Input[str], + provider_configuration: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): + """ + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] provider_configuration: Additional Provider configuration that would be required for the provider service. The Configuration must be in JSON string format. + """ + pulumi.set(__self__, "provider_service_arn", provider_service_arn) + if provider_configuration is not None: + pulumi.set(__self__, "provider_configuration", provider_configuration) + + @property + @pulumi.getter(name="providerServiceArn") + def provider_service_arn(self) -> pulumi.Input[str]: + return pulumi.get(self, "provider_service_arn") + + @provider_service_arn.setter + def provider_service_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "provider_service_arn", value) + + @property + @pulumi.getter(name="providerConfiguration") + def provider_configuration(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + Additional Provider configuration that would be required for the provider service. The Configuration must be in JSON string format. + """ + return pulumi.get(self, "provider_configuration") + + @provider_configuration.setter + def provider_configuration(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "provider_configuration", value) + + @pulumi.input_type class MatchingWorkflowInputSourceArgs: def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws_native/entityresolution/get_id_namespace.py b/sdk/python/pulumi_aws_native/entityresolution/get_id_namespace.py new file mode 100644 index 0000000000..72b182c406 --- /dev/null +++ b/sdk/python/pulumi_aws_native/entityresolution/get_id_namespace.py @@ -0,0 +1,153 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import 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__ = [ + 'GetIdNamespaceResult', + 'AwaitableGetIdNamespaceResult', + 'get_id_namespace', + 'get_id_namespace_output', +] + +@pulumi.output_type +class GetIdNamespaceResult: + def __init__(__self__, created_at=None, description=None, id_mapping_workflow_properties=None, id_namespace_arn=None, input_source_config=None, role_arn=None, tags=None, type=None, updated_at=None): + 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 id_mapping_workflow_properties and not isinstance(id_mapping_workflow_properties, list): + raise TypeError("Expected argument 'id_mapping_workflow_properties' to be a list") + pulumi.set(__self__, "id_mapping_workflow_properties", id_mapping_workflow_properties) + if id_namespace_arn and not isinstance(id_namespace_arn, str): + raise TypeError("Expected argument 'id_namespace_arn' to be a str") + pulumi.set(__self__, "id_namespace_arn", id_namespace_arn) + if input_source_config and not isinstance(input_source_config, list): + raise TypeError("Expected argument 'input_source_config' to be a list") + pulumi.set(__self__, "input_source_config", input_source_config) + 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 tags and not isinstance(tags, list): + raise TypeError("Expected argument 'tags' to be a list") + pulumi.set(__self__, "tags", tags) + if type and not isinstance(type, str): + raise TypeError("Expected argument 'type' to be a str") + pulumi.set(__self__, "type", type) + 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="createdAt") + def created_at(self) -> Optional[str]: + """ + The date and time when the IdNamespace was created + """ + return pulumi.get(self, "created_at") + + @property + @pulumi.getter + def description(self) -> Optional[str]: + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="idMappingWorkflowProperties") + def id_mapping_workflow_properties(self) -> Optional[Sequence['outputs.IdNamespaceIdMappingWorkflowProperties']]: + return pulumi.get(self, "id_mapping_workflow_properties") + + @property + @pulumi.getter(name="idNamespaceArn") + def id_namespace_arn(self) -> Optional[str]: + """ + The arn associated with the IdNamespace + """ + return pulumi.get(self, "id_namespace_arn") + + @property + @pulumi.getter(name="inputSourceConfig") + def input_source_config(self) -> Optional[Sequence['outputs.IdNamespaceInputSource']]: + return pulumi.get(self, "input_source_config") + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> Optional[str]: + return pulumi.get(self, "role_arn") + + @property + @pulumi.getter + def tags(self) -> Optional[Sequence['_root_outputs.Tag']]: + return pulumi.get(self, "tags") + + @property + @pulumi.getter + def type(self) -> Optional['IdNamespaceType']: + return pulumi.get(self, "type") + + @property + @pulumi.getter(name="updatedAt") + def updated_at(self) -> Optional[str]: + """ + The date and time when the IdNamespace was updated + """ + return pulumi.get(self, "updated_at") + + +class AwaitableGetIdNamespaceResult(GetIdNamespaceResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetIdNamespaceResult( + created_at=self.created_at, + description=self.description, + id_mapping_workflow_properties=self.id_mapping_workflow_properties, + id_namespace_arn=self.id_namespace_arn, + input_source_config=self.input_source_config, + role_arn=self.role_arn, + tags=self.tags, + type=self.type, + updated_at=self.updated_at) + + +def get_id_namespace(id_namespace_name: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetIdNamespaceResult: + """ + IdNamespace defined in AWS Entity Resolution service + """ + __args__ = dict() + __args__['idNamespaceName'] = id_namespace_name + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:entityresolution:getIdNamespace', __args__, opts=opts, typ=GetIdNamespaceResult).value + + return AwaitableGetIdNamespaceResult( + created_at=pulumi.get(__ret__, 'created_at'), + description=pulumi.get(__ret__, 'description'), + id_mapping_workflow_properties=pulumi.get(__ret__, 'id_mapping_workflow_properties'), + id_namespace_arn=pulumi.get(__ret__, 'id_namespace_arn'), + input_source_config=pulumi.get(__ret__, 'input_source_config'), + role_arn=pulumi.get(__ret__, 'role_arn'), + tags=pulumi.get(__ret__, 'tags'), + type=pulumi.get(__ret__, 'type'), + updated_at=pulumi.get(__ret__, 'updated_at')) + + +@_utilities.lift_output_func(get_id_namespace) +def get_id_namespace_output(id_namespace_name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetIdNamespaceResult]: + """ + IdNamespace defined in AWS Entity Resolution service + """ + ... diff --git a/sdk/python/pulumi_aws_native/entityresolution/get_policy_statement.py b/sdk/python/pulumi_aws_native/entityresolution/get_policy_statement.py new file mode 100644 index 0000000000..4f8fe33a5a --- /dev/null +++ b/sdk/python/pulumi_aws_native/entityresolution/get_policy_statement.py @@ -0,0 +1,95 @@ +# 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__ = [ + 'GetPolicyStatementResult', + 'AwaitableGetPolicyStatementResult', + 'get_policy_statement', + 'get_policy_statement_output', +] + +@pulumi.output_type +class GetPolicyStatementResult: + def __init__(__self__, action=None, condition=None, effect=None, principal=None): + if action and not isinstance(action, list): + raise TypeError("Expected argument 'action' to be a list") + pulumi.set(__self__, "action", action) + if condition and not isinstance(condition, str): + raise TypeError("Expected argument 'condition' to be a str") + pulumi.set(__self__, "condition", condition) + if effect and not isinstance(effect, str): + raise TypeError("Expected argument 'effect' to be a str") + pulumi.set(__self__, "effect", effect) + if principal and not isinstance(principal, list): + raise TypeError("Expected argument 'principal' to be a list") + pulumi.set(__self__, "principal", principal) + + @property + @pulumi.getter + def action(self) -> Optional[Sequence[str]]: + return pulumi.get(self, "action") + + @property + @pulumi.getter + def condition(self) -> Optional[str]: + return pulumi.get(self, "condition") + + @property + @pulumi.getter + def effect(self) -> Optional['PolicyStatementStatementEffect']: + return pulumi.get(self, "effect") + + @property + @pulumi.getter + def principal(self) -> Optional[Sequence[str]]: + return pulumi.get(self, "principal") + + +class AwaitableGetPolicyStatementResult(GetPolicyStatementResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetPolicyStatementResult( + action=self.action, + condition=self.condition, + effect=self.effect, + principal=self.principal) + + +def get_policy_statement(arn: Optional[str] = None, + statement_id: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetPolicyStatementResult: + """ + Policy Statement defined in AWS Entity Resolution Service + """ + __args__ = dict() + __args__['arn'] = arn + __args__['statementId'] = statement_id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:entityresolution:getPolicyStatement', __args__, opts=opts, typ=GetPolicyStatementResult).value + + return AwaitableGetPolicyStatementResult( + action=pulumi.get(__ret__, 'action'), + condition=pulumi.get(__ret__, 'condition'), + effect=pulumi.get(__ret__, 'effect'), + principal=pulumi.get(__ret__, 'principal')) + + +@_utilities.lift_output_func(get_policy_statement) +def get_policy_statement_output(arn: Optional[pulumi.Input[str]] = None, + statement_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetPolicyStatementResult]: + """ + Policy Statement defined in AWS Entity Resolution Service + """ + ... 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/id_namespace.py b/sdk/python/pulumi_aws_native/entityresolution/id_namespace.py new file mode 100644 index 0000000000..e661a0692d --- /dev/null +++ b/sdk/python/pulumi_aws_native/entityresolution/id_namespace.py @@ -0,0 +1,275 @@ +# 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__ = ['IdNamespaceArgs', 'IdNamespace'] + +@pulumi.input_type +class IdNamespaceArgs: + def __init__(__self__, *, + type: pulumi.Input['IdNamespaceType'], + description: Optional[pulumi.Input[str]] = None, + id_mapping_workflow_properties: Optional[pulumi.Input[Sequence[pulumi.Input['IdNamespaceIdMappingWorkflowPropertiesArgs']]]] = None, + id_namespace_name: Optional[pulumi.Input[str]] = None, + input_source_config: Optional[pulumi.Input[Sequence[pulumi.Input['IdNamespaceInputSourceArgs']]]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]] = None): + """ + The set of arguments for constructing a IdNamespace resource. + """ + pulumi.set(__self__, "type", type) + if description is not None: + pulumi.set(__self__, "description", description) + if id_mapping_workflow_properties is not None: + pulumi.set(__self__, "id_mapping_workflow_properties", id_mapping_workflow_properties) + if id_namespace_name is not None: + pulumi.set(__self__, "id_namespace_name", id_namespace_name) + if input_source_config is not None: + pulumi.set(__self__, "input_source_config", input_source_config) + if role_arn is not None: + pulumi.set(__self__, "role_arn", role_arn) + if tags is not None: + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter + def type(self) -> pulumi.Input['IdNamespaceType']: + return pulumi.get(self, "type") + + @type.setter + def type(self, value: pulumi.Input['IdNamespaceType']): + pulumi.set(self, "type", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter(name="idMappingWorkflowProperties") + def id_mapping_workflow_properties(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['IdNamespaceIdMappingWorkflowPropertiesArgs']]]]: + return pulumi.get(self, "id_mapping_workflow_properties") + + @id_mapping_workflow_properties.setter + def id_mapping_workflow_properties(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['IdNamespaceIdMappingWorkflowPropertiesArgs']]]]): + pulumi.set(self, "id_mapping_workflow_properties", value) + + @property + @pulumi.getter(name="idNamespaceName") + def id_namespace_name(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "id_namespace_name") + + @id_namespace_name.setter + def id_namespace_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "id_namespace_name", value) + + @property + @pulumi.getter(name="inputSourceConfig") + def input_source_config(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['IdNamespaceInputSourceArgs']]]]: + return pulumi.get(self, "input_source_config") + + @input_source_config.setter + def input_source_config(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['IdNamespaceInputSourceArgs']]]]): + pulumi.set(self, "input_source_config", value) + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "role_arn") + + @role_arn.setter + def role_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "role_arn", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[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 IdNamespace(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + description: Optional[pulumi.Input[str]] = None, + id_mapping_workflow_properties: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['IdNamespaceIdMappingWorkflowPropertiesArgs']]]]] = None, + id_namespace_name: Optional[pulumi.Input[str]] = None, + input_source_config: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['IdNamespaceInputSourceArgs']]]]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]]] = None, + type: Optional[pulumi.Input['IdNamespaceType']] = None, + __props__=None): + """ + IdNamespace defined in AWS Entity Resolution service + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: IdNamespaceArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + IdNamespace defined in AWS Entity Resolution service + + :param str resource_name: The name of the resource. + :param IdNamespaceArgs 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(IdNamespaceArgs, 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, + id_mapping_workflow_properties: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['IdNamespaceIdMappingWorkflowPropertiesArgs']]]]] = None, + id_namespace_name: Optional[pulumi.Input[str]] = None, + input_source_config: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['IdNamespaceInputSourceArgs']]]]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]]] = None, + type: Optional[pulumi.Input['IdNamespaceType']] = 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__ = IdNamespaceArgs.__new__(IdNamespaceArgs) + + __props__.__dict__["description"] = description + __props__.__dict__["id_mapping_workflow_properties"] = id_mapping_workflow_properties + __props__.__dict__["id_namespace_name"] = id_namespace_name + __props__.__dict__["input_source_config"] = input_source_config + __props__.__dict__["role_arn"] = role_arn + __props__.__dict__["tags"] = tags + if type is None and not opts.urn: + raise TypeError("Missing required property 'type'") + __props__.__dict__["type"] = type + __props__.__dict__["created_at"] = None + __props__.__dict__["id_namespace_arn"] = None + __props__.__dict__["updated_at"] = None + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["idNamespaceName"]) + opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) + super(IdNamespace, __self__).__init__( + 'aws-native:entityresolution:IdNamespace', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'IdNamespace': + """ + Get an existing IdNamespace 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__ = IdNamespaceArgs.__new__(IdNamespaceArgs) + + __props__.__dict__["created_at"] = None + __props__.__dict__["description"] = None + __props__.__dict__["id_mapping_workflow_properties"] = None + __props__.__dict__["id_namespace_arn"] = None + __props__.__dict__["id_namespace_name"] = None + __props__.__dict__["input_source_config"] = None + __props__.__dict__["role_arn"] = None + __props__.__dict__["tags"] = None + __props__.__dict__["type"] = None + __props__.__dict__["updated_at"] = None + return IdNamespace(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> pulumi.Output[str]: + """ + The date and time when the IdNamespace was created + """ + return pulumi.get(self, "created_at") + + @property + @pulumi.getter + def description(self) -> pulumi.Output[Optional[str]]: + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="idMappingWorkflowProperties") + def id_mapping_workflow_properties(self) -> pulumi.Output[Optional[Sequence['outputs.IdNamespaceIdMappingWorkflowProperties']]]: + return pulumi.get(self, "id_mapping_workflow_properties") + + @property + @pulumi.getter(name="idNamespaceArn") + def id_namespace_arn(self) -> pulumi.Output[str]: + """ + The arn associated with the IdNamespace + """ + return pulumi.get(self, "id_namespace_arn") + + @property + @pulumi.getter(name="idNamespaceName") + def id_namespace_name(self) -> pulumi.Output[str]: + return pulumi.get(self, "id_namespace_name") + + @property + @pulumi.getter(name="inputSourceConfig") + def input_source_config(self) -> pulumi.Output[Optional[Sequence['outputs.IdNamespaceInputSource']]]: + return pulumi.get(self, "input_source_config") + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> pulumi.Output[Optional[str]]: + return pulumi.get(self, "role_arn") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Sequence['_root_outputs.Tag']]]: + return pulumi.get(self, "tags") + + @property + @pulumi.getter + def type(self) -> pulumi.Output['IdNamespaceType']: + return pulumi.get(self, "type") + + @property + @pulumi.getter(name="updatedAt") + def updated_at(self) -> pulumi.Output[str]: + """ + The date and time when the IdNamespace was updated + """ + return pulumi.get(self, "updated_at") + diff --git a/sdk/python/pulumi_aws_native/entityresolution/outputs.py b/sdk/python/pulumi_aws_native/entityresolution/outputs.py index e546d80697..92197ddc26 100644 --- a/sdk/python/pulumi_aws_native/entityresolution/outputs.py +++ b/sdk/python/pulumi_aws_native/entityresolution/outputs.py @@ -17,6 +17,9 @@ 'IdMappingWorkflowIntermediateSourceConfiguration', 'IdMappingWorkflowOutputSource', 'IdMappingWorkflowProviderProperties', + 'IdNamespaceIdMappingWorkflowProperties', + 'IdNamespaceInputSource', + 'IdNamespaceNamespaceProviderProperties', 'MatchingWorkflowInputSource', 'MatchingWorkflowIntermediateSourceConfiguration', 'MatchingWorkflowOutputAttribute', @@ -91,26 +94,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): @@ -251,6 +263,129 @@ def provider_configuration(self) -> Optional[Mapping[str, str]]: return pulumi.get(self, "provider_configuration") +@pulumi.output_type +class IdNamespaceIdMappingWorkflowProperties(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "idMappingType": + suggest = "id_mapping_type" + elif key == "providerProperties": + suggest = "provider_properties" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in IdNamespaceIdMappingWorkflowProperties. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + IdNamespaceIdMappingWorkflowProperties.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + IdNamespaceIdMappingWorkflowProperties.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + id_mapping_type: 'IdNamespaceIdMappingWorkflowPropertiesIdMappingType', + provider_properties: Optional['outputs.IdNamespaceNamespaceProviderProperties'] = None): + pulumi.set(__self__, "id_mapping_type", id_mapping_type) + if provider_properties is not None: + pulumi.set(__self__, "provider_properties", provider_properties) + + @property + @pulumi.getter(name="idMappingType") + def id_mapping_type(self) -> 'IdNamespaceIdMappingWorkflowPropertiesIdMappingType': + return pulumi.get(self, "id_mapping_type") + + @property + @pulumi.getter(name="providerProperties") + def provider_properties(self) -> Optional['outputs.IdNamespaceNamespaceProviderProperties']: + return pulumi.get(self, "provider_properties") + + +@pulumi.output_type +class IdNamespaceInputSource(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "inputSourceArn": + suggest = "input_source_arn" + elif key == "schemaName": + suggest = "schema_name" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in IdNamespaceInputSource. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + IdNamespaceInputSource.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + IdNamespaceInputSource.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + input_source_arn: str, + schema_name: Optional[str] = None): + pulumi.set(__self__, "input_source_arn", input_source_arn) + if schema_name is not None: + pulumi.set(__self__, "schema_name", schema_name) + + @property + @pulumi.getter(name="inputSourceArn") + def input_source_arn(self) -> str: + return pulumi.get(self, "input_source_arn") + + @property + @pulumi.getter(name="schemaName") + def schema_name(self) -> Optional[str]: + return pulumi.get(self, "schema_name") + + +@pulumi.output_type +class IdNamespaceNamespaceProviderProperties(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "providerServiceArn": + suggest = "provider_service_arn" + elif key == "providerConfiguration": + suggest = "provider_configuration" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in IdNamespaceNamespaceProviderProperties. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + IdNamespaceNamespaceProviderProperties.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + IdNamespaceNamespaceProviderProperties.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + provider_service_arn: str, + provider_configuration: Optional[Mapping[str, str]] = None): + """ + :param Mapping[str, str] provider_configuration: Additional Provider configuration that would be required for the provider service. The Configuration must be in JSON string format. + """ + pulumi.set(__self__, "provider_service_arn", provider_service_arn) + if provider_configuration is not None: + pulumi.set(__self__, "provider_configuration", provider_configuration) + + @property + @pulumi.getter(name="providerServiceArn") + def provider_service_arn(self) -> str: + return pulumi.get(self, "provider_service_arn") + + @property + @pulumi.getter(name="providerConfiguration") + def provider_configuration(self) -> Optional[Mapping[str, str]]: + """ + Additional Provider configuration that would be required for the provider service. The Configuration must be in JSON string format. + """ + return pulumi.get(self, "provider_configuration") + + @pulumi.output_type class MatchingWorkflowInputSource(dict): @staticmethod diff --git a/sdk/python/pulumi_aws_native/entityresolution/policy_statement.py b/sdk/python/pulumi_aws_native/entityresolution/policy_statement.py new file mode 100644 index 0000000000..f0293cc8e4 --- /dev/null +++ b/sdk/python/pulumi_aws_native/entityresolution/policy_statement.py @@ -0,0 +1,221 @@ +# 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__ = ['PolicyStatementArgs', 'PolicyStatement'] + +@pulumi.input_type +class PolicyStatementArgs: + def __init__(__self__, *, + arn: pulumi.Input[str], + statement_id: pulumi.Input[str], + action: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + condition: Optional[pulumi.Input[str]] = None, + effect: Optional[pulumi.Input['PolicyStatementStatementEffect']] = None, + principal: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + The set of arguments for constructing a PolicyStatement resource. + """ + pulumi.set(__self__, "arn", arn) + pulumi.set(__self__, "statement_id", statement_id) + if action is not None: + pulumi.set(__self__, "action", action) + if condition is not None: + pulumi.set(__self__, "condition", condition) + if effect is not None: + pulumi.set(__self__, "effect", effect) + if principal is not None: + pulumi.set(__self__, "principal", principal) + + @property + @pulumi.getter + def arn(self) -> pulumi.Input[str]: + return pulumi.get(self, "arn") + + @arn.setter + def arn(self, value: pulumi.Input[str]): + pulumi.set(self, "arn", value) + + @property + @pulumi.getter(name="statementId") + def statement_id(self) -> pulumi.Input[str]: + return pulumi.get(self, "statement_id") + + @statement_id.setter + def statement_id(self, value: pulumi.Input[str]): + pulumi.set(self, "statement_id", value) + + @property + @pulumi.getter + def action(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + return pulumi.get(self, "action") + + @action.setter + def action(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "action", value) + + @property + @pulumi.getter + def condition(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "condition") + + @condition.setter + def condition(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "condition", value) + + @property + @pulumi.getter + def effect(self) -> Optional[pulumi.Input['PolicyStatementStatementEffect']]: + return pulumi.get(self, "effect") + + @effect.setter + def effect(self, value: Optional[pulumi.Input['PolicyStatementStatementEffect']]): + pulumi.set(self, "effect", value) + + @property + @pulumi.getter + def principal(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + return pulumi.get(self, "principal") + + @principal.setter + def principal(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "principal", value) + + +class PolicyStatement(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + action: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + arn: Optional[pulumi.Input[str]] = None, + condition: Optional[pulumi.Input[str]] = None, + effect: Optional[pulumi.Input['PolicyStatementStatementEffect']] = None, + principal: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + statement_id: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Policy Statement defined in AWS Entity Resolution Service + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: PolicyStatementArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Policy Statement defined in AWS Entity Resolution Service + + :param str resource_name: The name of the resource. + :param PolicyStatementArgs 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(PolicyStatementArgs, 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: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + arn: Optional[pulumi.Input[str]] = None, + condition: Optional[pulumi.Input[str]] = None, + effect: Optional[pulumi.Input['PolicyStatementStatementEffect']] = None, + principal: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + statement_id: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = PolicyStatementArgs.__new__(PolicyStatementArgs) + + __props__.__dict__["action"] = action + if arn is None and not opts.urn: + raise TypeError("Missing required property 'arn'") + __props__.__dict__["arn"] = arn + __props__.__dict__["condition"] = condition + __props__.__dict__["effect"] = effect + __props__.__dict__["principal"] = principal + if statement_id is None and not opts.urn: + raise TypeError("Missing required property 'statement_id'") + __props__.__dict__["statement_id"] = statement_id + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["arn", "statementId"]) + opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) + super(PolicyStatement, __self__).__init__( + 'aws-native:entityresolution:PolicyStatement', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'PolicyStatement': + """ + Get an existing PolicyStatement 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__ = PolicyStatementArgs.__new__(PolicyStatementArgs) + + __props__.__dict__["action"] = None + __props__.__dict__["arn"] = None + __props__.__dict__["condition"] = None + __props__.__dict__["effect"] = None + __props__.__dict__["principal"] = None + __props__.__dict__["statement_id"] = None + return PolicyStatement(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def action(self) -> pulumi.Output[Optional[Sequence[str]]]: + return pulumi.get(self, "action") + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + return pulumi.get(self, "arn") + + @property + @pulumi.getter + def condition(self) -> pulumi.Output[Optional[str]]: + return pulumi.get(self, "condition") + + @property + @pulumi.getter + def effect(self) -> pulumi.Output[Optional['PolicyStatementStatementEffect']]: + return pulumi.get(self, "effect") + + @property + @pulumi.getter + def principal(self) -> pulumi.Output[Optional[Sequence[str]]]: + return pulumi.get(self, "principal") + + @property + @pulumi.getter(name="statementId") + def statement_id(self) -> pulumi.Output[str]: + return pulumi.get(self, "statement_id") + 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/ivs/__init__.py b/sdk/python/pulumi_aws_native/ivs/__init__.py index 78c2df5aa4..4fd823d403 100644 --- a/sdk/python/pulumi_aws_native/ivs/__init__.py +++ b/sdk/python/pulumi_aws_native/ivs/__init__.py @@ -7,14 +7,20 @@ # Export this package's modules as members: from ._enums import * from .channel import * +from .encoder_configuration import * from .get_channel import * +from .get_encoder_configuration import * from .get_playback_key_pair import * +from .get_playback_restriction_policy import * from .get_recording_configuration import * from .get_stage import * +from .get_storage_configuration import * from .get_stream_key import * from .playback_key_pair import * +from .playback_restriction_policy import * from .recording_configuration import * from .stage import * +from .storage_configuration import * from .stream_key import * from ._inputs import * from . import outputs diff --git a/sdk/python/pulumi_aws_native/ivs/_inputs.py b/sdk/python/pulumi_aws_native/ivs/_inputs.py index 078f306354..efdd3e3a9e 100644 --- a/sdk/python/pulumi_aws_native/ivs/_inputs.py +++ b/sdk/python/pulumi_aws_native/ivs/_inputs.py @@ -15,6 +15,8 @@ 'RecordingConfigurationRenditionConfigurationArgs', 'RecordingConfigurationS3DestinationConfigurationArgs', 'RecordingConfigurationThumbnailConfigurationArgs', + 'StorageConfigurationS3StorageConfigurationArgs', + 'VideoPropertiesArgs', ] @pulumi.input_type @@ -168,3 +170,98 @@ def target_interval_seconds(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "target_interval_seconds", value) +@pulumi.input_type +class StorageConfigurationS3StorageConfigurationArgs: + def __init__(__self__, *, + bucket_name: pulumi.Input[str]): + """ + A complex type that describes an S3 location where recorded videos will be stored. + :param pulumi.Input[str] bucket_name: Location (S3 bucket name) where recorded videos will be stored. Note that the StorageConfiguration and S3 bucket must be in the same region as the Composition. + """ + pulumi.set(__self__, "bucket_name", bucket_name) + + @property + @pulumi.getter(name="bucketName") + def bucket_name(self) -> pulumi.Input[str]: + """ + Location (S3 bucket name) where recorded videos will be stored. Note that the StorageConfiguration and S3 bucket must be in the same region as the Composition. + """ + return pulumi.get(self, "bucket_name") + + @bucket_name.setter + def bucket_name(self, value: pulumi.Input[str]): + pulumi.set(self, "bucket_name", value) + + +@pulumi.input_type +class VideoPropertiesArgs: + def __init__(__self__, *, + bitrate: Optional[pulumi.Input[int]] = None, + framerate: Optional[pulumi.Input[float]] = None, + height: Optional[pulumi.Input[int]] = None, + width: Optional[pulumi.Input[int]] = None): + """ + Video configuration. Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps + :param pulumi.Input[int] bitrate: Bitrate for generated output, in bps. Default: 2500000. + :param pulumi.Input[float] framerate: Video frame rate, in fps. Default: 30. + :param pulumi.Input[int] height: Video-resolution height. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 720. + :param pulumi.Input[int] width: Video-resolution width. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 1280. + """ + if bitrate is not None: + pulumi.set(__self__, "bitrate", bitrate) + if framerate is not None: + pulumi.set(__self__, "framerate", framerate) + if height is not None: + pulumi.set(__self__, "height", height) + if width is not None: + pulumi.set(__self__, "width", width) + + @property + @pulumi.getter + def bitrate(self) -> Optional[pulumi.Input[int]]: + """ + Bitrate for generated output, in bps. Default: 2500000. + """ + return pulumi.get(self, "bitrate") + + @bitrate.setter + def bitrate(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "bitrate", value) + + @property + @pulumi.getter + def framerate(self) -> Optional[pulumi.Input[float]]: + """ + Video frame rate, in fps. Default: 30. + """ + return pulumi.get(self, "framerate") + + @framerate.setter + def framerate(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "framerate", value) + + @property + @pulumi.getter + def height(self) -> Optional[pulumi.Input[int]]: + """ + Video-resolution height. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 720. + """ + return pulumi.get(self, "height") + + @height.setter + def height(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "height", value) + + @property + @pulumi.getter + def width(self) -> Optional[pulumi.Input[int]]: + """ + Video-resolution width. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 1280. + """ + return pulumi.get(self, "width") + + @width.setter + def width(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "width", value) + + diff --git a/sdk/python/pulumi_aws_native/ivs/encoder_configuration.py b/sdk/python/pulumi_aws_native/ivs/encoder_configuration.py new file mode 100644 index 0000000000..b7f19e568f --- /dev/null +++ b/sdk/python/pulumi_aws_native/ivs/encoder_configuration.py @@ -0,0 +1,193 @@ +# 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__ = ['EncoderConfigurationArgs', 'EncoderConfiguration'] + +@pulumi.input_type +class EncoderConfigurationArgs: + def __init__(__self__, *, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]] = None, + video: Optional[pulumi.Input['VideoPropertiesArgs']] = None): + """ + The set of arguments for constructing a EncoderConfiguration resource. + :param pulumi.Input[str] name: Encoder configuration name. + :param pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]] tags: An array of key-value pairs to apply to this resource. + :param pulumi.Input['VideoPropertiesArgs'] video: Video configuration. Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps + """ + if name is not None: + pulumi.set(__self__, "name", name) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if video is not None: + pulumi.set(__self__, "video", video) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Encoder configuration name. + """ + 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) + + @property + @pulumi.getter + def video(self) -> Optional[pulumi.Input['VideoPropertiesArgs']]: + """ + Video configuration. Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps + """ + return pulumi.get(self, "video") + + @video.setter + def video(self, value: Optional[pulumi.Input['VideoPropertiesArgs']]): + pulumi.set(self, "video", value) + + +class EncoderConfiguration(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]]] = None, + video: Optional[pulumi.Input[pulumi.InputType['VideoPropertiesArgs']]] = None, + __props__=None): + """ + Resource Type definition for AWS::IVS::EncoderConfiguration. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] name: Encoder configuration name. + :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[pulumi.InputType['VideoPropertiesArgs']] video: Video configuration. Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: Optional[EncoderConfigurationArgs] = None, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource Type definition for AWS::IVS::EncoderConfiguration. + + :param str resource_name: The name of the resource. + :param EncoderConfigurationArgs 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(EncoderConfigurationArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]]] = None, + video: Optional[pulumi.Input[pulumi.InputType['VideoPropertiesArgs']]] = 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__ = EncoderConfigurationArgs.__new__(EncoderConfigurationArgs) + + __props__.__dict__["name"] = name + __props__.__dict__["tags"] = tags + __props__.__dict__["video"] = video + __props__.__dict__["arn"] = None + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["name", "video"]) + opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) + super(EncoderConfiguration, __self__).__init__( + 'aws-native:ivs:EncoderConfiguration', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'EncoderConfiguration': + """ + Get an existing EncoderConfiguration 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__ = EncoderConfigurationArgs.__new__(EncoderConfigurationArgs) + + __props__.__dict__["arn"] = None + __props__.__dict__["name"] = None + __props__.__dict__["tags"] = None + __props__.__dict__["video"] = None + return EncoderConfiguration(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + """ + Encoder configuration identifier. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[Optional[str]]: + """ + Encoder configuration name. + """ + return pulumi.get(self, "name") + + @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") + + @property + @pulumi.getter + def video(self) -> pulumi.Output[Optional['outputs.VideoProperties']]: + """ + Video configuration. Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps + """ + return pulumi.get(self, "video") + diff --git a/sdk/python/pulumi_aws_native/ivs/get_encoder_configuration.py b/sdk/python/pulumi_aws_native/ivs/get_encoder_configuration.py new file mode 100644 index 0000000000..3cd7e74e39 --- /dev/null +++ b/sdk/python/pulumi_aws_native/ivs/get_encoder_configuration.py @@ -0,0 +1,84 @@ +# 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__ = [ + 'GetEncoderConfigurationResult', + 'AwaitableGetEncoderConfigurationResult', + 'get_encoder_configuration', + 'get_encoder_configuration_output', +] + +@pulumi.output_type +class GetEncoderConfigurationResult: + def __init__(__self__, 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 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]: + """ + Encoder configuration identifier. + """ + return pulumi.get(self, "arn") + + @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 AwaitableGetEncoderConfigurationResult(GetEncoderConfigurationResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetEncoderConfigurationResult( + arn=self.arn, + tags=self.tags) + + +def get_encoder_configuration(arn: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetEncoderConfigurationResult: + """ + Resource Type definition for AWS::IVS::EncoderConfiguration. + + + :param str arn: Encoder configuration identifier. + """ + __args__ = dict() + __args__['arn'] = arn + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:ivs:getEncoderConfiguration', __args__, opts=opts, typ=GetEncoderConfigurationResult).value + + return AwaitableGetEncoderConfigurationResult( + arn=pulumi.get(__ret__, 'arn'), + tags=pulumi.get(__ret__, 'tags')) + + +@_utilities.lift_output_func(get_encoder_configuration) +def get_encoder_configuration_output(arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetEncoderConfigurationResult]: + """ + Resource Type definition for AWS::IVS::EncoderConfiguration. + + + :param str arn: Encoder configuration identifier. + """ + ... diff --git a/sdk/python/pulumi_aws_native/ivs/get_playback_restriction_policy.py b/sdk/python/pulumi_aws_native/ivs/get_playback_restriction_policy.py new file mode 100644 index 0000000000..1961640c08 --- /dev/null +++ b/sdk/python/pulumi_aws_native/ivs/get_playback_restriction_policy.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 as _root_outputs + +__all__ = [ + 'GetPlaybackRestrictionPolicyResult', + 'AwaitableGetPlaybackRestrictionPolicyResult', + 'get_playback_restriction_policy', + 'get_playback_restriction_policy_output', +] + +@pulumi.output_type +class GetPlaybackRestrictionPolicyResult: + def __init__(__self__, allowed_countries=None, allowed_origins=None, arn=None, enable_strict_origin_enforcement=None, name=None, tags=None): + if allowed_countries and not isinstance(allowed_countries, list): + raise TypeError("Expected argument 'allowed_countries' to be a list") + pulumi.set(__self__, "allowed_countries", allowed_countries) + if allowed_origins and not isinstance(allowed_origins, list): + raise TypeError("Expected argument 'allowed_origins' to be a list") + pulumi.set(__self__, "allowed_origins", allowed_origins) + if arn and not isinstance(arn, str): + raise TypeError("Expected argument 'arn' to be a str") + pulumi.set(__self__, "arn", arn) + if enable_strict_origin_enforcement and not isinstance(enable_strict_origin_enforcement, bool): + raise TypeError("Expected argument 'enable_strict_origin_enforcement' to be a bool") + pulumi.set(__self__, "enable_strict_origin_enforcement", enable_strict_origin_enforcement) + if name and not isinstance(name, str): + raise TypeError("Expected argument 'name' to be a str") + pulumi.set(__self__, "name", name) + if tags and not isinstance(tags, list): + raise TypeError("Expected argument 'tags' to be a list") + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter(name="allowedCountries") + def allowed_countries(self) -> Optional[Sequence[str]]: + """ + A list of country codes that control geoblocking restriction. Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries (an empty array). + """ + return pulumi.get(self, "allowed_countries") + + @property + @pulumi.getter(name="allowedOrigins") + def allowed_origins(self) -> Optional[Sequence[str]]: + """ + A list of origin sites that control CORS restriction. Allowed values are the same as valid values of the Origin header defined at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin + """ + return pulumi.get(self, "allowed_origins") + + @property + @pulumi.getter + def arn(self) -> Optional[str]: + """ + Playback-restriction-policy identifier. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="enableStrictOriginEnforcement") + def enable_strict_origin_enforcement(self) -> Optional[bool]: + """ + Whether channel playback is constrained by origin site. + """ + return pulumi.get(self, "enable_strict_origin_enforcement") + + @property + @pulumi.getter + def name(self) -> Optional[str]: + """ + Playback-restriction-policy name. + """ + return pulumi.get(self, "name") + + @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 AwaitableGetPlaybackRestrictionPolicyResult(GetPlaybackRestrictionPolicyResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetPlaybackRestrictionPolicyResult( + allowed_countries=self.allowed_countries, + allowed_origins=self.allowed_origins, + arn=self.arn, + enable_strict_origin_enforcement=self.enable_strict_origin_enforcement, + name=self.name, + tags=self.tags) + + +def get_playback_restriction_policy(arn: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetPlaybackRestrictionPolicyResult: + """ + Resource Type definition for AWS::IVS::PlaybackRestrictionPolicy. + + + :param str arn: Playback-restriction-policy identifier. + """ + __args__ = dict() + __args__['arn'] = arn + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:ivs:getPlaybackRestrictionPolicy', __args__, opts=opts, typ=GetPlaybackRestrictionPolicyResult).value + + return AwaitableGetPlaybackRestrictionPolicyResult( + allowed_countries=pulumi.get(__ret__, 'allowed_countries'), + allowed_origins=pulumi.get(__ret__, 'allowed_origins'), + arn=pulumi.get(__ret__, 'arn'), + enable_strict_origin_enforcement=pulumi.get(__ret__, 'enable_strict_origin_enforcement'), + name=pulumi.get(__ret__, 'name'), + tags=pulumi.get(__ret__, 'tags')) + + +@_utilities.lift_output_func(get_playback_restriction_policy) +def get_playback_restriction_policy_output(arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetPlaybackRestrictionPolicyResult]: + """ + Resource Type definition for AWS::IVS::PlaybackRestrictionPolicy. + + + :param str arn: Playback-restriction-policy identifier. + """ + ... diff --git a/sdk/python/pulumi_aws_native/ivs/get_storage_configuration.py b/sdk/python/pulumi_aws_native/ivs/get_storage_configuration.py new file mode 100644 index 0000000000..62cca4993e --- /dev/null +++ b/sdk/python/pulumi_aws_native/ivs/get_storage_configuration.py @@ -0,0 +1,84 @@ +# 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__ = [ + 'GetStorageConfigurationResult', + 'AwaitableGetStorageConfigurationResult', + 'get_storage_configuration', + 'get_storage_configuration_output', +] + +@pulumi.output_type +class GetStorageConfigurationResult: + def __init__(__self__, 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 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]: + """ + Storage Configuration ARN is automatically generated on creation and assigned as the unique identifier. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter + def tags(self) -> Optional[Sequence['_root_outputs.Tag']]: + """ + A list of key-value pairs that contain metadata for the asset model. + """ + return pulumi.get(self, "tags") + + +class AwaitableGetStorageConfigurationResult(GetStorageConfigurationResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetStorageConfigurationResult( + arn=self.arn, + tags=self.tags) + + +def get_storage_configuration(arn: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetStorageConfigurationResult: + """ + Resource Type definition for AWS::IVS::StorageConfiguration + + + :param str arn: Storage Configuration ARN is automatically generated on creation and assigned as the unique identifier. + """ + __args__ = dict() + __args__['arn'] = arn + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:ivs:getStorageConfiguration', __args__, opts=opts, typ=GetStorageConfigurationResult).value + + return AwaitableGetStorageConfigurationResult( + arn=pulumi.get(__ret__, 'arn'), + tags=pulumi.get(__ret__, 'tags')) + + +@_utilities.lift_output_func(get_storage_configuration) +def get_storage_configuration_output(arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetStorageConfigurationResult]: + """ + Resource Type definition for AWS::IVS::StorageConfiguration + + + :param str arn: Storage Configuration ARN is automatically generated on creation and assigned as the unique identifier. + """ + ... diff --git a/sdk/python/pulumi_aws_native/ivs/outputs.py b/sdk/python/pulumi_aws_native/ivs/outputs.py index a96b492e24..3898e3182e 100644 --- a/sdk/python/pulumi_aws_native/ivs/outputs.py +++ b/sdk/python/pulumi_aws_native/ivs/outputs.py @@ -16,6 +16,8 @@ 'RecordingConfigurationRenditionConfiguration', 'RecordingConfigurationS3DestinationConfiguration', 'RecordingConfigurationThumbnailConfiguration', + 'StorageConfigurationS3StorageConfiguration', + 'VideoProperties', ] @pulumi.output_type @@ -202,3 +204,101 @@ def target_interval_seconds(self) -> Optional[int]: return pulumi.get(self, "target_interval_seconds") +@pulumi.output_type +class StorageConfigurationS3StorageConfiguration(dict): + """ + A complex type that describes an S3 location where recorded videos will be stored. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "bucketName": + suggest = "bucket_name" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StorageConfigurationS3StorageConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StorageConfigurationS3StorageConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StorageConfigurationS3StorageConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + bucket_name: str): + """ + A complex type that describes an S3 location where recorded videos will be stored. + :param str bucket_name: Location (S3 bucket name) where recorded videos will be stored. Note that the StorageConfiguration and S3 bucket must be in the same region as the Composition. + """ + pulumi.set(__self__, "bucket_name", bucket_name) + + @property + @pulumi.getter(name="bucketName") + def bucket_name(self) -> str: + """ + Location (S3 bucket name) where recorded videos will be stored. Note that the StorageConfiguration and S3 bucket must be in the same region as the Composition. + """ + return pulumi.get(self, "bucket_name") + + +@pulumi.output_type +class VideoProperties(dict): + """ + Video configuration. Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps + """ + def __init__(__self__, *, + bitrate: Optional[int] = None, + framerate: Optional[float] = None, + height: Optional[int] = None, + width: Optional[int] = None): + """ + Video configuration. Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps + :param int bitrate: Bitrate for generated output, in bps. Default: 2500000. + :param float framerate: Video frame rate, in fps. Default: 30. + :param int height: Video-resolution height. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 720. + :param int width: Video-resolution width. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 1280. + """ + if bitrate is not None: + pulumi.set(__self__, "bitrate", bitrate) + if framerate is not None: + pulumi.set(__self__, "framerate", framerate) + if height is not None: + pulumi.set(__self__, "height", height) + if width is not None: + pulumi.set(__self__, "width", width) + + @property + @pulumi.getter + def bitrate(self) -> Optional[int]: + """ + Bitrate for generated output, in bps. Default: 2500000. + """ + return pulumi.get(self, "bitrate") + + @property + @pulumi.getter + def framerate(self) -> Optional[float]: + """ + Video frame rate, in fps. Default: 30. + """ + return pulumi.get(self, "framerate") + + @property + @pulumi.getter + def height(self) -> Optional[int]: + """ + Video-resolution height. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 720. + """ + return pulumi.get(self, "height") + + @property + @pulumi.getter + def width(self) -> Optional[int]: + """ + Video-resolution width. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 1280. + """ + return pulumi.get(self, "width") + + diff --git a/sdk/python/pulumi_aws_native/ivs/playback_restriction_policy.py b/sdk/python/pulumi_aws_native/ivs/playback_restriction_policy.py new file mode 100644 index 0000000000..f6257c9588 --- /dev/null +++ b/sdk/python/pulumi_aws_native/ivs/playback_restriction_policy.py @@ -0,0 +1,249 @@ +# 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__ = ['PlaybackRestrictionPolicyArgs', 'PlaybackRestrictionPolicy'] + +@pulumi.input_type +class PlaybackRestrictionPolicyArgs: + def __init__(__self__, *, + allowed_countries: pulumi.Input[Sequence[pulumi.Input[str]]], + allowed_origins: pulumi.Input[Sequence[pulumi.Input[str]]], + enable_strict_origin_enforcement: Optional[pulumi.Input[bool]] = 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 PlaybackRestrictionPolicy resource. + :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_countries: A list of country codes that control geoblocking restriction. Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries (an empty array). + :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_origins: A list of origin sites that control CORS restriction. Allowed values are the same as valid values of the Origin header defined at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin + :param pulumi.Input[bool] enable_strict_origin_enforcement: Whether channel playback is constrained by origin site. + :param pulumi.Input[str] name: Playback-restriction-policy name. + :param pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]] tags: An array of key-value pairs to apply to this resource. + """ + pulumi.set(__self__, "allowed_countries", allowed_countries) + pulumi.set(__self__, "allowed_origins", allowed_origins) + if enable_strict_origin_enforcement is not None: + pulumi.set(__self__, "enable_strict_origin_enforcement", enable_strict_origin_enforcement) + if name is not None: + pulumi.set(__self__, "name", name) + if tags is not None: + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter(name="allowedCountries") + def allowed_countries(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: + """ + A list of country codes that control geoblocking restriction. Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries (an empty array). + """ + return pulumi.get(self, "allowed_countries") + + @allowed_countries.setter + def allowed_countries(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): + pulumi.set(self, "allowed_countries", value) + + @property + @pulumi.getter(name="allowedOrigins") + def allowed_origins(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: + """ + A list of origin sites that control CORS restriction. Allowed values are the same as valid values of the Origin header defined at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin + """ + return pulumi.get(self, "allowed_origins") + + @allowed_origins.setter + def allowed_origins(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): + pulumi.set(self, "allowed_origins", value) + + @property + @pulumi.getter(name="enableStrictOriginEnforcement") + def enable_strict_origin_enforcement(self) -> Optional[pulumi.Input[bool]]: + """ + Whether channel playback is constrained by origin site. + """ + return pulumi.get(self, "enable_strict_origin_enforcement") + + @enable_strict_origin_enforcement.setter + def enable_strict_origin_enforcement(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "enable_strict_origin_enforcement", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Playback-restriction-policy name. + """ + 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 PlaybackRestrictionPolicy(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + allowed_countries: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + allowed_origins: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + enable_strict_origin_enforcement: Optional[pulumi.Input[bool]] = None, + 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::IVS::PlaybackRestrictionPolicy. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_countries: A list of country codes that control geoblocking restriction. Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries (an empty array). + :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_origins: A list of origin sites that control CORS restriction. Allowed values are the same as valid values of the Origin header defined at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin + :param pulumi.Input[bool] enable_strict_origin_enforcement: Whether channel playback is constrained by origin site. + :param pulumi.Input[str] name: Playback-restriction-policy name. + :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: PlaybackRestrictionPolicyArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource Type definition for AWS::IVS::PlaybackRestrictionPolicy. + + :param str resource_name: The name of the resource. + :param PlaybackRestrictionPolicyArgs 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(PlaybackRestrictionPolicyArgs, 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, + allowed_countries: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + allowed_origins: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + enable_strict_origin_enforcement: Optional[pulumi.Input[bool]] = 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__ = PlaybackRestrictionPolicyArgs.__new__(PlaybackRestrictionPolicyArgs) + + if allowed_countries is None and not opts.urn: + raise TypeError("Missing required property 'allowed_countries'") + __props__.__dict__["allowed_countries"] = allowed_countries + if allowed_origins is None and not opts.urn: + raise TypeError("Missing required property 'allowed_origins'") + __props__.__dict__["allowed_origins"] = allowed_origins + __props__.__dict__["enable_strict_origin_enforcement"] = enable_strict_origin_enforcement + __props__.__dict__["name"] = name + __props__.__dict__["tags"] = tags + __props__.__dict__["arn"] = None + super(PlaybackRestrictionPolicy, __self__).__init__( + 'aws-native:ivs:PlaybackRestrictionPolicy', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'PlaybackRestrictionPolicy': + """ + Get an existing PlaybackRestrictionPolicy 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__ = PlaybackRestrictionPolicyArgs.__new__(PlaybackRestrictionPolicyArgs) + + __props__.__dict__["allowed_countries"] = None + __props__.__dict__["allowed_origins"] = None + __props__.__dict__["arn"] = None + __props__.__dict__["enable_strict_origin_enforcement"] = None + __props__.__dict__["name"] = None + __props__.__dict__["tags"] = None + return PlaybackRestrictionPolicy(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="allowedCountries") + def allowed_countries(self) -> pulumi.Output[Sequence[str]]: + """ + A list of country codes that control geoblocking restriction. Allowed values are the officially assigned ISO 3166-1 alpha-2 codes. Default: All countries (an empty array). + """ + return pulumi.get(self, "allowed_countries") + + @property + @pulumi.getter(name="allowedOrigins") + def allowed_origins(self) -> pulumi.Output[Sequence[str]]: + """ + A list of origin sites that control CORS restriction. Allowed values are the same as valid values of the Origin header defined at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin + """ + return pulumi.get(self, "allowed_origins") + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + """ + Playback-restriction-policy identifier. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="enableStrictOriginEnforcement") + def enable_strict_origin_enforcement(self) -> pulumi.Output[Optional[bool]]: + """ + Whether channel playback is constrained by origin site. + """ + return pulumi.get(self, "enable_strict_origin_enforcement") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[Optional[str]]: + """ + Playback-restriction-policy name. + """ + return pulumi.get(self, "name") + + @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/ivs/storage_configuration.py b/sdk/python/pulumi_aws_native/ivs/storage_configuration.py new file mode 100644 index 0000000000..31750de58b --- /dev/null +++ b/sdk/python/pulumi_aws_native/ivs/storage_configuration.py @@ -0,0 +1,186 @@ +# 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__ = ['StorageConfigurationArgs', 'StorageConfiguration'] + +@pulumi.input_type +class StorageConfigurationArgs: + def __init__(__self__, *, + s3: pulumi.Input['StorageConfigurationS3StorageConfigurationArgs'], + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]] = None): + """ + The set of arguments for constructing a StorageConfiguration resource. + :param pulumi.Input[str] name: Storage Configuration Name. + :param pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]] tags: A list of key-value pairs that contain metadata for the asset model. + """ + pulumi.set(__self__, "s3", s3) + if name is not None: + pulumi.set(__self__, "name", name) + if tags is not None: + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter + def s3(self) -> pulumi.Input['StorageConfigurationS3StorageConfigurationArgs']: + return pulumi.get(self, "s3") + + @s3.setter + def s3(self, value: pulumi.Input['StorageConfigurationS3StorageConfigurationArgs']): + pulumi.set(self, "s3", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Storage Configuration Name. + """ + 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 list of key-value pairs that contain metadata for the asset model. + """ + 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 StorageConfiguration(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + name: Optional[pulumi.Input[str]] = None, + s3: Optional[pulumi.Input[pulumi.InputType['StorageConfigurationS3StorageConfigurationArgs']]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]]] = None, + __props__=None): + """ + Resource Type definition for AWS::IVS::StorageConfiguration + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] name: Storage Configuration Name. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]] tags: A list of key-value pairs that contain metadata for the asset model. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: StorageConfigurationArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource Type definition for AWS::IVS::StorageConfiguration + + :param str resource_name: The name of the resource. + :param StorageConfigurationArgs 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(StorageConfigurationArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + name: Optional[pulumi.Input[str]] = None, + s3: Optional[pulumi.Input[pulumi.InputType['StorageConfigurationS3StorageConfigurationArgs']]] = 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__ = StorageConfigurationArgs.__new__(StorageConfigurationArgs) + + __props__.__dict__["name"] = name + if s3 is None and not opts.urn: + raise TypeError("Missing required property 's3'") + __props__.__dict__["s3"] = s3 + __props__.__dict__["tags"] = tags + __props__.__dict__["arn"] = None + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["name", "s3"]) + opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) + super(StorageConfiguration, __self__).__init__( + 'aws-native:ivs:StorageConfiguration', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'StorageConfiguration': + """ + Get an existing StorageConfiguration 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__ = StorageConfigurationArgs.__new__(StorageConfigurationArgs) + + __props__.__dict__["arn"] = None + __props__.__dict__["name"] = None + __props__.__dict__["s3"] = None + __props__.__dict__["tags"] = None + return StorageConfiguration(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + """ + Storage Configuration ARN is automatically generated on creation and assigned as the unique identifier. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[Optional[str]]: + """ + Storage Configuration Name. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def s3(self) -> pulumi.Output['outputs.StorageConfigurationS3StorageConfiguration']: + return pulumi.get(self, "s3") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Sequence['_root_outputs.Tag']]]: + """ + A list of key-value pairs that contain metadata for the asset model. + """ + return pulumi.get(self, "tags") + 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/lambda_/_enums.py b/sdk/python/pulumi_aws_native/lambda_/_enums.py index 136999300d..62275153da 100644 --- a/sdk/python/pulumi_aws_native/lambda_/_enums.py +++ b/sdk/python/pulumi_aws_native/lambda_/_enums.py @@ -105,11 +105,11 @@ class FunctionPackageType(str, Enum): class FunctionRuntimeManagementConfigUpdateRuntimeOn(str, Enum): """ Specify the runtime update mode. - + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates. - + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date. - + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback). - - *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual`` + + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates. + + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date. + + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback). + + *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual`` """ AUTO = "Auto" FUNCTION_UPDATE = "FunctionUpdate" diff --git a/sdk/python/pulumi_aws_native/lambda_/_inputs.py b/sdk/python/pulumi_aws_native/lambda_/_inputs.py index f1ed2b0a05..69fb397c02 100644 --- a/sdk/python/pulumi_aws_native/lambda_/_inputs.py +++ b/sdk/python/pulumi_aws_native/lambda_/_inputs.py @@ -818,11 +818,11 @@ def __init__(__self__, *, """ Sets the runtime management configuration for a function's version. For more information, see [Runtime updates](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html). :param pulumi.Input['FunctionRuntimeManagementConfigUpdateRuntimeOn'] update_runtime_on: Specify the runtime update mode. - + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates. - + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date. - + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback). - - *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual`` + + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates. + + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date. + + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback). + + *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual`` :param pulumi.Input[str] runtime_version_arn: The ARN of the runtime version you want the function to use. This is only required if you're using the *Manual* runtime update mode. """ @@ -835,11 +835,11 @@ def __init__(__self__, *, def update_runtime_on(self) -> pulumi.Input['FunctionRuntimeManagementConfigUpdateRuntimeOn']: """ Specify the runtime update mode. - + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates. - + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date. - + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback). - - *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual`` + + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates. + + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date. + + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback). + + *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual`` """ return pulumi.get(self, "update_runtime_on") diff --git a/sdk/python/pulumi_aws_native/lambda_/outputs.py b/sdk/python/pulumi_aws_native/lambda_/outputs.py index f97d6c3561..b4fb61e149 100644 --- a/sdk/python/pulumi_aws_native/lambda_/outputs.py +++ b/sdk/python/pulumi_aws_native/lambda_/outputs.py @@ -1024,11 +1024,11 @@ def __init__(__self__, *, """ Sets the runtime management configuration for a function's version. For more information, see [Runtime updates](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html). :param 'FunctionRuntimeManagementConfigUpdateRuntimeOn' update_runtime_on: Specify the runtime update mode. - + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates. - + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date. - + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback). - - *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual`` + + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates. + + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date. + + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback). + + *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual`` :param str runtime_version_arn: The ARN of the runtime version you want the function to use. This is only required if you're using the *Manual* runtime update mode. """ @@ -1041,11 +1041,11 @@ def __init__(__self__, *, def update_runtime_on(self) -> 'FunctionRuntimeManagementConfigUpdateRuntimeOn': """ Specify the runtime update mode. - + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates. - + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date. - + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback). - - *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual`` + + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates. + + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date. + + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback). + + *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual`` """ return pulumi.get(self, "update_runtime_on") diff --git a/sdk/python/pulumi_aws_native/logs/_enums.py b/sdk/python/pulumi_aws_native/logs/_enums.py index 51d709f918..6cfe1029ea 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..91ea0c3493 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..2db67418ed 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..2f0193b6e5 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..08a6f7d384 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/mediatailor/channel.py b/sdk/python/pulumi_aws_native/mediatailor/channel.py index dccad10553..9aa3cec44e 100644 --- a/sdk/python/pulumi_aws_native/mediatailor/channel.py +++ b/sdk/python/pulumi_aws_native/mediatailor/channel.py @@ -21,6 +21,7 @@ class ChannelArgs: def __init__(__self__, *, outputs: pulumi.Input[Sequence[pulumi.Input['ChannelRequestOutputItemArgs']]], playback_mode: pulumi.Input['ChannelPlaybackMode'], + audiences: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, channel_name: Optional[pulumi.Input[str]] = None, filler_slate: Optional[pulumi.Input['ChannelSlateSourceArgs']] = None, log_configuration: Optional[pulumi.Input['ChannelLogConfigurationForChannelArgs']] = None, @@ -30,10 +31,13 @@ def __init__(__self__, *, """ The set of arguments for constructing a Channel resource. :param pulumi.Input[Sequence[pulumi.Input['ChannelRequestOutputItemArgs']]] outputs:

The channel's output properties.

+ :param pulumi.Input[Sequence[pulumi.Input[str]]] audiences:

The list of audiences defined in channel.

:param pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]] tags: The tags to assign to the channel. """ pulumi.set(__self__, "outputs", outputs) pulumi.set(__self__, "playback_mode", playback_mode) + if audiences is not None: + pulumi.set(__self__, "audiences", audiences) if channel_name is not None: pulumi.set(__self__, "channel_name", channel_name) if filler_slate is not None: @@ -68,6 +72,18 @@ def playback_mode(self) -> pulumi.Input['ChannelPlaybackMode']: def playback_mode(self, value: pulumi.Input['ChannelPlaybackMode']): pulumi.set(self, "playback_mode", value) + @property + @pulumi.getter + def audiences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ +

The list of audiences defined in channel.

+ """ + return pulumi.get(self, "audiences") + + @audiences.setter + def audiences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "audiences", value) + @property @pulumi.getter(name="channelName") def channel_name(self) -> Optional[pulumi.Input[str]]: @@ -131,6 +147,7 @@ class Channel(pulumi.CustomResource): def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + audiences: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, channel_name: Optional[pulumi.Input[str]] = None, filler_slate: Optional[pulumi.Input[pulumi.InputType['ChannelSlateSourceArgs']]] = None, log_configuration: Optional[pulumi.Input[pulumi.InputType['ChannelLogConfigurationForChannelArgs']]] = None, @@ -145,6 +162,7 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Sequence[pulumi.Input[str]]] audiences:

The list of audiences defined in channel.

:param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ChannelRequestOutputItemArgs']]]] outputs:

The channel's output properties.

:param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]] tags: The tags to assign to the channel. """ @@ -172,6 +190,7 @@ def __init__(__self__, resource_name: str, *args, **kwargs): def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + audiences: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, channel_name: Optional[pulumi.Input[str]] = None, filler_slate: Optional[pulumi.Input[pulumi.InputType['ChannelSlateSourceArgs']]] = None, log_configuration: Optional[pulumi.Input[pulumi.InputType['ChannelLogConfigurationForChannelArgs']]] = None, @@ -189,6 +208,7 @@ 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__ = ChannelArgs.__new__(ChannelArgs) + __props__.__dict__["audiences"] = audiences __props__.__dict__["channel_name"] = channel_name __props__.__dict__["filler_slate"] = filler_slate __props__.__dict__["log_configuration"] = log_configuration @@ -227,6 +247,7 @@ def get(resource_name: str, __props__ = ChannelArgs.__new__(ChannelArgs) __props__.__dict__["arn"] = None + __props__.__dict__["audiences"] = None __props__.__dict__["channel_name"] = None __props__.__dict__["filler_slate"] = None __props__.__dict__["log_configuration"] = None @@ -245,6 +266,14 @@ def arn(self) -> pulumi.Output[str]: """ return pulumi.get(self, "arn") + @property + @pulumi.getter + def audiences(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ +

The list of audiences defined in channel.

+ """ + return pulumi.get(self, "audiences") + @property @pulumi.getter(name="channelName") def channel_name(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_aws_native/mediatailor/get_channel.py b/sdk/python/pulumi_aws_native/mediatailor/get_channel.py index be0c80a9c1..6b28dfbf11 100644 --- a/sdk/python/pulumi_aws_native/mediatailor/get_channel.py +++ b/sdk/python/pulumi_aws_native/mediatailor/get_channel.py @@ -21,10 +21,13 @@ @pulumi.output_type class GetChannelResult: - def __init__(__self__, arn=None, filler_slate=None, log_configuration=None, playback_mode=None, tags=None, time_shift_configuration=None): + def __init__(__self__, arn=None, audiences=None, filler_slate=None, log_configuration=None, playback_mode=None, tags=None, time_shift_configuration=None): if arn and not isinstance(arn, str): raise TypeError("Expected argument 'arn' to be a str") pulumi.set(__self__, "arn", arn) + if audiences and not isinstance(audiences, list): + raise TypeError("Expected argument 'audiences' to be a list") + pulumi.set(__self__, "audiences", audiences) if filler_slate and not isinstance(filler_slate, dict): raise TypeError("Expected argument 'filler_slate' to be a dict") pulumi.set(__self__, "filler_slate", filler_slate) @@ -49,6 +52,14 @@ def arn(self) -> Optional[str]: """ return pulumi.get(self, "arn") + @property + @pulumi.getter + def audiences(self) -> Optional[Sequence[str]]: + """ +

The list of audiences defined in channel.

+ """ + return pulumi.get(self, "audiences") + @property @pulumi.getter(name="fillerSlate") def filler_slate(self) -> Optional['outputs.ChannelSlateSource']: @@ -85,6 +96,7 @@ def __await__(self): yield self return GetChannelResult( arn=self.arn, + audiences=self.audiences, filler_slate=self.filler_slate, log_configuration=self.log_configuration, playback_mode=self.playback_mode, @@ -104,6 +116,7 @@ def get_channel(channel_name: Optional[str] = None, return AwaitableGetChannelResult( arn=pulumi.get(__ret__, 'arn'), + audiences=pulumi.get(__ret__, 'audiences'), filler_slate=pulumi.get(__ret__, 'filler_slate'), log_configuration=pulumi.get(__ret__, 'log_configuration'), playback_mode=pulumi.get(__ret__, 'playback_mode'), diff --git a/sdk/python/pulumi_aws_native/rds/custom_db_engine_version.py b/sdk/python/pulumi_aws_native/rds/custom_db_engine_version.py index 2851992f0b..bf285c5b45 100644 --- a/sdk/python/pulumi_aws_native/rds/custom_db_engine_version.py +++ b/sdk/python/pulumi_aws_native/rds/custom_db_engine_version.py @@ -17,54 +17,55 @@ @pulumi.input_type class CustomDbEngineVersionArgs: def __init__(__self__, *, - database_installation_files_s3_bucket_name: pulumi.Input[str], engine: pulumi.Input[str], engine_version: pulumi.Input[str], + database_installation_files_s3_bucket_name: Optional[pulumi.Input[str]] = None, database_installation_files_s3_prefix: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, + image_id: Optional[pulumi.Input[str]] = None, kms_key_id: Optional[pulumi.Input[str]] = None, manifest: Optional[pulumi.Input[str]] = None, + source_custom_db_engine_version_identifier: Optional[pulumi.Input[str]] = None, status: Optional[pulumi.Input['CustomDbEngineVersionStatus']] = None, - tags: Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]] = None): + tags: Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]] = None, + use_aws_provided_latest_image: Optional[pulumi.Input[bool]] = None): """ The set of arguments for constructing a CustomDbEngineVersion resource. - :param pulumi.Input[str] database_installation_files_s3_bucket_name: The name of an Amazon S3 bucket that contains database installation files for your CEV. For example, a valid bucket name is `my-custom-installation-files`. :param pulumi.Input[str] engine: The database engine to use for your custom engine version (CEV). The only supported value is `custom-oracle-ee`. :param pulumi.Input[str] engine_version: The name of your CEV. The name format is 19.customized_string . For example, a valid name is 19.my_cev1. This setting is required for RDS Custom for Oracle, but optional for Amazon RDS. The combination of Engine and EngineVersion is unique per customer per Region. + :param pulumi.Input[str] database_installation_files_s3_bucket_name: The name of an Amazon S3 bucket that contains database installation files for your CEV. For example, a valid bucket name is `my-custom-installation-files`. :param pulumi.Input[str] database_installation_files_s3_prefix: The Amazon S3 directory that contains the database installation files for your CEV. For example, a valid bucket name is `123456789012/cev1`. If this setting isn't specified, no prefix is assumed. :param pulumi.Input[str] description: An optional description of your CEV. + :param pulumi.Input[str] image_id: The identifier of Amazon Machine Image (AMI) used for CEV. :param pulumi.Input[str] kms_key_id: The AWS KMS key identifier for an encrypted CEV. A symmetric KMS key is required for RDS Custom, but optional for Amazon RDS. :param pulumi.Input[str] manifest: The CEV manifest, which is a JSON document that describes the installation .zip files stored in Amazon S3. Specify the name/value pairs in a file or a quoted string. RDS Custom applies the patches in the order in which they are listed. + :param pulumi.Input[str] source_custom_db_engine_version_identifier: The identifier of the source custom engine version. :param pulumi.Input['CustomDbEngineVersionStatus'] status: The availability status to be assigned to the CEV. :param pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]] tags: An array of key-value pairs to apply to this resource. + :param pulumi.Input[bool] use_aws_provided_latest_image: A value that indicates whether AWS provided latest image is applied automatically to the Custom Engine Version. By default, AWS provided latest image is applied automatically. This value is only applied on create. """ - pulumi.set(__self__, "database_installation_files_s3_bucket_name", database_installation_files_s3_bucket_name) pulumi.set(__self__, "engine", engine) pulumi.set(__self__, "engine_version", engine_version) + if database_installation_files_s3_bucket_name is not None: + pulumi.set(__self__, "database_installation_files_s3_bucket_name", database_installation_files_s3_bucket_name) if database_installation_files_s3_prefix is not None: pulumi.set(__self__, "database_installation_files_s3_prefix", database_installation_files_s3_prefix) if description is not None: pulumi.set(__self__, "description", description) + if image_id is not None: + pulumi.set(__self__, "image_id", image_id) if kms_key_id is not None: pulumi.set(__self__, "kms_key_id", kms_key_id) if manifest is not None: pulumi.set(__self__, "manifest", manifest) + if source_custom_db_engine_version_identifier is not None: + pulumi.set(__self__, "source_custom_db_engine_version_identifier", source_custom_db_engine_version_identifier) if status is not None: pulumi.set(__self__, "status", status) if tags is not None: pulumi.set(__self__, "tags", tags) - - @property - @pulumi.getter(name="databaseInstallationFilesS3BucketName") - def database_installation_files_s3_bucket_name(self) -> pulumi.Input[str]: - """ - The name of an Amazon S3 bucket that contains database installation files for your CEV. For example, a valid bucket name is `my-custom-installation-files`. - """ - return pulumi.get(self, "database_installation_files_s3_bucket_name") - - @database_installation_files_s3_bucket_name.setter - def database_installation_files_s3_bucket_name(self, value: pulumi.Input[str]): - pulumi.set(self, "database_installation_files_s3_bucket_name", value) + if use_aws_provided_latest_image is not None: + pulumi.set(__self__, "use_aws_provided_latest_image", use_aws_provided_latest_image) @property @pulumi.getter @@ -90,6 +91,18 @@ def engine_version(self) -> pulumi.Input[str]: def engine_version(self, value: pulumi.Input[str]): pulumi.set(self, "engine_version", value) + @property + @pulumi.getter(name="databaseInstallationFilesS3BucketName") + def database_installation_files_s3_bucket_name(self) -> Optional[pulumi.Input[str]]: + """ + The name of an Amazon S3 bucket that contains database installation files for your CEV. For example, a valid bucket name is `my-custom-installation-files`. + """ + return pulumi.get(self, "database_installation_files_s3_bucket_name") + + @database_installation_files_s3_bucket_name.setter + def database_installation_files_s3_bucket_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "database_installation_files_s3_bucket_name", value) + @property @pulumi.getter(name="databaseInstallationFilesS3Prefix") def database_installation_files_s3_prefix(self) -> Optional[pulumi.Input[str]]: @@ -114,6 +127,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="imageId") + def image_id(self) -> Optional[pulumi.Input[str]]: + """ + The identifier of Amazon Machine Image (AMI) used for CEV. + """ + return pulumi.get(self, "image_id") + + @image_id.setter + def image_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "image_id", value) + @property @pulumi.getter(name="kmsKeyId") def kms_key_id(self) -> Optional[pulumi.Input[str]]: @@ -138,6 +163,18 @@ def manifest(self) -> Optional[pulumi.Input[str]]: def manifest(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "manifest", value) + @property + @pulumi.getter(name="sourceCustomDbEngineVersionIdentifier") + def source_custom_db_engine_version_identifier(self) -> Optional[pulumi.Input[str]]: + """ + The identifier of the source custom engine version. + """ + return pulumi.get(self, "source_custom_db_engine_version_identifier") + + @source_custom_db_engine_version_identifier.setter + def source_custom_db_engine_version_identifier(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "source_custom_db_engine_version_identifier", value) + @property @pulumi.getter def status(self) -> Optional[pulumi.Input['CustomDbEngineVersionStatus']]: @@ -162,6 +199,18 @@ def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagA def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]]): pulumi.set(self, "tags", value) + @property + @pulumi.getter(name="useAwsProvidedLatestImage") + def use_aws_provided_latest_image(self) -> Optional[pulumi.Input[bool]]: + """ + A value that indicates whether AWS provided latest image is applied automatically to the Custom Engine Version. By default, AWS provided latest image is applied automatically. This value is only applied on create. + """ + return pulumi.get(self, "use_aws_provided_latest_image") + + @use_aws_provided_latest_image.setter + def use_aws_provided_latest_image(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "use_aws_provided_latest_image", value) + class CustomDbEngineVersion(pulumi.CustomResource): @overload @@ -173,10 +222,13 @@ def __init__(__self__, description: Optional[pulumi.Input[str]] = None, engine: Optional[pulumi.Input[str]] = None, engine_version: Optional[pulumi.Input[str]] = None, + image_id: Optional[pulumi.Input[str]] = None, kms_key_id: Optional[pulumi.Input[str]] = None, manifest: Optional[pulumi.Input[str]] = None, + source_custom_db_engine_version_identifier: Optional[pulumi.Input[str]] = None, status: Optional[pulumi.Input['CustomDbEngineVersionStatus']] = None, tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]]] = None, + use_aws_provided_latest_image: Optional[pulumi.Input[bool]] = None, __props__=None): """ The AWS::RDS::CustomDBEngineVersion resource creates an Amazon RDS custom DB engine version. @@ -188,10 +240,13 @@ def __init__(__self__, :param pulumi.Input[str] description: An optional description of your CEV. :param pulumi.Input[str] engine: The database engine to use for your custom engine version (CEV). The only supported value is `custom-oracle-ee`. :param pulumi.Input[str] engine_version: The name of your CEV. The name format is 19.customized_string . For example, a valid name is 19.my_cev1. This setting is required for RDS Custom for Oracle, but optional for Amazon RDS. The combination of Engine and EngineVersion is unique per customer per Region. + :param pulumi.Input[str] image_id: The identifier of Amazon Machine Image (AMI) used for CEV. :param pulumi.Input[str] kms_key_id: The AWS KMS key identifier for an encrypted CEV. A symmetric KMS key is required for RDS Custom, but optional for Amazon RDS. :param pulumi.Input[str] manifest: The CEV manifest, which is a JSON document that describes the installation .zip files stored in Amazon S3. Specify the name/value pairs in a file or a quoted string. RDS Custom applies the patches in the order in which they are listed. + :param pulumi.Input[str] source_custom_db_engine_version_identifier: The identifier of the source custom engine version. :param pulumi.Input['CustomDbEngineVersionStatus'] status: The availability status to be assigned to the CEV. :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[bool] use_aws_provided_latest_image: A value that indicates whether AWS provided latest image is applied automatically to the Custom Engine Version. By default, AWS provided latest image is applied automatically. This value is only applied on create. """ ... @overload @@ -222,10 +277,13 @@ def _internal_init(__self__, description: Optional[pulumi.Input[str]] = None, engine: Optional[pulumi.Input[str]] = None, engine_version: Optional[pulumi.Input[str]] = None, + image_id: Optional[pulumi.Input[str]] = None, kms_key_id: Optional[pulumi.Input[str]] = None, manifest: Optional[pulumi.Input[str]] = None, + source_custom_db_engine_version_identifier: Optional[pulumi.Input[str]] = None, status: Optional[pulumi.Input['CustomDbEngineVersionStatus']] = None, tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]]] = None, + use_aws_provided_latest_image: Optional[pulumi.Input[bool]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) if not isinstance(opts, pulumi.ResourceOptions): @@ -235,8 +293,6 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = CustomDbEngineVersionArgs.__new__(CustomDbEngineVersionArgs) - if database_installation_files_s3_bucket_name is None and not opts.urn: - raise TypeError("Missing required property 'database_installation_files_s3_bucket_name'") __props__.__dict__["database_installation_files_s3_bucket_name"] = database_installation_files_s3_bucket_name __props__.__dict__["database_installation_files_s3_prefix"] = database_installation_files_s3_prefix __props__.__dict__["description"] = description @@ -246,12 +302,15 @@ def _internal_init(__self__, if engine_version is None and not opts.urn: raise TypeError("Missing required property 'engine_version'") __props__.__dict__["engine_version"] = engine_version + __props__.__dict__["image_id"] = image_id __props__.__dict__["kms_key_id"] = kms_key_id __props__.__dict__["manifest"] = manifest + __props__.__dict__["source_custom_db_engine_version_identifier"] = source_custom_db_engine_version_identifier __props__.__dict__["status"] = status __props__.__dict__["tags"] = tags + __props__.__dict__["use_aws_provided_latest_image"] = use_aws_provided_latest_image __props__.__dict__["db_engine_version_arn"] = None - replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["databaseInstallationFilesS3BucketName", "databaseInstallationFilesS3Prefix", "engine", "engineVersion", "kmsKeyId", "manifest"]) + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["databaseInstallationFilesS3BucketName", "databaseInstallationFilesS3Prefix", "engine", "engineVersion", "imageId", "kmsKeyId", "manifest", "sourceCustomDbEngineVersionIdentifier", "useAwsProvidedLatestImage"]) opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) super(CustomDbEngineVersion, __self__).__init__( 'aws-native:rds:CustomDbEngineVersion', @@ -281,15 +340,18 @@ def get(resource_name: str, __props__.__dict__["description"] = None __props__.__dict__["engine"] = None __props__.__dict__["engine_version"] = None + __props__.__dict__["image_id"] = None __props__.__dict__["kms_key_id"] = None __props__.__dict__["manifest"] = None + __props__.__dict__["source_custom_db_engine_version_identifier"] = None __props__.__dict__["status"] = None __props__.__dict__["tags"] = None + __props__.__dict__["use_aws_provided_latest_image"] = None return CustomDbEngineVersion(resource_name, opts=opts, __props__=__props__) @property @pulumi.getter(name="databaseInstallationFilesS3BucketName") - def database_installation_files_s3_bucket_name(self) -> pulumi.Output[str]: + def database_installation_files_s3_bucket_name(self) -> pulumi.Output[Optional[str]]: """ The name of an Amazon S3 bucket that contains database installation files for your CEV. For example, a valid bucket name is `my-custom-installation-files`. """ @@ -335,6 +397,14 @@ def engine_version(self) -> pulumi.Output[str]: """ return pulumi.get(self, "engine_version") + @property + @pulumi.getter(name="imageId") + def image_id(self) -> pulumi.Output[Optional[str]]: + """ + The identifier of Amazon Machine Image (AMI) used for CEV. + """ + return pulumi.get(self, "image_id") + @property @pulumi.getter(name="kmsKeyId") def kms_key_id(self) -> pulumi.Output[Optional[str]]: @@ -351,6 +421,14 @@ def manifest(self) -> pulumi.Output[Optional[str]]: """ return pulumi.get(self, "manifest") + @property + @pulumi.getter(name="sourceCustomDbEngineVersionIdentifier") + def source_custom_db_engine_version_identifier(self) -> pulumi.Output[Optional[str]]: + """ + The identifier of the source custom engine version. + """ + return pulumi.get(self, "source_custom_db_engine_version_identifier") + @property @pulumi.getter def status(self) -> pulumi.Output[Optional['CustomDbEngineVersionStatus']]: @@ -367,3 +445,11 @@ def tags(self) -> pulumi.Output[Optional[Sequence['_root_outputs.Tag']]]: """ return pulumi.get(self, "tags") + @property + @pulumi.getter(name="useAwsProvidedLatestImage") + def use_aws_provided_latest_image(self) -> pulumi.Output[Optional[bool]]: + """ + A value that indicates whether AWS provided latest image is applied automatically to the Custom Engine Version. By default, AWS provided latest image is applied automatically. This value is only applied on create. + """ + return pulumi.get(self, "use_aws_provided_latest_image") + 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/route53/_inputs.py b/sdk/python/pulumi_aws_native/route53/_inputs.py index 9464695789..8fedb32ceb 100644 --- a/sdk/python/pulumi_aws_native/route53/_inputs.py +++ b/sdk/python/pulumi_aws_native/route53/_inputs.py @@ -449,11 +449,11 @@ def __init__(__self__, *, vpc_region: pulumi.Input[str]): """ *Private hosted zones only:* A complex type that contains information about an Amazon VPC. Route 53 Resolver uses the records in the private hosted zone to route traffic in that VPC. - For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. :param pulumi.Input[str] vpc_id: *Private hosted zones only:* The ID of an Amazon VPC. - For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. :param pulumi.Input[str] vpc_region: *Private hosted zones only:* The region that an Amazon VPC was created in. - For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. """ pulumi.set(__self__, "vpc_id", vpc_id) pulumi.set(__self__, "vpc_region", vpc_region) @@ -463,7 +463,7 @@ def __init__(__self__, *, def vpc_id(self) -> pulumi.Input[str]: """ *Private hosted zones only:* The ID of an Amazon VPC. - For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. """ return pulumi.get(self, "vpc_id") @@ -476,7 +476,7 @@ def vpc_id(self, value: pulumi.Input[str]): def vpc_region(self) -> pulumi.Input[str]: """ *Private hosted zones only:* The region that an Amazon VPC was created in. - For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. """ return pulumi.get(self, "vpc_region") diff --git a/sdk/python/pulumi_aws_native/route53/get_hosted_zone.py b/sdk/python/pulumi_aws_native/route53/get_hosted_zone.py index 5dc28f3795..463c58ebb9 100644 --- a/sdk/python/pulumi_aws_native/route53/get_hosted_zone.py +++ b/sdk/python/pulumi_aws_native/route53/get_hosted_zone.py @@ -87,7 +87,7 @@ def query_logging_config(self) -> Optional['outputs.HostedZoneQueryLoggingConfig def vpcs(self) -> Optional[Sequence['outputs.HostedZoneVpc']]: """ *Private hosted zones:* A complex type that contains information about the VPCs that are associated with the specified hosted zone. - For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. """ return pulumi.get(self, "vpcs") diff --git a/sdk/python/pulumi_aws_native/route53/hosted_zone.py b/sdk/python/pulumi_aws_native/route53/hosted_zone.py index be7e9a504b..325f4acae6 100644 --- a/sdk/python/pulumi_aws_native/route53/hosted_zone.py +++ b/sdk/python/pulumi_aws_native/route53/hosted_zone.py @@ -38,7 +38,7 @@ def __init__(__self__, *, + Log Group and Resource Policy Before you create a query logging configuration, perform the following operations. If you create a query logging configuration using the Route 53 console, Route 53 performs these operations automatically. Create a CloudWatch Logs log group, and make note of the ARN, which you specify when you create a query logging configuration. Note the following: You must create the log group in the us-east-1 region. You must use the same to create the log group and the hosted zone that you want to configure query logging for. When you create log groups for query logging, we recommend that you use a consistent prefix, for example: /aws/route53/hosted zone name In the next step, you'll create a resource policy, which controls access to one or more log groups and the associated resources, such as Route 53 hosted zones. There's a limit on the number of resource policies that you can create, so we recommend that you use a consistent prefix so you can use the same resource policy for all the log groups that you create for query logging. Create a CloudWatch Logs resource policy, and give it the permissions that Route 53 needs to create log streams and to send query logs to log streams. For the value of Resource, specify the ARN for the log group that you created in the previous step. To use the same resource policy for all the CloudWatch Logs log groups that you created for query logging configurations, replace the hosted zone name with *, for example: arn:aws:logs:us-east-1:123412341234:log-group:/aws/route53/* To avoid the confused deputy problem, a security issue where an entity without a permission for an action can coerce a more-privileged entity to perform it, you can optionally limit the permissions that a service has to a resource in a resource-based policy by supplying the following values: For aws:SourceArn, supply the hosted zone ARN used in creating the query logging configuration. For example, aws:SourceArn: arn:aws:route53:::hostedzone/hosted zone ID. For aws:SourceAccount, supply the account ID for the account that creates the query logging configuration. For example, aws:SourceAccount:111111111111. For more information, see The confused deputy problem in the IAM User Guide. You can't use the CloudWatch console to create or edit a resource policy. You must use the CloudWatch API, one of the SDKs, or the . + Log Streams and Edge Locations When Route 53 finishes creating the configuration for DNS query logging, it does the following: Creates a log stream for an edge location the first time that the edge location responds to DNS queries for the specified hosted zone. That log stream is used to log all queries that Route 53 responds to for that edge location. Begins to send query logs to the applicable log stream. The name of each log stream is in the following format: hosted zone ID/edge location code The edge location code is a three-letter code and an arbitrarily assigned number, for example, DFW3. The three-letter code typically corresponds with the International Air Transport Association airport code for an airport near the edge location. (These abbreviations might change in the future.) For a list of edge locations, see "The Route 53 Global Network" on the Route 53 Product Details page. + Queries That Are Logged Query logs contain only the queries that DNS resolvers forward to Route 53. If a DNS resolver has already cached the response to a query (such as the IP address for a load balancer for example.com), the resolver will continue to return the cached response. It doesn't forward another query to Route 53 until the TTL for the corresponding resource record set expires. Depending on how many DNS queries are submitted for a resource record set, and depending on the TTL for that resource record set, query logs might contain information about only one query out of every several thousand queries that are submitted to DNS. For more information about how DNS works, see Routing Internet Traffic to Your Website or Web Application in the Amazon Route 53 Developer Guide. + Log File Format For a list of the values in each query log and the format of each value, see Logging DNS Queries in the Amazon Route 53 Developer Guide. + Pricing For information about charges for query logs, see Amazon CloudWatch Pricing. + How to Stop Logging If you want Route 53 to stop sending query logs to CloudWatch Logs, delete the query logging configuration. For more information, see DeleteQueryLoggingConfig. :param pulumi.Input[Sequence[pulumi.Input['HostedZoneVpcArgs']]] vpcs: *Private hosted zones:* A complex type that contains information about the VPCs that are associated with the specified hosted zone. - For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. """ if hosted_zone_config is not None: pulumi.set(__self__, "hosted_zone_config", hosted_zone_config) @@ -114,7 +114,7 @@ def query_logging_config(self, value: Optional[pulumi.Input['HostedZoneQueryLogg def vpcs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['HostedZoneVpcArgs']]]]: """ *Private hosted zones:* A complex type that contains information about the VPCs that are associated with the specified hosted zone. - For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. """ return pulumi.get(self, "vpcs") @@ -169,7 +169,7 @@ def __init__(__self__, + Log Group and Resource Policy Before you create a query logging configuration, perform the following operations. If you create a query logging configuration using the Route 53 console, Route 53 performs these operations automatically. Create a CloudWatch Logs log group, and make note of the ARN, which you specify when you create a query logging configuration. Note the following: You must create the log group in the us-east-1 region. You must use the same to create the log group and the hosted zone that you want to configure query logging for. When you create log groups for query logging, we recommend that you use a consistent prefix, for example: /aws/route53/hosted zone name In the next step, you'll create a resource policy, which controls access to one or more log groups and the associated resources, such as Route 53 hosted zones. There's a limit on the number of resource policies that you can create, so we recommend that you use a consistent prefix so you can use the same resource policy for all the log groups that you create for query logging. Create a CloudWatch Logs resource policy, and give it the permissions that Route 53 needs to create log streams and to send query logs to log streams. For the value of Resource, specify the ARN for the log group that you created in the previous step. To use the same resource policy for all the CloudWatch Logs log groups that you created for query logging configurations, replace the hosted zone name with *, for example: arn:aws:logs:us-east-1:123412341234:log-group:/aws/route53/* To avoid the confused deputy problem, a security issue where an entity without a permission for an action can coerce a more-privileged entity to perform it, you can optionally limit the permissions that a service has to a resource in a resource-based policy by supplying the following values: For aws:SourceArn, supply the hosted zone ARN used in creating the query logging configuration. For example, aws:SourceArn: arn:aws:route53:::hostedzone/hosted zone ID. For aws:SourceAccount, supply the account ID for the account that creates the query logging configuration. For example, aws:SourceAccount:111111111111. For more information, see The confused deputy problem in the IAM User Guide. You can't use the CloudWatch console to create or edit a resource policy. You must use the CloudWatch API, one of the SDKs, or the . + Log Streams and Edge Locations When Route 53 finishes creating the configuration for DNS query logging, it does the following: Creates a log stream for an edge location the first time that the edge location responds to DNS queries for the specified hosted zone. That log stream is used to log all queries that Route 53 responds to for that edge location. Begins to send query logs to the applicable log stream. The name of each log stream is in the following format: hosted zone ID/edge location code The edge location code is a three-letter code and an arbitrarily assigned number, for example, DFW3. The three-letter code typically corresponds with the International Air Transport Association airport code for an airport near the edge location. (These abbreviations might change in the future.) For a list of edge locations, see "The Route 53 Global Network" on the Route 53 Product Details page. + Queries That Are Logged Query logs contain only the queries that DNS resolvers forward to Route 53. If a DNS resolver has already cached the response to a query (such as the IP address for a load balancer for example.com), the resolver will continue to return the cached response. It doesn't forward another query to Route 53 until the TTL for the corresponding resource record set expires. Depending on how many DNS queries are submitted for a resource record set, and depending on the TTL for that resource record set, query logs might contain information about only one query out of every several thousand queries that are submitted to DNS. For more information about how DNS works, see Routing Internet Traffic to Your Website or Web Application in the Amazon Route 53 Developer Guide. + Log File Format For a list of the values in each query log and the format of each value, see Logging DNS Queries in the Amazon Route 53 Developer Guide. + Pricing For information about charges for query logs, see Amazon CloudWatch Pricing. + How to Stop Logging If you want Route 53 to stop sending query logs to CloudWatch Logs, delete the query logging configuration. For more information, see DeleteQueryLoggingConfig. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['HostedZoneVpcArgs']]]] vpcs: *Private hosted zones:* A complex type that contains information about the VPCs that are associated with the specified hosted zone. - For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. """ ... @overload @@ -321,7 +321,7 @@ def query_logging_config(self) -> pulumi.Output[Optional['outputs.HostedZoneQuer def vpcs(self) -> pulumi.Output[Optional[Sequence['outputs.HostedZoneVpc']]]: """ *Private hosted zones:* A complex type that contains information about the VPCs that are associated with the specified hosted zone. - For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. """ return pulumi.get(self, "vpcs") diff --git a/sdk/python/pulumi_aws_native/route53/outputs.py b/sdk/python/pulumi_aws_native/route53/outputs.py index 8bc576c2b7..7703e47991 100644 --- a/sdk/python/pulumi_aws_native/route53/outputs.py +++ b/sdk/python/pulumi_aws_native/route53/outputs.py @@ -434,7 +434,7 @@ def value(self) -> str: class HostedZoneVpc(dict): """ *Private hosted zones only:* A complex type that contains information about an Amazon VPC. Route 53 Resolver uses the records in the private hosted zone to route traffic in that VPC. - For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. """ @staticmethod def __key_warning(key: str): @@ -460,11 +460,11 @@ def __init__(__self__, *, vpc_region: str): """ *Private hosted zones only:* A complex type that contains information about an Amazon VPC. Route 53 Resolver uses the records in the private hosted zone to route traffic in that VPC. - For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. :param str vpc_id: *Private hosted zones only:* The ID of an Amazon VPC. - For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. :param str vpc_region: *Private hosted zones only:* The region that an Amazon VPC was created in. - For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. """ pulumi.set(__self__, "vpc_id", vpc_id) pulumi.set(__self__, "vpc_region", vpc_region) @@ -474,7 +474,7 @@ def __init__(__self__, *, def vpc_id(self) -> str: """ *Private hosted zones only:* The ID of an Amazon VPC. - For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. """ return pulumi.get(self, "vpc_id") @@ -483,7 +483,7 @@ def vpc_id(self) -> str: def vpc_region(self) -> str: """ *Private hosted zones only:* The region that an Amazon VPC was created in. - For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. + For public hosted zones, omit ``VPCs``, ``VPCId``, and ``VPCRegion``. """ return pulumi.get(self, "vpc_region") diff --git a/sdk/python/pulumi_aws_native/sagemaker/_inputs.py b/sdk/python/pulumi_aws_native/sagemaker/_inputs.py index 4b3007d73b..7590866eb9 100644 --- a/sdk/python/pulumi_aws_native/sagemaker/_inputs.py +++ b/sdk/python/pulumi_aws_native/sagemaker/_inputs.py @@ -11,6 +11,7 @@ from ._enums import * __all__ = [ + 'AppImageConfigCodeEditorAppImageConfigArgs', 'AppImageConfigContainerConfigArgs', 'AppImageConfigCustomImageContainerEnvironmentVariableArgs', 'AppImageConfigFileSystemConfigArgs', @@ -250,6 +251,30 @@ 'UserProfileUserSettingsArgs', ] +@pulumi.input_type +class AppImageConfigCodeEditorAppImageConfigArgs: + def __init__(__self__, *, + container_config: Optional[pulumi.Input['AppImageConfigContainerConfigArgs']] = None): + """ + The configuration for the kernels in a SageMaker image running as a CodeEditor app. + :param pulumi.Input['AppImageConfigContainerConfigArgs'] container_config: The container configuration for a SageMaker image. + """ + if container_config is not None: + pulumi.set(__self__, "container_config", container_config) + + @property + @pulumi.getter(name="containerConfig") + def container_config(self) -> Optional[pulumi.Input['AppImageConfigContainerConfigArgs']]: + """ + The container configuration for a SageMaker image. + """ + return pulumi.get(self, "container_config") + + @container_config.setter + def container_config(self, value: Optional[pulumi.Input['AppImageConfigContainerConfigArgs']]): + pulumi.set(self, "container_config", value) + + @pulumi.input_type class AppImageConfigContainerConfigArgs: def __init__(__self__, *, @@ -1452,18 +1477,34 @@ def iot_thing_name(self, value: Optional[pulumi.Input[str]]): @pulumi.input_type class DomainCodeEditorAppSettingsArgs: def __init__(__self__, *, + custom_images: Optional[pulumi.Input[Sequence[pulumi.Input['DomainCustomImageArgs']]]] = None, default_resource_spec: Optional[pulumi.Input['DomainResourceSpecArgs']] = None, lifecycle_config_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ The CodeEditor app settings. + :param pulumi.Input[Sequence[pulumi.Input['DomainCustomImageArgs']]] custom_images: A list of custom images for use for CodeEditor apps. :param pulumi.Input['DomainResourceSpecArgs'] default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the CodeEditor app. :param pulumi.Input[Sequence[pulumi.Input[str]]] lifecycle_config_arns: A list of LifecycleConfigArns available for use with CodeEditor apps. """ + if custom_images is not None: + pulumi.set(__self__, "custom_images", custom_images) if default_resource_spec is not None: pulumi.set(__self__, "default_resource_spec", default_resource_spec) if lifecycle_config_arns is not None: pulumi.set(__self__, "lifecycle_config_arns", lifecycle_config_arns) + @property + @pulumi.getter(name="customImages") + def custom_images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DomainCustomImageArgs']]]]: + """ + A list of custom images for use for CodeEditor apps. + """ + return pulumi.get(self, "custom_images") + + @custom_images.setter + def custom_images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DomainCustomImageArgs']]]]): + pulumi.set(self, "custom_images", value) + @property @pulumi.getter(name="defaultResourceSpec") def default_resource_spec(self) -> Optional[pulumi.Input['DomainResourceSpecArgs']]: @@ -11006,18 +11047,34 @@ def ebs_storage_settings(self, value: Optional[pulumi.Input['SpaceEbsStorageSett @pulumi.input_type class UserProfileCodeEditorAppSettingsArgs: def __init__(__self__, *, + custom_images: Optional[pulumi.Input[Sequence[pulumi.Input['UserProfileCustomImageArgs']]]] = None, default_resource_spec: Optional[pulumi.Input['UserProfileResourceSpecArgs']] = None, lifecycle_config_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ The CodeEditor app settings. + :param pulumi.Input[Sequence[pulumi.Input['UserProfileCustomImageArgs']]] custom_images: A list of custom images for use for CodeEditor apps. :param pulumi.Input['UserProfileResourceSpecArgs'] default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the CodeEditor app. :param pulumi.Input[Sequence[pulumi.Input[str]]] lifecycle_config_arns: A list of LifecycleConfigArns available for use with CodeEditor apps. """ + if custom_images is not None: + pulumi.set(__self__, "custom_images", custom_images) if default_resource_spec is not None: pulumi.set(__self__, "default_resource_spec", default_resource_spec) if lifecycle_config_arns is not None: pulumi.set(__self__, "lifecycle_config_arns", lifecycle_config_arns) + @property + @pulumi.getter(name="customImages") + def custom_images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['UserProfileCustomImageArgs']]]]: + """ + A list of custom images for use for CodeEditor apps. + """ + return pulumi.get(self, "custom_images") + + @custom_images.setter + def custom_images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['UserProfileCustomImageArgs']]]]): + pulumi.set(self, "custom_images", value) + @property @pulumi.getter(name="defaultResourceSpec") def default_resource_spec(self) -> Optional[pulumi.Input['UserProfileResourceSpecArgs']]: diff --git a/sdk/python/pulumi_aws_native/sagemaker/app_image_config.py b/sdk/python/pulumi_aws_native/sagemaker/app_image_config.py index 6ced83cf5d..b5bdb0f8ec 100644 --- a/sdk/python/pulumi_aws_native/sagemaker/app_image_config.py +++ b/sdk/python/pulumi_aws_native/sagemaker/app_image_config.py @@ -19,18 +19,22 @@ class AppImageConfigArgs: def __init__(__self__, *, app_image_config_name: Optional[pulumi.Input[str]] = None, + code_editor_app_image_config: Optional[pulumi.Input['AppImageConfigCodeEditorAppImageConfigArgs']] = None, jupyter_lab_app_image_config: Optional[pulumi.Input['AppImageConfigJupyterLabAppImageConfigArgs']] = None, kernel_gateway_image_config: Optional[pulumi.Input['AppImageConfigKernelGatewayImageConfigArgs']] = None, tags: Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.CreateOnlyTagArgs']]]] = None): """ The set of arguments for constructing a AppImageConfig resource. :param pulumi.Input[str] app_image_config_name: The Name of the AppImageConfig. + :param pulumi.Input['AppImageConfigCodeEditorAppImageConfigArgs'] code_editor_app_image_config: The CodeEditorAppImageConfig. :param pulumi.Input['AppImageConfigJupyterLabAppImageConfigArgs'] jupyter_lab_app_image_config: The JupyterLabAppImageConfig. :param pulumi.Input['AppImageConfigKernelGatewayImageConfigArgs'] kernel_gateway_image_config: The KernelGatewayImageConfig. :param pulumi.Input[Sequence[pulumi.Input['_root_inputs.CreateOnlyTagArgs']]] tags: A list of tags to apply to the AppImageConfig. """ if app_image_config_name is not None: pulumi.set(__self__, "app_image_config_name", app_image_config_name) + if code_editor_app_image_config is not None: + pulumi.set(__self__, "code_editor_app_image_config", code_editor_app_image_config) if jupyter_lab_app_image_config is not None: pulumi.set(__self__, "jupyter_lab_app_image_config", jupyter_lab_app_image_config) if kernel_gateway_image_config is not None: @@ -50,6 +54,18 @@ def app_image_config_name(self) -> Optional[pulumi.Input[str]]: def app_image_config_name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "app_image_config_name", value) + @property + @pulumi.getter(name="codeEditorAppImageConfig") + def code_editor_app_image_config(self) -> Optional[pulumi.Input['AppImageConfigCodeEditorAppImageConfigArgs']]: + """ + The CodeEditorAppImageConfig. + """ + return pulumi.get(self, "code_editor_app_image_config") + + @code_editor_app_image_config.setter + def code_editor_app_image_config(self, value: Optional[pulumi.Input['AppImageConfigCodeEditorAppImageConfigArgs']]): + pulumi.set(self, "code_editor_app_image_config", value) + @property @pulumi.getter(name="jupyterLabAppImageConfig") def jupyter_lab_app_image_config(self) -> Optional[pulumi.Input['AppImageConfigJupyterLabAppImageConfigArgs']]: @@ -93,6 +109,7 @@ def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, app_image_config_name: Optional[pulumi.Input[str]] = None, + code_editor_app_image_config: Optional[pulumi.Input[pulumi.InputType['AppImageConfigCodeEditorAppImageConfigArgs']]] = None, jupyter_lab_app_image_config: Optional[pulumi.Input[pulumi.InputType['AppImageConfigJupyterLabAppImageConfigArgs']]] = None, kernel_gateway_image_config: Optional[pulumi.Input[pulumi.InputType['AppImageConfigKernelGatewayImageConfigArgs']]] = None, tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.CreateOnlyTagArgs']]]]] = None, @@ -103,6 +120,7 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] app_image_config_name: The Name of the AppImageConfig. + :param pulumi.Input[pulumi.InputType['AppImageConfigCodeEditorAppImageConfigArgs']] code_editor_app_image_config: The CodeEditorAppImageConfig. :param pulumi.Input[pulumi.InputType['AppImageConfigJupyterLabAppImageConfigArgs']] jupyter_lab_app_image_config: The JupyterLabAppImageConfig. :param pulumi.Input[pulumi.InputType['AppImageConfigKernelGatewayImageConfigArgs']] kernel_gateway_image_config: The KernelGatewayImageConfig. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.CreateOnlyTagArgs']]]] tags: A list of tags to apply to the AppImageConfig. @@ -132,6 +150,7 @@ def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, app_image_config_name: Optional[pulumi.Input[str]] = None, + code_editor_app_image_config: Optional[pulumi.Input[pulumi.InputType['AppImageConfigCodeEditorAppImageConfigArgs']]] = None, jupyter_lab_app_image_config: Optional[pulumi.Input[pulumi.InputType['AppImageConfigJupyterLabAppImageConfigArgs']]] = None, kernel_gateway_image_config: Optional[pulumi.Input[pulumi.InputType['AppImageConfigKernelGatewayImageConfigArgs']]] = None, tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.CreateOnlyTagArgs']]]]] = None, @@ -145,6 +164,7 @@ def _internal_init(__self__, __props__ = AppImageConfigArgs.__new__(AppImageConfigArgs) __props__.__dict__["app_image_config_name"] = app_image_config_name + __props__.__dict__["code_editor_app_image_config"] = code_editor_app_image_config __props__.__dict__["jupyter_lab_app_image_config"] = jupyter_lab_app_image_config __props__.__dict__["kernel_gateway_image_config"] = kernel_gateway_image_config __props__.__dict__["tags"] = tags @@ -175,6 +195,7 @@ def get(resource_name: str, __props__.__dict__["app_image_config_arn"] = None __props__.__dict__["app_image_config_name"] = None + __props__.__dict__["code_editor_app_image_config"] = None __props__.__dict__["jupyter_lab_app_image_config"] = None __props__.__dict__["kernel_gateway_image_config"] = None __props__.__dict__["tags"] = None @@ -196,6 +217,14 @@ def app_image_config_name(self) -> pulumi.Output[str]: """ return pulumi.get(self, "app_image_config_name") + @property + @pulumi.getter(name="codeEditorAppImageConfig") + def code_editor_app_image_config(self) -> pulumi.Output[Optional['outputs.AppImageConfigCodeEditorAppImageConfig']]: + """ + The CodeEditorAppImageConfig. + """ + return pulumi.get(self, "code_editor_app_image_config") + @property @pulumi.getter(name="jupyterLabAppImageConfig") def jupyter_lab_app_image_config(self) -> pulumi.Output[Optional['outputs.AppImageConfigJupyterLabAppImageConfig']]: diff --git a/sdk/python/pulumi_aws_native/sagemaker/get_app_image_config.py b/sdk/python/pulumi_aws_native/sagemaker/get_app_image_config.py index 2647aad005..05a78ae77d 100644 --- a/sdk/python/pulumi_aws_native/sagemaker/get_app_image_config.py +++ b/sdk/python/pulumi_aws_native/sagemaker/get_app_image_config.py @@ -19,10 +19,13 @@ @pulumi.output_type class GetAppImageConfigResult: - def __init__(__self__, app_image_config_arn=None, jupyter_lab_app_image_config=None, kernel_gateway_image_config=None): + def __init__(__self__, app_image_config_arn=None, code_editor_app_image_config=None, jupyter_lab_app_image_config=None, kernel_gateway_image_config=None): if app_image_config_arn and not isinstance(app_image_config_arn, str): raise TypeError("Expected argument 'app_image_config_arn' to be a str") pulumi.set(__self__, "app_image_config_arn", app_image_config_arn) + if code_editor_app_image_config and not isinstance(code_editor_app_image_config, dict): + raise TypeError("Expected argument 'code_editor_app_image_config' to be a dict") + pulumi.set(__self__, "code_editor_app_image_config", code_editor_app_image_config) if jupyter_lab_app_image_config and not isinstance(jupyter_lab_app_image_config, dict): raise TypeError("Expected argument 'jupyter_lab_app_image_config' to be a dict") pulumi.set(__self__, "jupyter_lab_app_image_config", jupyter_lab_app_image_config) @@ -38,6 +41,14 @@ def app_image_config_arn(self) -> Optional[str]: """ return pulumi.get(self, "app_image_config_arn") + @property + @pulumi.getter(name="codeEditorAppImageConfig") + def code_editor_app_image_config(self) -> Optional['outputs.AppImageConfigCodeEditorAppImageConfig']: + """ + The CodeEditorAppImageConfig. + """ + return pulumi.get(self, "code_editor_app_image_config") + @property @pulumi.getter(name="jupyterLabAppImageConfig") def jupyter_lab_app_image_config(self) -> Optional['outputs.AppImageConfigJupyterLabAppImageConfig']: @@ -62,6 +73,7 @@ def __await__(self): yield self return GetAppImageConfigResult( app_image_config_arn=self.app_image_config_arn, + code_editor_app_image_config=self.code_editor_app_image_config, jupyter_lab_app_image_config=self.jupyter_lab_app_image_config, kernel_gateway_image_config=self.kernel_gateway_image_config) @@ -81,6 +93,7 @@ def get_app_image_config(app_image_config_name: Optional[str] = None, return AwaitableGetAppImageConfigResult( app_image_config_arn=pulumi.get(__ret__, 'app_image_config_arn'), + code_editor_app_image_config=pulumi.get(__ret__, 'code_editor_app_image_config'), jupyter_lab_app_image_config=pulumi.get(__ret__, 'jupyter_lab_app_image_config'), kernel_gateway_image_config=pulumi.get(__ret__, 'kernel_gateway_image_config')) diff --git a/sdk/python/pulumi_aws_native/sagemaker/outputs.py b/sdk/python/pulumi_aws_native/sagemaker/outputs.py index 5b4a8eaa19..e6c0139fbf 100644 --- a/sdk/python/pulumi_aws_native/sagemaker/outputs.py +++ b/sdk/python/pulumi_aws_native/sagemaker/outputs.py @@ -12,6 +12,7 @@ from ._enums import * __all__ = [ + 'AppImageConfigCodeEditorAppImageConfig', 'AppImageConfigContainerConfig', 'AppImageConfigCustomImageContainerEnvironmentVariable', 'AppImageConfigFileSystemConfig', @@ -252,6 +253,46 @@ 'UserProfileUserSettings', ] +@pulumi.output_type +class AppImageConfigCodeEditorAppImageConfig(dict): + """ + The configuration for the kernels in a SageMaker image running as a CodeEditor app. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "containerConfig": + suggest = "container_config" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AppImageConfigCodeEditorAppImageConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AppImageConfigCodeEditorAppImageConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AppImageConfigCodeEditorAppImageConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + container_config: Optional['outputs.AppImageConfigContainerConfig'] = None): + """ + The configuration for the kernels in a SageMaker image running as a CodeEditor app. + :param 'AppImageConfigContainerConfig' container_config: The container configuration for a SageMaker image. + """ + if container_config is not None: + pulumi.set(__self__, "container_config", container_config) + + @property + @pulumi.getter(name="containerConfig") + def container_config(self) -> Optional['outputs.AppImageConfigContainerConfig']: + """ + The container configuration for a SageMaker image. + """ + return pulumi.get(self, "container_config") + + @pulumi.output_type class AppImageConfigContainerConfig(dict): """ @@ -1717,7 +1758,9 @@ class DomainCodeEditorAppSettings(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "defaultResourceSpec": + if key == "customImages": + suggest = "custom_images" + elif key == "defaultResourceSpec": suggest = "default_resource_spec" elif key == "lifecycleConfigArns": suggest = "lifecycle_config_arns" @@ -1734,18 +1777,30 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, + custom_images: Optional[Sequence['outputs.DomainCustomImage']] = None, default_resource_spec: Optional['outputs.DomainResourceSpec'] = None, lifecycle_config_arns: Optional[Sequence[str]] = None): """ The CodeEditor app settings. + :param Sequence['DomainCustomImage'] custom_images: A list of custom images for use for CodeEditor apps. :param 'DomainResourceSpec' default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the CodeEditor app. :param Sequence[str] lifecycle_config_arns: A list of LifecycleConfigArns available for use with CodeEditor apps. """ + if custom_images is not None: + pulumi.set(__self__, "custom_images", custom_images) if default_resource_spec is not None: pulumi.set(__self__, "default_resource_spec", default_resource_spec) if lifecycle_config_arns is not None: pulumi.set(__self__, "lifecycle_config_arns", lifecycle_config_arns) + @property + @pulumi.getter(name="customImages") + def custom_images(self) -> Optional[Sequence['outputs.DomainCustomImage']]: + """ + A list of custom images for use for CodeEditor apps. + """ + return pulumi.get(self, "custom_images") + @property @pulumi.getter(name="defaultResourceSpec") def default_resource_spec(self) -> Optional['outputs.DomainResourceSpec']: @@ -12970,7 +13025,9 @@ class UserProfileCodeEditorAppSettings(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "defaultResourceSpec": + if key == "customImages": + suggest = "custom_images" + elif key == "defaultResourceSpec": suggest = "default_resource_spec" elif key == "lifecycleConfigArns": suggest = "lifecycle_config_arns" @@ -12987,18 +13044,30 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, + custom_images: Optional[Sequence['outputs.UserProfileCustomImage']] = None, default_resource_spec: Optional['outputs.UserProfileResourceSpec'] = None, lifecycle_config_arns: Optional[Sequence[str]] = None): """ The CodeEditor app settings. + :param Sequence['UserProfileCustomImage'] custom_images: A list of custom images for use for CodeEditor apps. :param 'UserProfileResourceSpec' default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the CodeEditor app. :param Sequence[str] lifecycle_config_arns: A list of LifecycleConfigArns available for use with CodeEditor apps. """ + if custom_images is not None: + pulumi.set(__self__, "custom_images", custom_images) if default_resource_spec is not None: pulumi.set(__self__, "default_resource_spec", default_resource_spec) if lifecycle_config_arns is not None: pulumi.set(__self__, "lifecycle_config_arns", lifecycle_config_arns) + @property + @pulumi.getter(name="customImages") + def custom_images(self) -> Optional[Sequence['outputs.UserProfileCustomImage']]: + """ + A list of custom images for use for CodeEditor apps. + """ + return pulumi.get(self, "custom_images") + @property @pulumi.getter(name="defaultResourceSpec") def default_resource_spec(self) -> Optional['outputs.UserProfileResourceSpec']: diff --git a/sdk/python/pulumi_aws_native/securityhub/__init__.py b/sdk/python/pulumi_aws_native/securityhub/__init__.py index f0ebe2b9b5..cf7a91b0a9 100644 --- a/sdk/python/pulumi_aws_native/securityhub/__init__.py +++ b/sdk/python/pulumi_aws_native/securityhub/__init__.py @@ -7,10 +7,16 @@ # Export this package's modules as members: from ._enums import * from .automation_rule import * +from .delegated_admin import * from .get_automation_rule import * +from .get_delegated_admin import * from .get_hub import * +from .get_insight import * +from .get_product_subscription import * from .get_standard import * from .hub import * +from .insight import * +from .product_subscription import * from .standard import * from ._inputs import * from . import outputs diff --git a/sdk/python/pulumi_aws_native/securityhub/_enums.py b/sdk/python/pulumi_aws_native/securityhub/_enums.py index 43d6f41763..cc637637c8 100644 --- a/sdk/python/pulumi_aws_native/securityhub/_enums.py +++ b/sdk/python/pulumi_aws_native/securityhub/_enums.py @@ -13,6 +13,10 @@ 'AutomationRuleWorkflowUpdateStatus', 'AutomationRulesActionType', 'AutomationRulesFindingFieldsUpdateVerificationState', + 'DelegatedAdminStatus', + 'InsightDateRangeUnit', + 'InsightMapFilterComparison', + 'InsightStringFilterComparison', ] @@ -71,3 +75,36 @@ class AutomationRulesFindingFieldsUpdateVerificationState(str, Enum): TRUE_POSITIVE = "TRUE_POSITIVE" FALSE_POSITIVE = "FALSE_POSITIVE" BENIGN_POSITIVE = "BENIGN_POSITIVE" + + +class DelegatedAdminStatus(str, Enum): + """ + The current status of the Security Hub administrator account. Indicates whether the account is currently enabled as a Security Hub administrator + """ + ENABLED = "ENABLED" + DISABLE_IN_PROGRESS = "DISABLE_IN_PROGRESS" + + +class InsightDateRangeUnit(str, Enum): + """ + A date range unit for the date filter. + """ + DAYS = "DAYS" + + +class InsightMapFilterComparison(str, Enum): + """ + The condition to apply to the key value when filtering Security Hub findings with a map filter. + """ + EQUALS = "EQUALS" + NOT_EQUALS = "NOT_EQUALS" + + +class InsightStringFilterComparison(str, Enum): + """ + The condition to apply to a string value when filtering Security Hub findings. + """ + EQUALS = "EQUALS" + PREFIX = "PREFIX" + NOT_EQUALS = "NOT_EQUALS" + PREFIX_NOT_EQUALS = "PREFIX_NOT_EQUALS" diff --git a/sdk/python/pulumi_aws_native/securityhub/_inputs.py b/sdk/python/pulumi_aws_native/securityhub/_inputs.py index 833e011a28..fd23d392ee 100644 --- a/sdk/python/pulumi_aws_native/securityhub/_inputs.py +++ b/sdk/python/pulumi_aws_native/securityhub/_inputs.py @@ -23,6 +23,15 @@ 'AutomationRulesActionArgs', 'AutomationRulesFindingFieldsUpdateArgs', 'AutomationRulesFindingFiltersArgs', + 'InsightAwsSecurityFindingFiltersArgs', + 'InsightBooleanFilterArgs', + 'InsightDateFilterArgs', + 'InsightDateRangeArgs', + 'InsightIpFilterArgs', + 'InsightKeywordFilterArgs', + 'InsightMapFilterArgs', + 'InsightNumberFilterArgs', + 'InsightStringFilterArgs', 'StandardsControlArgs', ] @@ -902,6 +911,1960 @@ def workflow_status(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['Au pulumi.set(self, "workflow_status", value) +@pulumi.input_type +class InsightAwsSecurityFindingFiltersArgs: + def __init__(__self__, *, + aws_account_id: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + aws_account_name: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + company_name: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + compliance_associated_standards_id: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + compliance_security_control_id: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + compliance_security_control_parameters_name: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + compliance_security_control_parameters_value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + compliance_status: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + confidence: Optional[pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]]] = None, + created_at: Optional[pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]]] = None, + criticality: Optional[pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]]] = None, + description: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + finding_provider_fields_confidence: Optional[pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]]] = None, + finding_provider_fields_criticality: Optional[pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]]] = None, + finding_provider_fields_related_findings_id: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + finding_provider_fields_related_findings_product_arn: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + finding_provider_fields_severity_label: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + finding_provider_fields_severity_original: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + finding_provider_fields_types: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + first_observed_at: Optional[pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]]] = None, + generator_id: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + id: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + keyword: Optional[pulumi.Input[Sequence[pulumi.Input['InsightKeywordFilterArgs']]]] = None, + last_observed_at: Optional[pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]]] = None, + malware_name: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + malware_path: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + malware_state: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + malware_type: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + network_destination_domain: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + network_destination_ip_v4: Optional[pulumi.Input[Sequence[pulumi.Input['InsightIpFilterArgs']]]] = None, + network_destination_ip_v6: Optional[pulumi.Input[Sequence[pulumi.Input['InsightIpFilterArgs']]]] = None, + network_destination_port: Optional[pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]]] = None, + network_direction: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + network_protocol: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + network_source_domain: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + network_source_ip_v4: Optional[pulumi.Input[Sequence[pulumi.Input['InsightIpFilterArgs']]]] = None, + network_source_ip_v6: Optional[pulumi.Input[Sequence[pulumi.Input['InsightIpFilterArgs']]]] = None, + network_source_mac: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + network_source_port: Optional[pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]]] = None, + note_text: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + note_updated_at: Optional[pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]]] = None, + note_updated_by: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + process_launched_at: Optional[pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]]] = None, + process_name: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + process_parent_pid: Optional[pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]]] = None, + process_path: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + process_pid: Optional[pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]]] = None, + process_terminated_at: Optional[pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]]] = None, + product_arn: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + product_fields: Optional[pulumi.Input[Sequence[pulumi.Input['InsightMapFilterArgs']]]] = None, + product_name: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + recommendation_text: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + record_state: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + region: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + related_findings_id: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + related_findings_product_arn: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + resource_application_arn: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + resource_application_name: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + resource_aws_ec2_instance_iam_instance_profile_arn: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + resource_aws_ec2_instance_image_id: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + resource_aws_ec2_instance_ip_v4_addresses: Optional[pulumi.Input[Sequence[pulumi.Input['InsightIpFilterArgs']]]] = None, + resource_aws_ec2_instance_ip_v6_addresses: Optional[pulumi.Input[Sequence[pulumi.Input['InsightIpFilterArgs']]]] = None, + resource_aws_ec2_instance_key_name: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + resource_aws_ec2_instance_launched_at: Optional[pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]]] = None, + resource_aws_ec2_instance_subnet_id: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + resource_aws_ec2_instance_type: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + resource_aws_ec2_instance_vpc_id: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + resource_aws_iam_access_key_created_at: Optional[pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]]] = None, + resource_aws_iam_access_key_principal_name: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + resource_aws_iam_access_key_status: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + resource_aws_iam_access_key_user_name: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + resource_aws_iam_user_user_name: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + resource_aws_s3_bucket_owner_id: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + resource_aws_s3_bucket_owner_name: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + resource_container_image_id: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + resource_container_image_name: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + resource_container_launched_at: Optional[pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]]] = None, + resource_container_name: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + resource_details_other: Optional[pulumi.Input[Sequence[pulumi.Input['InsightMapFilterArgs']]]] = None, + resource_id: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + resource_partition: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + resource_region: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + resource_tags: Optional[pulumi.Input[Sequence[pulumi.Input['InsightMapFilterArgs']]]] = None, + resource_type: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + sample: Optional[pulumi.Input[Sequence[pulumi.Input['InsightBooleanFilterArgs']]]] = None, + severity_label: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + severity_normalized: Optional[pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]]] = None, + severity_product: Optional[pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]]] = None, + source_url: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + threat_intel_indicator_category: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + threat_intel_indicator_last_observed_at: Optional[pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]]] = None, + threat_intel_indicator_source: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + threat_intel_indicator_source_url: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + threat_intel_indicator_type: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + threat_intel_indicator_value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + title: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + type: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + updated_at: Optional[pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]]] = None, + user_defined_fields: Optional[pulumi.Input[Sequence[pulumi.Input['InsightMapFilterArgs']]]] = None, + verification_state: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + vulnerabilities_exploit_available: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + vulnerabilities_fix_available: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + workflow_state: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None, + workflow_status: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]] = None): + """ + A collection of filters that are applied to all active findings aggregated by AWS Security Hub. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] aws_account_id: The AWS account ID in which a finding is generated. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] aws_account_name: The name of the AWS account in which a finding is generated. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] company_name: The name of the findings provider (company) that owns the solution (product) that generates findings. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] compliance_associated_standards_id: The unique identifier of a standard in which a control is enabled. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] compliance_security_control_id: The unique identifier of a control across standards. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] compliance_security_control_parameters_name: The name of a security control parameter. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] compliance_security_control_parameters_value: The current value of a security control parameter. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] compliance_status: Exclusive to findings that are generated as the result of a check run against a specific rule in a supported standard. + :param pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]] confidence: A finding's confidence. + :param pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]] created_at: An ISO8601-formatted timestamp that indicates when the security findings provider captured the potential security issue that a finding captured. + :param pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]] criticality: The level of importance assigned to the resources associated with the finding. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] description: A finding's description. + :param pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]] finding_provider_fields_confidence: The finding provider value for the finding confidence. + :param pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]] finding_provider_fields_criticality: The finding provider value for the level of importance assigned to the resources associated with the findings. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] finding_provider_fields_related_findings_id: The finding identifier of a related finding that is identified by the finding provider. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] finding_provider_fields_related_findings_product_arn: The ARN of the solution that generated a related finding that is identified by the finding provider. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] finding_provider_fields_severity_label: The finding provider value for the severity label. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] finding_provider_fields_severity_original: The finding provider's original value for the severity. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] finding_provider_fields_types: One or more finding types that the finding provider assigned to the finding. + :param pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]] first_observed_at: An ISO8601-formatted timestamp that indicates when the security findings provider first observed the potential security issue that a finding captured. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] generator_id: The identifier for the solution-specific component (a discrete unit of logic) that generated a finding. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] id: The security findings provider-specific identifier for a finding. + :param pulumi.Input[Sequence[pulumi.Input['InsightKeywordFilterArgs']]] keyword: A keyword for a finding. + :param pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]] last_observed_at: An ISO8601-formatted timestamp that indicates when the security findings provider most recently observed the potential security issue that a finding captured. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] malware_name: The name of the malware that was observed. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] malware_path: The filesystem path of the malware that was observed. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] malware_state: The state of the malware that was observed. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] malware_type: The type of the malware that was observed. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] network_destination_domain: The destination domain of network-related information about a finding. + :param pulumi.Input[Sequence[pulumi.Input['InsightIpFilterArgs']]] network_destination_ip_v4: The destination IPv4 address of network-related information about a finding. + :param pulumi.Input[Sequence[pulumi.Input['InsightIpFilterArgs']]] network_destination_ip_v6: The destination IPv6 address of network-related information about a finding. + :param pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]] network_destination_port: The destination port of network-related information about a finding. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] network_direction: Indicates the direction of network traffic associated with a finding. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] network_protocol: The protocol of network-related information about a finding. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] network_source_domain: The source domain of network-related information about a finding. + :param pulumi.Input[Sequence[pulumi.Input['InsightIpFilterArgs']]] network_source_ip_v4: The source IPv4 address of network-related information about a finding. + :param pulumi.Input[Sequence[pulumi.Input['InsightIpFilterArgs']]] network_source_ip_v6: The source IPv6 address of network-related information about a finding. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] network_source_mac: The source media access control (MAC) address of network-related information about a finding. + :param pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]] network_source_port: The source port of network-related information about a finding. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] note_text: The text of a note. + :param pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]] note_updated_at: The timestamp of when the note was updated. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] note_updated_by: The principal that created a note. + :param pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]] process_launched_at: A timestamp that identifies when the process was launched. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] process_name: The name of the process. + :param pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]] process_parent_pid: The parent process ID. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] process_path: The path to the process executable. + :param pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]] process_pid: The process ID. + :param pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]] process_terminated_at: A timestamp that identifies when the process was terminated. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] product_arn: The ARN generated by Security Hub that uniquely identifies a third-party company (security findings provider) after this provider's product (solution that generates findings) is registered with Security Hub. + :param pulumi.Input[Sequence[pulumi.Input['InsightMapFilterArgs']]] product_fields: A data type where security findings providers can include additional solution-specific details that aren't part of the defined AwsSecurityFinding format. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] product_name: The name of the solution (product) that generates findings. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] recommendation_text: The recommendation of what to do about the issue described in a finding. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] record_state: The updated record state for the finding. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] region: The Region from which the finding was generated. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] related_findings_id: The solution-generated identifier for a related finding. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] related_findings_product_arn: The ARN of the solution that generated a related finding. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] resource_application_arn: The ARN of the application that is related to a finding. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] resource_application_name: The name of the application that is related to a finding. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] resource_aws_ec2_instance_iam_instance_profile_arn: The IAM profile ARN of the instance. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] resource_aws_ec2_instance_image_id: The Amazon Machine Image (AMI) ID of the instance. + :param pulumi.Input[Sequence[pulumi.Input['InsightIpFilterArgs']]] resource_aws_ec2_instance_ip_v4_addresses: The IPv4 addresses associated with the instance. + :param pulumi.Input[Sequence[pulumi.Input['InsightIpFilterArgs']]] resource_aws_ec2_instance_ip_v6_addresses: The IPv6 addresses associated with the instance. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] resource_aws_ec2_instance_key_name: The key name associated with the instance. + :param pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]] resource_aws_ec2_instance_launched_at: The date and time the instance was launched. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] resource_aws_ec2_instance_subnet_id: The identifier of the subnet that the instance was launched in. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] resource_aws_ec2_instance_type: The instance type of the instance. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] resource_aws_ec2_instance_vpc_id: The identifier of the VPC that the instance was launched in. + :param pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]] resource_aws_iam_access_key_created_at: The creation date/time of the IAM access key related to a finding. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] resource_aws_iam_access_key_principal_name: The name of the principal that is associated with an IAM access key. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] resource_aws_iam_access_key_status: The status of the IAM access key related to a finding. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] resource_aws_iam_access_key_user_name: The user associated with the IAM access key related to a finding. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] resource_aws_iam_user_user_name: The name of an IAM user. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] resource_aws_s3_bucket_owner_id: The canonical user ID of the owner of the S3 bucket. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] resource_aws_s3_bucket_owner_name: The display name of the owner of the S3 bucket. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] resource_container_image_id: The identifier of the image related to a finding. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] resource_container_image_name: The name of the image related to a finding. + :param pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]] resource_container_launched_at: A timestamp that identifies when the container was started. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] resource_container_name: The name of the container related to a finding. + :param pulumi.Input[Sequence[pulumi.Input['InsightMapFilterArgs']]] resource_details_other: The details of a resource that doesn't have a specific subfield for the resource type defined. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] resource_id: The canonical identifier for the given resource type. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] resource_partition: The canonical AWS partition name that the Region is assigned to. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] resource_region: The canonical AWS external Region name where this resource is located. + :param pulumi.Input[Sequence[pulumi.Input['InsightMapFilterArgs']]] resource_tags: A list of AWS tags associated with a resource at the time the finding was processed. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] resource_type: Specifies the type of the resource that details are provided for. + :param pulumi.Input[Sequence[pulumi.Input['InsightBooleanFilterArgs']]] sample: Indicates whether or not sample findings are included in the filter results. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] severity_label: The label of a finding's severity. + :param pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]] severity_normalized: The normalized severity of a finding. + :param pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]] severity_product: The native severity as defined by the security findings provider's solution that generated the finding. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] source_url: A URL that links to a page about the current finding in the security findings provider's solution. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] threat_intel_indicator_category: The category of a threat intelligence indicator. + :param pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]] threat_intel_indicator_last_observed_at: A timestamp that identifies the last observation of a threat intelligence indicator. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] threat_intel_indicator_source: The source of the threat intelligence. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] threat_intel_indicator_source_url: The URL for more details from the source of the threat intelligence. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] threat_intel_indicator_type: The type of a threat intelligence indicator. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] threat_intel_indicator_value: The value of a threat intelligence indicator. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] title: A finding's title. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] type: A finding type in the format of namespace/category/classifier that classifies a finding. + :param pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]] updated_at: An ISO8601-formatted timestamp that indicates when the security findings provider last updated the finding record. + :param pulumi.Input[Sequence[pulumi.Input['InsightMapFilterArgs']]] user_defined_fields: A list of name/value string pairs associated with the finding. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] verification_state: The veracity of a finding. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] vulnerabilities_exploit_available: Indicates whether a software vulnerability in your environment has a known exploit. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] vulnerabilities_fix_available: Indicates whether a vulnerability is fixed in a newer version of the affected software packages. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] workflow_state: The workflow state of a finding. + :param pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]] workflow_status: The status of the investigation into a finding. + """ + if aws_account_id is not None: + pulumi.set(__self__, "aws_account_id", aws_account_id) + if aws_account_name is not None: + pulumi.set(__self__, "aws_account_name", aws_account_name) + if company_name is not None: + pulumi.set(__self__, "company_name", company_name) + if compliance_associated_standards_id is not None: + pulumi.set(__self__, "compliance_associated_standards_id", compliance_associated_standards_id) + if compliance_security_control_id is not None: + pulumi.set(__self__, "compliance_security_control_id", compliance_security_control_id) + if compliance_security_control_parameters_name is not None: + pulumi.set(__self__, "compliance_security_control_parameters_name", compliance_security_control_parameters_name) + if compliance_security_control_parameters_value is not None: + pulumi.set(__self__, "compliance_security_control_parameters_value", compliance_security_control_parameters_value) + if compliance_status is not None: + pulumi.set(__self__, "compliance_status", compliance_status) + if confidence is not None: + pulumi.set(__self__, "confidence", confidence) + if created_at is not None: + pulumi.set(__self__, "created_at", created_at) + if criticality is not None: + pulumi.set(__self__, "criticality", criticality) + if description is not None: + pulumi.set(__self__, "description", description) + if finding_provider_fields_confidence is not None: + pulumi.set(__self__, "finding_provider_fields_confidence", finding_provider_fields_confidence) + if finding_provider_fields_criticality is not None: + pulumi.set(__self__, "finding_provider_fields_criticality", finding_provider_fields_criticality) + if finding_provider_fields_related_findings_id is not None: + pulumi.set(__self__, "finding_provider_fields_related_findings_id", finding_provider_fields_related_findings_id) + if finding_provider_fields_related_findings_product_arn is not None: + pulumi.set(__self__, "finding_provider_fields_related_findings_product_arn", finding_provider_fields_related_findings_product_arn) + if finding_provider_fields_severity_label is not None: + pulumi.set(__self__, "finding_provider_fields_severity_label", finding_provider_fields_severity_label) + if finding_provider_fields_severity_original is not None: + pulumi.set(__self__, "finding_provider_fields_severity_original", finding_provider_fields_severity_original) + if finding_provider_fields_types is not None: + pulumi.set(__self__, "finding_provider_fields_types", finding_provider_fields_types) + if first_observed_at is not None: + pulumi.set(__self__, "first_observed_at", first_observed_at) + if generator_id is not None: + pulumi.set(__self__, "generator_id", generator_id) + if id is not None: + pulumi.set(__self__, "id", id) + if keyword is not None: + pulumi.set(__self__, "keyword", keyword) + if last_observed_at is not None: + pulumi.set(__self__, "last_observed_at", last_observed_at) + if malware_name is not None: + pulumi.set(__self__, "malware_name", malware_name) + if malware_path is not None: + pulumi.set(__self__, "malware_path", malware_path) + if malware_state is not None: + pulumi.set(__self__, "malware_state", malware_state) + if malware_type is not None: + pulumi.set(__self__, "malware_type", malware_type) + if network_destination_domain is not None: + pulumi.set(__self__, "network_destination_domain", network_destination_domain) + if network_destination_ip_v4 is not None: + pulumi.set(__self__, "network_destination_ip_v4", network_destination_ip_v4) + if network_destination_ip_v6 is not None: + pulumi.set(__self__, "network_destination_ip_v6", network_destination_ip_v6) + if network_destination_port is not None: + pulumi.set(__self__, "network_destination_port", network_destination_port) + if network_direction is not None: + pulumi.set(__self__, "network_direction", network_direction) + if network_protocol is not None: + pulumi.set(__self__, "network_protocol", network_protocol) + if network_source_domain is not None: + pulumi.set(__self__, "network_source_domain", network_source_domain) + if network_source_ip_v4 is not None: + pulumi.set(__self__, "network_source_ip_v4", network_source_ip_v4) + if network_source_ip_v6 is not None: + pulumi.set(__self__, "network_source_ip_v6", network_source_ip_v6) + if network_source_mac is not None: + pulumi.set(__self__, "network_source_mac", network_source_mac) + if network_source_port is not None: + pulumi.set(__self__, "network_source_port", network_source_port) + if note_text is not None: + pulumi.set(__self__, "note_text", note_text) + if note_updated_at is not None: + pulumi.set(__self__, "note_updated_at", note_updated_at) + if note_updated_by is not None: + pulumi.set(__self__, "note_updated_by", note_updated_by) + if process_launched_at is not None: + pulumi.set(__self__, "process_launched_at", process_launched_at) + if process_name is not None: + pulumi.set(__self__, "process_name", process_name) + if process_parent_pid is not None: + pulumi.set(__self__, "process_parent_pid", process_parent_pid) + if process_path is not None: + pulumi.set(__self__, "process_path", process_path) + if process_pid is not None: + pulumi.set(__self__, "process_pid", process_pid) + if process_terminated_at is not None: + pulumi.set(__self__, "process_terminated_at", process_terminated_at) + if product_arn is not None: + pulumi.set(__self__, "product_arn", product_arn) + if product_fields is not None: + pulumi.set(__self__, "product_fields", product_fields) + if product_name is not None: + pulumi.set(__self__, "product_name", product_name) + if recommendation_text is not None: + pulumi.set(__self__, "recommendation_text", recommendation_text) + if record_state is not None: + pulumi.set(__self__, "record_state", record_state) + if region is not None: + pulumi.set(__self__, "region", region) + if related_findings_id is not None: + pulumi.set(__self__, "related_findings_id", related_findings_id) + if related_findings_product_arn is not None: + pulumi.set(__self__, "related_findings_product_arn", related_findings_product_arn) + if resource_application_arn is not None: + pulumi.set(__self__, "resource_application_arn", resource_application_arn) + if resource_application_name is not None: + pulumi.set(__self__, "resource_application_name", resource_application_name) + if resource_aws_ec2_instance_iam_instance_profile_arn is not None: + pulumi.set(__self__, "resource_aws_ec2_instance_iam_instance_profile_arn", resource_aws_ec2_instance_iam_instance_profile_arn) + if resource_aws_ec2_instance_image_id is not None: + pulumi.set(__self__, "resource_aws_ec2_instance_image_id", resource_aws_ec2_instance_image_id) + if resource_aws_ec2_instance_ip_v4_addresses is not None: + pulumi.set(__self__, "resource_aws_ec2_instance_ip_v4_addresses", resource_aws_ec2_instance_ip_v4_addresses) + if resource_aws_ec2_instance_ip_v6_addresses is not None: + pulumi.set(__self__, "resource_aws_ec2_instance_ip_v6_addresses", resource_aws_ec2_instance_ip_v6_addresses) + if resource_aws_ec2_instance_key_name is not None: + pulumi.set(__self__, "resource_aws_ec2_instance_key_name", resource_aws_ec2_instance_key_name) + if resource_aws_ec2_instance_launched_at is not None: + pulumi.set(__self__, "resource_aws_ec2_instance_launched_at", resource_aws_ec2_instance_launched_at) + if resource_aws_ec2_instance_subnet_id is not None: + pulumi.set(__self__, "resource_aws_ec2_instance_subnet_id", resource_aws_ec2_instance_subnet_id) + if resource_aws_ec2_instance_type is not None: + pulumi.set(__self__, "resource_aws_ec2_instance_type", resource_aws_ec2_instance_type) + if resource_aws_ec2_instance_vpc_id is not None: + pulumi.set(__self__, "resource_aws_ec2_instance_vpc_id", resource_aws_ec2_instance_vpc_id) + if resource_aws_iam_access_key_created_at is not None: + pulumi.set(__self__, "resource_aws_iam_access_key_created_at", resource_aws_iam_access_key_created_at) + if resource_aws_iam_access_key_principal_name is not None: + pulumi.set(__self__, "resource_aws_iam_access_key_principal_name", resource_aws_iam_access_key_principal_name) + if resource_aws_iam_access_key_status is not None: + pulumi.set(__self__, "resource_aws_iam_access_key_status", resource_aws_iam_access_key_status) + if resource_aws_iam_access_key_user_name is not None: + pulumi.set(__self__, "resource_aws_iam_access_key_user_name", resource_aws_iam_access_key_user_name) + if resource_aws_iam_user_user_name is not None: + pulumi.set(__self__, "resource_aws_iam_user_user_name", resource_aws_iam_user_user_name) + if resource_aws_s3_bucket_owner_id is not None: + pulumi.set(__self__, "resource_aws_s3_bucket_owner_id", resource_aws_s3_bucket_owner_id) + if resource_aws_s3_bucket_owner_name is not None: + pulumi.set(__self__, "resource_aws_s3_bucket_owner_name", resource_aws_s3_bucket_owner_name) + if resource_container_image_id is not None: + pulumi.set(__self__, "resource_container_image_id", resource_container_image_id) + if resource_container_image_name is not None: + pulumi.set(__self__, "resource_container_image_name", resource_container_image_name) + if resource_container_launched_at is not None: + pulumi.set(__self__, "resource_container_launched_at", resource_container_launched_at) + if resource_container_name is not None: + pulumi.set(__self__, "resource_container_name", resource_container_name) + if resource_details_other is not None: + pulumi.set(__self__, "resource_details_other", resource_details_other) + if resource_id is not None: + pulumi.set(__self__, "resource_id", resource_id) + if resource_partition is not None: + pulumi.set(__self__, "resource_partition", resource_partition) + if resource_region is not None: + pulumi.set(__self__, "resource_region", resource_region) + if resource_tags is not None: + pulumi.set(__self__, "resource_tags", resource_tags) + if resource_type is not None: + pulumi.set(__self__, "resource_type", resource_type) + if sample is not None: + pulumi.set(__self__, "sample", sample) + if severity_label is not None: + pulumi.set(__self__, "severity_label", severity_label) + if severity_normalized is not None: + pulumi.set(__self__, "severity_normalized", severity_normalized) + if severity_product is not None: + pulumi.set(__self__, "severity_product", severity_product) + if source_url is not None: + pulumi.set(__self__, "source_url", source_url) + if threat_intel_indicator_category is not None: + pulumi.set(__self__, "threat_intel_indicator_category", threat_intel_indicator_category) + if threat_intel_indicator_last_observed_at is not None: + pulumi.set(__self__, "threat_intel_indicator_last_observed_at", threat_intel_indicator_last_observed_at) + if threat_intel_indicator_source is not None: + pulumi.set(__self__, "threat_intel_indicator_source", threat_intel_indicator_source) + if threat_intel_indicator_source_url is not None: + pulumi.set(__self__, "threat_intel_indicator_source_url", threat_intel_indicator_source_url) + if threat_intel_indicator_type is not None: + pulumi.set(__self__, "threat_intel_indicator_type", threat_intel_indicator_type) + if threat_intel_indicator_value is not None: + pulumi.set(__self__, "threat_intel_indicator_value", threat_intel_indicator_value) + if title is not None: + pulumi.set(__self__, "title", title) + if type is not None: + pulumi.set(__self__, "type", type) + if updated_at is not None: + pulumi.set(__self__, "updated_at", updated_at) + if user_defined_fields is not None: + pulumi.set(__self__, "user_defined_fields", user_defined_fields) + if verification_state is not None: + pulumi.set(__self__, "verification_state", verification_state) + if vulnerabilities_exploit_available is not None: + pulumi.set(__self__, "vulnerabilities_exploit_available", vulnerabilities_exploit_available) + if vulnerabilities_fix_available is not None: + pulumi.set(__self__, "vulnerabilities_fix_available", vulnerabilities_fix_available) + if workflow_state is not None: + pulumi.set(__self__, "workflow_state", workflow_state) + if workflow_status is not None: + pulumi.set(__self__, "workflow_status", workflow_status) + + @property + @pulumi.getter(name="awsAccountId") + def aws_account_id(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The AWS account ID in which a finding is generated. + """ + return pulumi.get(self, "aws_account_id") + + @aws_account_id.setter + def aws_account_id(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "aws_account_id", value) + + @property + @pulumi.getter(name="awsAccountName") + def aws_account_name(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The name of the AWS account in which a finding is generated. + """ + return pulumi.get(self, "aws_account_name") + + @aws_account_name.setter + def aws_account_name(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "aws_account_name", value) + + @property + @pulumi.getter(name="companyName") + def company_name(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The name of the findings provider (company) that owns the solution (product) that generates findings. + """ + return pulumi.get(self, "company_name") + + @company_name.setter + def company_name(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "company_name", value) + + @property + @pulumi.getter(name="complianceAssociatedStandardsId") + def compliance_associated_standards_id(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The unique identifier of a standard in which a control is enabled. + """ + return pulumi.get(self, "compliance_associated_standards_id") + + @compliance_associated_standards_id.setter + def compliance_associated_standards_id(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "compliance_associated_standards_id", value) + + @property + @pulumi.getter(name="complianceSecurityControlId") + def compliance_security_control_id(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The unique identifier of a control across standards. + """ + return pulumi.get(self, "compliance_security_control_id") + + @compliance_security_control_id.setter + def compliance_security_control_id(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "compliance_security_control_id", value) + + @property + @pulumi.getter(name="complianceSecurityControlParametersName") + def compliance_security_control_parameters_name(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The name of a security control parameter. + """ + return pulumi.get(self, "compliance_security_control_parameters_name") + + @compliance_security_control_parameters_name.setter + def compliance_security_control_parameters_name(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "compliance_security_control_parameters_name", value) + + @property + @pulumi.getter(name="complianceSecurityControlParametersValue") + def compliance_security_control_parameters_value(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The current value of a security control parameter. + """ + return pulumi.get(self, "compliance_security_control_parameters_value") + + @compliance_security_control_parameters_value.setter + def compliance_security_control_parameters_value(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "compliance_security_control_parameters_value", value) + + @property + @pulumi.getter(name="complianceStatus") + def compliance_status(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + Exclusive to findings that are generated as the result of a check run against a specific rule in a supported standard. + """ + return pulumi.get(self, "compliance_status") + + @compliance_status.setter + def compliance_status(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "compliance_status", value) + + @property + @pulumi.getter + def confidence(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]]]: + """ + A finding's confidence. + """ + return pulumi.get(self, "confidence") + + @confidence.setter + def confidence(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]]]): + pulumi.set(self, "confidence", value) + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]]]: + """ + An ISO8601-formatted timestamp that indicates when the security findings provider captured the potential security issue that a finding captured. + """ + return pulumi.get(self, "created_at") + + @created_at.setter + def created_at(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]]]): + pulumi.set(self, "created_at", value) + + @property + @pulumi.getter + def criticality(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]]]: + """ + The level of importance assigned to the resources associated with the finding. + """ + return pulumi.get(self, "criticality") + + @criticality.setter + def criticality(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]]]): + pulumi.set(self, "criticality", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + A finding's description. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter(name="findingProviderFieldsConfidence") + def finding_provider_fields_confidence(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]]]: + """ + The finding provider value for the finding confidence. + """ + return pulumi.get(self, "finding_provider_fields_confidence") + + @finding_provider_fields_confidence.setter + def finding_provider_fields_confidence(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]]]): + pulumi.set(self, "finding_provider_fields_confidence", value) + + @property + @pulumi.getter(name="findingProviderFieldsCriticality") + def finding_provider_fields_criticality(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]]]: + """ + The finding provider value for the level of importance assigned to the resources associated with the findings. + """ + return pulumi.get(self, "finding_provider_fields_criticality") + + @finding_provider_fields_criticality.setter + def finding_provider_fields_criticality(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]]]): + pulumi.set(self, "finding_provider_fields_criticality", value) + + @property + @pulumi.getter(name="findingProviderFieldsRelatedFindingsId") + def finding_provider_fields_related_findings_id(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The finding identifier of a related finding that is identified by the finding provider. + """ + return pulumi.get(self, "finding_provider_fields_related_findings_id") + + @finding_provider_fields_related_findings_id.setter + def finding_provider_fields_related_findings_id(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "finding_provider_fields_related_findings_id", value) + + @property + @pulumi.getter(name="findingProviderFieldsRelatedFindingsProductArn") + def finding_provider_fields_related_findings_product_arn(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The ARN of the solution that generated a related finding that is identified by the finding provider. + """ + return pulumi.get(self, "finding_provider_fields_related_findings_product_arn") + + @finding_provider_fields_related_findings_product_arn.setter + def finding_provider_fields_related_findings_product_arn(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "finding_provider_fields_related_findings_product_arn", value) + + @property + @pulumi.getter(name="findingProviderFieldsSeverityLabel") + def finding_provider_fields_severity_label(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The finding provider value for the severity label. + """ + return pulumi.get(self, "finding_provider_fields_severity_label") + + @finding_provider_fields_severity_label.setter + def finding_provider_fields_severity_label(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "finding_provider_fields_severity_label", value) + + @property + @pulumi.getter(name="findingProviderFieldsSeverityOriginal") + def finding_provider_fields_severity_original(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The finding provider's original value for the severity. + """ + return pulumi.get(self, "finding_provider_fields_severity_original") + + @finding_provider_fields_severity_original.setter + def finding_provider_fields_severity_original(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "finding_provider_fields_severity_original", value) + + @property + @pulumi.getter(name="findingProviderFieldsTypes") + def finding_provider_fields_types(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + One or more finding types that the finding provider assigned to the finding. + """ + return pulumi.get(self, "finding_provider_fields_types") + + @finding_provider_fields_types.setter + def finding_provider_fields_types(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "finding_provider_fields_types", value) + + @property + @pulumi.getter(name="firstObservedAt") + def first_observed_at(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]]]: + """ + An ISO8601-formatted timestamp that indicates when the security findings provider first observed the potential security issue that a finding captured. + """ + return pulumi.get(self, "first_observed_at") + + @first_observed_at.setter + def first_observed_at(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]]]): + pulumi.set(self, "first_observed_at", value) + + @property + @pulumi.getter(name="generatorId") + def generator_id(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The identifier for the solution-specific component (a discrete unit of logic) that generated a finding. + """ + return pulumi.get(self, "generator_id") + + @generator_id.setter + def generator_id(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "generator_id", value) + + @property + @pulumi.getter + def id(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The security findings provider-specific identifier for a finding. + """ + return pulumi.get(self, "id") + + @id.setter + def id(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "id", value) + + @property + @pulumi.getter + def keyword(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightKeywordFilterArgs']]]]: + """ + A keyword for a finding. + """ + return pulumi.get(self, "keyword") + + @keyword.setter + def keyword(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightKeywordFilterArgs']]]]): + pulumi.set(self, "keyword", value) + + @property + @pulumi.getter(name="lastObservedAt") + def last_observed_at(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]]]: + """ + An ISO8601-formatted timestamp that indicates when the security findings provider most recently observed the potential security issue that a finding captured. + """ + return pulumi.get(self, "last_observed_at") + + @last_observed_at.setter + def last_observed_at(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]]]): + pulumi.set(self, "last_observed_at", value) + + @property + @pulumi.getter(name="malwareName") + def malware_name(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The name of the malware that was observed. + """ + return pulumi.get(self, "malware_name") + + @malware_name.setter + def malware_name(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "malware_name", value) + + @property + @pulumi.getter(name="malwarePath") + def malware_path(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The filesystem path of the malware that was observed. + """ + return pulumi.get(self, "malware_path") + + @malware_path.setter + def malware_path(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "malware_path", value) + + @property + @pulumi.getter(name="malwareState") + def malware_state(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The state of the malware that was observed. + """ + return pulumi.get(self, "malware_state") + + @malware_state.setter + def malware_state(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "malware_state", value) + + @property + @pulumi.getter(name="malwareType") + def malware_type(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The type of the malware that was observed. + """ + return pulumi.get(self, "malware_type") + + @malware_type.setter + def malware_type(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "malware_type", value) + + @property + @pulumi.getter(name="networkDestinationDomain") + def network_destination_domain(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The destination domain of network-related information about a finding. + """ + return pulumi.get(self, "network_destination_domain") + + @network_destination_domain.setter + def network_destination_domain(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "network_destination_domain", value) + + @property + @pulumi.getter(name="networkDestinationIpV4") + def network_destination_ip_v4(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightIpFilterArgs']]]]: + """ + The destination IPv4 address of network-related information about a finding. + """ + return pulumi.get(self, "network_destination_ip_v4") + + @network_destination_ip_v4.setter + def network_destination_ip_v4(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightIpFilterArgs']]]]): + pulumi.set(self, "network_destination_ip_v4", value) + + @property + @pulumi.getter(name="networkDestinationIpV6") + def network_destination_ip_v6(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightIpFilterArgs']]]]: + """ + The destination IPv6 address of network-related information about a finding. + """ + return pulumi.get(self, "network_destination_ip_v6") + + @network_destination_ip_v6.setter + def network_destination_ip_v6(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightIpFilterArgs']]]]): + pulumi.set(self, "network_destination_ip_v6", value) + + @property + @pulumi.getter(name="networkDestinationPort") + def network_destination_port(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]]]: + """ + The destination port of network-related information about a finding. + """ + return pulumi.get(self, "network_destination_port") + + @network_destination_port.setter + def network_destination_port(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]]]): + pulumi.set(self, "network_destination_port", value) + + @property + @pulumi.getter(name="networkDirection") + def network_direction(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + Indicates the direction of network traffic associated with a finding. + """ + return pulumi.get(self, "network_direction") + + @network_direction.setter + def network_direction(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "network_direction", value) + + @property + @pulumi.getter(name="networkProtocol") + def network_protocol(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The protocol of network-related information about a finding. + """ + return pulumi.get(self, "network_protocol") + + @network_protocol.setter + def network_protocol(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "network_protocol", value) + + @property + @pulumi.getter(name="networkSourceDomain") + def network_source_domain(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The source domain of network-related information about a finding. + """ + return pulumi.get(self, "network_source_domain") + + @network_source_domain.setter + def network_source_domain(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "network_source_domain", value) + + @property + @pulumi.getter(name="networkSourceIpV4") + def network_source_ip_v4(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightIpFilterArgs']]]]: + """ + The source IPv4 address of network-related information about a finding. + """ + return pulumi.get(self, "network_source_ip_v4") + + @network_source_ip_v4.setter + def network_source_ip_v4(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightIpFilterArgs']]]]): + pulumi.set(self, "network_source_ip_v4", value) + + @property + @pulumi.getter(name="networkSourceIpV6") + def network_source_ip_v6(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightIpFilterArgs']]]]: + """ + The source IPv6 address of network-related information about a finding. + """ + return pulumi.get(self, "network_source_ip_v6") + + @network_source_ip_v6.setter + def network_source_ip_v6(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightIpFilterArgs']]]]): + pulumi.set(self, "network_source_ip_v6", value) + + @property + @pulumi.getter(name="networkSourceMac") + def network_source_mac(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The source media access control (MAC) address of network-related information about a finding. + """ + return pulumi.get(self, "network_source_mac") + + @network_source_mac.setter + def network_source_mac(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "network_source_mac", value) + + @property + @pulumi.getter(name="networkSourcePort") + def network_source_port(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]]]: + """ + The source port of network-related information about a finding. + """ + return pulumi.get(self, "network_source_port") + + @network_source_port.setter + def network_source_port(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]]]): + pulumi.set(self, "network_source_port", value) + + @property + @pulumi.getter(name="noteText") + def note_text(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The text of a note. + """ + return pulumi.get(self, "note_text") + + @note_text.setter + def note_text(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "note_text", value) + + @property + @pulumi.getter(name="noteUpdatedAt") + def note_updated_at(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]]]: + """ + The timestamp of when the note was updated. + """ + return pulumi.get(self, "note_updated_at") + + @note_updated_at.setter + def note_updated_at(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]]]): + pulumi.set(self, "note_updated_at", value) + + @property + @pulumi.getter(name="noteUpdatedBy") + def note_updated_by(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The principal that created a note. + """ + return pulumi.get(self, "note_updated_by") + + @note_updated_by.setter + def note_updated_by(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "note_updated_by", value) + + @property + @pulumi.getter(name="processLaunchedAt") + def process_launched_at(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]]]: + """ + A timestamp that identifies when the process was launched. + """ + return pulumi.get(self, "process_launched_at") + + @process_launched_at.setter + def process_launched_at(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]]]): + pulumi.set(self, "process_launched_at", value) + + @property + @pulumi.getter(name="processName") + def process_name(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The name of the process. + """ + return pulumi.get(self, "process_name") + + @process_name.setter + def process_name(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "process_name", value) + + @property + @pulumi.getter(name="processParentPid") + def process_parent_pid(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]]]: + """ + The parent process ID. + """ + return pulumi.get(self, "process_parent_pid") + + @process_parent_pid.setter + def process_parent_pid(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]]]): + pulumi.set(self, "process_parent_pid", value) + + @property + @pulumi.getter(name="processPath") + def process_path(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The path to the process executable. + """ + return pulumi.get(self, "process_path") + + @process_path.setter + def process_path(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "process_path", value) + + @property + @pulumi.getter(name="processPid") + def process_pid(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]]]: + """ + The process ID. + """ + return pulumi.get(self, "process_pid") + + @process_pid.setter + def process_pid(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]]]): + pulumi.set(self, "process_pid", value) + + @property + @pulumi.getter(name="processTerminatedAt") + def process_terminated_at(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]]]: + """ + A timestamp that identifies when the process was terminated. + """ + return pulumi.get(self, "process_terminated_at") + + @process_terminated_at.setter + def process_terminated_at(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]]]): + pulumi.set(self, "process_terminated_at", value) + + @property + @pulumi.getter(name="productArn") + def product_arn(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The ARN generated by Security Hub that uniquely identifies a third-party company (security findings provider) after this provider's product (solution that generates findings) is registered with Security Hub. + """ + return pulumi.get(self, "product_arn") + + @product_arn.setter + def product_arn(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "product_arn", value) + + @property + @pulumi.getter(name="productFields") + def product_fields(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightMapFilterArgs']]]]: + """ + A data type where security findings providers can include additional solution-specific details that aren't part of the defined AwsSecurityFinding format. + """ + return pulumi.get(self, "product_fields") + + @product_fields.setter + def product_fields(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightMapFilterArgs']]]]): + pulumi.set(self, "product_fields", value) + + @property + @pulumi.getter(name="productName") + def product_name(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The name of the solution (product) that generates findings. + """ + return pulumi.get(self, "product_name") + + @product_name.setter + def product_name(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "product_name", value) + + @property + @pulumi.getter(name="recommendationText") + def recommendation_text(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The recommendation of what to do about the issue described in a finding. + """ + return pulumi.get(self, "recommendation_text") + + @recommendation_text.setter + def recommendation_text(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "recommendation_text", value) + + @property + @pulumi.getter(name="recordState") + def record_state(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The updated record state for the finding. + """ + return pulumi.get(self, "record_state") + + @record_state.setter + def record_state(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "record_state", value) + + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The Region from which the finding was generated. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "region", value) + + @property + @pulumi.getter(name="relatedFindingsId") + def related_findings_id(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The solution-generated identifier for a related finding. + """ + return pulumi.get(self, "related_findings_id") + + @related_findings_id.setter + def related_findings_id(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "related_findings_id", value) + + @property + @pulumi.getter(name="relatedFindingsProductArn") + def related_findings_product_arn(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The ARN of the solution that generated a related finding. + """ + return pulumi.get(self, "related_findings_product_arn") + + @related_findings_product_arn.setter + def related_findings_product_arn(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "related_findings_product_arn", value) + + @property + @pulumi.getter(name="resourceApplicationArn") + def resource_application_arn(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The ARN of the application that is related to a finding. + """ + return pulumi.get(self, "resource_application_arn") + + @resource_application_arn.setter + def resource_application_arn(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "resource_application_arn", value) + + @property + @pulumi.getter(name="resourceApplicationName") + def resource_application_name(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The name of the application that is related to a finding. + """ + return pulumi.get(self, "resource_application_name") + + @resource_application_name.setter + def resource_application_name(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "resource_application_name", value) + + @property + @pulumi.getter(name="resourceAwsEc2InstanceIamInstanceProfileArn") + def resource_aws_ec2_instance_iam_instance_profile_arn(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The IAM profile ARN of the instance. + """ + return pulumi.get(self, "resource_aws_ec2_instance_iam_instance_profile_arn") + + @resource_aws_ec2_instance_iam_instance_profile_arn.setter + def resource_aws_ec2_instance_iam_instance_profile_arn(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "resource_aws_ec2_instance_iam_instance_profile_arn", value) + + @property + @pulumi.getter(name="resourceAwsEc2InstanceImageId") + def resource_aws_ec2_instance_image_id(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The Amazon Machine Image (AMI) ID of the instance. + """ + return pulumi.get(self, "resource_aws_ec2_instance_image_id") + + @resource_aws_ec2_instance_image_id.setter + def resource_aws_ec2_instance_image_id(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "resource_aws_ec2_instance_image_id", value) + + @property + @pulumi.getter(name="resourceAwsEc2InstanceIpV4Addresses") + def resource_aws_ec2_instance_ip_v4_addresses(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightIpFilterArgs']]]]: + """ + The IPv4 addresses associated with the instance. + """ + return pulumi.get(self, "resource_aws_ec2_instance_ip_v4_addresses") + + @resource_aws_ec2_instance_ip_v4_addresses.setter + def resource_aws_ec2_instance_ip_v4_addresses(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightIpFilterArgs']]]]): + pulumi.set(self, "resource_aws_ec2_instance_ip_v4_addresses", value) + + @property + @pulumi.getter(name="resourceAwsEc2InstanceIpV6Addresses") + def resource_aws_ec2_instance_ip_v6_addresses(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightIpFilterArgs']]]]: + """ + The IPv6 addresses associated with the instance. + """ + return pulumi.get(self, "resource_aws_ec2_instance_ip_v6_addresses") + + @resource_aws_ec2_instance_ip_v6_addresses.setter + def resource_aws_ec2_instance_ip_v6_addresses(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightIpFilterArgs']]]]): + pulumi.set(self, "resource_aws_ec2_instance_ip_v6_addresses", value) + + @property + @pulumi.getter(name="resourceAwsEc2InstanceKeyName") + def resource_aws_ec2_instance_key_name(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The key name associated with the instance. + """ + return pulumi.get(self, "resource_aws_ec2_instance_key_name") + + @resource_aws_ec2_instance_key_name.setter + def resource_aws_ec2_instance_key_name(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "resource_aws_ec2_instance_key_name", value) + + @property + @pulumi.getter(name="resourceAwsEc2InstanceLaunchedAt") + def resource_aws_ec2_instance_launched_at(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]]]: + """ + The date and time the instance was launched. + """ + return pulumi.get(self, "resource_aws_ec2_instance_launched_at") + + @resource_aws_ec2_instance_launched_at.setter + def resource_aws_ec2_instance_launched_at(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]]]): + pulumi.set(self, "resource_aws_ec2_instance_launched_at", value) + + @property + @pulumi.getter(name="resourceAwsEc2InstanceSubnetId") + def resource_aws_ec2_instance_subnet_id(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The identifier of the subnet that the instance was launched in. + """ + return pulumi.get(self, "resource_aws_ec2_instance_subnet_id") + + @resource_aws_ec2_instance_subnet_id.setter + def resource_aws_ec2_instance_subnet_id(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "resource_aws_ec2_instance_subnet_id", value) + + @property + @pulumi.getter(name="resourceAwsEc2InstanceType") + def resource_aws_ec2_instance_type(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The instance type of the instance. + """ + return pulumi.get(self, "resource_aws_ec2_instance_type") + + @resource_aws_ec2_instance_type.setter + def resource_aws_ec2_instance_type(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "resource_aws_ec2_instance_type", value) + + @property + @pulumi.getter(name="resourceAwsEc2InstanceVpcId") + def resource_aws_ec2_instance_vpc_id(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The identifier of the VPC that the instance was launched in. + """ + return pulumi.get(self, "resource_aws_ec2_instance_vpc_id") + + @resource_aws_ec2_instance_vpc_id.setter + def resource_aws_ec2_instance_vpc_id(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "resource_aws_ec2_instance_vpc_id", value) + + @property + @pulumi.getter(name="resourceAwsIamAccessKeyCreatedAt") + def resource_aws_iam_access_key_created_at(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]]]: + """ + The creation date/time of the IAM access key related to a finding. + """ + return pulumi.get(self, "resource_aws_iam_access_key_created_at") + + @resource_aws_iam_access_key_created_at.setter + def resource_aws_iam_access_key_created_at(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]]]): + pulumi.set(self, "resource_aws_iam_access_key_created_at", value) + + @property + @pulumi.getter(name="resourceAwsIamAccessKeyPrincipalName") + def resource_aws_iam_access_key_principal_name(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The name of the principal that is associated with an IAM access key. + """ + return pulumi.get(self, "resource_aws_iam_access_key_principal_name") + + @resource_aws_iam_access_key_principal_name.setter + def resource_aws_iam_access_key_principal_name(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "resource_aws_iam_access_key_principal_name", value) + + @property + @pulumi.getter(name="resourceAwsIamAccessKeyStatus") + def resource_aws_iam_access_key_status(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The status of the IAM access key related to a finding. + """ + return pulumi.get(self, "resource_aws_iam_access_key_status") + + @resource_aws_iam_access_key_status.setter + def resource_aws_iam_access_key_status(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "resource_aws_iam_access_key_status", value) + + @property + @pulumi.getter(name="resourceAwsIamAccessKeyUserName") + def resource_aws_iam_access_key_user_name(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The user associated with the IAM access key related to a finding. + """ + return pulumi.get(self, "resource_aws_iam_access_key_user_name") + + @resource_aws_iam_access_key_user_name.setter + def resource_aws_iam_access_key_user_name(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "resource_aws_iam_access_key_user_name", value) + + @property + @pulumi.getter(name="resourceAwsIamUserUserName") + def resource_aws_iam_user_user_name(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The name of an IAM user. + """ + return pulumi.get(self, "resource_aws_iam_user_user_name") + + @resource_aws_iam_user_user_name.setter + def resource_aws_iam_user_user_name(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "resource_aws_iam_user_user_name", value) + + @property + @pulumi.getter(name="resourceAwsS3BucketOwnerId") + def resource_aws_s3_bucket_owner_id(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The canonical user ID of the owner of the S3 bucket. + """ + return pulumi.get(self, "resource_aws_s3_bucket_owner_id") + + @resource_aws_s3_bucket_owner_id.setter + def resource_aws_s3_bucket_owner_id(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "resource_aws_s3_bucket_owner_id", value) + + @property + @pulumi.getter(name="resourceAwsS3BucketOwnerName") + def resource_aws_s3_bucket_owner_name(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The display name of the owner of the S3 bucket. + """ + return pulumi.get(self, "resource_aws_s3_bucket_owner_name") + + @resource_aws_s3_bucket_owner_name.setter + def resource_aws_s3_bucket_owner_name(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "resource_aws_s3_bucket_owner_name", value) + + @property + @pulumi.getter(name="resourceContainerImageId") + def resource_container_image_id(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The identifier of the image related to a finding. + """ + return pulumi.get(self, "resource_container_image_id") + + @resource_container_image_id.setter + def resource_container_image_id(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "resource_container_image_id", value) + + @property + @pulumi.getter(name="resourceContainerImageName") + def resource_container_image_name(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The name of the image related to a finding. + """ + return pulumi.get(self, "resource_container_image_name") + + @resource_container_image_name.setter + def resource_container_image_name(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "resource_container_image_name", value) + + @property + @pulumi.getter(name="resourceContainerLaunchedAt") + def resource_container_launched_at(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]]]: + """ + A timestamp that identifies when the container was started. + """ + return pulumi.get(self, "resource_container_launched_at") + + @resource_container_launched_at.setter + def resource_container_launched_at(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]]]): + pulumi.set(self, "resource_container_launched_at", value) + + @property + @pulumi.getter(name="resourceContainerName") + def resource_container_name(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The name of the container related to a finding. + """ + return pulumi.get(self, "resource_container_name") + + @resource_container_name.setter + def resource_container_name(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "resource_container_name", value) + + @property + @pulumi.getter(name="resourceDetailsOther") + def resource_details_other(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightMapFilterArgs']]]]: + """ + The details of a resource that doesn't have a specific subfield for the resource type defined. + """ + return pulumi.get(self, "resource_details_other") + + @resource_details_other.setter + def resource_details_other(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightMapFilterArgs']]]]): + pulumi.set(self, "resource_details_other", value) + + @property + @pulumi.getter(name="resourceId") + def resource_id(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The canonical identifier for the given resource type. + """ + return pulumi.get(self, "resource_id") + + @resource_id.setter + def resource_id(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "resource_id", value) + + @property + @pulumi.getter(name="resourcePartition") + def resource_partition(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The canonical AWS partition name that the Region is assigned to. + """ + return pulumi.get(self, "resource_partition") + + @resource_partition.setter + def resource_partition(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "resource_partition", value) + + @property + @pulumi.getter(name="resourceRegion") + def resource_region(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The canonical AWS external Region name where this resource is located. + """ + return pulumi.get(self, "resource_region") + + @resource_region.setter + def resource_region(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "resource_region", value) + + @property + @pulumi.getter(name="resourceTags") + def resource_tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightMapFilterArgs']]]]: + """ + A list of AWS tags associated with a resource at the time the finding was processed. + """ + return pulumi.get(self, "resource_tags") + + @resource_tags.setter + def resource_tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightMapFilterArgs']]]]): + pulumi.set(self, "resource_tags", value) + + @property + @pulumi.getter(name="resourceType") + def resource_type(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + Specifies the type of the resource that details are provided for. + """ + return pulumi.get(self, "resource_type") + + @resource_type.setter + def resource_type(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "resource_type", value) + + @property + @pulumi.getter + def sample(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightBooleanFilterArgs']]]]: + """ + Indicates whether or not sample findings are included in the filter results. + """ + return pulumi.get(self, "sample") + + @sample.setter + def sample(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightBooleanFilterArgs']]]]): + pulumi.set(self, "sample", value) + + @property + @pulumi.getter(name="severityLabel") + def severity_label(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The label of a finding's severity. + """ + return pulumi.get(self, "severity_label") + + @severity_label.setter + def severity_label(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "severity_label", value) + + @property + @pulumi.getter(name="severityNormalized") + def severity_normalized(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]]]: + """ + The normalized severity of a finding. + """ + return pulumi.get(self, "severity_normalized") + + @severity_normalized.setter + def severity_normalized(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]]]): + pulumi.set(self, "severity_normalized", value) + + @property + @pulumi.getter(name="severityProduct") + def severity_product(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]]]: + """ + The native severity as defined by the security findings provider's solution that generated the finding. + """ + return pulumi.get(self, "severity_product") + + @severity_product.setter + def severity_product(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightNumberFilterArgs']]]]): + pulumi.set(self, "severity_product", value) + + @property + @pulumi.getter(name="sourceUrl") + def source_url(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + A URL that links to a page about the current finding in the security findings provider's solution. + """ + return pulumi.get(self, "source_url") + + @source_url.setter + def source_url(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "source_url", value) + + @property + @pulumi.getter(name="threatIntelIndicatorCategory") + def threat_intel_indicator_category(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The category of a threat intelligence indicator. + """ + return pulumi.get(self, "threat_intel_indicator_category") + + @threat_intel_indicator_category.setter + def threat_intel_indicator_category(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "threat_intel_indicator_category", value) + + @property + @pulumi.getter(name="threatIntelIndicatorLastObservedAt") + def threat_intel_indicator_last_observed_at(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]]]: + """ + A timestamp that identifies the last observation of a threat intelligence indicator. + """ + return pulumi.get(self, "threat_intel_indicator_last_observed_at") + + @threat_intel_indicator_last_observed_at.setter + def threat_intel_indicator_last_observed_at(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]]]): + pulumi.set(self, "threat_intel_indicator_last_observed_at", value) + + @property + @pulumi.getter(name="threatIntelIndicatorSource") + def threat_intel_indicator_source(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The source of the threat intelligence. + """ + return pulumi.get(self, "threat_intel_indicator_source") + + @threat_intel_indicator_source.setter + def threat_intel_indicator_source(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "threat_intel_indicator_source", value) + + @property + @pulumi.getter(name="threatIntelIndicatorSourceUrl") + def threat_intel_indicator_source_url(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The URL for more details from the source of the threat intelligence. + """ + return pulumi.get(self, "threat_intel_indicator_source_url") + + @threat_intel_indicator_source_url.setter + def threat_intel_indicator_source_url(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "threat_intel_indicator_source_url", value) + + @property + @pulumi.getter(name="threatIntelIndicatorType") + def threat_intel_indicator_type(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The type of a threat intelligence indicator. + """ + return pulumi.get(self, "threat_intel_indicator_type") + + @threat_intel_indicator_type.setter + def threat_intel_indicator_type(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "threat_intel_indicator_type", value) + + @property + @pulumi.getter(name="threatIntelIndicatorValue") + def threat_intel_indicator_value(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The value of a threat intelligence indicator. + """ + return pulumi.get(self, "threat_intel_indicator_value") + + @threat_intel_indicator_value.setter + def threat_intel_indicator_value(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "threat_intel_indicator_value", value) + + @property + @pulumi.getter + def title(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + A finding's title. + """ + return pulumi.get(self, "title") + + @title.setter + def title(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "title", value) + + @property + @pulumi.getter + def type(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + A finding type in the format of namespace/category/classifier that classifies a finding. + """ + return pulumi.get(self, "type") + + @type.setter + def type(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "type", value) + + @property + @pulumi.getter(name="updatedAt") + def updated_at(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]]]: + """ + An ISO8601-formatted timestamp that indicates when the security findings provider last updated the finding record. + """ + return pulumi.get(self, "updated_at") + + @updated_at.setter + def updated_at(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightDateFilterArgs']]]]): + pulumi.set(self, "updated_at", value) + + @property + @pulumi.getter(name="userDefinedFields") + def user_defined_fields(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightMapFilterArgs']]]]: + """ + A list of name/value string pairs associated with the finding. + """ + return pulumi.get(self, "user_defined_fields") + + @user_defined_fields.setter + def user_defined_fields(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightMapFilterArgs']]]]): + pulumi.set(self, "user_defined_fields", value) + + @property + @pulumi.getter(name="verificationState") + def verification_state(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The veracity of a finding. + """ + return pulumi.get(self, "verification_state") + + @verification_state.setter + def verification_state(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "verification_state", value) + + @property + @pulumi.getter(name="vulnerabilitiesExploitAvailable") + def vulnerabilities_exploit_available(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + Indicates whether a software vulnerability in your environment has a known exploit. + """ + return pulumi.get(self, "vulnerabilities_exploit_available") + + @vulnerabilities_exploit_available.setter + def vulnerabilities_exploit_available(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "vulnerabilities_exploit_available", value) + + @property + @pulumi.getter(name="vulnerabilitiesFixAvailable") + def vulnerabilities_fix_available(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + Indicates whether a vulnerability is fixed in a newer version of the affected software packages. + """ + return pulumi.get(self, "vulnerabilities_fix_available") + + @vulnerabilities_fix_available.setter + def vulnerabilities_fix_available(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "vulnerabilities_fix_available", value) + + @property + @pulumi.getter(name="workflowState") + def workflow_state(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The workflow state of a finding. + """ + return pulumi.get(self, "workflow_state") + + @workflow_state.setter + def workflow_state(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "workflow_state", value) + + @property + @pulumi.getter(name="workflowStatus") + def workflow_status(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]: + """ + The status of the investigation into a finding. + """ + return pulumi.get(self, "workflow_status") + + @workflow_status.setter + def workflow_status(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InsightStringFilterArgs']]]]): + pulumi.set(self, "workflow_status", value) + + +@pulumi.input_type +class InsightBooleanFilterArgs: + def __init__(__self__, *, + value: pulumi.Input[bool]): + """ + Boolean filter for querying findings. + :param pulumi.Input[bool] value: The value of the boolean. + """ + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def value(self) -> pulumi.Input[bool]: + """ + The value of the boolean. + """ + return pulumi.get(self, "value") + + @value.setter + def value(self, value: pulumi.Input[bool]): + pulumi.set(self, "value", value) + + +@pulumi.input_type +class InsightDateFilterArgs: + def __init__(__self__, *, + date_range: Optional[pulumi.Input['InsightDateRangeArgs']] = None, + end: Optional[pulumi.Input[str]] = None, + start: Optional[pulumi.Input[str]] = None): + """ + A date filter for querying findings. + """ + if date_range is not None: + pulumi.set(__self__, "date_range", date_range) + if end is not None: + pulumi.set(__self__, "end", end) + if start is not None: + pulumi.set(__self__, "start", start) + + @property + @pulumi.getter(name="dateRange") + def date_range(self) -> Optional[pulumi.Input['InsightDateRangeArgs']]: + return pulumi.get(self, "date_range") + + @date_range.setter + def date_range(self, value: Optional[pulumi.Input['InsightDateRangeArgs']]): + pulumi.set(self, "date_range", value) + + @property + @pulumi.getter + def end(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "end") + + @end.setter + def end(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "end", value) + + @property + @pulumi.getter + def start(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "start") + + @start.setter + def start(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "start", value) + + +@pulumi.input_type +class InsightDateRangeArgs: + def __init__(__self__, *, + unit: pulumi.Input['InsightDateRangeUnit'], + value: pulumi.Input[float]): + """ + A date range for the date filter. + :param pulumi.Input['InsightDateRangeUnit'] unit: A date range unit for the date filter. + :param pulumi.Input[float] value: A date range value for the date filter. + """ + pulumi.set(__self__, "unit", unit) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def unit(self) -> pulumi.Input['InsightDateRangeUnit']: + """ + A date range unit for the date filter. + """ + return pulumi.get(self, "unit") + + @unit.setter + def unit(self, value: pulumi.Input['InsightDateRangeUnit']): + pulumi.set(self, "unit", value) + + @property + @pulumi.getter + def value(self) -> pulumi.Input[float]: + """ + A date range value for the date filter. + """ + return pulumi.get(self, "value") + + @value.setter + def value(self, value: pulumi.Input[float]): + pulumi.set(self, "value", value) + + +@pulumi.input_type +class InsightIpFilterArgs: + def __init__(__self__, *, + cidr: pulumi.Input[str]): + """ + The IP filter for querying findings. + :param pulumi.Input[str] cidr: A finding's CIDR value. + """ + pulumi.set(__self__, "cidr", cidr) + + @property + @pulumi.getter + def cidr(self) -> pulumi.Input[str]: + """ + A finding's CIDR value. + """ + return pulumi.get(self, "cidr") + + @cidr.setter + def cidr(self, value: pulumi.Input[str]): + pulumi.set(self, "cidr", value) + + +@pulumi.input_type +class InsightKeywordFilterArgs: + def __init__(__self__, *, + value: pulumi.Input[str]): + """ + A keyword filter for querying findings. + :param pulumi.Input[str] value: A value for the keyword. + """ + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def value(self) -> pulumi.Input[str]: + """ + A value for the keyword. + """ + return pulumi.get(self, "value") + + @value.setter + def value(self, value: pulumi.Input[str]): + pulumi.set(self, "value", value) + + +@pulumi.input_type +class InsightMapFilterArgs: + def __init__(__self__, *, + comparison: pulumi.Input['InsightMapFilterComparison'], + key: pulumi.Input[str], + value: pulumi.Input[str]): + """ + A map filter for filtering AWS Security Hub findings. + :param pulumi.Input['InsightMapFilterComparison'] comparison: The condition to apply to the key value when filtering Security Hub findings with a map filter. + """ + pulumi.set(__self__, "comparison", comparison) + pulumi.set(__self__, "key", key) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def comparison(self) -> pulumi.Input['InsightMapFilterComparison']: + """ + The condition to apply to the key value when filtering Security Hub findings with a map filter. + """ + return pulumi.get(self, "comparison") + + @comparison.setter + def comparison(self, value: pulumi.Input['InsightMapFilterComparison']): + pulumi.set(self, "comparison", value) + + @property + @pulumi.getter + def key(self) -> pulumi.Input[str]: + return pulumi.get(self, "key") + + @key.setter + def key(self, value: pulumi.Input[str]): + pulumi.set(self, "key", value) + + @property + @pulumi.getter + def value(self) -> pulumi.Input[str]: + return pulumi.get(self, "value") + + @value.setter + def value(self, value: pulumi.Input[str]): + pulumi.set(self, "value", value) + + +@pulumi.input_type +class InsightNumberFilterArgs: + def __init__(__self__, *, + eq: Optional[pulumi.Input[float]] = None, + gte: Optional[pulumi.Input[float]] = None, + lte: Optional[pulumi.Input[float]] = None): + """ + A number filter for querying findings. + :param pulumi.Input[float] eq: The equal-to condition to be applied to a single field when querying for findings. + :param pulumi.Input[float] gte: The greater-than-equal condition to be applied to a single field when querying for findings. + :param pulumi.Input[float] lte: The less-than-equal condition to be applied to a single field when querying for findings. + """ + if eq is not None: + pulumi.set(__self__, "eq", eq) + if gte is not None: + pulumi.set(__self__, "gte", gte) + if lte is not None: + pulumi.set(__self__, "lte", lte) + + @property + @pulumi.getter + def eq(self) -> Optional[pulumi.Input[float]]: + """ + The equal-to condition to be applied to a single field when querying for findings. + """ + return pulumi.get(self, "eq") + + @eq.setter + def eq(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "eq", value) + + @property + @pulumi.getter + def gte(self) -> Optional[pulumi.Input[float]]: + """ + The greater-than-equal condition to be applied to a single field when querying for findings. + """ + return pulumi.get(self, "gte") + + @gte.setter + def gte(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "gte", value) + + @property + @pulumi.getter + def lte(self) -> Optional[pulumi.Input[float]]: + """ + The less-than-equal condition to be applied to a single field when querying for findings. + """ + return pulumi.get(self, "lte") + + @lte.setter + def lte(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "lte", value) + + +@pulumi.input_type +class InsightStringFilterArgs: + def __init__(__self__, *, + comparison: pulumi.Input['InsightStringFilterComparison'], + value: pulumi.Input[str]): + """ + A string filter for filtering AWS Security Hub findings. + """ + pulumi.set(__self__, "comparison", comparison) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def comparison(self) -> pulumi.Input['InsightStringFilterComparison']: + return pulumi.get(self, "comparison") + + @comparison.setter + def comparison(self, value: pulumi.Input['InsightStringFilterComparison']): + pulumi.set(self, "comparison", value) + + @property + @pulumi.getter + def value(self) -> pulumi.Input[str]: + return pulumi.get(self, "value") + + @value.setter + def value(self, value: pulumi.Input[str]): + pulumi.set(self, "value", value) + + @pulumi.input_type class StandardsControlArgs: def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws_native/securityhub/delegated_admin.py b/sdk/python/pulumi_aws_native/securityhub/delegated_admin.py new file mode 100644 index 0000000000..f86f38a6bc --- /dev/null +++ b/sdk/python/pulumi_aws_native/securityhub/delegated_admin.py @@ -0,0 +1,143 @@ +# 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__ = ['DelegatedAdminArgs', 'DelegatedAdmin'] + +@pulumi.input_type +class DelegatedAdminArgs: + def __init__(__self__, *, + admin_account_id: pulumi.Input[str]): + """ + The set of arguments for constructing a DelegatedAdmin resource. + :param pulumi.Input[str] admin_account_id: The Amazon Web Services account identifier of the account to designate as the Security Hub administrator account + """ + pulumi.set(__self__, "admin_account_id", admin_account_id) + + @property + @pulumi.getter(name="adminAccountId") + def admin_account_id(self) -> pulumi.Input[str]: + """ + The Amazon Web Services account identifier of the account to designate as the Security Hub administrator account + """ + return pulumi.get(self, "admin_account_id") + + @admin_account_id.setter + def admin_account_id(self, value: pulumi.Input[str]): + pulumi.set(self, "admin_account_id", value) + + +class DelegatedAdmin(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + admin_account_id: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + The AWS::SecurityHub::DelegatedAdmin resource represents the AWS Security Hub delegated admin account in your organization. One delegated admin resource is allowed to create for the organization in each region in which you configure the AdminAccountId. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] admin_account_id: The Amazon Web Services account identifier of the account to designate as the Security Hub administrator account + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: DelegatedAdminArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + The AWS::SecurityHub::DelegatedAdmin resource represents the AWS Security Hub delegated admin account in your organization. One delegated admin resource is allowed to create for the organization in each region in which you configure the AdminAccountId. + + :param str resource_name: The name of the resource. + :param DelegatedAdminArgs 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(DelegatedAdminArgs, 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, + admin_account_id: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = DelegatedAdminArgs.__new__(DelegatedAdminArgs) + + if admin_account_id is None and not opts.urn: + raise TypeError("Missing required property 'admin_account_id'") + __props__.__dict__["admin_account_id"] = admin_account_id + __props__.__dict__["delegated_admin_identifier"] = None + __props__.__dict__["status"] = None + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["adminAccountId"]) + opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) + super(DelegatedAdmin, __self__).__init__( + 'aws-native:securityhub:DelegatedAdmin', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'DelegatedAdmin': + """ + Get an existing DelegatedAdmin 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__ = DelegatedAdminArgs.__new__(DelegatedAdminArgs) + + __props__.__dict__["admin_account_id"] = None + __props__.__dict__["delegated_admin_identifier"] = None + __props__.__dict__["status"] = None + return DelegatedAdmin(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="adminAccountId") + def admin_account_id(self) -> pulumi.Output[str]: + """ + The Amazon Web Services account identifier of the account to designate as the Security Hub administrator account + """ + return pulumi.get(self, "admin_account_id") + + @property + @pulumi.getter(name="delegatedAdminIdentifier") + def delegated_admin_identifier(self) -> pulumi.Output[str]: + """ + The identifier of the DelegatedAdmin being created and assigned as the unique identifier + """ + return pulumi.get(self, "delegated_admin_identifier") + + @property + @pulumi.getter + def status(self) -> pulumi.Output['DelegatedAdminStatus']: + """ + The current status of the Security Hub administrator account. Indicates whether the account is currently enabled as a Security Hub administrator + """ + return pulumi.get(self, "status") + diff --git a/sdk/python/pulumi_aws_native/securityhub/get_delegated_admin.py b/sdk/python/pulumi_aws_native/securityhub/get_delegated_admin.py new file mode 100644 index 0000000000..3a94889da4 --- /dev/null +++ b/sdk/python/pulumi_aws_native/securityhub/get_delegated_admin.py @@ -0,0 +1,84 @@ +# 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__ = [ + 'GetDelegatedAdminResult', + 'AwaitableGetDelegatedAdminResult', + 'get_delegated_admin', + 'get_delegated_admin_output', +] + +@pulumi.output_type +class GetDelegatedAdminResult: + def __init__(__self__, delegated_admin_identifier=None, status=None): + if delegated_admin_identifier and not isinstance(delegated_admin_identifier, str): + raise TypeError("Expected argument 'delegated_admin_identifier' to be a str") + pulumi.set(__self__, "delegated_admin_identifier", delegated_admin_identifier) + if status and not isinstance(status, str): + raise TypeError("Expected argument 'status' to be a str") + pulumi.set(__self__, "status", status) + + @property + @pulumi.getter(name="delegatedAdminIdentifier") + def delegated_admin_identifier(self) -> Optional[str]: + """ + The identifier of the DelegatedAdmin being created and assigned as the unique identifier + """ + return pulumi.get(self, "delegated_admin_identifier") + + @property + @pulumi.getter + def status(self) -> Optional['DelegatedAdminStatus']: + """ + The current status of the Security Hub administrator account. Indicates whether the account is currently enabled as a Security Hub administrator + """ + return pulumi.get(self, "status") + + +class AwaitableGetDelegatedAdminResult(GetDelegatedAdminResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetDelegatedAdminResult( + delegated_admin_identifier=self.delegated_admin_identifier, + status=self.status) + + +def get_delegated_admin(delegated_admin_identifier: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetDelegatedAdminResult: + """ + The AWS::SecurityHub::DelegatedAdmin resource represents the AWS Security Hub delegated admin account in your organization. One delegated admin resource is allowed to create for the organization in each region in which you configure the AdminAccountId. + + + :param str delegated_admin_identifier: The identifier of the DelegatedAdmin being created and assigned as the unique identifier + """ + __args__ = dict() + __args__['delegatedAdminIdentifier'] = delegated_admin_identifier + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:securityhub:getDelegatedAdmin', __args__, opts=opts, typ=GetDelegatedAdminResult).value + + return AwaitableGetDelegatedAdminResult( + delegated_admin_identifier=pulumi.get(__ret__, 'delegated_admin_identifier'), + status=pulumi.get(__ret__, 'status')) + + +@_utilities.lift_output_func(get_delegated_admin) +def get_delegated_admin_output(delegated_admin_identifier: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetDelegatedAdminResult]: + """ + The AWS::SecurityHub::DelegatedAdmin resource represents the AWS Security Hub delegated admin account in your organization. One delegated admin resource is allowed to create for the organization in each region in which you configure the AdminAccountId. + + + :param str delegated_admin_identifier: The identifier of the DelegatedAdmin being created and assigned as the unique identifier + """ + ... diff --git a/sdk/python/pulumi_aws_native/securityhub/get_insight.py b/sdk/python/pulumi_aws_native/securityhub/get_insight.py new file mode 100644 index 0000000000..19a16e0413 --- /dev/null +++ b/sdk/python/pulumi_aws_native/securityhub/get_insight.py @@ -0,0 +1,111 @@ +# 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__ = [ + 'GetInsightResult', + 'AwaitableGetInsightResult', + 'get_insight', + 'get_insight_output', +] + +@pulumi.output_type +class GetInsightResult: + def __init__(__self__, filters=None, group_by_attribute=None, insight_arn=None, name=None): + if filters and not isinstance(filters, dict): + raise TypeError("Expected argument 'filters' to be a dict") + pulumi.set(__self__, "filters", filters) + if group_by_attribute and not isinstance(group_by_attribute, str): + raise TypeError("Expected argument 'group_by_attribute' to be a str") + pulumi.set(__self__, "group_by_attribute", group_by_attribute) + if insight_arn and not isinstance(insight_arn, str): + raise TypeError("Expected argument 'insight_arn' to be a str") + pulumi.set(__self__, "insight_arn", insight_arn) + if name and not isinstance(name, str): + raise TypeError("Expected argument 'name' to be a str") + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter + def filters(self) -> Optional['outputs.InsightAwsSecurityFindingFilters']: + """ + One or more attributes used to filter the findings included in the insight + """ + return pulumi.get(self, "filters") + + @property + @pulumi.getter(name="groupByAttribute") + def group_by_attribute(self) -> Optional[str]: + """ + The grouping attribute for the insight's findings + """ + return pulumi.get(self, "group_by_attribute") + + @property + @pulumi.getter(name="insightArn") + def insight_arn(self) -> Optional[str]: + """ + The ARN of a Security Hub insight + """ + return pulumi.get(self, "insight_arn") + + @property + @pulumi.getter + def name(self) -> Optional[str]: + """ + The name of a Security Hub insight + """ + return pulumi.get(self, "name") + + +class AwaitableGetInsightResult(GetInsightResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetInsightResult( + filters=self.filters, + group_by_attribute=self.group_by_attribute, + insight_arn=self.insight_arn, + name=self.name) + + +def get_insight(insight_arn: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetInsightResult: + """ + The AWS::SecurityHub::Insight resource represents the AWS Security Hub Insight in your account. An AWS Security Hub insight is a collection of related findings. + + + :param str insight_arn: The ARN of a Security Hub insight + """ + __args__ = dict() + __args__['insightArn'] = insight_arn + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:securityhub:getInsight', __args__, opts=opts, typ=GetInsightResult).value + + return AwaitableGetInsightResult( + filters=pulumi.get(__ret__, 'filters'), + group_by_attribute=pulumi.get(__ret__, 'group_by_attribute'), + insight_arn=pulumi.get(__ret__, 'insight_arn'), + name=pulumi.get(__ret__, 'name')) + + +@_utilities.lift_output_func(get_insight) +def get_insight_output(insight_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetInsightResult]: + """ + The AWS::SecurityHub::Insight resource represents the AWS Security Hub Insight in your account. An AWS Security Hub insight is a collection of related findings. + + + :param str insight_arn: The ARN of a Security Hub insight + """ + ... diff --git a/sdk/python/pulumi_aws_native/securityhub/get_product_subscription.py b/sdk/python/pulumi_aws_native/securityhub/get_product_subscription.py new file mode 100644 index 0000000000..34fce9e13d --- /dev/null +++ b/sdk/python/pulumi_aws_native/securityhub/get_product_subscription.py @@ -0,0 +1,70 @@ +# 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__ = [ + 'GetProductSubscriptionResult', + 'AwaitableGetProductSubscriptionResult', + 'get_product_subscription', + 'get_product_subscription_output', +] + +@pulumi.output_type +class GetProductSubscriptionResult: + def __init__(__self__, product_subscription_arn=None): + if product_subscription_arn and not isinstance(product_subscription_arn, str): + raise TypeError("Expected argument 'product_subscription_arn' to be a str") + pulumi.set(__self__, "product_subscription_arn", product_subscription_arn) + + @property + @pulumi.getter(name="productSubscriptionArn") + def product_subscription_arn(self) -> Optional[str]: + """ + The ARN of the product subscription for the account + """ + return pulumi.get(self, "product_subscription_arn") + + +class AwaitableGetProductSubscriptionResult(GetProductSubscriptionResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetProductSubscriptionResult( + product_subscription_arn=self.product_subscription_arn) + + +def get_product_subscription(product_subscription_arn: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetProductSubscriptionResult: + """ + The AWS::SecurityHub::ProductSubscription resource represents a subscription to a service that is allowed to generate findings for your Security Hub account. One product subscription resource is created for each product enabled. + + + :param str product_subscription_arn: The ARN of the product subscription for the account + """ + __args__ = dict() + __args__['productSubscriptionArn'] = product_subscription_arn + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:securityhub:getProductSubscription', __args__, opts=opts, typ=GetProductSubscriptionResult).value + + return AwaitableGetProductSubscriptionResult( + product_subscription_arn=pulumi.get(__ret__, 'product_subscription_arn')) + + +@_utilities.lift_output_func(get_product_subscription) +def get_product_subscription_output(product_subscription_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetProductSubscriptionResult]: + """ + The AWS::SecurityHub::ProductSubscription resource represents a subscription to a service that is allowed to generate findings for your Security Hub account. One product subscription resource is created for each product enabled. + + + :param str product_subscription_arn: The ARN of the product subscription for the account + """ + ... diff --git a/sdk/python/pulumi_aws_native/securityhub/insight.py b/sdk/python/pulumi_aws_native/securityhub/insight.py new file mode 100644 index 0000000000..9565fde1bf --- /dev/null +++ b/sdk/python/pulumi_aws_native/securityhub/insight.py @@ -0,0 +1,192 @@ +# 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__ = ['InsightArgs', 'Insight'] + +@pulumi.input_type +class InsightArgs: + def __init__(__self__, *, + filters: pulumi.Input['InsightAwsSecurityFindingFiltersArgs'], + group_by_attribute: pulumi.Input[str], + name: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a Insight resource. + :param pulumi.Input['InsightAwsSecurityFindingFiltersArgs'] filters: One or more attributes used to filter the findings included in the insight + :param pulumi.Input[str] group_by_attribute: The grouping attribute for the insight's findings + :param pulumi.Input[str] name: The name of a Security Hub insight + """ + pulumi.set(__self__, "filters", filters) + pulumi.set(__self__, "group_by_attribute", group_by_attribute) + if name is not None: + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter + def filters(self) -> pulumi.Input['InsightAwsSecurityFindingFiltersArgs']: + """ + One or more attributes used to filter the findings included in the insight + """ + return pulumi.get(self, "filters") + + @filters.setter + def filters(self, value: pulumi.Input['InsightAwsSecurityFindingFiltersArgs']): + pulumi.set(self, "filters", value) + + @property + @pulumi.getter(name="groupByAttribute") + def group_by_attribute(self) -> pulumi.Input[str]: + """ + The grouping attribute for the insight's findings + """ + return pulumi.get(self, "group_by_attribute") + + @group_by_attribute.setter + def group_by_attribute(self, value: pulumi.Input[str]): + pulumi.set(self, "group_by_attribute", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of a Security Hub insight + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + +class Insight(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + filters: Optional[pulumi.Input[pulumi.InputType['InsightAwsSecurityFindingFiltersArgs']]] = None, + group_by_attribute: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + The AWS::SecurityHub::Insight resource represents the AWS Security Hub Insight in your account. An AWS Security Hub insight is a collection of related findings. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[pulumi.InputType['InsightAwsSecurityFindingFiltersArgs']] filters: One or more attributes used to filter the findings included in the insight + :param pulumi.Input[str] group_by_attribute: The grouping attribute for the insight's findings + :param pulumi.Input[str] name: The name of a Security Hub insight + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: InsightArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + The AWS::SecurityHub::Insight resource represents the AWS Security Hub Insight in your account. An AWS Security Hub insight is a collection of related findings. + + :param str resource_name: The name of the resource. + :param InsightArgs 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(InsightArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + filters: Optional[pulumi.Input[pulumi.InputType['InsightAwsSecurityFindingFiltersArgs']]] = None, + group_by_attribute: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = InsightArgs.__new__(InsightArgs) + + if filters is None and not opts.urn: + raise TypeError("Missing required property 'filters'") + __props__.__dict__["filters"] = filters + if group_by_attribute is None and not opts.urn: + raise TypeError("Missing required property 'group_by_attribute'") + __props__.__dict__["group_by_attribute"] = group_by_attribute + __props__.__dict__["name"] = name + __props__.__dict__["insight_arn"] = None + super(Insight, __self__).__init__( + 'aws-native:securityhub:Insight', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'Insight': + """ + Get an existing Insight 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__ = InsightArgs.__new__(InsightArgs) + + __props__.__dict__["filters"] = None + __props__.__dict__["group_by_attribute"] = None + __props__.__dict__["insight_arn"] = None + __props__.__dict__["name"] = None + return Insight(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def filters(self) -> pulumi.Output['outputs.InsightAwsSecurityFindingFilters']: + """ + One or more attributes used to filter the findings included in the insight + """ + return pulumi.get(self, "filters") + + @property + @pulumi.getter(name="groupByAttribute") + def group_by_attribute(self) -> pulumi.Output[str]: + """ + The grouping attribute for the insight's findings + """ + return pulumi.get(self, "group_by_attribute") + + @property + @pulumi.getter(name="insightArn") + def insight_arn(self) -> pulumi.Output[str]: + """ + The ARN of a Security Hub insight + """ + return pulumi.get(self, "insight_arn") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + The name of a Security Hub insight + """ + return pulumi.get(self, "name") + diff --git a/sdk/python/pulumi_aws_native/securityhub/outputs.py b/sdk/python/pulumi_aws_native/securityhub/outputs.py index a40cda1cc7..cd50792ba0 100644 --- a/sdk/python/pulumi_aws_native/securityhub/outputs.py +++ b/sdk/python/pulumi_aws_native/securityhub/outputs.py @@ -24,6 +24,15 @@ 'AutomationRulesAction', 'AutomationRulesFindingFieldsUpdate', 'AutomationRulesFindingFilters', + 'InsightAwsSecurityFindingFilters', + 'InsightBooleanFilter', + 'InsightDateFilter', + 'InsightDateRange', + 'InsightIpFilter', + 'InsightKeywordFilter', + 'InsightMapFilter', + 'InsightNumberFilter', + 'InsightStringFilter', 'StandardsControl', ] @@ -803,6 +812,1729 @@ def workflow_status(self) -> Optional[Sequence['outputs.AutomationRuleStringFilt return pulumi.get(self, "workflow_status") +@pulumi.output_type +class InsightAwsSecurityFindingFilters(dict): + """ + A collection of filters that are applied to all active findings aggregated by AWS Security Hub. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "awsAccountId": + suggest = "aws_account_id" + elif key == "awsAccountName": + suggest = "aws_account_name" + elif key == "companyName": + suggest = "company_name" + elif key == "complianceAssociatedStandardsId": + suggest = "compliance_associated_standards_id" + elif key == "complianceSecurityControlId": + suggest = "compliance_security_control_id" + elif key == "complianceSecurityControlParametersName": + suggest = "compliance_security_control_parameters_name" + elif key == "complianceSecurityControlParametersValue": + suggest = "compliance_security_control_parameters_value" + elif key == "complianceStatus": + suggest = "compliance_status" + elif key == "createdAt": + suggest = "created_at" + elif key == "findingProviderFieldsConfidence": + suggest = "finding_provider_fields_confidence" + elif key == "findingProviderFieldsCriticality": + suggest = "finding_provider_fields_criticality" + elif key == "findingProviderFieldsRelatedFindingsId": + suggest = "finding_provider_fields_related_findings_id" + elif key == "findingProviderFieldsRelatedFindingsProductArn": + suggest = "finding_provider_fields_related_findings_product_arn" + elif key == "findingProviderFieldsSeverityLabel": + suggest = "finding_provider_fields_severity_label" + elif key == "findingProviderFieldsSeverityOriginal": + suggest = "finding_provider_fields_severity_original" + elif key == "findingProviderFieldsTypes": + suggest = "finding_provider_fields_types" + elif key == "firstObservedAt": + suggest = "first_observed_at" + elif key == "generatorId": + suggest = "generator_id" + elif key == "lastObservedAt": + suggest = "last_observed_at" + elif key == "malwareName": + suggest = "malware_name" + elif key == "malwarePath": + suggest = "malware_path" + elif key == "malwareState": + suggest = "malware_state" + elif key == "malwareType": + suggest = "malware_type" + elif key == "networkDestinationDomain": + suggest = "network_destination_domain" + elif key == "networkDestinationIpV4": + suggest = "network_destination_ip_v4" + elif key == "networkDestinationIpV6": + suggest = "network_destination_ip_v6" + elif key == "networkDestinationPort": + suggest = "network_destination_port" + elif key == "networkDirection": + suggest = "network_direction" + elif key == "networkProtocol": + suggest = "network_protocol" + elif key == "networkSourceDomain": + suggest = "network_source_domain" + elif key == "networkSourceIpV4": + suggest = "network_source_ip_v4" + elif key == "networkSourceIpV6": + suggest = "network_source_ip_v6" + elif key == "networkSourceMac": + suggest = "network_source_mac" + elif key == "networkSourcePort": + suggest = "network_source_port" + elif key == "noteText": + suggest = "note_text" + elif key == "noteUpdatedAt": + suggest = "note_updated_at" + elif key == "noteUpdatedBy": + suggest = "note_updated_by" + elif key == "processLaunchedAt": + suggest = "process_launched_at" + elif key == "processName": + suggest = "process_name" + elif key == "processParentPid": + suggest = "process_parent_pid" + elif key == "processPath": + suggest = "process_path" + elif key == "processPid": + suggest = "process_pid" + elif key == "processTerminatedAt": + suggest = "process_terminated_at" + elif key == "productArn": + suggest = "product_arn" + elif key == "productFields": + suggest = "product_fields" + elif key == "productName": + suggest = "product_name" + elif key == "recommendationText": + suggest = "recommendation_text" + elif key == "recordState": + suggest = "record_state" + elif key == "relatedFindingsId": + suggest = "related_findings_id" + elif key == "relatedFindingsProductArn": + suggest = "related_findings_product_arn" + elif key == "resourceApplicationArn": + suggest = "resource_application_arn" + elif key == "resourceApplicationName": + suggest = "resource_application_name" + elif key == "resourceAwsEc2InstanceIamInstanceProfileArn": + suggest = "resource_aws_ec2_instance_iam_instance_profile_arn" + elif key == "resourceAwsEc2InstanceImageId": + suggest = "resource_aws_ec2_instance_image_id" + elif key == "resourceAwsEc2InstanceIpV4Addresses": + suggest = "resource_aws_ec2_instance_ip_v4_addresses" + elif key == "resourceAwsEc2InstanceIpV6Addresses": + suggest = "resource_aws_ec2_instance_ip_v6_addresses" + elif key == "resourceAwsEc2InstanceKeyName": + suggest = "resource_aws_ec2_instance_key_name" + elif key == "resourceAwsEc2InstanceLaunchedAt": + suggest = "resource_aws_ec2_instance_launched_at" + elif key == "resourceAwsEc2InstanceSubnetId": + suggest = "resource_aws_ec2_instance_subnet_id" + elif key == "resourceAwsEc2InstanceType": + suggest = "resource_aws_ec2_instance_type" + elif key == "resourceAwsEc2InstanceVpcId": + suggest = "resource_aws_ec2_instance_vpc_id" + elif key == "resourceAwsIamAccessKeyCreatedAt": + suggest = "resource_aws_iam_access_key_created_at" + elif key == "resourceAwsIamAccessKeyPrincipalName": + suggest = "resource_aws_iam_access_key_principal_name" + elif key == "resourceAwsIamAccessKeyStatus": + suggest = "resource_aws_iam_access_key_status" + elif key == "resourceAwsIamAccessKeyUserName": + suggest = "resource_aws_iam_access_key_user_name" + elif key == "resourceAwsIamUserUserName": + suggest = "resource_aws_iam_user_user_name" + elif key == "resourceAwsS3BucketOwnerId": + suggest = "resource_aws_s3_bucket_owner_id" + elif key == "resourceAwsS3BucketOwnerName": + suggest = "resource_aws_s3_bucket_owner_name" + elif key == "resourceContainerImageId": + suggest = "resource_container_image_id" + elif key == "resourceContainerImageName": + suggest = "resource_container_image_name" + elif key == "resourceContainerLaunchedAt": + suggest = "resource_container_launched_at" + elif key == "resourceContainerName": + suggest = "resource_container_name" + elif key == "resourceDetailsOther": + suggest = "resource_details_other" + elif key == "resourceId": + suggest = "resource_id" + elif key == "resourcePartition": + suggest = "resource_partition" + elif key == "resourceRegion": + suggest = "resource_region" + elif key == "resourceTags": + suggest = "resource_tags" + elif key == "resourceType": + suggest = "resource_type" + elif key == "severityLabel": + suggest = "severity_label" + elif key == "severityNormalized": + suggest = "severity_normalized" + elif key == "severityProduct": + suggest = "severity_product" + elif key == "sourceUrl": + suggest = "source_url" + elif key == "threatIntelIndicatorCategory": + suggest = "threat_intel_indicator_category" + elif key == "threatIntelIndicatorLastObservedAt": + suggest = "threat_intel_indicator_last_observed_at" + elif key == "threatIntelIndicatorSource": + suggest = "threat_intel_indicator_source" + elif key == "threatIntelIndicatorSourceUrl": + suggest = "threat_intel_indicator_source_url" + elif key == "threatIntelIndicatorType": + suggest = "threat_intel_indicator_type" + elif key == "threatIntelIndicatorValue": + suggest = "threat_intel_indicator_value" + elif key == "updatedAt": + suggest = "updated_at" + elif key == "userDefinedFields": + suggest = "user_defined_fields" + elif key == "verificationState": + suggest = "verification_state" + elif key == "vulnerabilitiesExploitAvailable": + suggest = "vulnerabilities_exploit_available" + elif key == "vulnerabilitiesFixAvailable": + suggest = "vulnerabilities_fix_available" + elif key == "workflowState": + suggest = "workflow_state" + elif key == "workflowStatus": + suggest = "workflow_status" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in InsightAwsSecurityFindingFilters. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + InsightAwsSecurityFindingFilters.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + InsightAwsSecurityFindingFilters.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + aws_account_id: Optional[Sequence['outputs.InsightStringFilter']] = None, + aws_account_name: Optional[Sequence['outputs.InsightStringFilter']] = None, + company_name: Optional[Sequence['outputs.InsightStringFilter']] = None, + compliance_associated_standards_id: Optional[Sequence['outputs.InsightStringFilter']] = None, + compliance_security_control_id: Optional[Sequence['outputs.InsightStringFilter']] = None, + compliance_security_control_parameters_name: Optional[Sequence['outputs.InsightStringFilter']] = None, + compliance_security_control_parameters_value: Optional[Sequence['outputs.InsightStringFilter']] = None, + compliance_status: Optional[Sequence['outputs.InsightStringFilter']] = None, + confidence: Optional[Sequence['outputs.InsightNumberFilter']] = None, + created_at: Optional[Sequence['outputs.InsightDateFilter']] = None, + criticality: Optional[Sequence['outputs.InsightNumberFilter']] = None, + description: Optional[Sequence['outputs.InsightStringFilter']] = None, + finding_provider_fields_confidence: Optional[Sequence['outputs.InsightNumberFilter']] = None, + finding_provider_fields_criticality: Optional[Sequence['outputs.InsightNumberFilter']] = None, + finding_provider_fields_related_findings_id: Optional[Sequence['outputs.InsightStringFilter']] = None, + finding_provider_fields_related_findings_product_arn: Optional[Sequence['outputs.InsightStringFilter']] = None, + finding_provider_fields_severity_label: Optional[Sequence['outputs.InsightStringFilter']] = None, + finding_provider_fields_severity_original: Optional[Sequence['outputs.InsightStringFilter']] = None, + finding_provider_fields_types: Optional[Sequence['outputs.InsightStringFilter']] = None, + first_observed_at: Optional[Sequence['outputs.InsightDateFilter']] = None, + generator_id: Optional[Sequence['outputs.InsightStringFilter']] = None, + id: Optional[Sequence['outputs.InsightStringFilter']] = None, + keyword: Optional[Sequence['outputs.InsightKeywordFilter']] = None, + last_observed_at: Optional[Sequence['outputs.InsightDateFilter']] = None, + malware_name: Optional[Sequence['outputs.InsightStringFilter']] = None, + malware_path: Optional[Sequence['outputs.InsightStringFilter']] = None, + malware_state: Optional[Sequence['outputs.InsightStringFilter']] = None, + malware_type: Optional[Sequence['outputs.InsightStringFilter']] = None, + network_destination_domain: Optional[Sequence['outputs.InsightStringFilter']] = None, + network_destination_ip_v4: Optional[Sequence['outputs.InsightIpFilter']] = None, + network_destination_ip_v6: Optional[Sequence['outputs.InsightIpFilter']] = None, + network_destination_port: Optional[Sequence['outputs.InsightNumberFilter']] = None, + network_direction: Optional[Sequence['outputs.InsightStringFilter']] = None, + network_protocol: Optional[Sequence['outputs.InsightStringFilter']] = None, + network_source_domain: Optional[Sequence['outputs.InsightStringFilter']] = None, + network_source_ip_v4: Optional[Sequence['outputs.InsightIpFilter']] = None, + network_source_ip_v6: Optional[Sequence['outputs.InsightIpFilter']] = None, + network_source_mac: Optional[Sequence['outputs.InsightStringFilter']] = None, + network_source_port: Optional[Sequence['outputs.InsightNumberFilter']] = None, + note_text: Optional[Sequence['outputs.InsightStringFilter']] = None, + note_updated_at: Optional[Sequence['outputs.InsightDateFilter']] = None, + note_updated_by: Optional[Sequence['outputs.InsightStringFilter']] = None, + process_launched_at: Optional[Sequence['outputs.InsightDateFilter']] = None, + process_name: Optional[Sequence['outputs.InsightStringFilter']] = None, + process_parent_pid: Optional[Sequence['outputs.InsightNumberFilter']] = None, + process_path: Optional[Sequence['outputs.InsightStringFilter']] = None, + process_pid: Optional[Sequence['outputs.InsightNumberFilter']] = None, + process_terminated_at: Optional[Sequence['outputs.InsightDateFilter']] = None, + product_arn: Optional[Sequence['outputs.InsightStringFilter']] = None, + product_fields: Optional[Sequence['outputs.InsightMapFilter']] = None, + product_name: Optional[Sequence['outputs.InsightStringFilter']] = None, + recommendation_text: Optional[Sequence['outputs.InsightStringFilter']] = None, + record_state: Optional[Sequence['outputs.InsightStringFilter']] = None, + region: Optional[Sequence['outputs.InsightStringFilter']] = None, + related_findings_id: Optional[Sequence['outputs.InsightStringFilter']] = None, + related_findings_product_arn: Optional[Sequence['outputs.InsightStringFilter']] = None, + resource_application_arn: Optional[Sequence['outputs.InsightStringFilter']] = None, + resource_application_name: Optional[Sequence['outputs.InsightStringFilter']] = None, + resource_aws_ec2_instance_iam_instance_profile_arn: Optional[Sequence['outputs.InsightStringFilter']] = None, + resource_aws_ec2_instance_image_id: Optional[Sequence['outputs.InsightStringFilter']] = None, + resource_aws_ec2_instance_ip_v4_addresses: Optional[Sequence['outputs.InsightIpFilter']] = None, + resource_aws_ec2_instance_ip_v6_addresses: Optional[Sequence['outputs.InsightIpFilter']] = None, + resource_aws_ec2_instance_key_name: Optional[Sequence['outputs.InsightStringFilter']] = None, + resource_aws_ec2_instance_launched_at: Optional[Sequence['outputs.InsightDateFilter']] = None, + resource_aws_ec2_instance_subnet_id: Optional[Sequence['outputs.InsightStringFilter']] = None, + resource_aws_ec2_instance_type: Optional[Sequence['outputs.InsightStringFilter']] = None, + resource_aws_ec2_instance_vpc_id: Optional[Sequence['outputs.InsightStringFilter']] = None, + resource_aws_iam_access_key_created_at: Optional[Sequence['outputs.InsightDateFilter']] = None, + resource_aws_iam_access_key_principal_name: Optional[Sequence['outputs.InsightStringFilter']] = None, + resource_aws_iam_access_key_status: Optional[Sequence['outputs.InsightStringFilter']] = None, + resource_aws_iam_access_key_user_name: Optional[Sequence['outputs.InsightStringFilter']] = None, + resource_aws_iam_user_user_name: Optional[Sequence['outputs.InsightStringFilter']] = None, + resource_aws_s3_bucket_owner_id: Optional[Sequence['outputs.InsightStringFilter']] = None, + resource_aws_s3_bucket_owner_name: Optional[Sequence['outputs.InsightStringFilter']] = None, + resource_container_image_id: Optional[Sequence['outputs.InsightStringFilter']] = None, + resource_container_image_name: Optional[Sequence['outputs.InsightStringFilter']] = None, + resource_container_launched_at: Optional[Sequence['outputs.InsightDateFilter']] = None, + resource_container_name: Optional[Sequence['outputs.InsightStringFilter']] = None, + resource_details_other: Optional[Sequence['outputs.InsightMapFilter']] = None, + resource_id: Optional[Sequence['outputs.InsightStringFilter']] = None, + resource_partition: Optional[Sequence['outputs.InsightStringFilter']] = None, + resource_region: Optional[Sequence['outputs.InsightStringFilter']] = None, + resource_tags: Optional[Sequence['outputs.InsightMapFilter']] = None, + resource_type: Optional[Sequence['outputs.InsightStringFilter']] = None, + sample: Optional[Sequence['outputs.InsightBooleanFilter']] = None, + severity_label: Optional[Sequence['outputs.InsightStringFilter']] = None, + severity_normalized: Optional[Sequence['outputs.InsightNumberFilter']] = None, + severity_product: Optional[Sequence['outputs.InsightNumberFilter']] = None, + source_url: Optional[Sequence['outputs.InsightStringFilter']] = None, + threat_intel_indicator_category: Optional[Sequence['outputs.InsightStringFilter']] = None, + threat_intel_indicator_last_observed_at: Optional[Sequence['outputs.InsightDateFilter']] = None, + threat_intel_indicator_source: Optional[Sequence['outputs.InsightStringFilter']] = None, + threat_intel_indicator_source_url: Optional[Sequence['outputs.InsightStringFilter']] = None, + threat_intel_indicator_type: Optional[Sequence['outputs.InsightStringFilter']] = None, + threat_intel_indicator_value: Optional[Sequence['outputs.InsightStringFilter']] = None, + title: Optional[Sequence['outputs.InsightStringFilter']] = None, + type: Optional[Sequence['outputs.InsightStringFilter']] = None, + updated_at: Optional[Sequence['outputs.InsightDateFilter']] = None, + user_defined_fields: Optional[Sequence['outputs.InsightMapFilter']] = None, + verification_state: Optional[Sequence['outputs.InsightStringFilter']] = None, + vulnerabilities_exploit_available: Optional[Sequence['outputs.InsightStringFilter']] = None, + vulnerabilities_fix_available: Optional[Sequence['outputs.InsightStringFilter']] = None, + workflow_state: Optional[Sequence['outputs.InsightStringFilter']] = None, + workflow_status: Optional[Sequence['outputs.InsightStringFilter']] = None): + """ + A collection of filters that are applied to all active findings aggregated by AWS Security Hub. + :param Sequence['InsightStringFilter'] aws_account_id: The AWS account ID in which a finding is generated. + :param Sequence['InsightStringFilter'] aws_account_name: The name of the AWS account in which a finding is generated. + :param Sequence['InsightStringFilter'] company_name: The name of the findings provider (company) that owns the solution (product) that generates findings. + :param Sequence['InsightStringFilter'] compliance_associated_standards_id: The unique identifier of a standard in which a control is enabled. + :param Sequence['InsightStringFilter'] compliance_security_control_id: The unique identifier of a control across standards. + :param Sequence['InsightStringFilter'] compliance_security_control_parameters_name: The name of a security control parameter. + :param Sequence['InsightStringFilter'] compliance_security_control_parameters_value: The current value of a security control parameter. + :param Sequence['InsightStringFilter'] compliance_status: Exclusive to findings that are generated as the result of a check run against a specific rule in a supported standard. + :param Sequence['InsightNumberFilter'] confidence: A finding's confidence. + :param Sequence['InsightDateFilter'] created_at: An ISO8601-formatted timestamp that indicates when the security findings provider captured the potential security issue that a finding captured. + :param Sequence['InsightNumberFilter'] criticality: The level of importance assigned to the resources associated with the finding. + :param Sequence['InsightStringFilter'] description: A finding's description. + :param Sequence['InsightNumberFilter'] finding_provider_fields_confidence: The finding provider value for the finding confidence. + :param Sequence['InsightNumberFilter'] finding_provider_fields_criticality: The finding provider value for the level of importance assigned to the resources associated with the findings. + :param Sequence['InsightStringFilter'] finding_provider_fields_related_findings_id: The finding identifier of a related finding that is identified by the finding provider. + :param Sequence['InsightStringFilter'] finding_provider_fields_related_findings_product_arn: The ARN of the solution that generated a related finding that is identified by the finding provider. + :param Sequence['InsightStringFilter'] finding_provider_fields_severity_label: The finding provider value for the severity label. + :param Sequence['InsightStringFilter'] finding_provider_fields_severity_original: The finding provider's original value for the severity. + :param Sequence['InsightStringFilter'] finding_provider_fields_types: One or more finding types that the finding provider assigned to the finding. + :param Sequence['InsightDateFilter'] first_observed_at: An ISO8601-formatted timestamp that indicates when the security findings provider first observed the potential security issue that a finding captured. + :param Sequence['InsightStringFilter'] generator_id: The identifier for the solution-specific component (a discrete unit of logic) that generated a finding. + :param Sequence['InsightStringFilter'] id: The security findings provider-specific identifier for a finding. + :param Sequence['InsightKeywordFilter'] keyword: A keyword for a finding. + :param Sequence['InsightDateFilter'] last_observed_at: An ISO8601-formatted timestamp that indicates when the security findings provider most recently observed the potential security issue that a finding captured. + :param Sequence['InsightStringFilter'] malware_name: The name of the malware that was observed. + :param Sequence['InsightStringFilter'] malware_path: The filesystem path of the malware that was observed. + :param Sequence['InsightStringFilter'] malware_state: The state of the malware that was observed. + :param Sequence['InsightStringFilter'] malware_type: The type of the malware that was observed. + :param Sequence['InsightStringFilter'] network_destination_domain: The destination domain of network-related information about a finding. + :param Sequence['InsightIpFilter'] network_destination_ip_v4: The destination IPv4 address of network-related information about a finding. + :param Sequence['InsightIpFilter'] network_destination_ip_v6: The destination IPv6 address of network-related information about a finding. + :param Sequence['InsightNumberFilter'] network_destination_port: The destination port of network-related information about a finding. + :param Sequence['InsightStringFilter'] network_direction: Indicates the direction of network traffic associated with a finding. + :param Sequence['InsightStringFilter'] network_protocol: The protocol of network-related information about a finding. + :param Sequence['InsightStringFilter'] network_source_domain: The source domain of network-related information about a finding. + :param Sequence['InsightIpFilter'] network_source_ip_v4: The source IPv4 address of network-related information about a finding. + :param Sequence['InsightIpFilter'] network_source_ip_v6: The source IPv6 address of network-related information about a finding. + :param Sequence['InsightStringFilter'] network_source_mac: The source media access control (MAC) address of network-related information about a finding. + :param Sequence['InsightNumberFilter'] network_source_port: The source port of network-related information about a finding. + :param Sequence['InsightStringFilter'] note_text: The text of a note. + :param Sequence['InsightDateFilter'] note_updated_at: The timestamp of when the note was updated. + :param Sequence['InsightStringFilter'] note_updated_by: The principal that created a note. + :param Sequence['InsightDateFilter'] process_launched_at: A timestamp that identifies when the process was launched. + :param Sequence['InsightStringFilter'] process_name: The name of the process. + :param Sequence['InsightNumberFilter'] process_parent_pid: The parent process ID. + :param Sequence['InsightStringFilter'] process_path: The path to the process executable. + :param Sequence['InsightNumberFilter'] process_pid: The process ID. + :param Sequence['InsightDateFilter'] process_terminated_at: A timestamp that identifies when the process was terminated. + :param Sequence['InsightStringFilter'] product_arn: The ARN generated by Security Hub that uniquely identifies a third-party company (security findings provider) after this provider's product (solution that generates findings) is registered with Security Hub. + :param Sequence['InsightMapFilter'] product_fields: A data type where security findings providers can include additional solution-specific details that aren't part of the defined AwsSecurityFinding format. + :param Sequence['InsightStringFilter'] product_name: The name of the solution (product) that generates findings. + :param Sequence['InsightStringFilter'] recommendation_text: The recommendation of what to do about the issue described in a finding. + :param Sequence['InsightStringFilter'] record_state: The updated record state for the finding. + :param Sequence['InsightStringFilter'] region: The Region from which the finding was generated. + :param Sequence['InsightStringFilter'] related_findings_id: The solution-generated identifier for a related finding. + :param Sequence['InsightStringFilter'] related_findings_product_arn: The ARN of the solution that generated a related finding. + :param Sequence['InsightStringFilter'] resource_application_arn: The ARN of the application that is related to a finding. + :param Sequence['InsightStringFilter'] resource_application_name: The name of the application that is related to a finding. + :param Sequence['InsightStringFilter'] resource_aws_ec2_instance_iam_instance_profile_arn: The IAM profile ARN of the instance. + :param Sequence['InsightStringFilter'] resource_aws_ec2_instance_image_id: The Amazon Machine Image (AMI) ID of the instance. + :param Sequence['InsightIpFilter'] resource_aws_ec2_instance_ip_v4_addresses: The IPv4 addresses associated with the instance. + :param Sequence['InsightIpFilter'] resource_aws_ec2_instance_ip_v6_addresses: The IPv6 addresses associated with the instance. + :param Sequence['InsightStringFilter'] resource_aws_ec2_instance_key_name: The key name associated with the instance. + :param Sequence['InsightDateFilter'] resource_aws_ec2_instance_launched_at: The date and time the instance was launched. + :param Sequence['InsightStringFilter'] resource_aws_ec2_instance_subnet_id: The identifier of the subnet that the instance was launched in. + :param Sequence['InsightStringFilter'] resource_aws_ec2_instance_type: The instance type of the instance. + :param Sequence['InsightStringFilter'] resource_aws_ec2_instance_vpc_id: The identifier of the VPC that the instance was launched in. + :param Sequence['InsightDateFilter'] resource_aws_iam_access_key_created_at: The creation date/time of the IAM access key related to a finding. + :param Sequence['InsightStringFilter'] resource_aws_iam_access_key_principal_name: The name of the principal that is associated with an IAM access key. + :param Sequence['InsightStringFilter'] resource_aws_iam_access_key_status: The status of the IAM access key related to a finding. + :param Sequence['InsightStringFilter'] resource_aws_iam_access_key_user_name: The user associated with the IAM access key related to a finding. + :param Sequence['InsightStringFilter'] resource_aws_iam_user_user_name: The name of an IAM user. + :param Sequence['InsightStringFilter'] resource_aws_s3_bucket_owner_id: The canonical user ID of the owner of the S3 bucket. + :param Sequence['InsightStringFilter'] resource_aws_s3_bucket_owner_name: The display name of the owner of the S3 bucket. + :param Sequence['InsightStringFilter'] resource_container_image_id: The identifier of the image related to a finding. + :param Sequence['InsightStringFilter'] resource_container_image_name: The name of the image related to a finding. + :param Sequence['InsightDateFilter'] resource_container_launched_at: A timestamp that identifies when the container was started. + :param Sequence['InsightStringFilter'] resource_container_name: The name of the container related to a finding. + :param Sequence['InsightMapFilter'] resource_details_other: The details of a resource that doesn't have a specific subfield for the resource type defined. + :param Sequence['InsightStringFilter'] resource_id: The canonical identifier for the given resource type. + :param Sequence['InsightStringFilter'] resource_partition: The canonical AWS partition name that the Region is assigned to. + :param Sequence['InsightStringFilter'] resource_region: The canonical AWS external Region name where this resource is located. + :param Sequence['InsightMapFilter'] resource_tags: A list of AWS tags associated with a resource at the time the finding was processed. + :param Sequence['InsightStringFilter'] resource_type: Specifies the type of the resource that details are provided for. + :param Sequence['InsightBooleanFilter'] sample: Indicates whether or not sample findings are included in the filter results. + :param Sequence['InsightStringFilter'] severity_label: The label of a finding's severity. + :param Sequence['InsightNumberFilter'] severity_normalized: The normalized severity of a finding. + :param Sequence['InsightNumberFilter'] severity_product: The native severity as defined by the security findings provider's solution that generated the finding. + :param Sequence['InsightStringFilter'] source_url: A URL that links to a page about the current finding in the security findings provider's solution. + :param Sequence['InsightStringFilter'] threat_intel_indicator_category: The category of a threat intelligence indicator. + :param Sequence['InsightDateFilter'] threat_intel_indicator_last_observed_at: A timestamp that identifies the last observation of a threat intelligence indicator. + :param Sequence['InsightStringFilter'] threat_intel_indicator_source: The source of the threat intelligence. + :param Sequence['InsightStringFilter'] threat_intel_indicator_source_url: The URL for more details from the source of the threat intelligence. + :param Sequence['InsightStringFilter'] threat_intel_indicator_type: The type of a threat intelligence indicator. + :param Sequence['InsightStringFilter'] threat_intel_indicator_value: The value of a threat intelligence indicator. + :param Sequence['InsightStringFilter'] title: A finding's title. + :param Sequence['InsightStringFilter'] type: A finding type in the format of namespace/category/classifier that classifies a finding. + :param Sequence['InsightDateFilter'] updated_at: An ISO8601-formatted timestamp that indicates when the security findings provider last updated the finding record. + :param Sequence['InsightMapFilter'] user_defined_fields: A list of name/value string pairs associated with the finding. + :param Sequence['InsightStringFilter'] verification_state: The veracity of a finding. + :param Sequence['InsightStringFilter'] vulnerabilities_exploit_available: Indicates whether a software vulnerability in your environment has a known exploit. + :param Sequence['InsightStringFilter'] vulnerabilities_fix_available: Indicates whether a vulnerability is fixed in a newer version of the affected software packages. + :param Sequence['InsightStringFilter'] workflow_state: The workflow state of a finding. + :param Sequence['InsightStringFilter'] workflow_status: The status of the investigation into a finding. + """ + if aws_account_id is not None: + pulumi.set(__self__, "aws_account_id", aws_account_id) + if aws_account_name is not None: + pulumi.set(__self__, "aws_account_name", aws_account_name) + if company_name is not None: + pulumi.set(__self__, "company_name", company_name) + if compliance_associated_standards_id is not None: + pulumi.set(__self__, "compliance_associated_standards_id", compliance_associated_standards_id) + if compliance_security_control_id is not None: + pulumi.set(__self__, "compliance_security_control_id", compliance_security_control_id) + if compliance_security_control_parameters_name is not None: + pulumi.set(__self__, "compliance_security_control_parameters_name", compliance_security_control_parameters_name) + if compliance_security_control_parameters_value is not None: + pulumi.set(__self__, "compliance_security_control_parameters_value", compliance_security_control_parameters_value) + if compliance_status is not None: + pulumi.set(__self__, "compliance_status", compliance_status) + if confidence is not None: + pulumi.set(__self__, "confidence", confidence) + if created_at is not None: + pulumi.set(__self__, "created_at", created_at) + if criticality is not None: + pulumi.set(__self__, "criticality", criticality) + if description is not None: + pulumi.set(__self__, "description", description) + if finding_provider_fields_confidence is not None: + pulumi.set(__self__, "finding_provider_fields_confidence", finding_provider_fields_confidence) + if finding_provider_fields_criticality is not None: + pulumi.set(__self__, "finding_provider_fields_criticality", finding_provider_fields_criticality) + if finding_provider_fields_related_findings_id is not None: + pulumi.set(__self__, "finding_provider_fields_related_findings_id", finding_provider_fields_related_findings_id) + if finding_provider_fields_related_findings_product_arn is not None: + pulumi.set(__self__, "finding_provider_fields_related_findings_product_arn", finding_provider_fields_related_findings_product_arn) + if finding_provider_fields_severity_label is not None: + pulumi.set(__self__, "finding_provider_fields_severity_label", finding_provider_fields_severity_label) + if finding_provider_fields_severity_original is not None: + pulumi.set(__self__, "finding_provider_fields_severity_original", finding_provider_fields_severity_original) + if finding_provider_fields_types is not None: + pulumi.set(__self__, "finding_provider_fields_types", finding_provider_fields_types) + if first_observed_at is not None: + pulumi.set(__self__, "first_observed_at", first_observed_at) + if generator_id is not None: + pulumi.set(__self__, "generator_id", generator_id) + if id is not None: + pulumi.set(__self__, "id", id) + if keyword is not None: + pulumi.set(__self__, "keyword", keyword) + if last_observed_at is not None: + pulumi.set(__self__, "last_observed_at", last_observed_at) + if malware_name is not None: + pulumi.set(__self__, "malware_name", malware_name) + if malware_path is not None: + pulumi.set(__self__, "malware_path", malware_path) + if malware_state is not None: + pulumi.set(__self__, "malware_state", malware_state) + if malware_type is not None: + pulumi.set(__self__, "malware_type", malware_type) + if network_destination_domain is not None: + pulumi.set(__self__, "network_destination_domain", network_destination_domain) + if network_destination_ip_v4 is not None: + pulumi.set(__self__, "network_destination_ip_v4", network_destination_ip_v4) + if network_destination_ip_v6 is not None: + pulumi.set(__self__, "network_destination_ip_v6", network_destination_ip_v6) + if network_destination_port is not None: + pulumi.set(__self__, "network_destination_port", network_destination_port) + if network_direction is not None: + pulumi.set(__self__, "network_direction", network_direction) + if network_protocol is not None: + pulumi.set(__self__, "network_protocol", network_protocol) + if network_source_domain is not None: + pulumi.set(__self__, "network_source_domain", network_source_domain) + if network_source_ip_v4 is not None: + pulumi.set(__self__, "network_source_ip_v4", network_source_ip_v4) + if network_source_ip_v6 is not None: + pulumi.set(__self__, "network_source_ip_v6", network_source_ip_v6) + if network_source_mac is not None: + pulumi.set(__self__, "network_source_mac", network_source_mac) + if network_source_port is not None: + pulumi.set(__self__, "network_source_port", network_source_port) + if note_text is not None: + pulumi.set(__self__, "note_text", note_text) + if note_updated_at is not None: + pulumi.set(__self__, "note_updated_at", note_updated_at) + if note_updated_by is not None: + pulumi.set(__self__, "note_updated_by", note_updated_by) + if process_launched_at is not None: + pulumi.set(__self__, "process_launched_at", process_launched_at) + if process_name is not None: + pulumi.set(__self__, "process_name", process_name) + if process_parent_pid is not None: + pulumi.set(__self__, "process_parent_pid", process_parent_pid) + if process_path is not None: + pulumi.set(__self__, "process_path", process_path) + if process_pid is not None: + pulumi.set(__self__, "process_pid", process_pid) + if process_terminated_at is not None: + pulumi.set(__self__, "process_terminated_at", process_terminated_at) + if product_arn is not None: + pulumi.set(__self__, "product_arn", product_arn) + if product_fields is not None: + pulumi.set(__self__, "product_fields", product_fields) + if product_name is not None: + pulumi.set(__self__, "product_name", product_name) + if recommendation_text is not None: + pulumi.set(__self__, "recommendation_text", recommendation_text) + if record_state is not None: + pulumi.set(__self__, "record_state", record_state) + if region is not None: + pulumi.set(__self__, "region", region) + if related_findings_id is not None: + pulumi.set(__self__, "related_findings_id", related_findings_id) + if related_findings_product_arn is not None: + pulumi.set(__self__, "related_findings_product_arn", related_findings_product_arn) + if resource_application_arn is not None: + pulumi.set(__self__, "resource_application_arn", resource_application_arn) + if resource_application_name is not None: + pulumi.set(__self__, "resource_application_name", resource_application_name) + if resource_aws_ec2_instance_iam_instance_profile_arn is not None: + pulumi.set(__self__, "resource_aws_ec2_instance_iam_instance_profile_arn", resource_aws_ec2_instance_iam_instance_profile_arn) + if resource_aws_ec2_instance_image_id is not None: + pulumi.set(__self__, "resource_aws_ec2_instance_image_id", resource_aws_ec2_instance_image_id) + if resource_aws_ec2_instance_ip_v4_addresses is not None: + pulumi.set(__self__, "resource_aws_ec2_instance_ip_v4_addresses", resource_aws_ec2_instance_ip_v4_addresses) + if resource_aws_ec2_instance_ip_v6_addresses is not None: + pulumi.set(__self__, "resource_aws_ec2_instance_ip_v6_addresses", resource_aws_ec2_instance_ip_v6_addresses) + if resource_aws_ec2_instance_key_name is not None: + pulumi.set(__self__, "resource_aws_ec2_instance_key_name", resource_aws_ec2_instance_key_name) + if resource_aws_ec2_instance_launched_at is not None: + pulumi.set(__self__, "resource_aws_ec2_instance_launched_at", resource_aws_ec2_instance_launched_at) + if resource_aws_ec2_instance_subnet_id is not None: + pulumi.set(__self__, "resource_aws_ec2_instance_subnet_id", resource_aws_ec2_instance_subnet_id) + if resource_aws_ec2_instance_type is not None: + pulumi.set(__self__, "resource_aws_ec2_instance_type", resource_aws_ec2_instance_type) + if resource_aws_ec2_instance_vpc_id is not None: + pulumi.set(__self__, "resource_aws_ec2_instance_vpc_id", resource_aws_ec2_instance_vpc_id) + if resource_aws_iam_access_key_created_at is not None: + pulumi.set(__self__, "resource_aws_iam_access_key_created_at", resource_aws_iam_access_key_created_at) + if resource_aws_iam_access_key_principal_name is not None: + pulumi.set(__self__, "resource_aws_iam_access_key_principal_name", resource_aws_iam_access_key_principal_name) + if resource_aws_iam_access_key_status is not None: + pulumi.set(__self__, "resource_aws_iam_access_key_status", resource_aws_iam_access_key_status) + if resource_aws_iam_access_key_user_name is not None: + pulumi.set(__self__, "resource_aws_iam_access_key_user_name", resource_aws_iam_access_key_user_name) + if resource_aws_iam_user_user_name is not None: + pulumi.set(__self__, "resource_aws_iam_user_user_name", resource_aws_iam_user_user_name) + if resource_aws_s3_bucket_owner_id is not None: + pulumi.set(__self__, "resource_aws_s3_bucket_owner_id", resource_aws_s3_bucket_owner_id) + if resource_aws_s3_bucket_owner_name is not None: + pulumi.set(__self__, "resource_aws_s3_bucket_owner_name", resource_aws_s3_bucket_owner_name) + if resource_container_image_id is not None: + pulumi.set(__self__, "resource_container_image_id", resource_container_image_id) + if resource_container_image_name is not None: + pulumi.set(__self__, "resource_container_image_name", resource_container_image_name) + if resource_container_launched_at is not None: + pulumi.set(__self__, "resource_container_launched_at", resource_container_launched_at) + if resource_container_name is not None: + pulumi.set(__self__, "resource_container_name", resource_container_name) + if resource_details_other is not None: + pulumi.set(__self__, "resource_details_other", resource_details_other) + if resource_id is not None: + pulumi.set(__self__, "resource_id", resource_id) + if resource_partition is not None: + pulumi.set(__self__, "resource_partition", resource_partition) + if resource_region is not None: + pulumi.set(__self__, "resource_region", resource_region) + if resource_tags is not None: + pulumi.set(__self__, "resource_tags", resource_tags) + if resource_type is not None: + pulumi.set(__self__, "resource_type", resource_type) + if sample is not None: + pulumi.set(__self__, "sample", sample) + if severity_label is not None: + pulumi.set(__self__, "severity_label", severity_label) + if severity_normalized is not None: + pulumi.set(__self__, "severity_normalized", severity_normalized) + if severity_product is not None: + pulumi.set(__self__, "severity_product", severity_product) + if source_url is not None: + pulumi.set(__self__, "source_url", source_url) + if threat_intel_indicator_category is not None: + pulumi.set(__self__, "threat_intel_indicator_category", threat_intel_indicator_category) + if threat_intel_indicator_last_observed_at is not None: + pulumi.set(__self__, "threat_intel_indicator_last_observed_at", threat_intel_indicator_last_observed_at) + if threat_intel_indicator_source is not None: + pulumi.set(__self__, "threat_intel_indicator_source", threat_intel_indicator_source) + if threat_intel_indicator_source_url is not None: + pulumi.set(__self__, "threat_intel_indicator_source_url", threat_intel_indicator_source_url) + if threat_intel_indicator_type is not None: + pulumi.set(__self__, "threat_intel_indicator_type", threat_intel_indicator_type) + if threat_intel_indicator_value is not None: + pulumi.set(__self__, "threat_intel_indicator_value", threat_intel_indicator_value) + if title is not None: + pulumi.set(__self__, "title", title) + if type is not None: + pulumi.set(__self__, "type", type) + if updated_at is not None: + pulumi.set(__self__, "updated_at", updated_at) + if user_defined_fields is not None: + pulumi.set(__self__, "user_defined_fields", user_defined_fields) + if verification_state is not None: + pulumi.set(__self__, "verification_state", verification_state) + if vulnerabilities_exploit_available is not None: + pulumi.set(__self__, "vulnerabilities_exploit_available", vulnerabilities_exploit_available) + if vulnerabilities_fix_available is not None: + pulumi.set(__self__, "vulnerabilities_fix_available", vulnerabilities_fix_available) + if workflow_state is not None: + pulumi.set(__self__, "workflow_state", workflow_state) + if workflow_status is not None: + pulumi.set(__self__, "workflow_status", workflow_status) + + @property + @pulumi.getter(name="awsAccountId") + def aws_account_id(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The AWS account ID in which a finding is generated. + """ + return pulumi.get(self, "aws_account_id") + + @property + @pulumi.getter(name="awsAccountName") + def aws_account_name(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The name of the AWS account in which a finding is generated. + """ + return pulumi.get(self, "aws_account_name") + + @property + @pulumi.getter(name="companyName") + def company_name(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The name of the findings provider (company) that owns the solution (product) that generates findings. + """ + return pulumi.get(self, "company_name") + + @property + @pulumi.getter(name="complianceAssociatedStandardsId") + def compliance_associated_standards_id(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The unique identifier of a standard in which a control is enabled. + """ + return pulumi.get(self, "compliance_associated_standards_id") + + @property + @pulumi.getter(name="complianceSecurityControlId") + def compliance_security_control_id(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The unique identifier of a control across standards. + """ + return pulumi.get(self, "compliance_security_control_id") + + @property + @pulumi.getter(name="complianceSecurityControlParametersName") + def compliance_security_control_parameters_name(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The name of a security control parameter. + """ + return pulumi.get(self, "compliance_security_control_parameters_name") + + @property + @pulumi.getter(name="complianceSecurityControlParametersValue") + def compliance_security_control_parameters_value(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The current value of a security control parameter. + """ + return pulumi.get(self, "compliance_security_control_parameters_value") + + @property + @pulumi.getter(name="complianceStatus") + def compliance_status(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + Exclusive to findings that are generated as the result of a check run against a specific rule in a supported standard. + """ + return pulumi.get(self, "compliance_status") + + @property + @pulumi.getter + def confidence(self) -> Optional[Sequence['outputs.InsightNumberFilter']]: + """ + A finding's confidence. + """ + return pulumi.get(self, "confidence") + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> Optional[Sequence['outputs.InsightDateFilter']]: + """ + An ISO8601-formatted timestamp that indicates when the security findings provider captured the potential security issue that a finding captured. + """ + return pulumi.get(self, "created_at") + + @property + @pulumi.getter + def criticality(self) -> Optional[Sequence['outputs.InsightNumberFilter']]: + """ + The level of importance assigned to the resources associated with the finding. + """ + return pulumi.get(self, "criticality") + + @property + @pulumi.getter + def description(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + A finding's description. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="findingProviderFieldsConfidence") + def finding_provider_fields_confidence(self) -> Optional[Sequence['outputs.InsightNumberFilter']]: + """ + The finding provider value for the finding confidence. + """ + return pulumi.get(self, "finding_provider_fields_confidence") + + @property + @pulumi.getter(name="findingProviderFieldsCriticality") + def finding_provider_fields_criticality(self) -> Optional[Sequence['outputs.InsightNumberFilter']]: + """ + The finding provider value for the level of importance assigned to the resources associated with the findings. + """ + return pulumi.get(self, "finding_provider_fields_criticality") + + @property + @pulumi.getter(name="findingProviderFieldsRelatedFindingsId") + def finding_provider_fields_related_findings_id(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The finding identifier of a related finding that is identified by the finding provider. + """ + return pulumi.get(self, "finding_provider_fields_related_findings_id") + + @property + @pulumi.getter(name="findingProviderFieldsRelatedFindingsProductArn") + def finding_provider_fields_related_findings_product_arn(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The ARN of the solution that generated a related finding that is identified by the finding provider. + """ + return pulumi.get(self, "finding_provider_fields_related_findings_product_arn") + + @property + @pulumi.getter(name="findingProviderFieldsSeverityLabel") + def finding_provider_fields_severity_label(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The finding provider value for the severity label. + """ + return pulumi.get(self, "finding_provider_fields_severity_label") + + @property + @pulumi.getter(name="findingProviderFieldsSeverityOriginal") + def finding_provider_fields_severity_original(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The finding provider's original value for the severity. + """ + return pulumi.get(self, "finding_provider_fields_severity_original") + + @property + @pulumi.getter(name="findingProviderFieldsTypes") + def finding_provider_fields_types(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + One or more finding types that the finding provider assigned to the finding. + """ + return pulumi.get(self, "finding_provider_fields_types") + + @property + @pulumi.getter(name="firstObservedAt") + def first_observed_at(self) -> Optional[Sequence['outputs.InsightDateFilter']]: + """ + An ISO8601-formatted timestamp that indicates when the security findings provider first observed the potential security issue that a finding captured. + """ + return pulumi.get(self, "first_observed_at") + + @property + @pulumi.getter(name="generatorId") + def generator_id(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The identifier for the solution-specific component (a discrete unit of logic) that generated a finding. + """ + return pulumi.get(self, "generator_id") + + @property + @pulumi.getter + def id(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The security findings provider-specific identifier for a finding. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter + def keyword(self) -> Optional[Sequence['outputs.InsightKeywordFilter']]: + """ + A keyword for a finding. + """ + return pulumi.get(self, "keyword") + + @property + @pulumi.getter(name="lastObservedAt") + def last_observed_at(self) -> Optional[Sequence['outputs.InsightDateFilter']]: + """ + An ISO8601-formatted timestamp that indicates when the security findings provider most recently observed the potential security issue that a finding captured. + """ + return pulumi.get(self, "last_observed_at") + + @property + @pulumi.getter(name="malwareName") + def malware_name(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The name of the malware that was observed. + """ + return pulumi.get(self, "malware_name") + + @property + @pulumi.getter(name="malwarePath") + def malware_path(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The filesystem path of the malware that was observed. + """ + return pulumi.get(self, "malware_path") + + @property + @pulumi.getter(name="malwareState") + def malware_state(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The state of the malware that was observed. + """ + return pulumi.get(self, "malware_state") + + @property + @pulumi.getter(name="malwareType") + def malware_type(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The type of the malware that was observed. + """ + return pulumi.get(self, "malware_type") + + @property + @pulumi.getter(name="networkDestinationDomain") + def network_destination_domain(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The destination domain of network-related information about a finding. + """ + return pulumi.get(self, "network_destination_domain") + + @property + @pulumi.getter(name="networkDestinationIpV4") + def network_destination_ip_v4(self) -> Optional[Sequence['outputs.InsightIpFilter']]: + """ + The destination IPv4 address of network-related information about a finding. + """ + return pulumi.get(self, "network_destination_ip_v4") + + @property + @pulumi.getter(name="networkDestinationIpV6") + def network_destination_ip_v6(self) -> Optional[Sequence['outputs.InsightIpFilter']]: + """ + The destination IPv6 address of network-related information about a finding. + """ + return pulumi.get(self, "network_destination_ip_v6") + + @property + @pulumi.getter(name="networkDestinationPort") + def network_destination_port(self) -> Optional[Sequence['outputs.InsightNumberFilter']]: + """ + The destination port of network-related information about a finding. + """ + return pulumi.get(self, "network_destination_port") + + @property + @pulumi.getter(name="networkDirection") + def network_direction(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + Indicates the direction of network traffic associated with a finding. + """ + return pulumi.get(self, "network_direction") + + @property + @pulumi.getter(name="networkProtocol") + def network_protocol(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The protocol of network-related information about a finding. + """ + return pulumi.get(self, "network_protocol") + + @property + @pulumi.getter(name="networkSourceDomain") + def network_source_domain(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The source domain of network-related information about a finding. + """ + return pulumi.get(self, "network_source_domain") + + @property + @pulumi.getter(name="networkSourceIpV4") + def network_source_ip_v4(self) -> Optional[Sequence['outputs.InsightIpFilter']]: + """ + The source IPv4 address of network-related information about a finding. + """ + return pulumi.get(self, "network_source_ip_v4") + + @property + @pulumi.getter(name="networkSourceIpV6") + def network_source_ip_v6(self) -> Optional[Sequence['outputs.InsightIpFilter']]: + """ + The source IPv6 address of network-related information about a finding. + """ + return pulumi.get(self, "network_source_ip_v6") + + @property + @pulumi.getter(name="networkSourceMac") + def network_source_mac(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The source media access control (MAC) address of network-related information about a finding. + """ + return pulumi.get(self, "network_source_mac") + + @property + @pulumi.getter(name="networkSourcePort") + def network_source_port(self) -> Optional[Sequence['outputs.InsightNumberFilter']]: + """ + The source port of network-related information about a finding. + """ + return pulumi.get(self, "network_source_port") + + @property + @pulumi.getter(name="noteText") + def note_text(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The text of a note. + """ + return pulumi.get(self, "note_text") + + @property + @pulumi.getter(name="noteUpdatedAt") + def note_updated_at(self) -> Optional[Sequence['outputs.InsightDateFilter']]: + """ + The timestamp of when the note was updated. + """ + return pulumi.get(self, "note_updated_at") + + @property + @pulumi.getter(name="noteUpdatedBy") + def note_updated_by(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The principal that created a note. + """ + return pulumi.get(self, "note_updated_by") + + @property + @pulumi.getter(name="processLaunchedAt") + def process_launched_at(self) -> Optional[Sequence['outputs.InsightDateFilter']]: + """ + A timestamp that identifies when the process was launched. + """ + return pulumi.get(self, "process_launched_at") + + @property + @pulumi.getter(name="processName") + def process_name(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The name of the process. + """ + return pulumi.get(self, "process_name") + + @property + @pulumi.getter(name="processParentPid") + def process_parent_pid(self) -> Optional[Sequence['outputs.InsightNumberFilter']]: + """ + The parent process ID. + """ + return pulumi.get(self, "process_parent_pid") + + @property + @pulumi.getter(name="processPath") + def process_path(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The path to the process executable. + """ + return pulumi.get(self, "process_path") + + @property + @pulumi.getter(name="processPid") + def process_pid(self) -> Optional[Sequence['outputs.InsightNumberFilter']]: + """ + The process ID. + """ + return pulumi.get(self, "process_pid") + + @property + @pulumi.getter(name="processTerminatedAt") + def process_terminated_at(self) -> Optional[Sequence['outputs.InsightDateFilter']]: + """ + A timestamp that identifies when the process was terminated. + """ + return pulumi.get(self, "process_terminated_at") + + @property + @pulumi.getter(name="productArn") + def product_arn(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The ARN generated by Security Hub that uniquely identifies a third-party company (security findings provider) after this provider's product (solution that generates findings) is registered with Security Hub. + """ + return pulumi.get(self, "product_arn") + + @property + @pulumi.getter(name="productFields") + def product_fields(self) -> Optional[Sequence['outputs.InsightMapFilter']]: + """ + A data type where security findings providers can include additional solution-specific details that aren't part of the defined AwsSecurityFinding format. + """ + return pulumi.get(self, "product_fields") + + @property + @pulumi.getter(name="productName") + def product_name(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The name of the solution (product) that generates findings. + """ + return pulumi.get(self, "product_name") + + @property + @pulumi.getter(name="recommendationText") + def recommendation_text(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The recommendation of what to do about the issue described in a finding. + """ + return pulumi.get(self, "recommendation_text") + + @property + @pulumi.getter(name="recordState") + def record_state(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The updated record state for the finding. + """ + return pulumi.get(self, "record_state") + + @property + @pulumi.getter + def region(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The Region from which the finding was generated. + """ + return pulumi.get(self, "region") + + @property + @pulumi.getter(name="relatedFindingsId") + def related_findings_id(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The solution-generated identifier for a related finding. + """ + return pulumi.get(self, "related_findings_id") + + @property + @pulumi.getter(name="relatedFindingsProductArn") + def related_findings_product_arn(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The ARN of the solution that generated a related finding. + """ + return pulumi.get(self, "related_findings_product_arn") + + @property + @pulumi.getter(name="resourceApplicationArn") + def resource_application_arn(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The ARN of the application that is related to a finding. + """ + return pulumi.get(self, "resource_application_arn") + + @property + @pulumi.getter(name="resourceApplicationName") + def resource_application_name(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The name of the application that is related to a finding. + """ + return pulumi.get(self, "resource_application_name") + + @property + @pulumi.getter(name="resourceAwsEc2InstanceIamInstanceProfileArn") + def resource_aws_ec2_instance_iam_instance_profile_arn(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The IAM profile ARN of the instance. + """ + return pulumi.get(self, "resource_aws_ec2_instance_iam_instance_profile_arn") + + @property + @pulumi.getter(name="resourceAwsEc2InstanceImageId") + def resource_aws_ec2_instance_image_id(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The Amazon Machine Image (AMI) ID of the instance. + """ + return pulumi.get(self, "resource_aws_ec2_instance_image_id") + + @property + @pulumi.getter(name="resourceAwsEc2InstanceIpV4Addresses") + def resource_aws_ec2_instance_ip_v4_addresses(self) -> Optional[Sequence['outputs.InsightIpFilter']]: + """ + The IPv4 addresses associated with the instance. + """ + return pulumi.get(self, "resource_aws_ec2_instance_ip_v4_addresses") + + @property + @pulumi.getter(name="resourceAwsEc2InstanceIpV6Addresses") + def resource_aws_ec2_instance_ip_v6_addresses(self) -> Optional[Sequence['outputs.InsightIpFilter']]: + """ + The IPv6 addresses associated with the instance. + """ + return pulumi.get(self, "resource_aws_ec2_instance_ip_v6_addresses") + + @property + @pulumi.getter(name="resourceAwsEc2InstanceKeyName") + def resource_aws_ec2_instance_key_name(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The key name associated with the instance. + """ + return pulumi.get(self, "resource_aws_ec2_instance_key_name") + + @property + @pulumi.getter(name="resourceAwsEc2InstanceLaunchedAt") + def resource_aws_ec2_instance_launched_at(self) -> Optional[Sequence['outputs.InsightDateFilter']]: + """ + The date and time the instance was launched. + """ + return pulumi.get(self, "resource_aws_ec2_instance_launched_at") + + @property + @pulumi.getter(name="resourceAwsEc2InstanceSubnetId") + def resource_aws_ec2_instance_subnet_id(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The identifier of the subnet that the instance was launched in. + """ + return pulumi.get(self, "resource_aws_ec2_instance_subnet_id") + + @property + @pulumi.getter(name="resourceAwsEc2InstanceType") + def resource_aws_ec2_instance_type(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The instance type of the instance. + """ + return pulumi.get(self, "resource_aws_ec2_instance_type") + + @property + @pulumi.getter(name="resourceAwsEc2InstanceVpcId") + def resource_aws_ec2_instance_vpc_id(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The identifier of the VPC that the instance was launched in. + """ + return pulumi.get(self, "resource_aws_ec2_instance_vpc_id") + + @property + @pulumi.getter(name="resourceAwsIamAccessKeyCreatedAt") + def resource_aws_iam_access_key_created_at(self) -> Optional[Sequence['outputs.InsightDateFilter']]: + """ + The creation date/time of the IAM access key related to a finding. + """ + return pulumi.get(self, "resource_aws_iam_access_key_created_at") + + @property + @pulumi.getter(name="resourceAwsIamAccessKeyPrincipalName") + def resource_aws_iam_access_key_principal_name(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The name of the principal that is associated with an IAM access key. + """ + return pulumi.get(self, "resource_aws_iam_access_key_principal_name") + + @property + @pulumi.getter(name="resourceAwsIamAccessKeyStatus") + def resource_aws_iam_access_key_status(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The status of the IAM access key related to a finding. + """ + return pulumi.get(self, "resource_aws_iam_access_key_status") + + @property + @pulumi.getter(name="resourceAwsIamAccessKeyUserName") + def resource_aws_iam_access_key_user_name(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The user associated with the IAM access key related to a finding. + """ + return pulumi.get(self, "resource_aws_iam_access_key_user_name") + + @property + @pulumi.getter(name="resourceAwsIamUserUserName") + def resource_aws_iam_user_user_name(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The name of an IAM user. + """ + return pulumi.get(self, "resource_aws_iam_user_user_name") + + @property + @pulumi.getter(name="resourceAwsS3BucketOwnerId") + def resource_aws_s3_bucket_owner_id(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The canonical user ID of the owner of the S3 bucket. + """ + return pulumi.get(self, "resource_aws_s3_bucket_owner_id") + + @property + @pulumi.getter(name="resourceAwsS3BucketOwnerName") + def resource_aws_s3_bucket_owner_name(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The display name of the owner of the S3 bucket. + """ + return pulumi.get(self, "resource_aws_s3_bucket_owner_name") + + @property + @pulumi.getter(name="resourceContainerImageId") + def resource_container_image_id(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The identifier of the image related to a finding. + """ + return pulumi.get(self, "resource_container_image_id") + + @property + @pulumi.getter(name="resourceContainerImageName") + def resource_container_image_name(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The name of the image related to a finding. + """ + return pulumi.get(self, "resource_container_image_name") + + @property + @pulumi.getter(name="resourceContainerLaunchedAt") + def resource_container_launched_at(self) -> Optional[Sequence['outputs.InsightDateFilter']]: + """ + A timestamp that identifies when the container was started. + """ + return pulumi.get(self, "resource_container_launched_at") + + @property + @pulumi.getter(name="resourceContainerName") + def resource_container_name(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The name of the container related to a finding. + """ + return pulumi.get(self, "resource_container_name") + + @property + @pulumi.getter(name="resourceDetailsOther") + def resource_details_other(self) -> Optional[Sequence['outputs.InsightMapFilter']]: + """ + The details of a resource that doesn't have a specific subfield for the resource type defined. + """ + return pulumi.get(self, "resource_details_other") + + @property + @pulumi.getter(name="resourceId") + def resource_id(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The canonical identifier for the given resource type. + """ + return pulumi.get(self, "resource_id") + + @property + @pulumi.getter(name="resourcePartition") + def resource_partition(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The canonical AWS partition name that the Region is assigned to. + """ + return pulumi.get(self, "resource_partition") + + @property + @pulumi.getter(name="resourceRegion") + def resource_region(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The canonical AWS external Region name where this resource is located. + """ + return pulumi.get(self, "resource_region") + + @property + @pulumi.getter(name="resourceTags") + def resource_tags(self) -> Optional[Sequence['outputs.InsightMapFilter']]: + """ + A list of AWS tags associated with a resource at the time the finding was processed. + """ + return pulumi.get(self, "resource_tags") + + @property + @pulumi.getter(name="resourceType") + def resource_type(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + Specifies the type of the resource that details are provided for. + """ + return pulumi.get(self, "resource_type") + + @property + @pulumi.getter + def sample(self) -> Optional[Sequence['outputs.InsightBooleanFilter']]: + """ + Indicates whether or not sample findings are included in the filter results. + """ + return pulumi.get(self, "sample") + + @property + @pulumi.getter(name="severityLabel") + def severity_label(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The label of a finding's severity. + """ + return pulumi.get(self, "severity_label") + + @property + @pulumi.getter(name="severityNormalized") + def severity_normalized(self) -> Optional[Sequence['outputs.InsightNumberFilter']]: + """ + The normalized severity of a finding. + """ + return pulumi.get(self, "severity_normalized") + + @property + @pulumi.getter(name="severityProduct") + def severity_product(self) -> Optional[Sequence['outputs.InsightNumberFilter']]: + """ + The native severity as defined by the security findings provider's solution that generated the finding. + """ + return pulumi.get(self, "severity_product") + + @property + @pulumi.getter(name="sourceUrl") + def source_url(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + A URL that links to a page about the current finding in the security findings provider's solution. + """ + return pulumi.get(self, "source_url") + + @property + @pulumi.getter(name="threatIntelIndicatorCategory") + def threat_intel_indicator_category(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The category of a threat intelligence indicator. + """ + return pulumi.get(self, "threat_intel_indicator_category") + + @property + @pulumi.getter(name="threatIntelIndicatorLastObservedAt") + def threat_intel_indicator_last_observed_at(self) -> Optional[Sequence['outputs.InsightDateFilter']]: + """ + A timestamp that identifies the last observation of a threat intelligence indicator. + """ + return pulumi.get(self, "threat_intel_indicator_last_observed_at") + + @property + @pulumi.getter(name="threatIntelIndicatorSource") + def threat_intel_indicator_source(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The source of the threat intelligence. + """ + return pulumi.get(self, "threat_intel_indicator_source") + + @property + @pulumi.getter(name="threatIntelIndicatorSourceUrl") + def threat_intel_indicator_source_url(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The URL for more details from the source of the threat intelligence. + """ + return pulumi.get(self, "threat_intel_indicator_source_url") + + @property + @pulumi.getter(name="threatIntelIndicatorType") + def threat_intel_indicator_type(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The type of a threat intelligence indicator. + """ + return pulumi.get(self, "threat_intel_indicator_type") + + @property + @pulumi.getter(name="threatIntelIndicatorValue") + def threat_intel_indicator_value(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The value of a threat intelligence indicator. + """ + return pulumi.get(self, "threat_intel_indicator_value") + + @property + @pulumi.getter + def title(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + A finding's title. + """ + return pulumi.get(self, "title") + + @property + @pulumi.getter + def type(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + A finding type in the format of namespace/category/classifier that classifies a finding. + """ + return pulumi.get(self, "type") + + @property + @pulumi.getter(name="updatedAt") + def updated_at(self) -> Optional[Sequence['outputs.InsightDateFilter']]: + """ + An ISO8601-formatted timestamp that indicates when the security findings provider last updated the finding record. + """ + return pulumi.get(self, "updated_at") + + @property + @pulumi.getter(name="userDefinedFields") + def user_defined_fields(self) -> Optional[Sequence['outputs.InsightMapFilter']]: + """ + A list of name/value string pairs associated with the finding. + """ + return pulumi.get(self, "user_defined_fields") + + @property + @pulumi.getter(name="verificationState") + def verification_state(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The veracity of a finding. + """ + return pulumi.get(self, "verification_state") + + @property + @pulumi.getter(name="vulnerabilitiesExploitAvailable") + def vulnerabilities_exploit_available(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + Indicates whether a software vulnerability in your environment has a known exploit. + """ + return pulumi.get(self, "vulnerabilities_exploit_available") + + @property + @pulumi.getter(name="vulnerabilitiesFixAvailable") + def vulnerabilities_fix_available(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + Indicates whether a vulnerability is fixed in a newer version of the affected software packages. + """ + return pulumi.get(self, "vulnerabilities_fix_available") + + @property + @pulumi.getter(name="workflowState") + def workflow_state(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The workflow state of a finding. + """ + return pulumi.get(self, "workflow_state") + + @property + @pulumi.getter(name="workflowStatus") + def workflow_status(self) -> Optional[Sequence['outputs.InsightStringFilter']]: + """ + The status of the investigation into a finding. + """ + return pulumi.get(self, "workflow_status") + + +@pulumi.output_type +class InsightBooleanFilter(dict): + """ + Boolean filter for querying findings. + """ + def __init__(__self__, *, + value: bool): + """ + Boolean filter for querying findings. + :param bool value: The value of the boolean. + """ + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def value(self) -> bool: + """ + The value of the boolean. + """ + return pulumi.get(self, "value") + + +@pulumi.output_type +class InsightDateFilter(dict): + """ + A date filter for querying findings. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "dateRange": + suggest = "date_range" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in InsightDateFilter. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + InsightDateFilter.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + InsightDateFilter.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + date_range: Optional['outputs.InsightDateRange'] = None, + end: Optional[str] = None, + start: Optional[str] = None): + """ + A date filter for querying findings. + """ + if date_range is not None: + pulumi.set(__self__, "date_range", date_range) + if end is not None: + pulumi.set(__self__, "end", end) + if start is not None: + pulumi.set(__self__, "start", start) + + @property + @pulumi.getter(name="dateRange") + def date_range(self) -> Optional['outputs.InsightDateRange']: + return pulumi.get(self, "date_range") + + @property + @pulumi.getter + def end(self) -> Optional[str]: + return pulumi.get(self, "end") + + @property + @pulumi.getter + def start(self) -> Optional[str]: + return pulumi.get(self, "start") + + +@pulumi.output_type +class InsightDateRange(dict): + """ + A date range for the date filter. + """ + def __init__(__self__, *, + unit: 'InsightDateRangeUnit', + value: float): + """ + A date range for the date filter. + :param 'InsightDateRangeUnit' unit: A date range unit for the date filter. + :param float value: A date range value for the date filter. + """ + pulumi.set(__self__, "unit", unit) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def unit(self) -> 'InsightDateRangeUnit': + """ + A date range unit for the date filter. + """ + return pulumi.get(self, "unit") + + @property + @pulumi.getter + def value(self) -> float: + """ + A date range value for the date filter. + """ + return pulumi.get(self, "value") + + +@pulumi.output_type +class InsightIpFilter(dict): + """ + The IP filter for querying findings. + """ + def __init__(__self__, *, + cidr: str): + """ + The IP filter for querying findings. + :param str cidr: A finding's CIDR value. + """ + pulumi.set(__self__, "cidr", cidr) + + @property + @pulumi.getter + def cidr(self) -> str: + """ + A finding's CIDR value. + """ + return pulumi.get(self, "cidr") + + +@pulumi.output_type +class InsightKeywordFilter(dict): + """ + A keyword filter for querying findings. + """ + def __init__(__self__, *, + value: str): + """ + A keyword filter for querying findings. + :param str value: A value for the keyword. + """ + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def value(self) -> str: + """ + A value for the keyword. + """ + return pulumi.get(self, "value") + + +@pulumi.output_type +class InsightMapFilter(dict): + """ + A map filter for filtering AWS Security Hub findings. + """ + def __init__(__self__, *, + comparison: 'InsightMapFilterComparison', + key: str, + value: str): + """ + A map filter for filtering AWS Security Hub findings. + :param 'InsightMapFilterComparison' comparison: The condition to apply to the key value when filtering Security Hub findings with a map filter. + """ + pulumi.set(__self__, "comparison", comparison) + pulumi.set(__self__, "key", key) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def comparison(self) -> 'InsightMapFilterComparison': + """ + The condition to apply to the key value when filtering Security Hub findings with a map filter. + """ + return pulumi.get(self, "comparison") + + @property + @pulumi.getter + def key(self) -> str: + return pulumi.get(self, "key") + + @property + @pulumi.getter + def value(self) -> str: + return pulumi.get(self, "value") + + +@pulumi.output_type +class InsightNumberFilter(dict): + """ + A number filter for querying findings. + """ + def __init__(__self__, *, + eq: Optional[float] = None, + gte: Optional[float] = None, + lte: Optional[float] = None): + """ + A number filter for querying findings. + :param float eq: The equal-to condition to be applied to a single field when querying for findings. + :param float gte: The greater-than-equal condition to be applied to a single field when querying for findings. + :param float lte: The less-than-equal condition to be applied to a single field when querying for findings. + """ + if eq is not None: + pulumi.set(__self__, "eq", eq) + if gte is not None: + pulumi.set(__self__, "gte", gte) + if lte is not None: + pulumi.set(__self__, "lte", lte) + + @property + @pulumi.getter + def eq(self) -> Optional[float]: + """ + The equal-to condition to be applied to a single field when querying for findings. + """ + return pulumi.get(self, "eq") + + @property + @pulumi.getter + def gte(self) -> Optional[float]: + """ + The greater-than-equal condition to be applied to a single field when querying for findings. + """ + return pulumi.get(self, "gte") + + @property + @pulumi.getter + def lte(self) -> Optional[float]: + """ + The less-than-equal condition to be applied to a single field when querying for findings. + """ + return pulumi.get(self, "lte") + + +@pulumi.output_type +class InsightStringFilter(dict): + """ + A string filter for filtering AWS Security Hub findings. + """ + def __init__(__self__, *, + comparison: 'InsightStringFilterComparison', + value: str): + """ + A string filter for filtering AWS Security Hub findings. + """ + pulumi.set(__self__, "comparison", comparison) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def comparison(self) -> 'InsightStringFilterComparison': + return pulumi.get(self, "comparison") + + @property + @pulumi.getter + def value(self) -> str: + return pulumi.get(self, "value") + + @pulumi.output_type class StandardsControl(dict): """ diff --git a/sdk/python/pulumi_aws_native/securityhub/product_subscription.py b/sdk/python/pulumi_aws_native/securityhub/product_subscription.py new file mode 100644 index 0000000000..485494a8da --- /dev/null +++ b/sdk/python/pulumi_aws_native/securityhub/product_subscription.py @@ -0,0 +1,132 @@ +# 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__ = ['ProductSubscriptionArgs', 'ProductSubscription'] + +@pulumi.input_type +class ProductSubscriptionArgs: + def __init__(__self__, *, + product_arn: pulumi.Input[str]): + """ + The set of arguments for constructing a ProductSubscription resource. + :param pulumi.Input[str] product_arn: The generic ARN of the product being subscribed to + """ + pulumi.set(__self__, "product_arn", product_arn) + + @property + @pulumi.getter(name="productArn") + def product_arn(self) -> pulumi.Input[str]: + """ + The generic ARN of the product being subscribed to + """ + return pulumi.get(self, "product_arn") + + @product_arn.setter + def product_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "product_arn", value) + + +class ProductSubscription(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + product_arn: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + The AWS::SecurityHub::ProductSubscription resource represents a subscription to a service that is allowed to generate findings for your Security Hub account. One product subscription resource is created for each product enabled. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] product_arn: The generic ARN of the product being subscribed to + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: ProductSubscriptionArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + The AWS::SecurityHub::ProductSubscription resource represents a subscription to a service that is allowed to generate findings for your Security Hub account. One product subscription resource is created for each product enabled. + + :param str resource_name: The name of the resource. + :param ProductSubscriptionArgs 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(ProductSubscriptionArgs, 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, + product_arn: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = ProductSubscriptionArgs.__new__(ProductSubscriptionArgs) + + if product_arn is None and not opts.urn: + raise TypeError("Missing required property 'product_arn'") + __props__.__dict__["product_arn"] = product_arn + __props__.__dict__["product_subscription_arn"] = None + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["productArn"]) + opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) + super(ProductSubscription, __self__).__init__( + 'aws-native:securityhub:ProductSubscription', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'ProductSubscription': + """ + Get an existing ProductSubscription 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__ = ProductSubscriptionArgs.__new__(ProductSubscriptionArgs) + + __props__.__dict__["product_arn"] = None + __props__.__dict__["product_subscription_arn"] = None + return ProductSubscription(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="productArn") + def product_arn(self) -> pulumi.Output[str]: + """ + The generic ARN of the product being subscribed to + """ + return pulumi.get(self, "product_arn") + + @property + @pulumi.getter(name="productSubscriptionArn") + def product_subscription_arn(self) -> pulumi.Output[str]: + """ + The ARN of the product subscription for the account + """ + return pulumi.get(self, "product_subscription_arn") + 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") + diff --git a/sdk/python/pulumi_aws_native/ssm/get_parameter.py b/sdk/python/pulumi_aws_native/ssm/get_parameter.py index b99c056a46..2ace1abbf7 100644 --- a/sdk/python/pulumi_aws_native/ssm/get_parameter.py +++ b/sdk/python/pulumi_aws_native/ssm/get_parameter.py @@ -77,7 +77,7 @@ def get_parameter(name: Optional[str] = None, :param str name: The name of the parameter. - The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` + The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` """ __args__ = dict() __args__['name'] = name @@ -101,6 +101,6 @@ def get_parameter_output(name: Optional[pulumi.Input[str]] = None, :param str name: The name of the parameter. - The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` + The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` """ ... diff --git a/sdk/python/pulumi_aws_native/ssm/parameter.py b/sdk/python/pulumi_aws_native/ssm/parameter.py index 37e4973364..cce7573d36 100644 --- a/sdk/python/pulumi_aws_native/ssm/parameter.py +++ b/sdk/python/pulumi_aws_native/ssm/parameter.py @@ -33,7 +33,7 @@ def __init__(__self__, *, :param pulumi.Input['ParameterDataType'] data_type: The data type of the parameter, such as ``text`` or ``aws:ec2:image``. The default is ``text``. :param pulumi.Input[str] description: Information about the parameter. :param pulumi.Input[str] name: The name of the parameter. - The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` + The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` :param pulumi.Input[str] policies: Information about the policies assigned to a parameter. [Assigning parameter policies](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-policies.html) in the *User Guide*. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Optional metadata that you assign to a resource in the form of an arbitrary set of tags (key-value pairs). Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment. For example, you might want to tag a SYS parameter to identify the type of resource to which it applies, the environment, or the type of configuration data referenced by the parameter. @@ -122,7 +122,7 @@ def description(self, value: Optional[pulumi.Input[str]]): def name(self) -> Optional[pulumi.Input[str]]: """ The name of the parameter. - The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` + The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` """ return pulumi.get(self, "name") @@ -297,7 +297,7 @@ def __init__(__self__, :param pulumi.Input['ParameterDataType'] data_type: The data type of the parameter, such as ``text`` or ``aws:ec2:image``. The default is ``text``. :param pulumi.Input[str] description: Information about the parameter. :param pulumi.Input[str] name: The name of the parameter. - The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` + The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` :param pulumi.Input[str] policies: Information about the policies assigned to a parameter. [Assigning parameter policies](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-policies.html) in the *User Guide*. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Optional metadata that you assign to a resource in the form of an arbitrary set of tags (key-value pairs). Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment. For example, you might want to tag a SYS parameter to identify the type of resource to which it applies, the environment, or the type of configuration data referenced by the parameter. @@ -530,7 +530,7 @@ def description(self) -> pulumi.Output[Optional[str]]: def name(self) -> pulumi.Output[Optional[str]]: """ The name of the parameter. - The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` + The maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name. The maximum length for a parameter name, including the full length of the parameter Amazon Resource Name (ARN), is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters: ``arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName`` """ return pulumi.get(self, "name") diff --git a/sdk/python/pulumi_aws_native/verifiedpermissions/_inputs.py b/sdk/python/pulumi_aws_native/verifiedpermissions/_inputs.py index 324b779809..a9992e5158 100644 --- a/sdk/python/pulumi_aws_native/verifiedpermissions/_inputs.py +++ b/sdk/python/pulumi_aws_native/verifiedpermissions/_inputs.py @@ -11,6 +11,7 @@ from ._enums import * __all__ = [ + 'IdentitySourceCognitoGroupConfigurationArgs', 'IdentitySourceCognitoUserPoolConfigurationArgs', 'IdentitySourceConfigurationArgs', 'PolicyDefinition0PropertiesArgs', @@ -22,14 +23,33 @@ 'PolicyTemplateLinkedPolicyDefinitionArgs', ] +@pulumi.input_type +class IdentitySourceCognitoGroupConfigurationArgs: + def __init__(__self__, *, + group_entity_type: pulumi.Input[str]): + pulumi.set(__self__, "group_entity_type", group_entity_type) + + @property + @pulumi.getter(name="groupEntityType") + def group_entity_type(self) -> pulumi.Input[str]: + return pulumi.get(self, "group_entity_type") + + @group_entity_type.setter + def group_entity_type(self, value: pulumi.Input[str]): + pulumi.set(self, "group_entity_type", value) + + @pulumi.input_type class IdentitySourceCognitoUserPoolConfigurationArgs: def __init__(__self__, *, user_pool_arn: pulumi.Input[str], - client_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + client_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + group_configuration: Optional[pulumi.Input['IdentitySourceCognitoGroupConfigurationArgs']] = None): pulumi.set(__self__, "user_pool_arn", user_pool_arn) if client_ids is not None: pulumi.set(__self__, "client_ids", client_ids) + if group_configuration is not None: + pulumi.set(__self__, "group_configuration", group_configuration) @property @pulumi.getter(name="userPoolArn") @@ -49,6 +69,15 @@ def client_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: def client_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): pulumi.set(self, "client_ids", value) + @property + @pulumi.getter(name="groupConfiguration") + def group_configuration(self) -> Optional[pulumi.Input['IdentitySourceCognitoGroupConfigurationArgs']]: + return pulumi.get(self, "group_configuration") + + @group_configuration.setter + def group_configuration(self, value: Optional[pulumi.Input['IdentitySourceCognitoGroupConfigurationArgs']]): + pulumi.set(self, "group_configuration", value) + @pulumi.input_type class IdentitySourceConfigurationArgs: diff --git a/sdk/python/pulumi_aws_native/verifiedpermissions/outputs.py b/sdk/python/pulumi_aws_native/verifiedpermissions/outputs.py index 2f44824e7a..94a275dbe8 100644 --- a/sdk/python/pulumi_aws_native/verifiedpermissions/outputs.py +++ b/sdk/python/pulumi_aws_native/verifiedpermissions/outputs.py @@ -12,6 +12,7 @@ from ._enums import * __all__ = [ + 'IdentitySourceCognitoGroupConfiguration', 'IdentitySourceCognitoUserPoolConfiguration', 'IdentitySourceConfiguration', 'IdentitySourceDetails', @@ -24,6 +25,35 @@ 'PolicyTemplateLinkedPolicyDefinition', ] +@pulumi.output_type +class IdentitySourceCognitoGroupConfiguration(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "groupEntityType": + suggest = "group_entity_type" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in IdentitySourceCognitoGroupConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + IdentitySourceCognitoGroupConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + IdentitySourceCognitoGroupConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + group_entity_type: str): + pulumi.set(__self__, "group_entity_type", group_entity_type) + + @property + @pulumi.getter(name="groupEntityType") + def group_entity_type(self) -> str: + return pulumi.get(self, "group_entity_type") + + @pulumi.output_type class IdentitySourceCognitoUserPoolConfiguration(dict): @staticmethod @@ -33,6 +63,8 @@ def __key_warning(key: str): suggest = "user_pool_arn" elif key == "clientIds": suggest = "client_ids" + elif key == "groupConfiguration": + suggest = "group_configuration" if suggest: pulumi.log.warn(f"Key '{key}' not found in IdentitySourceCognitoUserPoolConfiguration. Access the value via the '{suggest}' property getter instead.") @@ -47,10 +79,13 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, user_pool_arn: str, - client_ids: Optional[Sequence[str]] = None): + client_ids: Optional[Sequence[str]] = None, + group_configuration: Optional['outputs.IdentitySourceCognitoGroupConfiguration'] = None): pulumi.set(__self__, "user_pool_arn", user_pool_arn) if client_ids is not None: pulumi.set(__self__, "client_ids", client_ids) + if group_configuration is not None: + pulumi.set(__self__, "group_configuration", group_configuration) @property @pulumi.getter(name="userPoolArn") @@ -62,6 +97,11 @@ def user_pool_arn(self) -> str: def client_ids(self) -> Optional[Sequence[str]]: return pulumi.get(self, "client_ids") + @property + @pulumi.getter(name="groupConfiguration") + def group_configuration(self) -> Optional['outputs.IdentitySourceCognitoGroupConfiguration']: + return pulumi.get(self, "group_configuration") + @pulumi.output_type class IdentitySourceConfiguration(dict):