Customization configuration items.

Hierarchy

  • CustomizationsConfigTypes

Constructors

Properties

albAttributesConfig: TypeC<{
    deletionProtection: OptionalType<BooleanC>;
    http2Enabled: OptionalType<BooleanC>;
    idleTimeout: OptionalType<NumberC>;
    routingHttpDesyncMitigationMode: OptionalType<EnumType<"monitor" | "defensive" | "strictest">>;
    routingHttpDropInvalidHeader: OptionalType<BooleanC>;
    routingHttpXAmznTlsCipherEnable: OptionalType<BooleanC>;
    routingHttpXffClientPort: OptionalType<BooleanC>;
    routingHttpXffHeaderProcessingMode: OptionalType<EnumType<"remove" | "append" | "preserve">>;
    wafFailOpen: OptionalType<BooleanC>;
}> = ...
albListenerConfig: TypeC<{
    certificate: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    fixedResponseConfig: OptionalType<TypeC<{
        contentType: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        messageBody: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        statusCode: SizedType<string, Type<string, string, unknown>>;
    }>>;
    forwardConfig: OptionalType<TypeC<{
        targetGroupStickinessConfig: OptionalType<TypeC<{
            durationSeconds: OptionalType<NumberC>;
            enabled: OptionalType<BooleanC>;
        }>>;
    }>>;
    name: SizedType<string, Type<string, string, unknown>>;
    order: OptionalType<NumberC>;
    port: NumberC;
    protocol: EnumType<"HTTP" | "HTTPS">;
    redirectConfig: OptionalType<TypeC<{
        host: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        path: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        port: OptionalType<NumberC>;
        protocol: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        query: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        statusCode: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    }>>;
    sslPolicy: OptionalType<EnumType<"ELBSecurityPolicy-TLS-1-0-2015-04" | "ELBSecurityPolicy-TLS-1-1-2017-01" | "ELBSecurityPolicy-TLS-1-2-2017-01" | "ELBSecurityPolicy-TLS-1-2-Ext-2018-06" | "ELBSecurityPolicy-FS-2018-06" | "ELBSecurityPolicy-FS-1-1-2019-08" | "ELBSecurityPolicy-FS-1-2-2019-08" | "ELBSecurityPolicy-FS-1-2-Res-2019-08" | "ELBSecurityPolicy-2015-05" | "ELBSecurityPolicy-FS-1-2-Res-2020-10" | "ELBSecurityPolicy-2016-08">>;
    targetGroup: SizedType<string, Type<string, string, unknown>>;
    type: EnumType<"forward" | "redirect" | "fixed-response">;
}> = ...
albListenerFixedResponseConfig: TypeC<{
    contentType: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    messageBody: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    statusCode: SizedType<string, Type<string, string, unknown>>;
}> = ...
albListenerForwardConfig: TypeC<{
    targetGroupStickinessConfig: OptionalType<TypeC<{
        durationSeconds: OptionalType<NumberC>;
        enabled: OptionalType<BooleanC>;
    }>>;
}> = ...
albListenerProtocolEnum: EnumType<"HTTP" | "HTTPS"> = ...
albListenerRedirectConfig: TypeC<{
    host: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    path: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    port: OptionalType<NumberC>;
    protocol: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    query: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    statusCode: OptionalType<SizedType<string, Type<string, string, unknown>>>;
}> = ...
albListenerTargetGroupStickinessConfig: TypeC<{
    durationSeconds: OptionalType<NumberC>;
    enabled: OptionalType<BooleanC>;
}> = ...
albListenerTypeEnum: EnumType<"forward" | "redirect" | "fixed-response"> = ...
albRoutingHttpConfig: TypeC<{
    desyncMitigationMode: OptionalType<EnumType<"monitor" | "defensive" | "strictest">>;
    dropInvalidHeader: OptionalType<BooleanC>;
    xAmznTlsCipherEnable: OptionalType<BooleanC>;
    xffClientPort: OptionalType<BooleanC>;
}> = ...
albRoutingHttpConfigMitigationModeEnum: EnumType<"monitor" | "defensive" | "strictest"> = ...
albSchemeEnum: EnumType<"internet-facing" | "internal"> = ...
alpnPolicyEnum: EnumType<"None" | "HTTP1Only" | "HTTP2Only" | "HTTP2Optional" | "HTTP2Preferred"> = ...
appConfigItem: TypeC<{
    applicationLoadBalancer: OptionalType<TypeC<{
        attributes: OptionalType<TypeC<{
            deletionProtection: OptionalType<BooleanC>;
            http2Enabled: OptionalType<BooleanC>;
            idleTimeout: OptionalType<NumberC>;
            routingHttpDesyncMitigationMode: OptionalType<EnumType<"monitor" | "defensive" | "strictest">>;
            routingHttpDropInvalidHeader: OptionalType<BooleanC>;
            routingHttpXAmznTlsCipherEnable: OptionalType<BooleanC>;
            routingHttpXffClientPort: OptionalType<BooleanC>;
            routingHttpXffHeaderProcessingMode: OptionalType<EnumType<"remove" | "append" | "preserve">>;
            wafFailOpen: OptionalType<BooleanC>;
        }>>;
        listeners: OptionalType<ArrayC<TypeC<{
            certificate: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            fixedResponseConfig: OptionalType<TypeC<{
                contentType: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                messageBody: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                statusCode: SizedType<string, Type<string, string, unknown>>;
            }>>;
            forwardConfig: OptionalType<TypeC<{
                targetGroupStickinessConfig: OptionalType<TypeC<{
                    durationSeconds: OptionalType<NumberC>;
                    enabled: OptionalType<BooleanC>;
                }>>;
            }>>;
            name: SizedType<string, Type<string, string, unknown>>;
            order: OptionalType<NumberC>;
            port: NumberC;
            protocol: EnumType<"HTTP" | "HTTPS">;
            redirectConfig: OptionalType<TypeC<{
                host: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                path: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                port: OptionalType<NumberC>;
                protocol: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                query: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                statusCode: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            }>>;
            sslPolicy: OptionalType<EnumType<"ELBSecurityPolicy-TLS-1-0-2015-04" | "ELBSecurityPolicy-TLS-1-1-2017-01" | "ELBSecurityPolicy-TLS-1-2-2017-01" | "ELBSecurityPolicy-TLS-1-2-Ext-2018-06" | "ELBSecurityPolicy-FS-2018-06" | "ELBSecurityPolicy-FS-1-1-2019-08" | "ELBSecurityPolicy-FS-1-2-2019-08" | "ELBSecurityPolicy-FS-1-2-Res-2019-08" | "ELBSecurityPolicy-2015-05" | "ELBSecurityPolicy-FS-1-2-Res-2020-10" | "ELBSecurityPolicy-2016-08">>;
            targetGroup: SizedType<string, Type<string, string, unknown>>;
            type: EnumType<"forward" | "redirect" | "fixed-response">;
        }>>>;
        name: SizedType<string, Type<string, string, unknown>>;
        scheme: OptionalType<EnumType<"internet-facing" | "internal">>;
        securityGroups: ArrayC<SizedType<string, Type<string, string, unknown>>>;
        shareTargets: OptionalType<TypeC<{
            accounts: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
            organizationalUnits: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
        }>>;
        subnets: ArrayC<SizedType<string, Type<string, string, unknown>>>;
    }>>;
    autoscaling: OptionalType<TypeC<{
        desiredSize: NumberC;
        healthCheckGracePeriod: OptionalType<NumberC>;
        healthCheckType: OptionalType<EnumType<"EC2" | "ELB">>;
        launchTemplate: SizedType<string, Type<string, string, unknown>>;
        maxSize: NumberC;
        minSize: NumberC;
        name: SizedType<string, Type<string, string, unknown>>;
        subnets: ArrayC<SizedType<string, Type<string, string, unknown>>>;
        targetGroups: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
    }>>;
    deploymentTargets: TypeC<{
        accounts: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
        excludedAccounts: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
        excludedRegions: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
        organizationalUnits: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
    }>;
    launchTemplate: OptionalType<TypeC<{
        blockDeviceMappings: OptionalType<ArrayC<TypeC<{
            deviceName: SizedType<string, Type<string, string, unknown>>;
            ebs: OptionalType<TypeC<{
                deleteOnTermination: OptionalType<BooleanC>;
                encrypted: OptionalType<BooleanC>;
                iops: OptionalType<NumberC>;
                kmsKeyId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                snapshotId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                throughput: OptionalType<NumberC>;
                volumeSize: OptionalType<NumberC>;
                volumeType: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            }>>;
        }>>>;
        enforceImdsv2: OptionalType<BooleanC>;
        iamInstanceProfile: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        imageId: SizedType<string, Type<string, string, unknown>>;
        instanceType: SizedType<string, Type<string, string, unknown>>;
        keyPair: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        name: SizedType<string, Type<string, string, unknown>>;
        networkInterfaces: OptionalType<ArrayC<TypeC<{
            associateCarrierIpAddress: OptionalType<BooleanC>;
            associateElasticIp: OptionalType<BooleanC>;
            associatePublicIpAddress: OptionalType<BooleanC>;
            deleteOnTermination: OptionalType<BooleanC>;
            description: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            deviceIndex: OptionalType<NumberC>;
            groups: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
            interfaceType: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            networkCardIndex: OptionalType<NumberC>;
            networkInterfaceId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            privateIpAddress: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            privateIpAddresses: OptionalType<ArrayC<TypeC<{
                primary: OptionalType<BooleanC>;
                privateIpAddress: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            }>>>;
            secondaryPrivateIpAddressCount: OptionalType<NumberC>;
            sourceDestCheck: OptionalType<BooleanC>;
            subnetId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        }>>>;
        securityGroups: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
        userData: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    }>>;
    name: SizedType<string, Type<string, string, unknown>>;
    networkLoadBalancer: OptionalType<TypeC<{
        crossZoneLoadBalancing: OptionalType<BooleanC>;
        deletionProtection: OptionalType<BooleanC>;
        listeners: OptionalType<ArrayC<TypeC<{
            alpnPolicy: OptionalType<EnumType<"None" | "HTTP1Only" | "HTTP2Only" | "HTTP2Optional" | "HTTP2Preferred">>;
            certificate: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            name: SizedType<string, Type<string, string, unknown>>;
            port: OptionalType<NumberC>;
            protocol: OptionalType<EnumType<"TCP" | "UDP" | "TLS" | "TCP_UDP">>;
            sslPolicy: OptionalType<EnumType<"ELBSecurityPolicy-TLS-1-0-2015-04" | "ELBSecurityPolicy-TLS-1-1-2017-01" | "ELBSecurityPolicy-TLS-1-2-2017-01" | "ELBSecurityPolicy-TLS-1-2-Ext-2018-06" | "ELBSecurityPolicy-FS-2018-06" | "ELBSecurityPolicy-FS-1-1-2019-08" | "ELBSecurityPolicy-FS-1-2-2019-08" | "ELBSecurityPolicy-FS-1-2-Res-2019-08" | "ELBSecurityPolicy-2015-05" | "ELBSecurityPolicy-FS-1-2-Res-2020-10" | "ELBSecurityPolicy-TLS13-1-2-2021-06" | "ELBSecurityPolicy-TLS13-1-2-Res-2021-06" | "ELBSecurityPolicy-TLS13-1-2-Ext1-2021-06" | "ELBSecurityPolicy-TLS13-1-2-Ext2-2021-06" | "ELBSecurityPolicy-TLS13-1-1-2021-06" | "ELBSecurityPolicy-TLS13-1-0-2021-06" | "ELBSecurityPolicy-TLS13-1-3-2021-06" | "ELBSecurityPolicy-2016-08">>;
            targetGroup: SizedType<string, Type<string, string, unknown>>;
        }>>>;
        name: SizedType<string, Type<string, string, unknown>>;
        scheme: OptionalType<EnumType<"internet-facing" | "internal">>;
        subnets: ArrayC<SizedType<string, Type<string, string, unknown>>>;
    }>>;
    targetGroups: OptionalType<ArrayC<TypeC<{
        attributes: OptionalType<TypeC<{
            algorithm: OptionalType<EnumType<"round_robin" | "least_outstanding_requests">>;
            appCookieDuration: OptionalType<NumberC>;
            appCookieName: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            connectionTermination: OptionalType<BooleanC>;
            deregistrationDelay: OptionalType<NumberC>;
            lbCookieDuration: OptionalType<NumberC>;
            preserveClientIp: OptionalType<BooleanC>;
            proxyProtocolV2: OptionalType<BooleanC>;
            slowStart: OptionalType<NumberC>;
            stickiness: OptionalType<BooleanC>;
            stickinessType: OptionalType<EnumType<"lb_cookie" | "app_cookie" | "source_ip" | "source_ip_dest_ip" | "source_ip_dest_ip_proto">>;
            targetFailover: OptionalType<EnumType<"no_rebalance" | "rebalance">>;
        }>>;
        healthCheck: OptionalType<TypeC<{
            interval: OptionalType<NumberC>;
            path: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            port: OptionalType<NumberC>;
            protocol: OptionalType<EnumType<"HTTP" | "TCP" | "HTTPS">>;
            timeout: OptionalType<NumberC>;
        }>>;
        matcher: OptionalType<TypeC<{
            grpcCode: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            httpCode: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        }>>;
        name: SizedType<string, Type<string, string, unknown>>;
        port: NumberC;
        protocol: EnumType<"HTTP" | "TCP" | "UDP" | "HTTPS" | "TLS" | "TCP_UDP" | "GENEVE">;
        protocolVersion: OptionalType<EnumType<"HTTP1" | "HTTP2" | "GRPC">>;
        shareTargets: OptionalType<TypeC<{
            accounts: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
            organizationalUnits: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
        }>>;
        targets: OptionalType<ArrayC<UnionC<[SizedType<string, Type<string, string, unknown>>, TypeC<{
            account: SizedType<string, Type<string, string, unknown>>;
            nlbName: SizedType<string, Type<string, string, unknown>>;
            region: SizedType<string, Type<string, string, unknown>>;
        }>]>>>;
        threshold: OptionalType<TypeC<{
            healthy: OptionalType<NumberC>;
            unhealthy: OptionalType<NumberC>;
        }>>;
        type: EnumType<"instance" | "ip" | "alb">;
    }>>>;
    vpc: SizedType<string, Type<string, string, unknown>>;
}> = ...
applicationLoadBalancerConfig: TypeC<{
    attributes: OptionalType<TypeC<{
        deletionProtection: OptionalType<BooleanC>;
        http2Enabled: OptionalType<BooleanC>;
        idleTimeout: OptionalType<NumberC>;
        routingHttpDesyncMitigationMode: OptionalType<EnumType<"monitor" | "defensive" | "strictest">>;
        routingHttpDropInvalidHeader: OptionalType<BooleanC>;
        routingHttpXAmznTlsCipherEnable: OptionalType<BooleanC>;
        routingHttpXffClientPort: OptionalType<BooleanC>;
        routingHttpXffHeaderProcessingMode: OptionalType<EnumType<"remove" | "append" | "preserve">>;
        wafFailOpen: OptionalType<BooleanC>;
    }>>;
    listeners: OptionalType<ArrayC<TypeC<{
        certificate: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        fixedResponseConfig: OptionalType<TypeC<{
            contentType: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            messageBody: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            statusCode: SizedType<string, Type<string, string, unknown>>;
        }>>;
        forwardConfig: OptionalType<TypeC<{
            targetGroupStickinessConfig: OptionalType<TypeC<{
                durationSeconds: OptionalType<NumberC>;
                enabled: OptionalType<BooleanC>;
            }>>;
        }>>;
        name: SizedType<string, Type<string, string, unknown>>;
        order: OptionalType<NumberC>;
        port: NumberC;
        protocol: EnumType<"HTTP" | "HTTPS">;
        redirectConfig: OptionalType<TypeC<{
            host: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            path: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            port: OptionalType<NumberC>;
            protocol: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            query: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            statusCode: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        }>>;
        sslPolicy: OptionalType<EnumType<"ELBSecurityPolicy-TLS-1-0-2015-04" | "ELBSecurityPolicy-TLS-1-1-2017-01" | "ELBSecurityPolicy-TLS-1-2-2017-01" | "ELBSecurityPolicy-TLS-1-2-Ext-2018-06" | "ELBSecurityPolicy-FS-2018-06" | "ELBSecurityPolicy-FS-1-1-2019-08" | "ELBSecurityPolicy-FS-1-2-2019-08" | "ELBSecurityPolicy-FS-1-2-Res-2019-08" | "ELBSecurityPolicy-2015-05" | "ELBSecurityPolicy-FS-1-2-Res-2020-10" | "ELBSecurityPolicy-2016-08">>;
        targetGroup: SizedType<string, Type<string, string, unknown>>;
        type: EnumType<"forward" | "redirect" | "fixed-response">;
    }>>>;
    name: SizedType<string, Type<string, string, unknown>>;
    scheme: OptionalType<EnumType<"internet-facing" | "internal">>;
    securityGroups: ArrayC<SizedType<string, Type<string, string, unknown>>>;
    shareTargets: OptionalType<TypeC<{
        accounts: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
        organizationalUnits: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
    }>>;
    subnets: ArrayC<SizedType<string, Type<string, string, unknown>>>;
}> = ...
autoScalingHealthCheckTypeEnum: EnumType<"EC2" | "ELB"> = ...
autoscalingConfig: TypeC<{
    desiredSize: NumberC;
    healthCheckGracePeriod: OptionalType<NumberC>;
    healthCheckType: OptionalType<EnumType<"EC2" | "ELB">>;
    launchTemplate: SizedType<string, Type<string, string, unknown>>;
    maxSize: NumberC;
    minSize: NumberC;
    name: SizedType<string, Type<string, string, unknown>>;
    subnets: ArrayC<SizedType<string, Type<string, string, unknown>>>;
    targetGroups: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
}> = ...
blockDeviceMappingItem: TypeC<{
    deviceName: SizedType<string, Type<string, string, unknown>>;
    ebs: OptionalType<TypeC<{
        deleteOnTermination: OptionalType<BooleanC>;
        encrypted: OptionalType<BooleanC>;
        iops: OptionalType<NumberC>;
        kmsKeyId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        snapshotId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        throughput: OptionalType<NumberC>;
        volumeSize: OptionalType<NumberC>;
        volumeType: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    }>>;
}> = ...
capabilityTypeEnum: EnumType<"CAPABILITY_IAM" | "CAPABILITY_NAMED_IAM" | "CAPABILITY_AUTO_EXPAND"> = ...
cloudFormationStack: TypeC<{
    deploymentTargets: TypeC<{
        accounts: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
        excludedAccounts: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
        excludedRegions: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
        organizationalUnits: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
    }>;
    description: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    name: SizedType<string, Type<string, string, unknown>>;
    parameters: OptionalType<ArrayC<TypeC<{
        name: StringC;
        value: StringC;
    }>>>;
    regions: ArrayC<EnumType<string>>;
    runOrder: NumberC;
    template: SizedType<string, Type<string, string, unknown>>;
    terminationProtection: BooleanC;
}> = ...
cloudFormationStackSet: TypeC<{
    capabilities: OptionalType<ArrayC<EnumType<"CAPABILITY_IAM" | "CAPABILITY_NAMED_IAM" | "CAPABILITY_AUTO_EXPAND">>>;
    deploymentTargets: TypeC<{
        accounts: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
        excludedAccounts: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
        excludedRegions: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
        organizationalUnits: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
    }>;
    description: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    name: SizedType<string, Type<string, string, unknown>>;
    parameters: OptionalType<ArrayC<TypeC<{
        name: StringC;
        value: StringC;
    }>>>;
    regions: ArrayC<EnumType<string>>;
    template: SizedType<string, Type<string, string, unknown>>;
}> = ...
customizationConfig: TypeC<{
    cloudFormationStackSets: OptionalType<ArrayC<TypeC<{
        capabilities: OptionalType<ArrayC<EnumType<"CAPABILITY_IAM" | "CAPABILITY_NAMED_IAM" | "CAPABILITY_AUTO_EXPAND">>>;
        deploymentTargets: TypeC<{
            accounts: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
            excludedAccounts: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
            excludedRegions: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
            organizationalUnits: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
        }>;
        description: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        name: SizedType<string, Type<string, string, unknown>>;
        parameters: OptionalType<ArrayC<TypeC<{
            name: StringC;
            value: StringC;
        }>>>;
        regions: ArrayC<EnumType<string>>;
        template: SizedType<string, Type<string, string, unknown>>;
    }>>>;
    cloudFormationStacks: OptionalType<ArrayC<TypeC<{
        deploymentTargets: TypeC<{
            accounts: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
            excludedAccounts: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
            excludedRegions: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
            organizationalUnits: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
        }>;
        description: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        name: SizedType<string, Type<string, string, unknown>>;
        parameters: OptionalType<ArrayC<TypeC<{
            name: StringC;
            value: StringC;
        }>>>;
        regions: ArrayC<EnumType<string>>;
        runOrder: NumberC;
        template: SizedType<string, Type<string, string, unknown>>;
        terminationProtection: BooleanC;
    }>>>;
    serviceCatalogPortfolios: OptionalType<ArrayC<TypeC<{
        account: SizedType<string, Type<string, string, unknown>>;
        name: SizedType<string, Type<string, string, unknown>>;
        portfolioAssociations: OptionalType<ArrayC<TypeC<{
            name: SizedType<string, Type<string, string, unknown>>;
            propagateAssociation: OptionalType<BooleanC>;
            type: EnumType<"User" | "Role" | "Group" | "PermissionSet">;
        }>>>;
        products: OptionalType<ArrayC<TypeC<{
            constraints: OptionalType<TypeC<{
                launch: OptionalType<TypeC<{
                    role: SizedType<string, Type<string, string, unknown>>;
                    type: EnumType<"Role" | "LocalRole">;
                }>>;
                notifications: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
                tagUpdate: OptionalType<BooleanC>;
            }>>;
            description: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            distributor: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            name: SizedType<string, Type<string, string, unknown>>;
            owner: SizedType<string, Type<string, string, unknown>>;
            support: OptionalType<TypeC<{
                description: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                email: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                url: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            }>>;
            tagOptions: OptionalType<ArrayC<TypeC<{
                key: SizedType<string, Type<string, string, unknown>>;
                values: ArrayC<SizedType<string, Type<string, string, unknown>>>;
            }>>>;
            versions: ArrayC<TypeC<{
                description: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                name: SizedType<string, Type<string, string, unknown>>;
                template: SizedType<string, Type<string, string, unknown>>;
            }>>;
        }>>>;
        provider: SizedType<string, Type<string, string, unknown>>;
        regions: ArrayC<EnumType<string>>;
        shareTagOptions: OptionalType<BooleanC>;
        shareTargets: OptionalType<TypeC<{
            accounts: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
            organizationalUnits: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
        }>>;
        tagOptions: OptionalType<ArrayC<TypeC<{
            key: SizedType<string, Type<string, string, unknown>>;
            values: ArrayC<SizedType<string, Type<string, string, unknown>>>;
        }>>>;
    }>>>;
}> = ...
customizationsConfig: TypeC<{
    applications: OptionalType<ArrayC<TypeC<{
        applicationLoadBalancer: OptionalType<TypeC<{
            attributes: OptionalType<TypeC<{
                deletionProtection: OptionalType<BooleanC>;
                http2Enabled: OptionalType<BooleanC>;
                idleTimeout: OptionalType<NumberC>;
                routingHttpDesyncMitigationMode: OptionalType<EnumType<"monitor" | "defensive" | "strictest">>;
                routingHttpDropInvalidHeader: OptionalType<BooleanC>;
                routingHttpXAmznTlsCipherEnable: OptionalType<BooleanC>;
                routingHttpXffClientPort: OptionalType<BooleanC>;
                routingHttpXffHeaderProcessingMode: OptionalType<EnumType<"remove" | "append" | "preserve">>;
                wafFailOpen: OptionalType<BooleanC>;
            }>>;
            listeners: OptionalType<ArrayC<TypeC<{
                certificate: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                fixedResponseConfig: OptionalType<TypeC<{
                    contentType: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                    messageBody: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                    statusCode: SizedType<string, Type<string, string, unknown>>;
                }>>;
                forwardConfig: OptionalType<TypeC<{
                    targetGroupStickinessConfig: OptionalType<TypeC<{
                        durationSeconds: OptionalType<NumberC>;
                        enabled: OptionalType<BooleanC>;
                    }>>;
                }>>;
                name: SizedType<string, Type<string, string, unknown>>;
                order: OptionalType<NumberC>;
                port: NumberC;
                protocol: EnumType<"HTTP" | "HTTPS">;
                redirectConfig: OptionalType<TypeC<{
                    host: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                    path: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                    port: OptionalType<NumberC>;
                    protocol: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                    query: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                    statusCode: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                }>>;
                sslPolicy: OptionalType<EnumType<"ELBSecurityPolicy-TLS-1-0-2015-04" | "ELBSecurityPolicy-TLS-1-1-2017-01" | "ELBSecurityPolicy-TLS-1-2-2017-01" | "ELBSecurityPolicy-TLS-1-2-Ext-2018-06" | "ELBSecurityPolicy-FS-2018-06" | "ELBSecurityPolicy-FS-1-1-2019-08" | "ELBSecurityPolicy-FS-1-2-2019-08" | "ELBSecurityPolicy-FS-1-2-Res-2019-08" | "ELBSecurityPolicy-2015-05" | "ELBSecurityPolicy-FS-1-2-Res-2020-10" | "ELBSecurityPolicy-2016-08">>;
                targetGroup: SizedType<string, Type<string, string, unknown>>;
                type: EnumType<"forward" | "redirect" | "fixed-response">;
            }>>>;
            name: SizedType<string, Type<string, string, unknown>>;
            scheme: OptionalType<EnumType<"internet-facing" | "internal">>;
            securityGroups: ArrayC<SizedType<string, Type<string, string, unknown>>>;
            shareTargets: OptionalType<TypeC<{
                accounts: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
                organizationalUnits: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
            }>>;
            subnets: ArrayC<SizedType<string, Type<string, string, unknown>>>;
        }>>;
        autoscaling: OptionalType<TypeC<{
            desiredSize: NumberC;
            healthCheckGracePeriod: OptionalType<NumberC>;
            healthCheckType: OptionalType<EnumType<"EC2" | "ELB">>;
            launchTemplate: SizedType<string, Type<string, string, unknown>>;
            maxSize: NumberC;
            minSize: NumberC;
            name: SizedType<string, Type<string, string, unknown>>;
            subnets: ArrayC<SizedType<string, Type<string, string, unknown>>>;
            targetGroups: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
        }>>;
        deploymentTargets: TypeC<{
            accounts: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
            excludedAccounts: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
            excludedRegions: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
            organizationalUnits: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
        }>;
        launchTemplate: OptionalType<TypeC<{
            blockDeviceMappings: OptionalType<ArrayC<TypeC<{
                deviceName: SizedType<string, Type<string, string, unknown>>;
                ebs: OptionalType<TypeC<{
                    deleteOnTermination: OptionalType<BooleanC>;
                    encrypted: OptionalType<BooleanC>;
                    iops: OptionalType<NumberC>;
                    kmsKeyId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                    snapshotId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                    throughput: OptionalType<NumberC>;
                    volumeSize: OptionalType<NumberC>;
                    volumeType: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                }>>;
            }>>>;
            enforceImdsv2: OptionalType<BooleanC>;
            iamInstanceProfile: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            imageId: SizedType<string, Type<string, string, unknown>>;
            instanceType: SizedType<string, Type<string, string, unknown>>;
            keyPair: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            name: SizedType<string, Type<string, string, unknown>>;
            networkInterfaces: OptionalType<ArrayC<TypeC<{
                associateCarrierIpAddress: OptionalType<BooleanC>;
                associateElasticIp: OptionalType<BooleanC>;
                associatePublicIpAddress: OptionalType<BooleanC>;
                deleteOnTermination: OptionalType<BooleanC>;
                description: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                deviceIndex: OptionalType<NumberC>;
                groups: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
                interfaceType: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                networkCardIndex: OptionalType<NumberC>;
                networkInterfaceId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                privateIpAddress: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                privateIpAddresses: OptionalType<ArrayC<TypeC<{
                    primary: OptionalType<BooleanC>;
                    privateIpAddress: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                }>>>;
                secondaryPrivateIpAddressCount: OptionalType<NumberC>;
                sourceDestCheck: OptionalType<BooleanC>;
                subnetId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            }>>>;
            securityGroups: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
            userData: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        }>>;
        name: SizedType<string, Type<string, string, unknown>>;
        networkLoadBalancer: OptionalType<TypeC<{
            crossZoneLoadBalancing: OptionalType<BooleanC>;
            deletionProtection: OptionalType<BooleanC>;
            listeners: OptionalType<ArrayC<TypeC<{
                alpnPolicy: OptionalType<EnumType<"None" | "HTTP1Only" | "HTTP2Only" | "HTTP2Optional" | "HTTP2Preferred">>;
                certificate: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                name: SizedType<string, Type<string, string, unknown>>;
                port: OptionalType<NumberC>;
                protocol: OptionalType<EnumType<"TCP" | "UDP" | "TLS" | "TCP_UDP">>;
                sslPolicy: OptionalType<EnumType<"ELBSecurityPolicy-TLS-1-0-2015-04" | "ELBSecurityPolicy-TLS-1-1-2017-01" | "ELBSecurityPolicy-TLS-1-2-2017-01" | "ELBSecurityPolicy-TLS-1-2-Ext-2018-06" | "ELBSecurityPolicy-FS-2018-06" | "ELBSecurityPolicy-FS-1-1-2019-08" | "ELBSecurityPolicy-FS-1-2-2019-08" | "ELBSecurityPolicy-FS-1-2-Res-2019-08" | "ELBSecurityPolicy-2015-05" | "ELBSecurityPolicy-FS-1-2-Res-2020-10" | "ELBSecurityPolicy-TLS13-1-2-2021-06" | "ELBSecurityPolicy-TLS13-1-2-Res-2021-06" | "ELBSecurityPolicy-TLS13-1-2-Ext1-2021-06" | "ELBSecurityPolicy-TLS13-1-2-Ext2-2021-06" | "ELBSecurityPolicy-TLS13-1-1-2021-06" | "ELBSecurityPolicy-TLS13-1-0-2021-06" | "ELBSecurityPolicy-TLS13-1-3-2021-06" | "ELBSecurityPolicy-2016-08">>;
                targetGroup: SizedType<string, Type<string, string, unknown>>;
            }>>>;
            name: SizedType<string, Type<string, string, unknown>>;
            scheme: OptionalType<EnumType<"internet-facing" | "internal">>;
            subnets: ArrayC<SizedType<string, Type<string, string, unknown>>>;
        }>>;
        targetGroups: OptionalType<ArrayC<TypeC<{
            attributes: OptionalType<TypeC<{
                algorithm: OptionalType<EnumType<"round_robin" | "least_outstanding_requests">>;
                appCookieDuration: OptionalType<NumberC>;
                appCookieName: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                connectionTermination: OptionalType<BooleanC>;
                deregistrationDelay: OptionalType<NumberC>;
                lbCookieDuration: OptionalType<NumberC>;
                preserveClientIp: OptionalType<BooleanC>;
                proxyProtocolV2: OptionalType<BooleanC>;
                slowStart: OptionalType<NumberC>;
                stickiness: OptionalType<BooleanC>;
                stickinessType: OptionalType<EnumType<"lb_cookie" | "app_cookie" | "source_ip" | "source_ip_dest_ip" | "source_ip_dest_ip_proto">>;
                targetFailover: OptionalType<EnumType<"no_rebalance" | "rebalance">>;
            }>>;
            healthCheck: OptionalType<TypeC<{
                interval: OptionalType<NumberC>;
                path: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                port: OptionalType<NumberC>;
                protocol: OptionalType<EnumType<"HTTP" | "TCP" | "HTTPS">>;
                timeout: OptionalType<NumberC>;
            }>>;
            matcher: OptionalType<TypeC<{
                grpcCode: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                httpCode: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            }>>;
            name: SizedType<string, Type<string, string, unknown>>;
            port: NumberC;
            protocol: EnumType<"HTTP" | "TCP" | "UDP" | "HTTPS" | "TLS" | "TCP_UDP" | "GENEVE">;
            protocolVersion: OptionalType<EnumType<"HTTP1" | "HTTP2" | "GRPC">>;
            shareTargets: OptionalType<TypeC<{
                accounts: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
                organizationalUnits: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
            }>>;
            targets: OptionalType<ArrayC<UnionC<[SizedType<string, Type<string, string, unknown>>, TypeC<{
                account: SizedType<string, Type<string, string, unknown>>;
                nlbName: SizedType<string, Type<string, string, unknown>>;
                region: SizedType<string, Type<string, string, unknown>>;
            }>]>>>;
            threshold: OptionalType<TypeC<{
                healthy: OptionalType<NumberC>;
                unhealthy: OptionalType<NumberC>;
            }>>;
            type: EnumType<"instance" | "ip" | "alb">;
        }>>>;
        vpc: SizedType<string, Type<string, string, unknown>>;
    }>>>;
    customizations: OptionalType<TypeC<{
        cloudFormationStackSets: OptionalType<ArrayC<TypeC<{
            capabilities: OptionalType<ArrayC<EnumType<"CAPABILITY_IAM" | "CAPABILITY_NAMED_IAM" | "CAPABILITY_AUTO_EXPAND">>>;
            deploymentTargets: TypeC<{
                accounts: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
                excludedAccounts: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
                excludedRegions: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
                organizationalUnits: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
            }>;
            description: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            name: SizedType<string, Type<string, string, unknown>>;
            parameters: OptionalType<ArrayC<TypeC<{
                name: StringC;
                value: StringC;
            }>>>;
            regions: ArrayC<EnumType<string>>;
            template: SizedType<string, Type<string, string, unknown>>;
        }>>>;
        cloudFormationStacks: OptionalType<ArrayC<TypeC<{
            deploymentTargets: TypeC<{
                accounts: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
                excludedAccounts: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
                excludedRegions: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
                organizationalUnits: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
            }>;
            description: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            name: SizedType<string, Type<string, string, unknown>>;
            parameters: OptionalType<ArrayC<TypeC<{
                name: StringC;
                value: StringC;
            }>>>;
            regions: ArrayC<EnumType<string>>;
            runOrder: NumberC;
            template: SizedType<string, Type<string, string, unknown>>;
            terminationProtection: BooleanC;
        }>>>;
        serviceCatalogPortfolios: OptionalType<ArrayC<TypeC<{
            account: SizedType<string, Type<string, string, unknown>>;
            name: SizedType<string, Type<string, string, unknown>>;
            portfolioAssociations: OptionalType<ArrayC<TypeC<{
                name: SizedType<string, Type<string, string, unknown>>;
                propagateAssociation: OptionalType<BooleanC>;
                type: EnumType<"User" | "Role" | "Group" | "PermissionSet">;
            }>>>;
            products: OptionalType<ArrayC<TypeC<{
                constraints: OptionalType<TypeC<{
                    launch: OptionalType<TypeC<{
                        role: SizedType<string, Type<string, string, unknown>>;
                        type: EnumType<"Role" | "LocalRole">;
                    }>>;
                    notifications: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
                    tagUpdate: OptionalType<BooleanC>;
                }>>;
                description: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                distributor: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                name: SizedType<string, Type<string, string, unknown>>;
                owner: SizedType<string, Type<string, string, unknown>>;
                support: OptionalType<TypeC<{
                    description: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                    email: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                    url: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                }>>;
                tagOptions: OptionalType<ArrayC<TypeC<{
                    key: SizedType<string, Type<string, string, unknown>>;
                    values: ArrayC<SizedType<string, Type<string, string, unknown>>>;
                }>>>;
                versions: ArrayC<TypeC<{
                    description: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                    name: SizedType<string, Type<string, string, unknown>>;
                    template: SizedType<string, Type<string, string, unknown>>;
                }>>;
            }>>>;
            provider: SizedType<string, Type<string, string, unknown>>;
            regions: ArrayC<EnumType<string>>;
            shareTagOptions: OptionalType<BooleanC>;
            shareTargets: OptionalType<TypeC<{
                accounts: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
                organizationalUnits: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
            }>>;
            tagOptions: OptionalType<ArrayC<TypeC<{
                key: SizedType<string, Type<string, string, unknown>>;
                values: ArrayC<SizedType<string, Type<string, string, unknown>>>;
            }>>>;
        }>>>;
    }>>;
    firewalls: OptionalType<TypeC<{
        autoscalingGroups: OptionalType<ArrayC<TypeC<{
            account: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            autoscaling: TypeC<{
                desiredSize: NumberC;
                healthCheckGracePeriod: OptionalType<NumberC>;
                healthCheckType: OptionalType<EnumType<"EC2" | "ELB">>;
                launchTemplate: SizedType<string, Type<string, string, unknown>>;
                maxSize: NumberC;
                minSize: NumberC;
                name: SizedType<string, Type<string, string, unknown>>;
                subnets: ArrayC<SizedType<string, Type<string, string, unknown>>>;
                targetGroups: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
            }>;
            configDir: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            configFile: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            launchTemplate: TypeC<{
                blockDeviceMappings: OptionalType<ArrayC<TypeC<{
                    deviceName: SizedType<string, Type<string, string, unknown>>;
                    ebs: OptionalType<TypeC<{
                        deleteOnTermination: OptionalType<BooleanC>;
                        encrypted: OptionalType<BooleanC>;
                        iops: OptionalType<NumberC>;
                        kmsKeyId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                        snapshotId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                        throughput: OptionalType<NumberC>;
                        volumeSize: OptionalType<NumberC>;
                        volumeType: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                    }>>;
                }>>>;
                enforceImdsv2: OptionalType<BooleanC>;
                iamInstanceProfile: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                imageId: SizedType<string, Type<string, string, unknown>>;
                instanceType: SizedType<string, Type<string, string, unknown>>;
                keyPair: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                name: SizedType<string, Type<string, string, unknown>>;
                networkInterfaces: OptionalType<ArrayC<TypeC<{
                    associateCarrierIpAddress: OptionalType<BooleanC>;
                    associateElasticIp: OptionalType<BooleanC>;
                    associatePublicIpAddress: OptionalType<BooleanC>;
                    deleteOnTermination: OptionalType<BooleanC>;
                    description: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                    deviceIndex: OptionalType<NumberC>;
                    groups: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
                    interfaceType: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                    networkCardIndex: OptionalType<NumberC>;
                    networkInterfaceId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                    privateIpAddress: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                    privateIpAddresses: OptionalType<ArrayC<TypeC<{
                        primary: OptionalType<BooleanC>;
                        privateIpAddress: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                    }>>>;
                    secondaryPrivateIpAddressCount: OptionalType<NumberC>;
                    sourceDestCheck: OptionalType<BooleanC>;
                    subnetId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                }>>>;
                securityGroups: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
                userData: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            }>;
            licenseFile: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            name: SizedType<string, Type<string, string, unknown>>;
            staticReplacements: OptionalType<ArrayC<TypeC<{
                key: SizedType<string, Type<string, string, unknown>>;
                value: SizedType<string, Type<string, string, unknown>>;
            }>>>;
            tags: OptionalType<ArrayC<TypeC<{
                key: StringC;
                value: StringC;
            }>>>;
            vpc: SizedType<string, Type<string, string, unknown>>;
        }>>>;
        instances: OptionalType<ArrayC<TypeC<{
            account: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            configDir: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            configFile: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            detailedMonitoring: OptionalType<BooleanC>;
            launchTemplate: TypeC<{
                blockDeviceMappings: OptionalType<ArrayC<TypeC<{
                    deviceName: SizedType<string, Type<string, string, unknown>>;
                    ebs: OptionalType<TypeC<{
                        deleteOnTermination: OptionalType<BooleanC>;
                        encrypted: OptionalType<BooleanC>;
                        iops: OptionalType<NumberC>;
                        kmsKeyId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                        snapshotId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                        throughput: OptionalType<NumberC>;
                        volumeSize: OptionalType<NumberC>;
                        volumeType: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                    }>>;
                }>>>;
                enforceImdsv2: OptionalType<BooleanC>;
                iamInstanceProfile: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                imageId: SizedType<string, Type<string, string, unknown>>;
                instanceType: SizedType<string, Type<string, string, unknown>>;
                keyPair: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                name: SizedType<string, Type<string, string, unknown>>;
                networkInterfaces: OptionalType<ArrayC<TypeC<{
                    associateCarrierIpAddress: OptionalType<BooleanC>;
                    associateElasticIp: OptionalType<BooleanC>;
                    associatePublicIpAddress: OptionalType<BooleanC>;
                    deleteOnTermination: OptionalType<BooleanC>;
                    description: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                    deviceIndex: OptionalType<NumberC>;
                    groups: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
                    interfaceType: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                    networkCardIndex: OptionalType<NumberC>;
                    networkInterfaceId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                    privateIpAddress: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                    privateIpAddresses: OptionalType<ArrayC<TypeC<{
                        primary: OptionalType<BooleanC>;
                        privateIpAddress: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                    }>>>;
                    secondaryPrivateIpAddressCount: OptionalType<NumberC>;
                    sourceDestCheck: OptionalType<BooleanC>;
                    subnetId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                }>>>;
                securityGroups: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
                userData: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            }>;
            licenseFile: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            name: SizedType<string, Type<string, string, unknown>>;
            staticReplacements: OptionalType<ArrayC<TypeC<{
                key: SizedType<string, Type<string, string, unknown>>;
                value: SizedType<string, Type<string, string, unknown>>;
            }>>>;
            tags: OptionalType<ArrayC<TypeC<{
                key: StringC;
                value: StringC;
            }>>>;
            terminationProtection: OptionalType<BooleanC>;
            vpc: SizedType<string, Type<string, string, unknown>>;
        }>>>;
        managerInstances: OptionalType<ArrayC<TypeC<{
            account: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            configDir: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            configFile: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            detailedMonitoring: OptionalType<BooleanC>;
            launchTemplate: TypeC<{
                blockDeviceMappings: OptionalType<ArrayC<TypeC<{
                    deviceName: SizedType<string, Type<string, string, unknown>>;
                    ebs: OptionalType<TypeC<{
                        deleteOnTermination: OptionalType<BooleanC>;
                        encrypted: OptionalType<BooleanC>;
                        iops: OptionalType<NumberC>;
                        kmsKeyId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                        snapshotId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                        throughput: OptionalType<NumberC>;
                        volumeSize: OptionalType<NumberC>;
                        volumeType: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                    }>>;
                }>>>;
                enforceImdsv2: OptionalType<BooleanC>;
                iamInstanceProfile: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                imageId: SizedType<string, Type<string, string, unknown>>;
                instanceType: SizedType<string, Type<string, string, unknown>>;
                keyPair: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                name: SizedType<string, Type<string, string, unknown>>;
                networkInterfaces: OptionalType<ArrayC<TypeC<{
                    associateCarrierIpAddress: OptionalType<BooleanC>;
                    associateElasticIp: OptionalType<BooleanC>;
                    associatePublicIpAddress: OptionalType<BooleanC>;
                    deleteOnTermination: OptionalType<BooleanC>;
                    description: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                    deviceIndex: OptionalType<NumberC>;
                    groups: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
                    interfaceType: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                    networkCardIndex: OptionalType<NumberC>;
                    networkInterfaceId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                    privateIpAddress: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                    privateIpAddresses: OptionalType<ArrayC<TypeC<{
                        primary: OptionalType<BooleanC>;
                        privateIpAddress: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                    }>>>;
                    secondaryPrivateIpAddressCount: OptionalType<NumberC>;
                    sourceDestCheck: OptionalType<BooleanC>;
                    subnetId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                }>>>;
                securityGroups: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
                userData: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            }>;
            licenseFile: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            name: SizedType<string, Type<string, string, unknown>>;
            staticReplacements: OptionalType<ArrayC<TypeC<{
                key: SizedType<string, Type<string, string, unknown>>;
                value: SizedType<string, Type<string, string, unknown>>;
            }>>>;
            tags: OptionalType<ArrayC<TypeC<{
                key: StringC;
                value: StringC;
            }>>>;
            terminationProtection: OptionalType<BooleanC>;
            vpc: SizedType<string, Type<string, string, unknown>>;
        }>>>;
        targetGroups: OptionalType<ArrayC<TypeC<{
            attributes: OptionalType<TypeC<{
                algorithm: OptionalType<EnumType<"round_robin" | "least_outstanding_requests">>;
                appCookieDuration: OptionalType<NumberC>;
                appCookieName: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                connectionTermination: OptionalType<BooleanC>;
                deregistrationDelay: OptionalType<NumberC>;
                lbCookieDuration: OptionalType<NumberC>;
                preserveClientIp: OptionalType<BooleanC>;
                proxyProtocolV2: OptionalType<BooleanC>;
                slowStart: OptionalType<NumberC>;
                stickiness: OptionalType<BooleanC>;
                stickinessType: OptionalType<EnumType<"lb_cookie" | "app_cookie" | "source_ip" | "source_ip_dest_ip" | "source_ip_dest_ip_proto">>;
                targetFailover: OptionalType<EnumType<"no_rebalance" | "rebalance">>;
            }>>;
            healthCheck: OptionalType<TypeC<{
                interval: OptionalType<NumberC>;
                path: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                port: OptionalType<NumberC>;
                protocol: OptionalType<EnumType<"HTTP" | "TCP" | "HTTPS">>;
                timeout: OptionalType<NumberC>;
            }>>;
            matcher: OptionalType<TypeC<{
                grpcCode: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                httpCode: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            }>>;
            name: SizedType<string, Type<string, string, unknown>>;
            port: NumberC;
            protocol: EnumType<"HTTP" | "TCP" | "UDP" | "HTTPS" | "TLS" | "TCP_UDP" | "GENEVE">;
            protocolVersion: OptionalType<EnumType<"HTTP1" | "HTTP2" | "GRPC">>;
            shareTargets: OptionalType<TypeC<{
                accounts: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
                organizationalUnits: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
            }>>;
            targets: OptionalType<ArrayC<UnionC<[SizedType<string, Type<string, string, unknown>>, TypeC<{
                account: SizedType<string, Type<string, string, unknown>>;
                nlbName: SizedType<string, Type<string, string, unknown>>;
                region: SizedType<string, Type<string, string, unknown>>;
            }>]>>>;
            threshold: OptionalType<TypeC<{
                healthy: OptionalType<NumberC>;
                unhealthy: OptionalType<NumberC>;
            }>>;
            type: EnumType<"instance" | "ip" | "alb">;
        }>>>;
    }>>;
}> = ...
ebsItem: TypeC<{
    deleteOnTermination: OptionalType<BooleanC>;
    encrypted: OptionalType<BooleanC>;
    iops: OptionalType<NumberC>;
    kmsKeyId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    snapshotId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    throughput: OptionalType<NumberC>;
    volumeSize: OptionalType<NumberC>;
    volumeType: OptionalType<SizedType<string, Type<string, string, unknown>>>;
}> = ...
ec2FirewallAutoScalingGroupConfig: TypeC<{
    account: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    autoscaling: TypeC<{
        desiredSize: NumberC;
        healthCheckGracePeriod: OptionalType<NumberC>;
        healthCheckType: OptionalType<EnumType<"EC2" | "ELB">>;
        launchTemplate: SizedType<string, Type<string, string, unknown>>;
        maxSize: NumberC;
        minSize: NumberC;
        name: SizedType<string, Type<string, string, unknown>>;
        subnets: ArrayC<SizedType<string, Type<string, string, unknown>>>;
        targetGroups: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
    }>;
    configDir: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    configFile: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    launchTemplate: TypeC<{
        blockDeviceMappings: OptionalType<ArrayC<TypeC<{
            deviceName: SizedType<string, Type<string, string, unknown>>;
            ebs: OptionalType<TypeC<{
                deleteOnTermination: OptionalType<BooleanC>;
                encrypted: OptionalType<BooleanC>;
                iops: OptionalType<NumberC>;
                kmsKeyId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                snapshotId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                throughput: OptionalType<NumberC>;
                volumeSize: OptionalType<NumberC>;
                volumeType: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            }>>;
        }>>>;
        enforceImdsv2: OptionalType<BooleanC>;
        iamInstanceProfile: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        imageId: SizedType<string, Type<string, string, unknown>>;
        instanceType: SizedType<string, Type<string, string, unknown>>;
        keyPair: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        name: SizedType<string, Type<string, string, unknown>>;
        networkInterfaces: OptionalType<ArrayC<TypeC<{
            associateCarrierIpAddress: OptionalType<BooleanC>;
            associateElasticIp: OptionalType<BooleanC>;
            associatePublicIpAddress: OptionalType<BooleanC>;
            deleteOnTermination: OptionalType<BooleanC>;
            description: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            deviceIndex: OptionalType<NumberC>;
            groups: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
            interfaceType: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            networkCardIndex: OptionalType<NumberC>;
            networkInterfaceId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            privateIpAddress: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            privateIpAddresses: OptionalType<ArrayC<TypeC<{
                primary: OptionalType<BooleanC>;
                privateIpAddress: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            }>>>;
            secondaryPrivateIpAddressCount: OptionalType<NumberC>;
            sourceDestCheck: OptionalType<BooleanC>;
            subnetId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        }>>>;
        securityGroups: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
        userData: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    }>;
    licenseFile: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    name: SizedType<string, Type<string, string, unknown>>;
    staticReplacements: OptionalType<ArrayC<TypeC<{
        key: SizedType<string, Type<string, string, unknown>>;
        value: SizedType<string, Type<string, string, unknown>>;
    }>>>;
    tags: OptionalType<ArrayC<TypeC<{
        key: StringC;
        value: StringC;
    }>>>;
    vpc: SizedType<string, Type<string, string, unknown>>;
}> = ...
ec2FirewallConfig: TypeC<{
    autoscalingGroups: OptionalType<ArrayC<TypeC<{
        account: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        autoscaling: TypeC<{
            desiredSize: NumberC;
            healthCheckGracePeriod: OptionalType<NumberC>;
            healthCheckType: OptionalType<EnumType<"EC2" | "ELB">>;
            launchTemplate: SizedType<string, Type<string, string, unknown>>;
            maxSize: NumberC;
            minSize: NumberC;
            name: SizedType<string, Type<string, string, unknown>>;
            subnets: ArrayC<SizedType<string, Type<string, string, unknown>>>;
            targetGroups: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
        }>;
        configDir: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        configFile: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        launchTemplate: TypeC<{
            blockDeviceMappings: OptionalType<ArrayC<TypeC<{
                deviceName: SizedType<string, Type<string, string, unknown>>;
                ebs: OptionalType<TypeC<{
                    deleteOnTermination: OptionalType<BooleanC>;
                    encrypted: OptionalType<BooleanC>;
                    iops: OptionalType<NumberC>;
                    kmsKeyId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                    snapshotId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                    throughput: OptionalType<NumberC>;
                    volumeSize: OptionalType<NumberC>;
                    volumeType: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                }>>;
            }>>>;
            enforceImdsv2: OptionalType<BooleanC>;
            iamInstanceProfile: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            imageId: SizedType<string, Type<string, string, unknown>>;
            instanceType: SizedType<string, Type<string, string, unknown>>;
            keyPair: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            name: SizedType<string, Type<string, string, unknown>>;
            networkInterfaces: OptionalType<ArrayC<TypeC<{
                associateCarrierIpAddress: OptionalType<BooleanC>;
                associateElasticIp: OptionalType<BooleanC>;
                associatePublicIpAddress: OptionalType<BooleanC>;
                deleteOnTermination: OptionalType<BooleanC>;
                description: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                deviceIndex: OptionalType<NumberC>;
                groups: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
                interfaceType: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                networkCardIndex: OptionalType<NumberC>;
                networkInterfaceId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                privateIpAddress: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                privateIpAddresses: OptionalType<ArrayC<TypeC<{
                    primary: OptionalType<BooleanC>;
                    privateIpAddress: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                }>>>;
                secondaryPrivateIpAddressCount: OptionalType<NumberC>;
                sourceDestCheck: OptionalType<BooleanC>;
                subnetId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            }>>>;
            securityGroups: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
            userData: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        }>;
        licenseFile: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        name: SizedType<string, Type<string, string, unknown>>;
        staticReplacements: OptionalType<ArrayC<TypeC<{
            key: SizedType<string, Type<string, string, unknown>>;
            value: SizedType<string, Type<string, string, unknown>>;
        }>>>;
        tags: OptionalType<ArrayC<TypeC<{
            key: StringC;
            value: StringC;
        }>>>;
        vpc: SizedType<string, Type<string, string, unknown>>;
    }>>>;
    instances: OptionalType<ArrayC<TypeC<{
        account: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        configDir: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        configFile: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        detailedMonitoring: OptionalType<BooleanC>;
        launchTemplate: TypeC<{
            blockDeviceMappings: OptionalType<ArrayC<TypeC<{
                deviceName: SizedType<string, Type<string, string, unknown>>;
                ebs: OptionalType<TypeC<{
                    deleteOnTermination: OptionalType<BooleanC>;
                    encrypted: OptionalType<BooleanC>;
                    iops: OptionalType<NumberC>;
                    kmsKeyId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                    snapshotId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                    throughput: OptionalType<NumberC>;
                    volumeSize: OptionalType<NumberC>;
                    volumeType: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                }>>;
            }>>>;
            enforceImdsv2: OptionalType<BooleanC>;
            iamInstanceProfile: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            imageId: SizedType<string, Type<string, string, unknown>>;
            instanceType: SizedType<string, Type<string, string, unknown>>;
            keyPair: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            name: SizedType<string, Type<string, string, unknown>>;
            networkInterfaces: OptionalType<ArrayC<TypeC<{
                associateCarrierIpAddress: OptionalType<BooleanC>;
                associateElasticIp: OptionalType<BooleanC>;
                associatePublicIpAddress: OptionalType<BooleanC>;
                deleteOnTermination: OptionalType<BooleanC>;
                description: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                deviceIndex: OptionalType<NumberC>;
                groups: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
                interfaceType: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                networkCardIndex: OptionalType<NumberC>;
                networkInterfaceId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                privateIpAddress: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                privateIpAddresses: OptionalType<ArrayC<TypeC<{
                    primary: OptionalType<BooleanC>;
                    privateIpAddress: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                }>>>;
                secondaryPrivateIpAddressCount: OptionalType<NumberC>;
                sourceDestCheck: OptionalType<BooleanC>;
                subnetId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            }>>>;
            securityGroups: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
            userData: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        }>;
        licenseFile: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        name: SizedType<string, Type<string, string, unknown>>;
        staticReplacements: OptionalType<ArrayC<TypeC<{
            key: SizedType<string, Type<string, string, unknown>>;
            value: SizedType<string, Type<string, string, unknown>>;
        }>>>;
        tags: OptionalType<ArrayC<TypeC<{
            key: StringC;
            value: StringC;
        }>>>;
        terminationProtection: OptionalType<BooleanC>;
        vpc: SizedType<string, Type<string, string, unknown>>;
    }>>>;
    managerInstances: OptionalType<ArrayC<TypeC<{
        account: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        configDir: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        configFile: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        detailedMonitoring: OptionalType<BooleanC>;
        launchTemplate: TypeC<{
            blockDeviceMappings: OptionalType<ArrayC<TypeC<{
                deviceName: SizedType<string, Type<string, string, unknown>>;
                ebs: OptionalType<TypeC<{
                    deleteOnTermination: OptionalType<BooleanC>;
                    encrypted: OptionalType<BooleanC>;
                    iops: OptionalType<NumberC>;
                    kmsKeyId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                    snapshotId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                    throughput: OptionalType<NumberC>;
                    volumeSize: OptionalType<NumberC>;
                    volumeType: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                }>>;
            }>>>;
            enforceImdsv2: OptionalType<BooleanC>;
            iamInstanceProfile: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            imageId: SizedType<string, Type<string, string, unknown>>;
            instanceType: SizedType<string, Type<string, string, unknown>>;
            keyPair: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            name: SizedType<string, Type<string, string, unknown>>;
            networkInterfaces: OptionalType<ArrayC<TypeC<{
                associateCarrierIpAddress: OptionalType<BooleanC>;
                associateElasticIp: OptionalType<BooleanC>;
                associatePublicIpAddress: OptionalType<BooleanC>;
                deleteOnTermination: OptionalType<BooleanC>;
                description: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                deviceIndex: OptionalType<NumberC>;
                groups: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
                interfaceType: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                networkCardIndex: OptionalType<NumberC>;
                networkInterfaceId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                privateIpAddress: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                privateIpAddresses: OptionalType<ArrayC<TypeC<{
                    primary: OptionalType<BooleanC>;
                    privateIpAddress: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                }>>>;
                secondaryPrivateIpAddressCount: OptionalType<NumberC>;
                sourceDestCheck: OptionalType<BooleanC>;
                subnetId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            }>>>;
            securityGroups: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
            userData: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        }>;
        licenseFile: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        name: SizedType<string, Type<string, string, unknown>>;
        staticReplacements: OptionalType<ArrayC<TypeC<{
            key: SizedType<string, Type<string, string, unknown>>;
            value: SizedType<string, Type<string, string, unknown>>;
        }>>>;
        tags: OptionalType<ArrayC<TypeC<{
            key: StringC;
            value: StringC;
        }>>>;
        terminationProtection: OptionalType<BooleanC>;
        vpc: SizedType<string, Type<string, string, unknown>>;
    }>>>;
    targetGroups: OptionalType<ArrayC<TypeC<{
        attributes: OptionalType<TypeC<{
            algorithm: OptionalType<EnumType<"round_robin" | "least_outstanding_requests">>;
            appCookieDuration: OptionalType<NumberC>;
            appCookieName: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            connectionTermination: OptionalType<BooleanC>;
            deregistrationDelay: OptionalType<NumberC>;
            lbCookieDuration: OptionalType<NumberC>;
            preserveClientIp: OptionalType<BooleanC>;
            proxyProtocolV2: OptionalType<BooleanC>;
            slowStart: OptionalType<NumberC>;
            stickiness: OptionalType<BooleanC>;
            stickinessType: OptionalType<EnumType<"lb_cookie" | "app_cookie" | "source_ip" | "source_ip_dest_ip" | "source_ip_dest_ip_proto">>;
            targetFailover: OptionalType<EnumType<"no_rebalance" | "rebalance">>;
        }>>;
        healthCheck: OptionalType<TypeC<{
            interval: OptionalType<NumberC>;
            path: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            port: OptionalType<NumberC>;
            protocol: OptionalType<EnumType<"HTTP" | "TCP" | "HTTPS">>;
            timeout: OptionalType<NumberC>;
        }>>;
        matcher: OptionalType<TypeC<{
            grpcCode: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            httpCode: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        }>>;
        name: SizedType<string, Type<string, string, unknown>>;
        port: NumberC;
        protocol: EnumType<"HTTP" | "TCP" | "UDP" | "HTTPS" | "TLS" | "TCP_UDP" | "GENEVE">;
        protocolVersion: OptionalType<EnumType<"HTTP1" | "HTTP2" | "GRPC">>;
        shareTargets: OptionalType<TypeC<{
            accounts: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
            organizationalUnits: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
        }>>;
        targets: OptionalType<ArrayC<UnionC<[SizedType<string, Type<string, string, unknown>>, TypeC<{
            account: SizedType<string, Type<string, string, unknown>>;
            nlbName: SizedType<string, Type<string, string, unknown>>;
            region: SizedType<string, Type<string, string, unknown>>;
        }>]>>>;
        threshold: OptionalType<TypeC<{
            healthy: OptionalType<NumberC>;
            unhealthy: OptionalType<NumberC>;
        }>>;
        type: EnumType<"instance" | "ip" | "alb">;
    }>>>;
}> = ...
ec2FirewallInstanceConfig: TypeC<{
    account: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    configDir: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    configFile: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    detailedMonitoring: OptionalType<BooleanC>;
    launchTemplate: TypeC<{
        blockDeviceMappings: OptionalType<ArrayC<TypeC<{
            deviceName: SizedType<string, Type<string, string, unknown>>;
            ebs: OptionalType<TypeC<{
                deleteOnTermination: OptionalType<BooleanC>;
                encrypted: OptionalType<BooleanC>;
                iops: OptionalType<NumberC>;
                kmsKeyId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                snapshotId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                throughput: OptionalType<NumberC>;
                volumeSize: OptionalType<NumberC>;
                volumeType: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            }>>;
        }>>>;
        enforceImdsv2: OptionalType<BooleanC>;
        iamInstanceProfile: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        imageId: SizedType<string, Type<string, string, unknown>>;
        instanceType: SizedType<string, Type<string, string, unknown>>;
        keyPair: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        name: SizedType<string, Type<string, string, unknown>>;
        networkInterfaces: OptionalType<ArrayC<TypeC<{
            associateCarrierIpAddress: OptionalType<BooleanC>;
            associateElasticIp: OptionalType<BooleanC>;
            associatePublicIpAddress: OptionalType<BooleanC>;
            deleteOnTermination: OptionalType<BooleanC>;
            description: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            deviceIndex: OptionalType<NumberC>;
            groups: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
            interfaceType: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            networkCardIndex: OptionalType<NumberC>;
            networkInterfaceId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            privateIpAddress: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            privateIpAddresses: OptionalType<ArrayC<TypeC<{
                primary: OptionalType<BooleanC>;
                privateIpAddress: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            }>>>;
            secondaryPrivateIpAddressCount: OptionalType<NumberC>;
            sourceDestCheck: OptionalType<BooleanC>;
            subnetId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        }>>>;
        securityGroups: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
        userData: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    }>;
    licenseFile: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    name: SizedType<string, Type<string, string, unknown>>;
    staticReplacements: OptionalType<ArrayC<TypeC<{
        key: SizedType<string, Type<string, string, unknown>>;
        value: SizedType<string, Type<string, string, unknown>>;
    }>>>;
    tags: OptionalType<ArrayC<TypeC<{
        key: StringC;
        value: StringC;
    }>>>;
    terminationProtection: OptionalType<BooleanC>;
    vpc: SizedType<string, Type<string, string, unknown>>;
}> = ...
firewallStaticReplacementsConfig: TypeC<{
    key: SizedType<string, Type<string, string, unknown>>;
    value: SizedType<string, Type<string, string, unknown>>;
}> = ...
launchTemplateConfig: TypeC<{
    blockDeviceMappings: OptionalType<ArrayC<TypeC<{
        deviceName: SizedType<string, Type<string, string, unknown>>;
        ebs: OptionalType<TypeC<{
            deleteOnTermination: OptionalType<BooleanC>;
            encrypted: OptionalType<BooleanC>;
            iops: OptionalType<NumberC>;
            kmsKeyId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            snapshotId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            throughput: OptionalType<NumberC>;
            volumeSize: OptionalType<NumberC>;
            volumeType: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        }>>;
    }>>>;
    enforceImdsv2: OptionalType<BooleanC>;
    iamInstanceProfile: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    imageId: SizedType<string, Type<string, string, unknown>>;
    instanceType: SizedType<string, Type<string, string, unknown>>;
    keyPair: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    name: SizedType<string, Type<string, string, unknown>>;
    networkInterfaces: OptionalType<ArrayC<TypeC<{
        associateCarrierIpAddress: OptionalType<BooleanC>;
        associateElasticIp: OptionalType<BooleanC>;
        associatePublicIpAddress: OptionalType<BooleanC>;
        deleteOnTermination: OptionalType<BooleanC>;
        description: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        deviceIndex: OptionalType<NumberC>;
        groups: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
        interfaceType: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        networkCardIndex: OptionalType<NumberC>;
        networkInterfaceId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        privateIpAddress: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        privateIpAddresses: OptionalType<ArrayC<TypeC<{
            primary: OptionalType<BooleanC>;
            privateIpAddress: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        }>>>;
        secondaryPrivateIpAddressCount: OptionalType<NumberC>;
        sourceDestCheck: OptionalType<BooleanC>;
        subnetId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    }>>>;
    securityGroups: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
    userData: OptionalType<SizedType<string, Type<string, string, unknown>>>;
}> = ...
loadBalancerSchemeEnum: EnumType<"internet-facing" | "internal"> = ...
networkInterfaceItem: TypeC<{
    associateCarrierIpAddress: OptionalType<BooleanC>;
    associateElasticIp: OptionalType<BooleanC>;
    associatePublicIpAddress: OptionalType<BooleanC>;
    deleteOnTermination: OptionalType<BooleanC>;
    description: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    deviceIndex: OptionalType<NumberC>;
    groups: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
    interfaceType: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    networkCardIndex: OptionalType<NumberC>;
    networkInterfaceId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    privateIpAddress: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    privateIpAddresses: OptionalType<ArrayC<TypeC<{
        primary: OptionalType<BooleanC>;
        privateIpAddress: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    }>>>;
    secondaryPrivateIpAddressCount: OptionalType<NumberC>;
    sourceDestCheck: OptionalType<BooleanC>;
    subnetId: OptionalType<SizedType<string, Type<string, string, unknown>>>;
}> = ...
networkLoadBalancerConfig: TypeC<{
    crossZoneLoadBalancing: OptionalType<BooleanC>;
    deletionProtection: OptionalType<BooleanC>;
    listeners: OptionalType<ArrayC<TypeC<{
        alpnPolicy: OptionalType<EnumType<"None" | "HTTP1Only" | "HTTP2Only" | "HTTP2Optional" | "HTTP2Preferred">>;
        certificate: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        name: SizedType<string, Type<string, string, unknown>>;
        port: OptionalType<NumberC>;
        protocol: OptionalType<EnumType<"TCP" | "UDP" | "TLS" | "TCP_UDP">>;
        sslPolicy: OptionalType<EnumType<"ELBSecurityPolicy-TLS-1-0-2015-04" | "ELBSecurityPolicy-TLS-1-1-2017-01" | "ELBSecurityPolicy-TLS-1-2-2017-01" | "ELBSecurityPolicy-TLS-1-2-Ext-2018-06" | "ELBSecurityPolicy-FS-2018-06" | "ELBSecurityPolicy-FS-1-1-2019-08" | "ELBSecurityPolicy-FS-1-2-2019-08" | "ELBSecurityPolicy-FS-1-2-Res-2019-08" | "ELBSecurityPolicy-2015-05" | "ELBSecurityPolicy-FS-1-2-Res-2020-10" | "ELBSecurityPolicy-TLS13-1-2-2021-06" | "ELBSecurityPolicy-TLS13-1-2-Res-2021-06" | "ELBSecurityPolicy-TLS13-1-2-Ext1-2021-06" | "ELBSecurityPolicy-TLS13-1-2-Ext2-2021-06" | "ELBSecurityPolicy-TLS13-1-1-2021-06" | "ELBSecurityPolicy-TLS13-1-0-2021-06" | "ELBSecurityPolicy-TLS13-1-3-2021-06" | "ELBSecurityPolicy-2016-08">>;
        targetGroup: SizedType<string, Type<string, string, unknown>>;
    }>>>;
    name: SizedType<string, Type<string, string, unknown>>;
    scheme: OptionalType<EnumType<"internet-facing" | "internal">>;
    subnets: ArrayC<SizedType<string, Type<string, string, unknown>>>;
}> = ...
nlbListenerConfig: TypeC<{
    alpnPolicy: OptionalType<EnumType<"None" | "HTTP1Only" | "HTTP2Only" | "HTTP2Optional" | "HTTP2Preferred">>;
    certificate: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    name: SizedType<string, Type<string, string, unknown>>;
    port: OptionalType<NumberC>;
    protocol: OptionalType<EnumType<"TCP" | "UDP" | "TLS" | "TCP_UDP">>;
    sslPolicy: OptionalType<EnumType<"ELBSecurityPolicy-TLS-1-0-2015-04" | "ELBSecurityPolicy-TLS-1-1-2017-01" | "ELBSecurityPolicy-TLS-1-2-2017-01" | "ELBSecurityPolicy-TLS-1-2-Ext-2018-06" | "ELBSecurityPolicy-FS-2018-06" | "ELBSecurityPolicy-FS-1-1-2019-08" | "ELBSecurityPolicy-FS-1-2-2019-08" | "ELBSecurityPolicy-FS-1-2-Res-2019-08" | "ELBSecurityPolicy-2015-05" | "ELBSecurityPolicy-FS-1-2-Res-2020-10" | "ELBSecurityPolicy-TLS13-1-2-2021-06" | "ELBSecurityPolicy-TLS13-1-2-Res-2021-06" | "ELBSecurityPolicy-TLS13-1-2-Ext1-2021-06" | "ELBSecurityPolicy-TLS13-1-2-Ext2-2021-06" | "ELBSecurityPolicy-TLS13-1-1-2021-06" | "ELBSecurityPolicy-TLS13-1-0-2021-06" | "ELBSecurityPolicy-TLS13-1-3-2021-06" | "ELBSecurityPolicy-2016-08">>;
    targetGroup: SizedType<string, Type<string, string, unknown>>;
}> = ...
nlbProtocolEnum: EnumType<"TCP" | "UDP" | "TLS" | "TCP_UDP"> = ...
nlbTargetType: TypeC<{
    account: SizedType<string, Type<string, string, unknown>>;
    nlbName: SizedType<string, Type<string, string, unknown>>;
    region: SizedType<string, Type<string, string, unknown>>;
}> = ...
portfolioAssociationConfig: TypeC<{
    name: SizedType<string, Type<string, string, unknown>>;
    propagateAssociation: OptionalType<BooleanC>;
    type: EnumType<"User" | "Role" | "Group" | "PermissionSet">;
}> = ...

Portfolio Association configuration

portfolioAssociationType: EnumType<"User" | "Role" | "Group" | "PermissionSet"> = ...

Portfolio association type

portfolioConfig: TypeC<{
    account: SizedType<string, Type<string, string, unknown>>;
    name: SizedType<string, Type<string, string, unknown>>;
    portfolioAssociations: OptionalType<ArrayC<TypeC<{
        name: SizedType<string, Type<string, string, unknown>>;
        propagateAssociation: OptionalType<BooleanC>;
        type: EnumType<"User" | "Role" | "Group" | "PermissionSet">;
    }>>>;
    products: OptionalType<ArrayC<TypeC<{
        constraints: OptionalType<TypeC<{
            launch: OptionalType<TypeC<{
                role: SizedType<string, Type<string, string, unknown>>;
                type: EnumType<"Role" | "LocalRole">;
            }>>;
            notifications: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
            tagUpdate: OptionalType<BooleanC>;
        }>>;
        description: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        distributor: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        name: SizedType<string, Type<string, string, unknown>>;
        owner: SizedType<string, Type<string, string, unknown>>;
        support: OptionalType<TypeC<{
            description: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            email: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            url: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        }>>;
        tagOptions: OptionalType<ArrayC<TypeC<{
            key: SizedType<string, Type<string, string, unknown>>;
            values: ArrayC<SizedType<string, Type<string, string, unknown>>>;
        }>>>;
        versions: ArrayC<TypeC<{
            description: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            name: SizedType<string, Type<string, string, unknown>>;
            template: SizedType<string, Type<string, string, unknown>>;
        }>>;
    }>>>;
    provider: SizedType<string, Type<string, string, unknown>>;
    regions: ArrayC<EnumType<string>>;
    shareTagOptions: OptionalType<BooleanC>;
    shareTargets: OptionalType<TypeC<{
        accounts: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
        organizationalUnits: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
    }>>;
    tagOptions: OptionalType<ArrayC<TypeC<{
        key: SizedType<string, Type<string, string, unknown>>;
        values: ArrayC<SizedType<string, Type<string, string, unknown>>>;
    }>>>;
}> = ...

Service Catalog Portfolios configuration

privateIpAddressItem: TypeC<{
    primary: OptionalType<BooleanC>;
    privateIpAddress: OptionalType<SizedType<string, Type<string, string, unknown>>>;
}> = ...
productConfig: TypeC<{
    constraints: OptionalType<TypeC<{
        launch: OptionalType<TypeC<{
            role: SizedType<string, Type<string, string, unknown>>;
            type: EnumType<"Role" | "LocalRole">;
        }>>;
        notifications: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
        tagUpdate: OptionalType<BooleanC>;
    }>>;
    description: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    distributor: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    name: SizedType<string, Type<string, string, unknown>>;
    owner: SizedType<string, Type<string, string, unknown>>;
    support: OptionalType<TypeC<{
        description: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        email: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        url: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    }>>;
    tagOptions: OptionalType<ArrayC<TypeC<{
        key: SizedType<string, Type<string, string, unknown>>;
        values: ArrayC<SizedType<string, Type<string, string, unknown>>>;
    }>>>;
    versions: ArrayC<TypeC<{
        description: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        name: SizedType<string, Type<string, string, unknown>>;
        template: SizedType<string, Type<string, string, unknown>>;
    }>>;
}> = ...

Service Catalog Products configuration

productConstraintConfig: TypeC<{
    launch: OptionalType<TypeC<{
        role: SizedType<string, Type<string, string, unknown>>;
        type: EnumType<"Role" | "LocalRole">;
    }>>;
    notifications: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
    tagUpdate: OptionalType<BooleanC>;
}> = ...

Notification Constraint, Topics - Max of 5 topics can be provided.

productLaunchConstraintConfig: TypeC<{
    role: SizedType<string, Type<string, string, unknown>>;
    type: EnumType<"Role" | "LocalRole">;
}> = ...

Service Catalog Launch Constraint configuration

productLaunchConstraintType: EnumType<"Role" | "LocalRole"> = ...

Service Catalog Launch Constraint type

productSupportConfig: TypeC<{
    description: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    email: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    url: OptionalType<SizedType<string, Type<string, string, unknown>>>;
}> = ...

Product Support configuration

productVersionConfig: TypeC<{
    description: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    name: SizedType<string, Type<string, string, unknown>>;
    template: SizedType<string, Type<string, string, unknown>>;
}> = ...

Product Version Configuration

routingHttpXffHeaderProcessingModeEnum: EnumType<"remove" | "append" | "preserve"> = ...
serviceCatalogConfig: TypeC<{
    portfolios: ArrayC<TypeC<{
        account: SizedType<string, Type<string, string, unknown>>;
        name: SizedType<string, Type<string, string, unknown>>;
        portfolioAssociations: OptionalType<ArrayC<TypeC<{
            name: SizedType<string, Type<string, string, unknown>>;
            propagateAssociation: OptionalType<BooleanC>;
            type: EnumType<"User" | "Role" | "Group" | "PermissionSet">;
        }>>>;
        products: OptionalType<ArrayC<TypeC<{
            constraints: OptionalType<TypeC<{
                launch: OptionalType<TypeC<{
                    role: SizedType<string, Type<string, string, unknown>>;
                    type: EnumType<"Role" | "LocalRole">;
                }>>;
                notifications: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
                tagUpdate: OptionalType<BooleanC>;
            }>>;
            description: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            distributor: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            name: SizedType<string, Type<string, string, unknown>>;
            owner: SizedType<string, Type<string, string, unknown>>;
            support: OptionalType<TypeC<{
                description: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                email: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                url: OptionalType<SizedType<string, Type<string, string, unknown>>>;
            }>>;
            tagOptions: OptionalType<ArrayC<TypeC<{
                key: SizedType<string, Type<string, string, unknown>>;
                values: ArrayC<SizedType<string, Type<string, string, unknown>>>;
            }>>>;
            versions: ArrayC<TypeC<{
                description: OptionalType<SizedType<string, Type<string, string, unknown>>>;
                name: SizedType<string, Type<string, string, unknown>>;
                template: SizedType<string, Type<string, string, unknown>>;
            }>>;
        }>>>;
        provider: SizedType<string, Type<string, string, unknown>>;
        regions: ArrayC<EnumType<string>>;
        shareTagOptions: OptionalType<BooleanC>;
        shareTargets: OptionalType<TypeC<{
            accounts: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
            organizationalUnits: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
        }>>;
        tagOptions: OptionalType<ArrayC<TypeC<{
            key: SizedType<string, Type<string, string, unknown>>;
            values: ArrayC<SizedType<string, Type<string, string, unknown>>>;
        }>>>;
    }>>;
}> = ...
sslPolicyAlbEnum: EnumType<"ELBSecurityPolicy-TLS-1-0-2015-04" | "ELBSecurityPolicy-TLS-1-1-2017-01" | "ELBSecurityPolicy-TLS-1-2-2017-01" | "ELBSecurityPolicy-TLS-1-2-Ext-2018-06" | "ELBSecurityPolicy-FS-2018-06" | "ELBSecurityPolicy-FS-1-1-2019-08" | "ELBSecurityPolicy-FS-1-2-2019-08" | "ELBSecurityPolicy-FS-1-2-Res-2019-08" | "ELBSecurityPolicy-2015-05" | "ELBSecurityPolicy-FS-1-2-Res-2020-10" | "ELBSecurityPolicy-2016-08"> = ...
sslPolicyNlbEnum: EnumType<"ELBSecurityPolicy-TLS-1-0-2015-04" | "ELBSecurityPolicy-TLS-1-1-2017-01" | "ELBSecurityPolicy-TLS-1-2-2017-01" | "ELBSecurityPolicy-TLS-1-2-Ext-2018-06" | "ELBSecurityPolicy-FS-2018-06" | "ELBSecurityPolicy-FS-1-1-2019-08" | "ELBSecurityPolicy-FS-1-2-2019-08" | "ELBSecurityPolicy-FS-1-2-Res-2019-08" | "ELBSecurityPolicy-2015-05" | "ELBSecurityPolicy-FS-1-2-Res-2020-10" | "ELBSecurityPolicy-TLS13-1-2-2021-06" | "ELBSecurityPolicy-TLS13-1-2-Res-2021-06" | "ELBSecurityPolicy-TLS13-1-2-Ext1-2021-06" | "ELBSecurityPolicy-TLS13-1-2-Ext2-2021-06" | "ELBSecurityPolicy-TLS13-1-1-2021-06" | "ELBSecurityPolicy-TLS13-1-0-2021-06" | "ELBSecurityPolicy-TLS13-1-3-2021-06" | "ELBSecurityPolicy-2016-08"> = ...
tagOptionsConfig: TypeC<{
    key: SizedType<string, Type<string, string, unknown>>;
    values: ArrayC<SizedType<string, Type<string, string, unknown>>>;
}> = ...

Service Catalog TagOptions configuration

targetGroupAttributeAlgorithm: EnumType<"round_robin" | "least_outstanding_requests"> = ...
targetGroupAttributeStickinessType: EnumType<"lb_cookie" | "app_cookie" | "source_ip" | "source_ip_dest_ip" | "source_ip_dest_ip_proto"> = ...
targetGroupAttributeTypes: TypeC<{
    algorithm: OptionalType<EnumType<"round_robin" | "least_outstanding_requests">>;
    appCookieDuration: OptionalType<NumberC>;
    appCookieName: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    connectionTermination: OptionalType<BooleanC>;
    deregistrationDelay: OptionalType<NumberC>;
    lbCookieDuration: OptionalType<NumberC>;
    preserveClientIp: OptionalType<BooleanC>;
    proxyProtocolV2: OptionalType<BooleanC>;
    slowStart: OptionalType<NumberC>;
    stickiness: OptionalType<BooleanC>;
    stickinessType: OptionalType<EnumType<"lb_cookie" | "app_cookie" | "source_ip" | "source_ip_dest_ip" | "source_ip_dest_ip_proto">>;
    targetFailover: OptionalType<EnumType<"no_rebalance" | "rebalance">>;
}> = ...
targetGroupHealthCheckProtocolType: EnumType<"HTTP" | "TCP" | "HTTPS"> = ...
targetGroupHealthCheckType: TypeC<{
    interval: OptionalType<NumberC>;
    path: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    port: OptionalType<NumberC>;
    protocol: OptionalType<EnumType<"HTTP" | "TCP" | "HTTPS">>;
    timeout: OptionalType<NumberC>;
}> = ...
targetGroupItem: TypeC<{
    attributes: OptionalType<TypeC<{
        algorithm: OptionalType<EnumType<"round_robin" | "least_outstanding_requests">>;
        appCookieDuration: OptionalType<NumberC>;
        appCookieName: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        connectionTermination: OptionalType<BooleanC>;
        deregistrationDelay: OptionalType<NumberC>;
        lbCookieDuration: OptionalType<NumberC>;
        preserveClientIp: OptionalType<BooleanC>;
        proxyProtocolV2: OptionalType<BooleanC>;
        slowStart: OptionalType<NumberC>;
        stickiness: OptionalType<BooleanC>;
        stickinessType: OptionalType<EnumType<"lb_cookie" | "app_cookie" | "source_ip" | "source_ip_dest_ip" | "source_ip_dest_ip_proto">>;
        targetFailover: OptionalType<EnumType<"no_rebalance" | "rebalance">>;
    }>>;
    healthCheck: OptionalType<TypeC<{
        interval: OptionalType<NumberC>;
        path: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        port: OptionalType<NumberC>;
        protocol: OptionalType<EnumType<"HTTP" | "TCP" | "HTTPS">>;
        timeout: OptionalType<NumberC>;
    }>>;
    matcher: OptionalType<TypeC<{
        grpcCode: OptionalType<SizedType<string, Type<string, string, unknown>>>;
        httpCode: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    }>>;
    name: SizedType<string, Type<string, string, unknown>>;
    port: NumberC;
    protocol: EnumType<"HTTP" | "TCP" | "UDP" | "HTTPS" | "TLS" | "TCP_UDP" | "GENEVE">;
    protocolVersion: OptionalType<EnumType<"HTTP1" | "HTTP2" | "GRPC">>;
    shareTargets: OptionalType<TypeC<{
        accounts: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
        organizationalUnits: OptionalType<ArrayC<SizedType<string, Type<string, string, unknown>>>>;
    }>>;
    targets: OptionalType<ArrayC<UnionC<[SizedType<string, Type<string, string, unknown>>, TypeC<{
        account: SizedType<string, Type<string, string, unknown>>;
        nlbName: SizedType<string, Type<string, string, unknown>>;
        region: SizedType<string, Type<string, string, unknown>>;
    }>]>>>;
    threshold: OptionalType<TypeC<{
        healthy: OptionalType<NumberC>;
        unhealthy: OptionalType<NumberC>;
    }>>;
    type: EnumType<"instance" | "ip" | "alb">;
}> = ...
targetGroupMatcherType: TypeC<{
    grpcCode: OptionalType<SizedType<string, Type<string, string, unknown>>>;
    httpCode: OptionalType<SizedType<string, Type<string, string, unknown>>>;
}> = ...
targetGroupProtocolType: EnumType<"HTTP" | "TCP" | "UDP" | "HTTPS" | "TLS" | "TCP_UDP" | "GENEVE"> = ...
targetGroupProtocolVersionType: EnumType<"HTTP1" | "HTTP2" | "GRPC"> = ...
targetGroupTargetFailoverType: EnumType<"no_rebalance" | "rebalance"> = ...
targetGroupThresholdType: TypeC<{
    healthy: OptionalType<NumberC>;
    unhealthy: OptionalType<NumberC>;
}> = ...
targetGroupType: EnumType<"instance" | "ip" | "alb"> = ...

Generated using TypeDoc