import * as core from "@terrascript/core"; export interface LaunchPermissionArgs extends core.SchemaArgs { organizationArns: core.Array | core.ArrayOut; organizationalUnitArns: core.Array | core.ArrayOut; userGroups: core.Array | core.ArrayOut; userIds: core.Array | core.ArrayOut; } export class LaunchPermission extends core.Schema { @core.attr(String, { computed: true, kind: "array" }) public organizationArns!: core.Array | core.ArrayOut; @core.attr(String, { computed: true, kind: "array" }) public organizationalUnitArns!: | core.Array | core.ArrayOut; @core.attr(String, { computed: true, kind: "array" }) public userGroups!: core.Array | core.ArrayOut; @core.attr(String, { computed: true, kind: "array" }) public userIds!: core.Array | core.ArrayOut; } export interface AmiDistributionConfigurationArgs extends core.SchemaArgs { amiTags?: core.Map | core.MapOut; description: string | core.StringOut; kmsKeyId: string | core.StringOut; launchPermission: | core.Array | core.ArrayOut; name: string | core.StringOut; targetAccountIds: core.Array | core.ArrayOut; } export class AmiDistributionConfiguration extends core.Schema { @core.attr(String, { computed: true, kind: "map" }) public amiTags?: core.Map | core.MapOut; @core.attr(String, { computed: true }) public description!: string | core.StringOut; @core.attr(String, { computed: true }) public kmsKeyId!: string | core.StringOut; @core.attr(LaunchPermission, { computed: true, kind: "array" }) public launchPermission!: | core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; @core.attr(String, { computed: true, kind: "array" }) public targetAccountIds!: core.Array | core.ArrayOut; } export interface TargetRepositoryArgs extends core.SchemaArgs { repositoryName: string | core.StringOut; service: string | core.StringOut; } export class TargetRepository extends core.Schema { @core.attr(String, { computed: true }) public repositoryName!: string | core.StringOut; @core.attr(String, { computed: true }) public service!: string | core.StringOut; } export interface ContainerDistributionConfigurationArgs extends core.SchemaArgs { containerTags: core.Array | core.ArrayOut; description: string | core.StringOut; targetRepository: | core.Array | core.ArrayOut; } export class ContainerDistributionConfiguration extends core.Schema { @core.attr(String, { computed: true, kind: "array" }) public containerTags!: core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public description!: string | core.StringOut; @core.attr(TargetRepository, { computed: true, kind: "array" }) public targetRepository!: | core.Array | core.ArrayOut; } export interface LaunchTemplateArgs extends core.SchemaArgs { launchTemplateId: string | core.StringOut; launchTemplateName: string | core.StringOut; launchTemplateVersion: string | core.StringOut; } export class LaunchTemplate extends core.Schema { @core.attr(String, { computed: true }) public launchTemplateId!: string | core.StringOut; @core.attr(String, { computed: true }) public launchTemplateName!: string | core.StringOut; @core.attr(String, { computed: true }) public launchTemplateVersion!: string | core.StringOut; } export interface SnapshotConfigurationArgs extends core.SchemaArgs { targetResourceCount: number | core.NumberOut; } export class SnapshotConfiguration extends core.Schema { @core.attr(Number, { computed: true }) public targetResourceCount!: number | core.NumberOut; } export interface FastLaunchConfigurationArgs extends core.SchemaArgs { accountId: string | core.StringOut; enabled: boolean | core.BooleanOut; launchTemplate: core.Array | core.ArrayOut; maxParallelLaunches: number | core.NumberOut; snapshotConfiguration: | core.Array | core.ArrayOut; } export class FastLaunchConfiguration extends core.Schema { @core.attr(String, { computed: true }) public accountId!: string | core.StringOut; @core.attr(Boolean, { computed: true }) public enabled!: boolean | core.BooleanOut; @core.attr(LaunchTemplate, { computed: true, kind: "array" }) public launchTemplate!: | core.Array | core.ArrayOut; @core.attr(Number, { computed: true }) public maxParallelLaunches!: number | core.NumberOut; @core.attr(SnapshotConfiguration, { computed: true, kind: "array" }) public snapshotConfiguration!: | core.Array | core.ArrayOut; } export interface LaunchTemplateConfigurationArgs extends core.SchemaArgs { accountId: string | core.StringOut; default: boolean | core.BooleanOut; launchTemplateId: string | core.StringOut; } export class LaunchTemplateConfiguration extends core.Schema { @core.attr(String, { computed: true }) public accountId!: string | core.StringOut; @core.attr(Boolean, { computed: true }) public default!: boolean | core.BooleanOut; @core.attr(String, { computed: true }) public launchTemplateId!: string | core.StringOut; } export interface DistributionArgs extends core.SchemaArgs { amiDistributionConfiguration: | core.Array | core.ArrayOut; containerDistributionConfiguration: | core.Array | core.ArrayOut; fastLaunchConfiguration: | core.Array | core.ArrayOut; launchTemplateConfiguration: | core.Array | core.ArrayOut; licenseConfigurationArns: core.Array | core.ArrayOut; region: string | core.StringOut; } export class Distribution extends core.Schema { @core.attr(AmiDistributionConfiguration, { computed: true, kind: "array" }) public amiDistributionConfiguration!: | core.Array | core.ArrayOut; @core.attr(ContainerDistributionConfiguration, { computed: true, kind: "array", }) public containerDistributionConfiguration!: | core.Array | core.ArrayOut; @core.attr(FastLaunchConfiguration, { computed: true, kind: "array" }) public fastLaunchConfiguration!: | core.Array | core.ArrayOut; @core.attr(LaunchTemplateConfiguration, { computed: true, kind: "array" }) public launchTemplateConfiguration!: | core.Array | core.ArrayOut; @core.attr(String, { computed: true, kind: "array" }) public licenseConfigurationArns!: | core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public region!: string | core.StringOut; } export interface DsDistributionConfigurationArgs { /** * (Required) Amazon Resource Name (ARN) of the distribution configuration. */ arn: string | core.StringOut; /** * Key-value map of resource tags for the distribution configuration. */ tags?: core.Map | core.MapOut; } export class DsDistributionConfiguration extends core.Data { /** * (Required) Amazon Resource Name (ARN) of the distribution configuration. */ @core.attr(String) public arn!: string | core.StringOut; /** * Date the distribution configuration was created. */ @core.attr(String, { computed: true }) public dateCreated!: string | core.StringOut; /** * Date the distribution configuration was updated. */ @core.attr(String, { computed: true }) public dateUpdated!: string | core.StringOut; /** * Description of the distribution configuration. */ @core.attr(String, { computed: true }) public description!: string | core.StringOut; /** * Set of distributions. */ @core.attr(Distribution, { computed: true, kind: "array" }) public distribution!: core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * Name of the distribution configuration. */ @core.attr(String, { computed: true }) public name!: string | core.StringOut; /** * Key-value map of resource tags for the distribution configuration. */ @core.attr(String, { computed: true, kind: "map" }) public tags?: core.Map | core.MapOut; constructor(name: string, args?: DsDistributionConfigurationArgs) { super(name, "aws_imagebuilder_distribution_configuration", args); } public override getNamespace(): string { return "aws_imagebuilder"; } }