AWS::CloudFormation::PublicTypeVersion - AWS CloudFormation

AWS::CloudFormation::PublicTypeVersion

Tests and publishes a registered extension as a public, third-party extension.

CloudFormation first tests the extension to make sure it meets all necessary requirements for being published in the CloudFormation registry. If it does, CloudFormation then publishes it to the registry as a public third-party extension in this Region. Public extensions are available for use by all CloudFormation users.

  • For resource types, testing includes passing all contracts tests defined for the type.

  • For modules, testing includes determining if the module's model meets all necessary requirements.

For more information, see Testing your public extension prior to publishing in the CloudFormation CLI User Guide.

If you don't specify a version, CloudFormation uses the default version of the extension in your account and Region for testing.

To perform testing, CloudFormation assumes the execution role specified when the type was registered.

An extension must have a test status of PASSED before it can be published. For more information, see Publishing extensions to make them available for public use in the CloudFormation CLI User Guide.

Syntax

To declare this entity in your AWS CloudFormation template, use the following syntax:

JSON

{ "Type" : "AWS::CloudFormation::PublicTypeVersion", "Properties" : { "Arn" : String, "LogDeliveryBucket" : String, "PublicVersionNumber" : String, "Type" : String, "TypeName" : String } }

YAML

Type: AWS::CloudFormation::PublicTypeVersion Properties: Arn: String LogDeliveryBucket: String PublicVersionNumber: String Type: String TypeName: String

Properties

Arn

The Amazon Resource Number (ARN) of the extension.

Conditional: You must specify Arn, or TypeName and Type.

Required: Conditional

Type: String

Pattern: arn:aws[A-Za-z0-9-]{0,64}:cloudformation:[A-Za-z0-9-]{1,64}:[0-9]{12}:type/.+

Update requires: Replacement

LogDeliveryBucket

The S3 bucket to which CloudFormation delivers the contract test execution logs.

CloudFormation delivers the logs by the time contract testing has completed and the extension has been assigned a test type status of PASSED or FAILED.

The user initiating the stack operation must be able to access items in the specified S3 bucket. Specifically, the user needs the following permissions:

  • GetObject

  • PutObject

For more information, see Actions, Resources, and Condition Keys for Amazon S3 in the AWS Identity and Access Management User Guide.

Required: No

Type: String

Pattern: [\s\S]+

Minimum: 3

Maximum: 63

Update requires: Replacement

PublicVersionNumber

The version number to assign to this version of the extension.

Use the following format, and adhere to semantic versioning when assigning a version number to your extension:

MAJOR.MINOR.PATCH

For more information, see Semantic Versioning 2.0.0.

If you don't specify a version number, CloudFormation increments the version number by one minor version release.

You cannot specify a version number the first time you publish a type. AWS CloudFormation automatically sets the first version number to be 1.0.0.

Required: No

Type: String

Minimum: 5

Maximum: 64

Update requires: Replacement

Type

The type of the extension to test.

Conditional: You must specify Arn, or TypeName and Type.

Required: Conditional

Type: String

Allowed values: RESOURCE | MODULE | HOOK

Update requires: Replacement

TypeName

The name of the extension to test.

Conditional: You must specify Arn, or TypeName and Type.

Required: Conditional

Type: String

Pattern: [A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}(::MODULE){0,1}

Update requires: Replacement

Return values

Ref

When you pass the logical ID of this resource to the intrinsic Ref function, Ref returns the Amazon Resource Number (ARN) assigned to the public extension upon publication. For example:

{ "Ref": "arn:aws:cloudformation:us-east-1::type/resource/2a33349e7e606a8ad2e30e3c84521f93123456/My-Extension/2.1.3" }

For more information about using the Ref function, see Ref.

Fn::GetAtt

The Fn::GetAtt intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the Fn::GetAtt intrinsic function, see Fn::GetAtt.

PublicTypeArn

The Amazon Resource Number (ARN) assigned to the public extension upon publication.

PublisherId

The publisher ID of the extension publisher.

This applies only to public third-party extensions. For private registered extensions, and extensions provided by AWS, CloudFormation returns null.

TypeVersionArn

The Amazon Resource Number (ARN) assigned to this version of the extension.