import * as core from "@terrascript/core"; export interface LoggingConfigArgs extends core.SchemaArgs { logGroupName: string | core.StringOut; logRoleArn: string | core.StringOut; } export class LoggingConfig extends core.Schema { @core.attr(String) public logGroupName!: string | core.StringOut; @core.attr(String) public logRoleArn!: string | core.StringOut; } export interface TypeArgs extends core.ResourceArgs { /** * (Optional) Amazon Resource Name (ARN) of the IAM Role for CloudFormation to assume when invoking the * extension. If your extension calls AWS APIs in any of its handlers, you must create an IAM executio * n role that includes the necessary permissions to call those AWS APIs, and provision that execution * role in your account. When CloudFormation needs to invoke the extension handler, CloudFormation assu * mes this execution role to create a temporary session token, which it then passes to the extension h * andler, thereby supplying your extension with the appropriate credentials. */ executionRoleArn?: string | core.StringOut; /** * (Optional) Configuration block containing logging configuration. */ loggingConfig?: LoggingConfig; /** * (Required) URL to the S3 bucket containing the extension project package that contains the necessary * files for the extension you want to register. Must begin with `s3://` or `https://`. For example, ` * s3://example-bucket/example-object`. */ schemaHandlerPackage: string | core.StringOut; /** * (Optional) CloudFormation Registry Type. For example, `RESOURCE` or `MODULE`. */ type?: string | core.StringOut; /** * (Optional) CloudFormation Type name. For example, `ExampleCompany::ExampleService::ExampleResource`. */ typeName: string | core.StringOut; } export class Type extends core.Resource { /** * (Optional) Amazon Resource Name (ARN) of the CloudFormation Type version. See also `type_arn`. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * Identifier of the CloudFormation Type default version. */ @core.attr(String, { computed: true }) public defaultVersionId!: string | core.StringOut; /** * Deprecation status of the version. */ @core.attr(String, { computed: true }) public deprecatedStatus!: string | core.StringOut; /** * Description of the version. */ @core.attr(String, { computed: true }) public description!: string | core.StringOut; /** * URL of the documentation for the CloudFormation Type. */ @core.attr(String, { computed: true }) public documentationUrl!: string | core.StringOut; /** * (Optional) Amazon Resource Name (ARN) of the IAM Role for CloudFormation to assume when invoking the * extension. If your extension calls AWS APIs in any of its handlers, you must create an IAM executio * n role that includes the necessary permissions to call those AWS APIs, and provision that execution * role in your account. When CloudFormation needs to invoke the extension handler, CloudFormation assu * mes this execution role to create a temporary session token, which it then passes to the extension h * andler, thereby supplying your extension with the appropriate credentials. */ @core.attr(String) public executionRoleArn?: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * Whether the CloudFormation Type version is the default version. */ @core.attr(Boolean, { computed: true }) public isDefaultVersion!: boolean | core.BooleanOut; /** * (Optional) Configuration block containing logging configuration. */ @core.attr(LoggingConfig) public loggingConfig?: LoggingConfig; /** * Provisioning behavior of the CloudFormation Type. */ @core.attr(String, { computed: true }) public provisioningType!: string | core.StringOut; /** * JSON document of the CloudFormation Type schema. */ @core.attr(String, { computed: true }) public schema!: string | core.StringOut; /** * (Required) URL to the S3 bucket containing the extension project package that contains the necessary * files for the extension you want to register. Must begin with `s3://` or `https://`. For example, ` * s3://example-bucket/example-object`. */ @core.attr(String) public schemaHandlerPackage!: string | core.StringOut; /** * URL of the source code for the CloudFormation Type. */ @core.attr(String, { computed: true }) public sourceUrl!: string | core.StringOut; /** * (Optional) CloudFormation Registry Type. For example, `RESOURCE` or `MODULE`. */ @core.attr(String, { computed: true }) public type?: string | core.StringOut; /** * (Optional) Amazon Resource Name (ARN) of the CloudFormation Type. See also `arn`. */ @core.attr(String, { computed: true }) public typeArn!: string | core.StringOut; /** * (Optional) CloudFormation Type name. For example, `ExampleCompany::ExampleService::ExampleResource`. */ @core.attr(String) public typeName!: string | core.StringOut; /** * (Optional) Identifier of the CloudFormation Type version. */ @core.attr(String, { computed: true }) public versionId!: string | core.StringOut; /** * Scope of the CloudFormation Type. */ @core.attr(String, { computed: true }) public visibility!: string | core.StringOut; constructor(name: string, args?: TypeArgs) { super(name, "aws_cloudformation_type", args); } public override getNamespace(): string { return "aws_cloudformation"; } }