import * as HttpClient from "effect/unstable/http/HttpClient";
import * as redacted from "effect/Redacted";
import * as S from "effect/Schema";
import * as stream from "effect/Stream";
import * as API from "../client/api.js";
import * as T from "../traits.js";
import * as C from "../category.js";
import { SensitiveString } from "../sensitive.js";
const ns = T.XmlNamespace("http://apprunner.amazonaws.com/doc/2020-05-15/");
const svc = T.AwsApiService({
    sdkId: "AppRunner",
    serviceShapeName: "AppRunner",
});
const auth = T.AwsAuthSigv4({ name: "apprunner" });
const ver = T.ServiceVersion("2020-05-15");
const proto = T.AwsProtocolsAwsJson1_0();
const rules = T.EndpointResolver((p, _) => {
    const { Region, UseDualStack = false, UseFIPS = false, Endpoint } = p;
    const e = (u, p = {}, h = {}) => ({
        type: "endpoint",
        endpoint: { url: u, properties: p, headers: h },
    });
    const err = (m) => ({
        type: "error",
        message: m,
    });
    if (Endpoint != null) {
        if (UseFIPS === true) {
            return err("Invalid Configuration: FIPS and custom endpoint are not supported");
        }
        if (UseDualStack === true) {
            return err("Invalid Configuration: Dualstack and custom endpoint are not supported");
        }
        return e(Endpoint);
    }
    if (Region != null) {
        {
            const PartitionResult = _.partition(Region);
            if (PartitionResult != null && PartitionResult !== false) {
                if (UseFIPS === true && UseDualStack === true) {
                    if (true === _.getAttr(PartitionResult, "supportsFIPS") &&
                        true === _.getAttr(PartitionResult, "supportsDualStack")) {
                        return e(`https://apprunner-fips.${Region}.${_.getAttr(PartitionResult, "dualStackDnsSuffix")}`);
                    }
                    return err("FIPS and DualStack are enabled, but this partition does not support one or both");
                }
                if (UseFIPS === true) {
                    if (_.getAttr(PartitionResult, "supportsFIPS") === true) {
                        return e(`https://apprunner-fips.${Region}.${_.getAttr(PartitionResult, "dnsSuffix")}`);
                    }
                    return err("FIPS is enabled but this partition does not support FIPS");
                }
                if (UseDualStack === true) {
                    if (true === _.getAttr(PartitionResult, "supportsDualStack")) {
                        return e(`https://apprunner.${Region}.${_.getAttr(PartitionResult, "dualStackDnsSuffix")}`);
                    }
                    return err("DualStack is enabled but this partition does not support DualStack");
                }
                return e(`https://apprunner.${Region}.${_.getAttr(PartitionResult, "dnsSuffix")}`);
            }
        }
    }
    return err("Invalid Configuration: Missing Region");
});
export const AssociateCustomDomainRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ServiceArn: S.String,
    DomainName: S.String,
    EnableWWWSubdomain: S.optional(S.Boolean),
}).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "AssociateCustomDomainRequest",
});
export const CertificateValidationRecordStatus = 
/*@__PURE__*/ /*#__PURE__*/ S.String;
export const CertificateValidationRecord = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Name: S.optional(S.String),
    Type: S.optional(S.String),
    Value: S.optional(S.String),
    Status: S.optional(CertificateValidationRecordStatus),
})).annotate({
    identifier: "CertificateValidationRecord",
});
export const CertificateValidationRecordList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(CertificateValidationRecord);
export const CustomDomainAssociationStatus = 
/*@__PURE__*/ /*#__PURE__*/ S.String;
export const CustomDomain = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    DomainName: S.String,
    EnableWWWSubdomain: S.Boolean,
    CertificateValidationRecords: S.optional(CertificateValidationRecordList),
    Status: CustomDomainAssociationStatus,
})).annotate({ identifier: "CustomDomain" });
export const VpcDNSTarget = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    VpcIngressConnectionArn: S.optional(S.String),
    VpcId: S.optional(S.String),
    DomainName: S.optional(S.String),
})).annotate({ identifier: "VpcDNSTarget" });
export const VpcDNSTargetList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(VpcDNSTarget);
export const AssociateCustomDomainResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    DNSTarget: S.String,
    ServiceArn: S.String,
    CustomDomain: CustomDomain,
    VpcDNSTargets: VpcDNSTargetList,
}).pipe(ns)).annotate({
    identifier: "AssociateCustomDomainResponse",
});
export const Tag = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Key: S.optional(S.String), Value: S.optional(S.String) })).annotate({ identifier: "Tag" });
export const TagList = /*@__PURE__*/ /*#__PURE__*/ S.Array(Tag);
export const CreateAutoScalingConfigurationRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AutoScalingConfigurationName: S.String,
    MaxConcurrency: S.optional(S.Number),
    MinSize: S.optional(S.Number),
    MaxSize: S.optional(S.Number),
    Tags: S.optional(TagList),
}).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateAutoScalingConfigurationRequest",
});
export const AutoScalingConfigurationStatus = 
/*@__PURE__*/ /*#__PURE__*/ S.String;
export const AutoScalingConfiguration = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AutoScalingConfigurationArn: S.optional(S.String),
    AutoScalingConfigurationName: S.optional(S.String),
    AutoScalingConfigurationRevision: S.optional(S.Number),
    Latest: S.optional(S.Boolean),
    Status: S.optional(AutoScalingConfigurationStatus),
    MaxConcurrency: S.optional(S.Number),
    MinSize: S.optional(S.Number),
    MaxSize: S.optional(S.Number),
    CreatedAt: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    DeletedAt: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    HasAssociatedService: S.optional(S.Boolean),
    IsDefault: S.optional(S.Boolean),
})).annotate({
    identifier: "AutoScalingConfiguration",
});
export const CreateAutoScalingConfigurationResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ AutoScalingConfiguration: AutoScalingConfiguration }).pipe(ns)).annotate({
    identifier: "CreateAutoScalingConfigurationResponse",
});
export const ProviderType = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const CreateConnectionRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ConnectionName: S.String,
    ProviderType: ProviderType,
    Tags: S.optional(TagList),
}).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateConnectionRequest",
});
export const ConnectionStatus = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const Connection = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ConnectionName: S.optional(S.String),
    ConnectionArn: S.optional(S.String),
    ProviderType: S.optional(ProviderType),
    Status: S.optional(ConnectionStatus),
    CreatedAt: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
})).annotate({ identifier: "Connection" });
export const CreateConnectionResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Connection: Connection }).pipe(ns)).annotate({
    identifier: "CreateConnectionResponse",
});
export const TracingVendor = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const TraceConfiguration = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Vendor: TracingVendor })).annotate({
    identifier: "TraceConfiguration",
});
export const CreateObservabilityConfigurationRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ObservabilityConfigurationName: S.String,
    TraceConfiguration: S.optional(TraceConfiguration),
    Tags: S.optional(TagList),
}).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateObservabilityConfigurationRequest",
});
export const ObservabilityConfigurationStatus = 
/*@__PURE__*/ /*#__PURE__*/ S.String;
export const ObservabilityConfiguration = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ObservabilityConfigurationArn: S.optional(S.String),
    ObservabilityConfigurationName: S.optional(S.String),
    TraceConfiguration: S.optional(TraceConfiguration),
    ObservabilityConfigurationRevision: S.optional(S.Number),
    Latest: S.optional(S.Boolean),
    Status: S.optional(ObservabilityConfigurationStatus),
    CreatedAt: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    DeletedAt: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
})).annotate({
    identifier: "ObservabilityConfiguration",
});
export const CreateObservabilityConfigurationResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ ObservabilityConfiguration: ObservabilityConfiguration }).pipe(ns)).annotate({
    identifier: "CreateObservabilityConfigurationResponse",
});
export const SourceCodeVersionType = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const SourceCodeVersion = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Type: SourceCodeVersionType, Value: S.String })).annotate({
    identifier: "SourceCodeVersion",
});
export const ConfigurationSource = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const Runtime = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const RuntimeEnvironmentVariables = /*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, SensitiveString.pipe(S.optional));
export const RuntimeEnvironmentSecrets = /*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, SensitiveString.pipe(S.optional));
export const CodeConfigurationValues = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Runtime: Runtime,
    BuildCommand: S.optional(SensitiveString),
    StartCommand: S.optional(SensitiveString),
    Port: S.optional(S.String),
    RuntimeEnvironmentVariables: S.optional(RuntimeEnvironmentVariables),
    RuntimeEnvironmentSecrets: S.optional(RuntimeEnvironmentSecrets),
})).annotate({
    identifier: "CodeConfigurationValues",
});
export const CodeConfiguration = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ConfigurationSource: ConfigurationSource,
    CodeConfigurationValues: S.optional(CodeConfigurationValues),
})).annotate({
    identifier: "CodeConfiguration",
});
export const CodeRepository = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    RepositoryUrl: S.String,
    SourceCodeVersion: SourceCodeVersion,
    CodeConfiguration: S.optional(CodeConfiguration),
    SourceDirectory: S.optional(S.String),
})).annotate({ identifier: "CodeRepository" });
export const ImageConfiguration = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    RuntimeEnvironmentVariables: S.optional(RuntimeEnvironmentVariables),
    StartCommand: S.optional(SensitiveString),
    Port: S.optional(S.String),
    RuntimeEnvironmentSecrets: S.optional(RuntimeEnvironmentSecrets),
})).annotate({
    identifier: "ImageConfiguration",
});
export const ImageRepositoryType = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const ImageRepository = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ImageIdentifier: S.String,
    ImageConfiguration: S.optional(ImageConfiguration),
    ImageRepositoryType: ImageRepositoryType,
})).annotate({
    identifier: "ImageRepository",
});
export const AuthenticationConfiguration = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ConnectionArn: S.optional(S.String),
    AccessRoleArn: S.optional(S.String),
})).annotate({
    identifier: "AuthenticationConfiguration",
});
export const SourceConfiguration = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    CodeRepository: S.optional(CodeRepository),
    ImageRepository: S.optional(ImageRepository),
    AutoDeploymentsEnabled: S.optional(S.Boolean),
    AuthenticationConfiguration: S.optional(AuthenticationConfiguration),
})).annotate({
    identifier: "SourceConfiguration",
});
export const InstanceConfiguration = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Cpu: S.optional(S.String),
    Memory: S.optional(S.String),
    InstanceRoleArn: S.optional(S.String),
})).annotate({
    identifier: "InstanceConfiguration",
});
export const EncryptionConfiguration = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ KmsKey: S.String })).annotate({
    identifier: "EncryptionConfiguration",
});
export const HealthCheckProtocol = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const HealthCheckConfiguration = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Protocol: S.optional(HealthCheckProtocol),
    Path: S.optional(S.String),
    Interval: S.optional(S.Number),
    Timeout: S.optional(S.Number),
    HealthyThreshold: S.optional(S.Number),
    UnhealthyThreshold: S.optional(S.Number),
})).annotate({
    identifier: "HealthCheckConfiguration",
});
export const EgressType = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const EgressConfiguration = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    EgressType: S.optional(EgressType),
    VpcConnectorArn: S.optional(S.String),
})).annotate({
    identifier: "EgressConfiguration",
});
export const IngressConfiguration = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ IsPubliclyAccessible: S.optional(S.Boolean) })).annotate({
    identifier: "IngressConfiguration",
});
export const IpAddressType = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const NetworkConfiguration = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    EgressConfiguration: S.optional(EgressConfiguration),
    IngressConfiguration: S.optional(IngressConfiguration),
    IpAddressType: S.optional(IpAddressType),
})).annotate({
    identifier: "NetworkConfiguration",
});
export const ServiceObservabilityConfiguration = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ObservabilityEnabled: S.Boolean,
    ObservabilityConfigurationArn: S.optional(S.String),
})).annotate({
    identifier: "ServiceObservabilityConfiguration",
});
export const CreateServiceRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ServiceName: S.String,
    SourceConfiguration: SourceConfiguration,
    InstanceConfiguration: S.optional(InstanceConfiguration),
    Tags: S.optional(TagList),
    EncryptionConfiguration: S.optional(EncryptionConfiguration),
    HealthCheckConfiguration: S.optional(HealthCheckConfiguration),
    AutoScalingConfigurationArn: S.optional(S.String),
    NetworkConfiguration: S.optional(NetworkConfiguration),
    ObservabilityConfiguration: S.optional(ServiceObservabilityConfiguration),
}).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateServiceRequest",
});
export const ServiceStatus = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const AutoScalingConfigurationSummary = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AutoScalingConfigurationArn: S.optional(S.String),
    AutoScalingConfigurationName: S.optional(S.String),
    AutoScalingConfigurationRevision: S.optional(S.Number),
    Status: S.optional(AutoScalingConfigurationStatus),
    CreatedAt: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    HasAssociatedService: S.optional(S.Boolean),
    IsDefault: S.optional(S.Boolean),
})).annotate({
    identifier: "AutoScalingConfigurationSummary",
});
export const Service = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ServiceName: S.String,
    ServiceId: S.String,
    ServiceArn: S.String,
    ServiceUrl: S.optional(S.String),
    CreatedAt: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    UpdatedAt: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    DeletedAt: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    Status: ServiceStatus,
    SourceConfiguration: SourceConfiguration,
    InstanceConfiguration: InstanceConfiguration,
    EncryptionConfiguration: S.optional(EncryptionConfiguration),
    HealthCheckConfiguration: S.optional(HealthCheckConfiguration),
    AutoScalingConfigurationSummary: AutoScalingConfigurationSummary,
    NetworkConfiguration: NetworkConfiguration,
    ObservabilityConfiguration: S.optional(ServiceObservabilityConfiguration),
})).annotate({ identifier: "Service" });
export const CreateServiceResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Service: Service, OperationId: S.String }).pipe(ns)).annotate({
    identifier: "CreateServiceResponse",
});
export const StringList = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const CreateVpcConnectorRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    VpcConnectorName: S.String,
    Subnets: StringList,
    SecurityGroups: S.optional(StringList),
    Tags: S.optional(TagList),
}).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateVpcConnectorRequest",
});
export const VpcConnectorStatus = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const VpcConnector = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    VpcConnectorName: S.optional(S.String),
    VpcConnectorArn: S.optional(S.String),
    VpcConnectorRevision: S.optional(S.Number),
    Subnets: S.optional(StringList),
    SecurityGroups: S.optional(StringList),
    Status: S.optional(VpcConnectorStatus),
    CreatedAt: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    DeletedAt: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
})).annotate({ identifier: "VpcConnector" });
export const CreateVpcConnectorResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ VpcConnector: VpcConnector }).pipe(ns)).annotate({
    identifier: "CreateVpcConnectorResponse",
});
export const IngressVpcConfiguration = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    VpcId: S.optional(S.String),
    VpcEndpointId: S.optional(S.String),
})).annotate({
    identifier: "IngressVpcConfiguration",
});
export const CreateVpcIngressConnectionRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ServiceArn: S.String,
    VpcIngressConnectionName: S.String,
    IngressVpcConfiguration: IngressVpcConfiguration,
    Tags: S.optional(TagList),
}).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateVpcIngressConnectionRequest",
});
export const VpcIngressConnectionStatus = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const VpcIngressConnection = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    VpcIngressConnectionArn: S.optional(S.String),
    VpcIngressConnectionName: S.optional(S.String),
    ServiceArn: S.optional(S.String),
    Status: S.optional(VpcIngressConnectionStatus),
    AccountId: S.optional(S.String),
    DomainName: S.optional(S.String),
    IngressVpcConfiguration: S.optional(IngressVpcConfiguration),
    CreatedAt: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    DeletedAt: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
})).annotate({
    identifier: "VpcIngressConnection",
});
export const CreateVpcIngressConnectionResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ VpcIngressConnection: VpcIngressConnection }).pipe(ns)).annotate({
    identifier: "CreateVpcIngressConnectionResponse",
});
export const DeleteAutoScalingConfigurationRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AutoScalingConfigurationArn: S.String,
    DeleteAllRevisions: S.optional(S.Boolean),
}).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteAutoScalingConfigurationRequest",
});
export const DeleteAutoScalingConfigurationResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ AutoScalingConfiguration: AutoScalingConfiguration }).pipe(ns)).annotate({
    identifier: "DeleteAutoScalingConfigurationResponse",
});
export const DeleteConnectionRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ ConnectionArn: S.String }).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteConnectionRequest",
});
export const DeleteConnectionResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Connection: S.optional(Connection) }).pipe(ns)).annotate({
    identifier: "DeleteConnectionResponse",
});
export const DeleteObservabilityConfigurationRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ ObservabilityConfigurationArn: S.String }).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteObservabilityConfigurationRequest",
});
export const DeleteObservabilityConfigurationResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ ObservabilityConfiguration: ObservabilityConfiguration }).pipe(ns)).annotate({
    identifier: "DeleteObservabilityConfigurationResponse",
});
export const DeleteServiceRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ ServiceArn: S.String }).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteServiceRequest",
});
export const DeleteServiceResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Service: Service, OperationId: S.String }).pipe(ns)).annotate({
    identifier: "DeleteServiceResponse",
});
export const DeleteVpcConnectorRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ VpcConnectorArn: S.String }).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteVpcConnectorRequest",
});
export const DeleteVpcConnectorResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ VpcConnector: VpcConnector }).pipe(ns)).annotate({
    identifier: "DeleteVpcConnectorResponse",
});
export const DeleteVpcIngressConnectionRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ VpcIngressConnectionArn: S.String }).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteVpcIngressConnectionRequest",
});
export const DeleteVpcIngressConnectionResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ VpcIngressConnection: VpcIngressConnection }).pipe(ns)).annotate({
    identifier: "DeleteVpcIngressConnectionResponse",
});
export const DescribeAutoScalingConfigurationRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ AutoScalingConfigurationArn: S.String }).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DescribeAutoScalingConfigurationRequest",
});
export const DescribeAutoScalingConfigurationResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ AutoScalingConfiguration: AutoScalingConfiguration }).pipe(ns)).annotate({
    identifier: "DescribeAutoScalingConfigurationResponse",
});
export const DescribeCustomDomainsRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ServiceArn: S.String,
    NextToken: S.optional(S.String),
    MaxResults: S.optional(S.Number),
}).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DescribeCustomDomainsRequest",
});
export const CustomDomainList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(CustomDomain);
export const DescribeCustomDomainsResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    DNSTarget: S.String,
    ServiceArn: S.String,
    CustomDomains: CustomDomainList,
    VpcDNSTargets: VpcDNSTargetList,
    NextToken: S.optional(S.String),
}).pipe(ns)).annotate({
    identifier: "DescribeCustomDomainsResponse",
});
export const DescribeObservabilityConfigurationRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ ObservabilityConfigurationArn: S.String }).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DescribeObservabilityConfigurationRequest",
});
export const DescribeObservabilityConfigurationResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ ObservabilityConfiguration: ObservabilityConfiguration }).pipe(ns)).annotate({
    identifier: "DescribeObservabilityConfigurationResponse",
});
export const DescribeServiceRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ ServiceArn: S.String }).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DescribeServiceRequest",
});
export const DescribeServiceResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Service: Service }).pipe(ns)).annotate({
    identifier: "DescribeServiceResponse",
});
export const DescribeVpcConnectorRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ VpcConnectorArn: S.String }).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DescribeVpcConnectorRequest",
});
export const DescribeVpcConnectorResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ VpcConnector: VpcConnector }).pipe(ns)).annotate({
    identifier: "DescribeVpcConnectorResponse",
});
export const DescribeVpcIngressConnectionRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ VpcIngressConnectionArn: S.String }).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DescribeVpcIngressConnectionRequest",
});
export const DescribeVpcIngressConnectionResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ VpcIngressConnection: VpcIngressConnection }).pipe(ns)).annotate({
    identifier: "DescribeVpcIngressConnectionResponse",
});
export const DisassociateCustomDomainRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ ServiceArn: S.String, DomainName: S.String }).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DisassociateCustomDomainRequest",
});
export const DisassociateCustomDomainResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    DNSTarget: S.String,
    ServiceArn: S.String,
    CustomDomain: CustomDomain,
    VpcDNSTargets: VpcDNSTargetList,
}).pipe(ns)).annotate({
    identifier: "DisassociateCustomDomainResponse",
});
export const ListAutoScalingConfigurationsRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AutoScalingConfigurationName: S.optional(S.String),
    LatestOnly: S.optional(S.Boolean),
    MaxResults: S.optional(S.Number),
    NextToken: S.optional(S.String),
}).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListAutoScalingConfigurationsRequest",
});
export const AutoScalingConfigurationSummaryList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(AutoScalingConfigurationSummary);
export const ListAutoScalingConfigurationsResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AutoScalingConfigurationSummaryList: AutoScalingConfigurationSummaryList,
    NextToken: S.optional(S.String),
}).pipe(ns)).annotate({
    identifier: "ListAutoScalingConfigurationsResponse",
});
export const ListConnectionsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ConnectionName: S.optional(S.String),
    MaxResults: S.optional(S.Number),
    NextToken: S.optional(S.String),
}).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListConnectionsRequest",
});
export const ConnectionSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ConnectionName: S.optional(S.String),
    ConnectionArn: S.optional(S.String),
    ProviderType: S.optional(ProviderType),
    Status: S.optional(ConnectionStatus),
    CreatedAt: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
})).annotate({
    identifier: "ConnectionSummary",
});
export const ConnectionSummaryList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(ConnectionSummary);
export const ListConnectionsResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ConnectionSummaryList: ConnectionSummaryList,
    NextToken: S.optional(S.String),
}).pipe(ns)).annotate({
    identifier: "ListConnectionsResponse",
});
export const ListObservabilityConfigurationsRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ObservabilityConfigurationName: S.optional(S.String),
    LatestOnly: S.optional(S.Boolean),
    MaxResults: S.optional(S.Number),
    NextToken: S.optional(S.String),
}).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListObservabilityConfigurationsRequest",
});
export const ObservabilityConfigurationSummary = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ObservabilityConfigurationArn: S.optional(S.String),
    ObservabilityConfigurationName: S.optional(S.String),
    ObservabilityConfigurationRevision: S.optional(S.Number),
})).annotate({
    identifier: "ObservabilityConfigurationSummary",
});
export const ObservabilityConfigurationSummaryList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(ObservabilityConfigurationSummary);
export const ListObservabilityConfigurationsResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ObservabilityConfigurationSummaryList: ObservabilityConfigurationSummaryList,
    NextToken: S.optional(S.String),
}).pipe(ns)).annotate({
    identifier: "ListObservabilityConfigurationsResponse",
});
export const ListOperationsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ServiceArn: S.String,
    NextToken: S.optional(S.String),
    MaxResults: S.optional(S.Number),
}).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListOperationsRequest",
});
export const OperationType = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const OperationStatus = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const OperationSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Id: S.optional(S.String),
    Type: S.optional(OperationType),
    Status: S.optional(OperationStatus),
    TargetArn: S.optional(S.String),
    StartedAt: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    EndedAt: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    UpdatedAt: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
})).annotate({
    identifier: "OperationSummary",
});
export const OperationSummaryList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(OperationSummary);
export const ListOperationsResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    OperationSummaryList: S.optional(OperationSummaryList),
    NextToken: S.optional(S.String),
}).pipe(ns)).annotate({
    identifier: "ListOperationsResponse",
});
export const ListServicesRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    NextToken: S.optional(S.String),
    MaxResults: S.optional(S.Number),
}).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListServicesRequest",
});
export const ServiceSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ServiceName: S.optional(S.String),
    ServiceId: S.optional(S.String),
    ServiceArn: S.optional(S.String),
    ServiceUrl: S.optional(S.String),
    CreatedAt: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    UpdatedAt: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    Status: S.optional(ServiceStatus),
})).annotate({ identifier: "ServiceSummary" });
export const ServiceSummaryList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(ServiceSummary);
export const ListServicesResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ServiceSummaryList: ServiceSummaryList,
    NextToken: S.optional(S.String),
}).pipe(ns)).annotate({
    identifier: "ListServicesResponse",
});
export const ListServicesForAutoScalingConfigurationRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AutoScalingConfigurationArn: S.String,
    MaxResults: S.optional(S.Number),
    NextToken: S.optional(S.String),
}).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListServicesForAutoScalingConfigurationRequest",
});
export const ServiceArnList = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const ListServicesForAutoScalingConfigurationResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ServiceArnList: ServiceArnList,
    NextToken: S.optional(S.String),
}).pipe(ns)).annotate({
    identifier: "ListServicesForAutoScalingConfigurationResponse",
});
export const ListTagsForResourceRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ ResourceArn: S.String }).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListTagsForResourceRequest",
});
export const ListTagsForResourceResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Tags: S.optional(TagList) }).pipe(ns)).annotate({
    identifier: "ListTagsForResourceResponse",
});
export const ListVpcConnectorsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    MaxResults: S.optional(S.Number),
    NextToken: S.optional(S.String),
}).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListVpcConnectorsRequest",
});
export const VpcConnectors = /*@__PURE__*/ /*#__PURE__*/ S.Array(VpcConnector);
export const ListVpcConnectorsResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    VpcConnectors: VpcConnectors,
    NextToken: S.optional(S.String),
}).pipe(ns)).annotate({
    identifier: "ListVpcConnectorsResponse",
});
export const ListVpcIngressConnectionsFilter = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ServiceArn: S.optional(S.String),
    VpcEndpointId: S.optional(S.String),
})).annotate({
    identifier: "ListVpcIngressConnectionsFilter",
});
export const ListVpcIngressConnectionsRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Filter: S.optional(ListVpcIngressConnectionsFilter),
    MaxResults: S.optional(S.Number),
    NextToken: S.optional(S.String),
}).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListVpcIngressConnectionsRequest",
});
export const VpcIngressConnectionSummary = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    VpcIngressConnectionArn: S.optional(S.String),
    ServiceArn: S.optional(S.String),
})).annotate({
    identifier: "VpcIngressConnectionSummary",
});
export const VpcIngressConnectionSummaryList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(VpcIngressConnectionSummary);
export const ListVpcIngressConnectionsResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    VpcIngressConnectionSummaryList: VpcIngressConnectionSummaryList,
    NextToken: S.optional(S.String),
}).pipe(ns)).annotate({
    identifier: "ListVpcIngressConnectionsResponse",
});
export const PauseServiceRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ ServiceArn: S.String }).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "PauseServiceRequest",
});
export const PauseServiceResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Service: Service, OperationId: S.optional(S.String) }).pipe(ns)).annotate({
    identifier: "PauseServiceResponse",
});
export const ResumeServiceRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ ServiceArn: S.String }).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ResumeServiceRequest",
});
export const ResumeServiceResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Service: Service, OperationId: S.optional(S.String) }).pipe(ns)).annotate({
    identifier: "ResumeServiceResponse",
});
export const StartDeploymentRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ ServiceArn: S.String }).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "StartDeploymentRequest",
});
export const StartDeploymentResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ OperationId: S.String }).pipe(ns)).annotate({
    identifier: "StartDeploymentResponse",
});
export const TagResourceRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ ResourceArn: S.String, Tags: TagList }).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "TagResourceRequest",
});
export const TagResourceResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({}).pipe(ns)).annotate({
    identifier: "TagResourceResponse",
});
export const TagKeyList = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const UntagResourceRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ ResourceArn: S.String, TagKeys: TagKeyList }).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UntagResourceRequest",
});
export const UntagResourceResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({}).pipe(ns)).annotate({
    identifier: "UntagResourceResponse",
});
export const UpdateDefaultAutoScalingConfigurationRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ AutoScalingConfigurationArn: S.String }).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateDefaultAutoScalingConfigurationRequest",
});
export const UpdateDefaultAutoScalingConfigurationResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ AutoScalingConfiguration: AutoScalingConfiguration }).pipe(ns)).annotate({
    identifier: "UpdateDefaultAutoScalingConfigurationResponse",
});
export const UpdateServiceRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ServiceArn: S.String,
    SourceConfiguration: S.optional(SourceConfiguration),
    InstanceConfiguration: S.optional(InstanceConfiguration),
    AutoScalingConfigurationArn: S.optional(S.String),
    HealthCheckConfiguration: S.optional(HealthCheckConfiguration),
    NetworkConfiguration: S.optional(NetworkConfiguration),
    ObservabilityConfiguration: S.optional(ServiceObservabilityConfiguration),
}).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateServiceRequest",
});
export const UpdateServiceResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Service: Service, OperationId: S.String }).pipe(ns)).annotate({
    identifier: "UpdateServiceResponse",
});
export const UpdateVpcIngressConnectionRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    VpcIngressConnectionArn: S.String,
    IngressVpcConfiguration: IngressVpcConfiguration,
}).pipe(T.all(ns, T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateVpcIngressConnectionRequest",
});
export const UpdateVpcIngressConnectionResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ VpcIngressConnection: VpcIngressConnection }).pipe(ns)).annotate({
    identifier: "UpdateVpcIngressConnectionResponse",
});
//# Errors
export class InternalServiceErrorException extends S.TaggedErrorClass()("InternalServiceErrorException", { Message: S.optional(S.String) }, T.AwsQueryError({ code: "InternalServiceError", httpResponseCode: 500 })).pipe(C.withServerError) {
}
export class InvalidRequestException extends S.TaggedErrorClass()("InvalidRequestException", { Message: S.optional(S.String) }, T.AwsQueryError({ code: "InvalidRequest", httpResponseCode: 400 })).pipe(C.withBadRequestError) {
}
export class InvalidStateException extends S.TaggedErrorClass()("InvalidStateException", { Message: S.optional(S.String) }, T.AwsQueryError({ code: "InvalidState", httpResponseCode: 400 })).pipe(C.withBadRequestError) {
}
export class ServiceQuotaExceededException extends S.TaggedErrorClass()("ServiceQuotaExceededException", { Message: S.optional(S.String) }, T.AwsQueryError({ code: "ServiceQuotaExceeded", httpResponseCode: 402 })).pipe(C.withQuotaError) {
}
export class ResourceNotFoundException extends S.TaggedErrorClass()("ResourceNotFoundException", { Message: S.optional(S.String) }, T.AwsQueryError({ code: "ResourceNotfound", httpResponseCode: 400 })).pipe(C.withBadRequestError) {
}
/**
 * Associate your own domain name with the App Runner subdomain URL of your App Runner service.
 *
 * After you call `AssociateCustomDomain` and receive a successful response, use the information in the CustomDomain record
 * that's returned to add CNAME records to your Domain Name System (DNS). For each mapped domain name, add a mapping to the target App Runner subdomain and one or
 * more certificate validation records. App Runner then performs DNS validation to verify that you own or control the domain name that you associated. App Runner tracks
 * domain validity in a certificate stored in AWS Certificate Manager (ACM).
 */
export const associateCustomDomain = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: AssociateCustomDomainRequest,
    output: AssociateCustomDomainResponse,
    errors: [
        InternalServiceErrorException,
        InvalidRequestException,
        InvalidStateException,
    ],
}));
/**
 * Create an App Runner automatic scaling configuration resource. App Runner requires this resource when you create or update App Runner services and you require
 * non-default auto scaling settings. You can share an auto scaling configuration across multiple services.
 *
 * Create multiple revisions of a configuration by calling this action multiple times using the same `AutoScalingConfigurationName`. The call
 * returns incremental `AutoScalingConfigurationRevision` values. When you create a service and configure an auto scaling configuration resource,
 * the service uses the latest active revision of the auto scaling configuration by default. You can optionally configure the service to use a specific
 * revision.
 *
 * Configure a higher `MinSize` to increase the spread of your App Runner service over more Availability Zones in the Amazon Web Services Region. The
 * tradeoff is a higher minimal cost.
 *
 * Configure a lower `MaxSize` to control your cost. The tradeoff is lower responsiveness during peak demand.
 */
export const createAutoScalingConfiguration = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateAutoScalingConfigurationRequest,
    output: CreateAutoScalingConfigurationResponse,
    errors: [
        InternalServiceErrorException,
        InvalidRequestException,
        ServiceQuotaExceededException,
    ],
}));
/**
 * Create an App Runner connection resource. App Runner requires a connection resource when you create App Runner services that access private repositories from
 * certain third-party providers. You can share a connection across multiple services.
 *
 * A connection resource is needed to access GitHub and Bitbucket repositories. Both require
 * a user interface approval process through the App Runner console before you can use the
 * connection.
 */
export const createConnection = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateConnectionRequest,
    output: CreateConnectionResponse,
    errors: [
        InternalServiceErrorException,
        InvalidRequestException,
        ServiceQuotaExceededException,
    ],
}));
/**
 * Create an App Runner observability configuration resource. App Runner requires this resource when you create or update App Runner services and you want to enable
 * non-default observability features. You can share an observability configuration across multiple services.
 *
 * Create multiple revisions of a configuration by calling this action multiple times using the same `ObservabilityConfigurationName`. The
 * call returns incremental `ObservabilityConfigurationRevision` values. When you create a service and configure an observability configuration
 * resource, the service uses the latest active revision of the observability configuration by default. You can optionally configure the service to use a
 * specific revision.
 *
 * The observability configuration resource is designed to configure multiple features (currently one feature, tracing). This action takes optional
 * parameters that describe the configuration of these features (currently one parameter, `TraceConfiguration`). If you don't specify a feature
 * parameter, App Runner doesn't enable the feature.
 */
export const createObservabilityConfiguration = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateObservabilityConfigurationRequest,
    output: CreateObservabilityConfigurationResponse,
    errors: [
        InternalServiceErrorException,
        InvalidRequestException,
        ServiceQuotaExceededException,
    ],
}));
/**
 * Create an App Runner service. After the service is created, the action also automatically starts a deployment.
 *
 * This is an asynchronous operation. On a successful call, you can use the returned `OperationId` and the ListOperations call to track the operation's progress.
 */
export const createService = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateServiceRequest,
    output: CreateServiceResponse,
    errors: [
        InternalServiceErrorException,
        InvalidRequestException,
        ServiceQuotaExceededException,
    ],
}));
/**
 * Create an App Runner VPC connector resource. App Runner requires this resource when you want to associate your App Runner service to a custom Amazon Virtual Private Cloud
 * (Amazon VPC).
 */
export const createVpcConnector = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateVpcConnectorRequest,
    output: CreateVpcConnectorResponse,
    errors: [
        InternalServiceErrorException,
        InvalidRequestException,
        ServiceQuotaExceededException,
    ],
}));
/**
 * Create an App Runner VPC Ingress Connection resource. App Runner requires this resource when you want to associate your App Runner service with an Amazon VPC endpoint.
 */
export const createVpcIngressConnection = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateVpcIngressConnectionRequest,
    output: CreateVpcIngressConnectionResponse,
    errors: [
        InternalServiceErrorException,
        InvalidRequestException,
        InvalidStateException,
        ServiceQuotaExceededException,
    ],
}));
/**
 * Delete an App Runner automatic scaling configuration resource. You can delete a top level auto scaling configuration, a specific revision of one, or all
 * revisions associated with the top level configuration. You can't delete the default auto scaling configuration or a configuration that's used by one or
 * more App Runner services.
 */
export const deleteAutoScalingConfiguration = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteAutoScalingConfigurationRequest,
    output: DeleteAutoScalingConfigurationResponse,
    errors: [
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceNotFoundException,
    ],
}));
/**
 * Delete an App Runner connection. You must first ensure that there are no running App Runner services that use this connection. If there are any, the
 * `DeleteConnection` action fails.
 */
export const deleteConnection = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteConnectionRequest,
    output: DeleteConnectionResponse,
    errors: [
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceNotFoundException,
    ],
}));
/**
 * Delete an App Runner observability configuration resource. You can delete a specific revision or the latest active revision. You can't delete a
 * configuration that's used by one or more App Runner services.
 */
export const deleteObservabilityConfiguration = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteObservabilityConfigurationRequest,
    output: DeleteObservabilityConfigurationResponse,
    errors: [
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceNotFoundException,
    ],
}));
/**
 * Delete an App Runner service.
 *
 * This is an asynchronous operation. On a successful call, you can use the returned `OperationId` and the ListOperations
 * call to track the operation's progress.
 *
 * Make sure that you don't have any active VPCIngressConnections associated with the service you want to delete.
 */
export const deleteService = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteServiceRequest,
    output: DeleteServiceResponse,
    errors: [
        InternalServiceErrorException,
        InvalidRequestException,
        InvalidStateException,
        ResourceNotFoundException,
    ],
}));
/**
 * Delete an App Runner VPC connector resource. You can't delete a
 * connector that's used by one or more App Runner services.
 */
export const deleteVpcConnector = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteVpcConnectorRequest,
    output: DeleteVpcConnectorResponse,
    errors: [
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceNotFoundException,
    ],
}));
/**
 * Delete an App Runner VPC Ingress Connection resource that's associated with an App Runner service. The VPC Ingress Connection must be in one of the following states to be deleted:
 *
 * - `AVAILABLE`
 *
 * - `FAILED_CREATION`
 *
 * - `FAILED_UPDATE`
 *
 * - `FAILED_DELETION`
 */
export const deleteVpcIngressConnection = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteVpcIngressConnectionRequest,
    output: DeleteVpcIngressConnectionResponse,
    errors: [
        InternalServiceErrorException,
        InvalidRequestException,
        InvalidStateException,
        ResourceNotFoundException,
    ],
}));
/**
 * Return a full description of an App Runner automatic scaling configuration resource.
 */
export const describeAutoScalingConfiguration = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DescribeAutoScalingConfigurationRequest,
    output: DescribeAutoScalingConfigurationResponse,
    errors: [
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceNotFoundException,
    ],
}));
/**
 * Return a description of custom domain names that are associated with an App Runner service.
 */
export const describeCustomDomains = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: DescribeCustomDomainsRequest,
    output: DescribeCustomDomainsResponse,
    errors: [
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceNotFoundException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        pageSize: "MaxResults",
    },
}));
/**
 * Return a full description of an App Runner observability configuration resource.
 */
export const describeObservabilityConfiguration = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DescribeObservabilityConfigurationRequest,
    output: DescribeObservabilityConfigurationResponse,
    errors: [
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceNotFoundException,
    ],
}));
/**
 * Return a full description of an App Runner service.
 */
export const describeService = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DescribeServiceRequest,
    output: DescribeServiceResponse,
    errors: [
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceNotFoundException,
    ],
}));
/**
 * Return a description of an App Runner VPC connector resource.
 */
export const describeVpcConnector = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DescribeVpcConnectorRequest,
    output: DescribeVpcConnectorResponse,
    errors: [
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceNotFoundException,
    ],
}));
/**
 * Return a full description of an App Runner VPC Ingress Connection resource.
 */
export const describeVpcIngressConnection = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DescribeVpcIngressConnectionRequest,
    output: DescribeVpcIngressConnectionResponse,
    errors: [
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceNotFoundException,
    ],
}));
/**
 * Disassociate a custom domain name from an App Runner service.
 *
 * Certificates tracking domain validity are associated with a custom domain and are stored in AWS
 * Certificate Manager (ACM). These certificates aren't deleted as part of this action. App Runner delays certificate deletion for
 * 30 days after a domain is disassociated from your service.
 */
export const disassociateCustomDomain = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DisassociateCustomDomainRequest,
    output: DisassociateCustomDomainResponse,
    errors: [
        InternalServiceErrorException,
        InvalidRequestException,
        InvalidStateException,
        ResourceNotFoundException,
    ],
}));
/**
 * Returns a list of active App Runner automatic scaling configurations in your Amazon Web Services account. You can query the revisions for a specific
 * configuration name or the revisions for all active configurations in your account. You can optionally query only the latest revision of each requested
 * name.
 *
 * To retrieve a full description of a particular configuration revision, call and provide one of
 * the ARNs returned by `ListAutoScalingConfigurations`.
 */
export const listAutoScalingConfigurations = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListAutoScalingConfigurationsRequest,
    output: ListAutoScalingConfigurationsResponse,
    errors: [InternalServiceErrorException, InvalidRequestException],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        pageSize: "MaxResults",
    },
}));
/**
 * Returns a list of App Runner connections that are associated with your Amazon Web Services account.
 */
export const listConnections = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListConnectionsRequest,
    output: ListConnectionsResponse,
    errors: [InternalServiceErrorException, InvalidRequestException],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        pageSize: "MaxResults",
    },
}));
/**
 * Returns a list of active App Runner observability configurations in your Amazon Web Services account. You can query the revisions for a specific
 * configuration name or the revisions for all active configurations in your account. You can optionally query only the latest revision of each requested
 * name.
 *
 * To retrieve a full description of a particular configuration revision, call and provide one
 * of the ARNs returned by `ListObservabilityConfigurations`.
 */
export const listObservabilityConfigurations = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListObservabilityConfigurationsRequest,
    output: ListObservabilityConfigurationsResponse,
    errors: [InternalServiceErrorException, InvalidRequestException],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        pageSize: "MaxResults",
    },
}));
/**
 * Return a list of operations that occurred on an App Runner service.
 *
 * The resulting list of OperationSummary objects is sorted in reverse chronological order. The first object on the list represents the
 * last started operation.
 */
export const listOperations = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListOperationsRequest,
    output: ListOperationsResponse,
    errors: [
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceNotFoundException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        pageSize: "MaxResults",
    },
}));
/**
 * Returns a list of running App Runner services in your Amazon Web Services account.
 */
export const listServices = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListServicesRequest,
    output: ListServicesResponse,
    errors: [InternalServiceErrorException, InvalidRequestException],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        pageSize: "MaxResults",
    },
}));
/**
 * Returns a list of the associated App Runner services using an auto scaling configuration.
 */
export const listServicesForAutoScalingConfiguration = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListServicesForAutoScalingConfigurationRequest,
    output: ListServicesForAutoScalingConfigurationResponse,
    errors: [
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceNotFoundException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        pageSize: "MaxResults",
    },
}));
/**
 * List tags that are associated with for an App Runner resource. The response contains a list of tag key-value pairs.
 */
export const listTagsForResource = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: ListTagsForResourceRequest,
    output: ListTagsForResourceResponse,
    errors: [
        InternalServiceErrorException,
        InvalidRequestException,
        InvalidStateException,
        ResourceNotFoundException,
    ],
}));
/**
 * Returns a list of App Runner VPC connectors in your Amazon Web Services account.
 */
export const listVpcConnectors = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListVpcConnectorsRequest,
    output: ListVpcConnectorsResponse,
    errors: [InternalServiceErrorException, InvalidRequestException],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        pageSize: "MaxResults",
    },
}));
/**
 * Return a list of App Runner VPC Ingress Connections in your Amazon Web Services account.
 */
export const listVpcIngressConnections = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListVpcIngressConnectionsRequest,
    output: ListVpcIngressConnectionsResponse,
    errors: [InternalServiceErrorException, InvalidRequestException],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        pageSize: "MaxResults",
    },
}));
/**
 * Pause an active App Runner service. App Runner reduces compute capacity for the service to zero and loses state (for example, ephemeral storage is
 * removed).
 *
 * This is an asynchronous operation. On a successful call, you can use the returned `OperationId` and the ListOperations
 * call to track the operation's progress.
 */
export const pauseService = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: PauseServiceRequest,
    output: PauseServiceResponse,
    errors: [
        InternalServiceErrorException,
        InvalidRequestException,
        InvalidStateException,
        ResourceNotFoundException,
    ],
}));
/**
 * Resume an active App Runner service. App Runner provisions compute capacity for the service.
 *
 * This is an asynchronous operation. On a successful call, you can use the returned `OperationId` and the ListOperations
 * call to track the operation's progress.
 */
export const resumeService = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: ResumeServiceRequest,
    output: ResumeServiceResponse,
    errors: [
        InternalServiceErrorException,
        InvalidRequestException,
        InvalidStateException,
        ResourceNotFoundException,
    ],
}));
/**
 * Initiate a manual deployment of the latest commit in a source code repository or the latest image in a source image repository to an App Runner
 * service.
 *
 * For a source code repository, App Runner retrieves the commit and builds a Docker image. For a source image repository, App Runner retrieves the latest Docker
 * image. In both cases, App Runner then deploys the new image to your service and starts a new container instance.
 *
 * This is an asynchronous operation. On a successful call, you can use the returned `OperationId` and the ListOperations
 * call to track the operation's progress.
 */
export const startDeployment = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: StartDeploymentRequest,
    output: StartDeploymentResponse,
    errors: [
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceNotFoundException,
    ],
}));
/**
 * Add tags to, or update the tag values of, an App Runner resource. A tag is a key-value pair.
 */
export const tagResource = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: TagResourceRequest,
    output: TagResourceResponse,
    errors: [
        InternalServiceErrorException,
        InvalidRequestException,
        InvalidStateException,
        ResourceNotFoundException,
    ],
}));
/**
 * Remove tags from an App Runner resource.
 */
export const untagResource = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UntagResourceRequest,
    output: UntagResourceResponse,
    errors: [
        InternalServiceErrorException,
        InvalidRequestException,
        InvalidStateException,
        ResourceNotFoundException,
    ],
}));
/**
 * Update an auto scaling configuration to be the default. The existing default auto scaling configuration will be set to non-default
 * automatically.
 */
export const updateDefaultAutoScalingConfiguration = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateDefaultAutoScalingConfigurationRequest,
    output: UpdateDefaultAutoScalingConfigurationResponse,
    errors: [
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceNotFoundException,
    ],
}));
/**
 * Update an App Runner service. You can update the source configuration and instance configuration of the service. You can also update the ARN of the auto
 * scaling configuration resource that's associated with the service. However, you can't change the name or the encryption configuration of the service.
 * These can be set only when you create the service.
 *
 * To update the tags applied to your service, use the separate actions TagResource and UntagResource.
 *
 * This is an asynchronous operation. On a successful call, you can use the returned `OperationId` and the ListOperations
 * call to track the operation's progress.
 */
export const updateService = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateServiceRequest,
    output: UpdateServiceResponse,
    errors: [
        InternalServiceErrorException,
        InvalidRequestException,
        InvalidStateException,
        ResourceNotFoundException,
    ],
}));
/**
 * Update an existing App Runner VPC Ingress Connection resource. The VPC Ingress Connection must be in one of the following states to be updated:
 *
 * - AVAILABLE
 *
 * - FAILED_CREATION
 *
 * - FAILED_UPDATE
 */
export const updateVpcIngressConnection = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateVpcIngressConnectionRequest,
    output: UpdateVpcIngressConnectionResponse,
    errors: [
        InternalServiceErrorException,
        InvalidRequestException,
        InvalidStateException,
        ResourceNotFoundException,
    ],
}));
//# sourceMappingURL=apprunner.js.map