import * as HttpClient from "effect/unstable/http/HttpClient";
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";
const svc = T.AwsApiService({
    sdkId: "m2",
    serviceShapeName: "AwsSupernovaControlPlaneService",
});
const auth = T.AwsAuthSigv4({ name: "m2" });
const ver = T.ServiceVersion("2021-04-28");
const proto = T.AwsProtocolsRestJson1();
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://m2-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://m2-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://m2.${Region}.${_.getAttr(PartitionResult, "dualStackDnsSuffix")}`);
                    }
                    return err("DualStack is enabled but this partition does not support DualStack");
                }
                return e(`https://m2.${Region}.${_.getAttr(PartitionResult, "dnsSuffix")}`);
            }
        }
    }
    return err("Invalid Configuration: Missing Region");
});
export const GetSignedBluinsightsUrlRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({}).pipe(T.all(T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetSignedBluinsightsUrlRequest",
});
export const GetSignedBluinsightsUrlResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ signedBiUrl: S.String })).annotate({
    identifier: "GetSignedBluinsightsUrlResponse",
});
export const ListEngineVersionsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    engineType: S.optional(S.String).pipe(T.HttpQuery("engineType")),
    nextToken: S.optional(S.String).pipe(T.HttpQuery("nextToken")),
    maxResults: S.optional(S.Number).pipe(T.HttpQuery("maxResults")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/engine-versions" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListEngineVersionsRequest",
});
export const EngineVersionsSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ engineType: S.String, engineVersion: S.String })).annotate({
    identifier: "EngineVersionsSummary",
});
export const EngineVersionsSummaryList = /*@__PURE__*/ /*#__PURE__*/ S.Array(EngineVersionsSummary);
export const ListEngineVersionsResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    engineVersions: EngineVersionsSummaryList,
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListEngineVersionsResponse",
});
export const ValidationExceptionField = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ name: S.String, message: S.String })).annotate({
    identifier: "ValidationExceptionField",
});
export const ValidationExceptionFieldList = /*@__PURE__*/ /*#__PURE__*/ S.Array(ValidationExceptionField);
export const ListTagsForResourceRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ resourceArn: S.String.pipe(T.HttpLabel("resourceArn")) }).pipe(T.all(T.Http({ method: "GET", uri: "/tags/{resourceArn}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListTagsForResourceRequest",
});
export const TagMap = /*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, S.String.pipe(S.optional));
export const ListTagsForResourceResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ tags: TagMap })).annotate({
    identifier: "ListTagsForResourceResponse",
});
export const TagResourceRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    resourceArn: S.String.pipe(T.HttpLabel("resourceArn")),
    tags: TagMap,
}).pipe(T.all(T.Http({ method: "POST", uri: "/tags/{resourceArn}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "TagResourceRequest",
});
export const TagResourceResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "TagResourceResponse",
});
export const TagKeyList = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const UntagResourceRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    resourceArn: S.String.pipe(T.HttpLabel("resourceArn")),
    tagKeys: TagKeyList.pipe(T.HttpQuery("tagKeys")),
}).pipe(T.all(T.Http({ method: "DELETE", uri: "/tags/{resourceArn}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UntagResourceRequest",
});
export const UntagResourceResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "UntagResourceResponse",
});
export const Definition = /*@__PURE__*/ /*#__PURE__*/ S.Union([
    S.Struct({ s3Location: S.String }),
    S.Struct({ content: S.String }),
]);
export const CreateApplicationRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    name: S.String,
    description: S.optional(S.String),
    engineType: S.String,
    definition: Definition,
    tags: S.optional(TagMap),
    clientToken: S.optional(S.String).pipe(T.IdempotencyToken()),
    kmsKeyId: S.optional(S.String),
    roleArn: S.optional(S.String),
}).pipe(T.all(T.Http({ method: "POST", uri: "/applications" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateApplicationRequest",
});
export const CreateApplicationResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    applicationArn: S.String,
    applicationId: S.String,
    applicationVersion: S.Number,
})).annotate({
    identifier: "CreateApplicationResponse",
});
export const GetApplicationRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ applicationId: S.String.pipe(T.HttpLabel("applicationId")) }).pipe(T.all(T.Http({ method: "GET", uri: "/applications/{applicationId}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetApplicationRequest",
});
export const ApplicationVersionSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    applicationVersion: S.Number,
    status: S.String,
    statusReason: S.optional(S.String),
    creationTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
})).annotate({
    identifier: "ApplicationVersionSummary",
});
export const DeployedVersionSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    applicationVersion: S.Number,
    status: S.String,
    statusReason: S.optional(S.String),
})).annotate({
    identifier: "DeployedVersionSummary",
});
export const LogGroupSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ logType: S.String, logGroupName: S.String })).annotate({
    identifier: "LogGroupSummary",
});
export const LogGroupSummaries = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(LogGroupSummary);
export const ArnList = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const PortList = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.Number);
export const GetApplicationResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    name: S.String,
    description: S.optional(S.String),
    applicationId: S.String,
    applicationArn: S.String,
    status: S.String,
    latestVersion: ApplicationVersionSummary,
    deployedVersion: S.optional(DeployedVersionSummary),
    engineType: S.String,
    logGroups: S.optional(LogGroupSummaries),
    creationTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    lastStartTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    tags: S.optional(TagMap),
    environmentId: S.optional(S.String),
    targetGroupArns: S.optional(ArnList),
    listenerArns: S.optional(ArnList),
    listenerPorts: S.optional(PortList),
    loadBalancerDnsName: S.optional(S.String),
    statusReason: S.optional(S.String),
    kmsKeyId: S.optional(S.String),
    roleArn: S.optional(S.String),
})).annotate({
    identifier: "GetApplicationResponse",
});
export const UpdateApplicationRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    applicationId: S.String.pipe(T.HttpLabel("applicationId")),
    description: S.optional(S.String),
    currentApplicationVersion: S.Number,
    definition: S.optional(Definition),
}).pipe(T.all(T.Http({ method: "PATCH", uri: "/applications/{applicationId}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateApplicationRequest",
});
export const UpdateApplicationResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ applicationVersion: S.Number })).annotate({
    identifier: "UpdateApplicationResponse",
});
export const DeleteApplicationRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    applicationId: S.String.pipe(T.HttpLabel("applicationId")),
}).pipe(T.all(T.Http({ method: "DELETE", uri: "/applications/{applicationId}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteApplicationRequest",
});
export const DeleteApplicationResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "DeleteApplicationResponse",
});
export const EntityNameList = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const ListApplicationsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    nextToken: S.optional(S.String).pipe(T.HttpQuery("nextToken")),
    maxResults: S.optional(S.Number).pipe(T.HttpQuery("maxResults")),
    names: S.optional(EntityNameList).pipe(T.HttpQuery("names")),
    environmentId: S.optional(S.String).pipe(T.HttpQuery("environmentId")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/applications" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListApplicationsRequest",
});
export const ApplicationSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    name: S.String,
    description: S.optional(S.String),
    applicationId: S.String,
    applicationArn: S.String,
    applicationVersion: S.Number,
    status: S.String,
    engineType: S.String,
    creationTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    environmentId: S.optional(S.String),
    lastStartTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    versionStatus: S.optional(S.String),
    deploymentStatus: S.optional(S.String),
    roleArn: S.optional(S.String),
})).annotate({
    identifier: "ApplicationSummary",
});
export const ApplicationSummaryList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(ApplicationSummary);
export const ListApplicationsResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    applications: ApplicationSummaryList,
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListApplicationsResponse",
});
export const CancelBatchJobExecutionRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    applicationId: S.String.pipe(T.HttpLabel("applicationId")),
    executionId: S.String.pipe(T.HttpLabel("executionId")),
    authSecretsManagerArn: S.optional(S.String),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/applications/{applicationId}/batch-job-executions/{executionId}/cancel",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "CancelBatchJobExecutionRequest",
});
export const CancelBatchJobExecutionResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "CancelBatchJobExecutionResponse",
});
export const ExternalLocation = /*@__PURE__*/ /*#__PURE__*/ S.Union([
    S.Struct({ s3Location: S.String }),
]);
export const DataSetExportItem = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ datasetName: S.String, externalLocation: ExternalLocation })).annotate({
    identifier: "DataSetExportItem",
});
export const DataSetExportList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(DataSetExportItem);
export const DataSetExportConfig = /*@__PURE__*/ /*#__PURE__*/ S.Union([
    S.Struct({ s3Location: S.String }),
    S.Struct({ dataSets: DataSetExportList }),
]);
export const CreateDataSetExportTaskRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    applicationId: S.String.pipe(T.HttpLabel("applicationId")),
    exportConfig: DataSetExportConfig,
    clientToken: S.optional(S.String).pipe(T.IdempotencyToken()),
    kmsKeyId: S.optional(S.String),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/applications/{applicationId}/dataset-export-task",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateDataSetExportTaskRequest",
});
export const CreateDataSetExportTaskResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ taskId: S.String })).annotate({
    identifier: "CreateDataSetExportTaskResponse",
});
export const PrimaryKey = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ name: S.optional(S.String), offset: S.Number, length: S.Number })).annotate({ identifier: "PrimaryKey" });
export const AlternateKey = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    name: S.optional(S.String),
    offset: S.Number,
    length: S.Number,
    allowDuplicates: S.optional(S.Boolean),
})).annotate({ identifier: "AlternateKey" });
export const AlternateKeyList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(AlternateKey);
export const VsamAttributes = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    format: S.String,
    encoding: S.optional(S.String),
    compressed: S.optional(S.Boolean),
    primaryKey: S.optional(PrimaryKey),
    alternateKeys: S.optional(AlternateKeyList),
})).annotate({ identifier: "VsamAttributes" });
export const GdgAttributes = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    limit: S.optional(S.Number),
    rollDisposition: S.optional(S.String),
})).annotate({ identifier: "GdgAttributes" });
export const String20List = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const PoAttributes = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    format: S.String,
    encoding: S.optional(S.String),
    memberFileExtensions: String20List,
})).annotate({ identifier: "PoAttributes" });
export const PsAttributes = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ format: S.String, encoding: S.optional(S.String) })).annotate({ identifier: "PsAttributes" });
export const DatasetOrgAttributes = /*@__PURE__*/ /*#__PURE__*/ S.Union([
    S.Struct({ vsam: VsamAttributes }),
    S.Struct({ gdg: GdgAttributes }),
    S.Struct({ po: PoAttributes }),
    S.Struct({ ps: PsAttributes }),
]);
export const RecordLength = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ min: S.Number, max: S.Number })).annotate({ identifier: "RecordLength" });
export const DataSet = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    storageType: S.optional(S.String),
    datasetName: S.String,
    datasetOrg: DatasetOrgAttributes,
    relativePath: S.optional(S.String),
    recordLength: RecordLength,
})).annotate({ identifier: "DataSet" });
export const DataSetImportItem = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ dataSet: DataSet, externalLocation: ExternalLocation })).annotate({
    identifier: "DataSetImportItem",
});
export const DataSetImportList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(DataSetImportItem);
export const DataSetImportConfig = /*@__PURE__*/ /*#__PURE__*/ S.Union([
    S.Struct({ s3Location: S.String }),
    S.Struct({ dataSets: DataSetImportList }),
]);
export const CreateDataSetImportTaskRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    applicationId: S.String.pipe(T.HttpLabel("applicationId")),
    importConfig: DataSetImportConfig,
    clientToken: S.optional(S.String).pipe(T.IdempotencyToken()),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/applications/{applicationId}/dataset-import-task",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateDataSetImportTaskRequest",
});
export const CreateDataSetImportTaskResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ taskId: S.String })).annotate({
    identifier: "CreateDataSetImportTaskResponse",
});
export const CreateDeploymentRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    environmentId: S.String,
    applicationId: S.String.pipe(T.HttpLabel("applicationId")),
    applicationVersion: S.Number,
    clientToken: S.optional(S.String).pipe(T.IdempotencyToken()),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/applications/{applicationId}/deployments",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateDeploymentRequest",
});
export const CreateDeploymentResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ deploymentId: S.String })).annotate({
    identifier: "CreateDeploymentResponse",
});
export const DeleteApplicationFromEnvironmentRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    applicationId: S.String.pipe(T.HttpLabel("applicationId")),
    environmentId: S.String.pipe(T.HttpLabel("environmentId")),
}).pipe(T.all(T.Http({
    method: "DELETE",
    uri: "/applications/{applicationId}/environment/{environmentId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteApplicationFromEnvironmentRequest",
});
export const DeleteApplicationFromEnvironmentResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "DeleteApplicationFromEnvironmentResponse",
});
export const GetApplicationVersionRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    applicationId: S.String.pipe(T.HttpLabel("applicationId")),
    applicationVersion: S.Number.pipe(T.HttpLabel("applicationVersion")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/applications/{applicationId}/versions/{applicationVersion}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetApplicationVersionRequest",
});
export const GetApplicationVersionResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    name: S.String,
    applicationVersion: S.Number,
    description: S.optional(S.String),
    definitionContent: S.String,
    status: S.String,
    creationTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    statusReason: S.optional(S.String),
})).annotate({
    identifier: "GetApplicationVersionResponse",
});
export const GetBatchJobExecutionRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    applicationId: S.String.pipe(T.HttpLabel("applicationId")),
    executionId: S.String.pipe(T.HttpLabel("executionId")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/applications/{applicationId}/batch-job-executions/{executionId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetBatchJobExecutionRequest",
});
export const FileBatchJobIdentifier = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ fileName: S.String, folderPath: S.optional(S.String) })).annotate({
    identifier: "FileBatchJobIdentifier",
});
export const ScriptBatchJobIdentifier = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ scriptName: S.String })).annotate({
    identifier: "ScriptBatchJobIdentifier",
});
export const JobIdentifier = /*@__PURE__*/ /*#__PURE__*/ S.Union([
    S.Struct({ fileName: S.String }),
    S.Struct({ scriptName: S.String }),
]);
export const S3BatchJobIdentifier = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    bucket: S.String,
    keyPrefix: S.optional(S.String),
    identifier: JobIdentifier,
})).annotate({
    identifier: "S3BatchJobIdentifier",
});
export const JobStepRestartMarker = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    fromStep: S.String,
    fromProcStep: S.optional(S.String),
    toStep: S.optional(S.String),
    toProcStep: S.optional(S.String),
    stepCheckpoint: S.optional(S.Number),
    skip: S.optional(S.Boolean),
})).annotate({
    identifier: "JobStepRestartMarker",
});
export const RestartBatchJobIdentifier = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    executionId: S.String,
    jobStepRestartMarker: JobStepRestartMarker,
})).annotate({
    identifier: "RestartBatchJobIdentifier",
});
export const BatchJobIdentifier = /*@__PURE__*/ /*#__PURE__*/ S.Union([
    S.Struct({ fileBatchJobIdentifier: FileBatchJobIdentifier }),
    S.Struct({ scriptBatchJobIdentifier: ScriptBatchJobIdentifier }),
    S.Struct({ s3BatchJobIdentifier: S3BatchJobIdentifier }),
    S.Struct({ restartBatchJobIdentifier: RestartBatchJobIdentifier }),
]);
export const GetBatchJobExecutionResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    executionId: S.String,
    applicationId: S.String,
    jobId: S.optional(S.String),
    jobName: S.optional(S.String),
    jobUser: S.optional(S.String),
    jobType: S.optional(S.String),
    status: S.String,
    startTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    endTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    statusReason: S.optional(S.String),
    returnCode: S.optional(S.String),
    batchJobIdentifier: S.optional(BatchJobIdentifier),
    jobStepRestartMarker: S.optional(JobStepRestartMarker),
})).annotate({
    identifier: "GetBatchJobExecutionResponse",
});
export const GetDataSetDetailsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    applicationId: S.String.pipe(T.HttpLabel("applicationId")),
    dataSetName: S.String.pipe(T.HttpLabel("dataSetName")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/applications/{applicationId}/datasets/{dataSetName}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetDataSetDetailsRequest",
});
export const VsamDetailAttributes = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    encoding: S.optional(S.String),
    recordFormat: S.optional(S.String),
    compressed: S.optional(S.Boolean),
    cacheAtStartup: S.optional(S.Boolean),
    primaryKey: S.optional(PrimaryKey),
    alternateKeys: S.optional(AlternateKeyList),
})).annotate({
    identifier: "VsamDetailAttributes",
});
export const GdgDetailAttributes = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    limit: S.optional(S.Number),
    rollDisposition: S.optional(S.String),
})).annotate({
    identifier: "GdgDetailAttributes",
});
export const PoDetailAttributes = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ format: S.String, encoding: S.String })).annotate({
    identifier: "PoDetailAttributes",
});
export const PsDetailAttributes = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ format: S.String, encoding: S.String })).annotate({
    identifier: "PsDetailAttributes",
});
export const DatasetDetailOrgAttributes = /*@__PURE__*/ /*#__PURE__*/ S.Union([
    S.Struct({ vsam: VsamDetailAttributes }),
    S.Struct({ gdg: GdgDetailAttributes }),
    S.Struct({ po: PoDetailAttributes }),
    S.Struct({ ps: PsDetailAttributes }),
]);
export const GetDataSetDetailsResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    dataSetName: S.String,
    dataSetOrg: S.optional(DatasetDetailOrgAttributes),
    recordLength: S.optional(S.Number),
    location: S.optional(S.String),
    blocksize: S.optional(S.Number),
    creationTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    lastUpdatedTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    lastReferencedTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    fileSize: S.optional(S.Number),
})).annotate({
    identifier: "GetDataSetDetailsResponse",
});
export const GetDataSetExportTaskRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    applicationId: S.String.pipe(T.HttpLabel("applicationId")),
    taskId: S.String.pipe(T.HttpLabel("taskId")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/applications/{applicationId}/dataset-export-tasks/{taskId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetDataSetExportTaskRequest",
});
export const DataSetExportSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    total: S.Number,
    succeeded: S.Number,
    failed: S.Number,
    pending: S.Number,
    inProgress: S.Number,
})).annotate({
    identifier: "DataSetExportSummary",
});
export const GetDataSetExportTaskResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    taskId: S.String,
    status: S.String,
    summary: S.optional(DataSetExportSummary),
    statusReason: S.optional(S.String),
    kmsKeyArn: S.optional(S.String),
})).annotate({
    identifier: "GetDataSetExportTaskResponse",
});
export const GetDataSetImportTaskRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    applicationId: S.String.pipe(T.HttpLabel("applicationId")),
    taskId: S.String.pipe(T.HttpLabel("taskId")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/applications/{applicationId}/dataset-import-tasks/{taskId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetDataSetImportTaskRequest",
});
export const DataSetImportSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    total: S.Number,
    succeeded: S.Number,
    failed: S.Number,
    pending: S.Number,
    inProgress: S.Number,
})).annotate({
    identifier: "DataSetImportSummary",
});
export const GetDataSetImportTaskResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    taskId: S.String,
    status: S.String,
    summary: S.optional(DataSetImportSummary),
})).annotate({
    identifier: "GetDataSetImportTaskResponse",
});
export const GetDeploymentRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    deploymentId: S.String.pipe(T.HttpLabel("deploymentId")),
    applicationId: S.String.pipe(T.HttpLabel("applicationId")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/applications/{applicationId}/deployments/{deploymentId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetDeploymentRequest",
});
export const GetDeploymentResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    deploymentId: S.String,
    applicationId: S.String,
    environmentId: S.String,
    applicationVersion: S.Number,
    status: S.String,
    creationTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    statusReason: S.optional(S.String),
})).annotate({
    identifier: "GetDeploymentResponse",
});
export const ListApplicationVersionsRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    nextToken: S.optional(S.String).pipe(T.HttpQuery("nextToken")),
    maxResults: S.optional(S.Number).pipe(T.HttpQuery("maxResults")),
    applicationId: S.String.pipe(T.HttpLabel("applicationId")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/applications/{applicationId}/versions",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListApplicationVersionsRequest",
});
export const ApplicationVersionSummaryList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(ApplicationVersionSummary);
export const ListApplicationVersionsResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    applicationVersions: ApplicationVersionSummaryList,
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListApplicationVersionsResponse",
});
export const ListBatchJobDefinitionsRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    nextToken: S.optional(S.String).pipe(T.HttpQuery("nextToken")),
    maxResults: S.optional(S.Number).pipe(T.HttpQuery("maxResults")),
    applicationId: S.String.pipe(T.HttpLabel("applicationId")),
    prefix: S.optional(S.String).pipe(T.HttpQuery("prefix")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/applications/{applicationId}/batch-job-definitions",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListBatchJobDefinitionsRequest",
});
export const FileBatchJobDefinition = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ fileName: S.String, folderPath: S.optional(S.String) })).annotate({
    identifier: "FileBatchJobDefinition",
});
export const ScriptBatchJobDefinition = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ scriptName: S.String })).annotate({
    identifier: "ScriptBatchJobDefinition",
});
export const BatchJobDefinition = /*@__PURE__*/ /*#__PURE__*/ S.Union([
    S.Struct({ fileBatchJobDefinition: FileBatchJobDefinition }),
    S.Struct({ scriptBatchJobDefinition: ScriptBatchJobDefinition }),
]);
export const BatchJobDefinitions = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(BatchJobDefinition);
export const ListBatchJobDefinitionsResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    batchJobDefinitions: BatchJobDefinitions,
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListBatchJobDefinitionsResponse",
});
export const IdentifierList = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const ListBatchJobExecutionsRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    nextToken: S.optional(S.String).pipe(T.HttpQuery("nextToken")),
    maxResults: S.optional(S.Number).pipe(T.HttpQuery("maxResults")),
    applicationId: S.String.pipe(T.HttpLabel("applicationId")),
    executionIds: S.optional(IdentifierList).pipe(T.HttpQuery("executionIds")),
    jobName: S.optional(S.String).pipe(T.HttpQuery("jobName")),
    status: S.optional(S.String).pipe(T.HttpQuery("status")),
    startedAfter: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))).pipe(T.HttpQuery("startedAfter")),
    startedBefore: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))).pipe(T.HttpQuery("startedBefore")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/applications/{applicationId}/batch-job-executions",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListBatchJobExecutionsRequest",
});
export const BatchJobExecutionSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    executionId: S.String,
    applicationId: S.String,
    jobId: S.optional(S.String),
    jobName: S.optional(S.String),
    jobType: S.optional(S.String),
    status: S.String,
    startTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    endTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    returnCode: S.optional(S.String),
    batchJobIdentifier: S.optional(BatchJobIdentifier),
})).annotate({
    identifier: "BatchJobExecutionSummary",
});
export const BatchJobExecutionSummaryList = /*@__PURE__*/ /*#__PURE__*/ S.Array(BatchJobExecutionSummary);
export const ListBatchJobExecutionsResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    batchJobExecutions: BatchJobExecutionSummaryList,
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListBatchJobExecutionsResponse",
});
export const ListBatchJobRestartPointsRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    applicationId: S.String.pipe(T.HttpLabel("applicationId")),
    executionId: S.String.pipe(T.HttpLabel("executionId")),
    authSecretsManagerArn: S.optional(S.String).pipe(T.HttpQuery("authSecretsManagerArn")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/applications/{applicationId}/batch-job-executions/{executionId}/steps",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListBatchJobRestartPointsRequest",
});
export const JobStep = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    stepNumber: S.optional(S.Number),
    stepName: S.optional(S.String),
    procStepNumber: S.optional(S.Number),
    procStepName: S.optional(S.String),
    stepCondCode: S.optional(S.String),
    stepRestartable: S.optional(S.Boolean),
    stepCheckpoint: S.optional(S.Number),
    stepCheckpointStatus: S.optional(S.String),
    stepCheckpointTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
})).annotate({ identifier: "JobStep" });
export const BatchJobStepList = /*@__PURE__*/ /*#__PURE__*/ S.Array(JobStep);
export const ListBatchJobRestartPointsResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ batchJobSteps: S.optional(BatchJobStepList) })).annotate({
    identifier: "ListBatchJobRestartPointsResponse",
});
export const ListDataSetExportHistoryRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    nextToken: S.optional(S.String).pipe(T.HttpQuery("nextToken")),
    maxResults: S.optional(S.Number).pipe(T.HttpQuery("maxResults")),
    applicationId: S.String.pipe(T.HttpLabel("applicationId")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/applications/{applicationId}/dataset-export-tasks",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListDataSetExportHistoryRequest",
});
export const DataSetExportTask = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    taskId: S.String,
    status: S.String,
    summary: DataSetExportSummary,
    statusReason: S.optional(S.String),
})).annotate({
    identifier: "DataSetExportTask",
});
export const DataSetExportTaskList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(DataSetExportTask);
export const ListDataSetExportHistoryResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    dataSetExportTasks: DataSetExportTaskList,
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListDataSetExportHistoryResponse",
});
export const ListDataSetImportHistoryRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    nextToken: S.optional(S.String).pipe(T.HttpQuery("nextToken")),
    maxResults: S.optional(S.Number).pipe(T.HttpQuery("maxResults")),
    applicationId: S.String.pipe(T.HttpLabel("applicationId")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/applications/{applicationId}/dataset-import-tasks",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListDataSetImportHistoryRequest",
});
export const DataSetImportTask = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    taskId: S.String,
    status: S.String,
    summary: DataSetImportSummary,
    statusReason: S.optional(S.String),
})).annotate({
    identifier: "DataSetImportTask",
});
export const DataSetImportTaskList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(DataSetImportTask);
export const ListDataSetImportHistoryResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    dataSetImportTasks: DataSetImportTaskList,
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListDataSetImportHistoryResponse",
});
export const ListDataSetsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    applicationId: S.String.pipe(T.HttpLabel("applicationId")),
    nextToken: S.optional(S.String).pipe(T.HttpQuery("nextToken")),
    maxResults: S.optional(S.Number).pipe(T.HttpQuery("maxResults")),
    prefix: S.optional(S.String).pipe(T.HttpQuery("prefix")),
    nameFilter: S.optional(S.String).pipe(T.HttpQuery("nameFilter")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/applications/{applicationId}/datasets" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListDataSetsRequest",
});
export const DataSetSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    dataSetName: S.String,
    dataSetOrg: S.optional(S.String),
    format: S.optional(S.String),
    creationTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    lastUpdatedTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    lastReferencedTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
})).annotate({ identifier: "DataSetSummary" });
export const DataSetsSummaryList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(DataSetSummary);
export const ListDataSetsResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ dataSets: DataSetsSummaryList, nextToken: S.optional(S.String) })).annotate({
    identifier: "ListDataSetsResponse",
});
export const ListDeploymentsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    nextToken: S.optional(S.String).pipe(T.HttpQuery("nextToken")),
    maxResults: S.optional(S.Number).pipe(T.HttpQuery("maxResults")),
    applicationId: S.String.pipe(T.HttpLabel("applicationId")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/applications/{applicationId}/deployments",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListDeploymentsRequest",
});
export const DeploymentSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    deploymentId: S.String,
    applicationId: S.String,
    environmentId: S.String,
    applicationVersion: S.Number,
    status: S.String,
    creationTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    statusReason: S.optional(S.String),
})).annotate({
    identifier: "DeploymentSummary",
});
export const DeploymentList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(DeploymentSummary);
export const ListDeploymentsResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ deployments: DeploymentList, nextToken: S.optional(S.String) })).annotate({
    identifier: "ListDeploymentsResponse",
});
export const StartApplicationRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    applicationId: S.String.pipe(T.HttpLabel("applicationId")),
}).pipe(T.all(T.Http({ method: "POST", uri: "/applications/{applicationId}/start" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "StartApplicationRequest",
});
export const StartApplicationResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "StartApplicationResponse",
});
export const BatchJobParametersMap = /*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, S.String.pipe(S.optional));
export const StartBatchJobRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    applicationId: S.String.pipe(T.HttpLabel("applicationId")),
    batchJobIdentifier: BatchJobIdentifier,
    jobParams: S.optional(BatchJobParametersMap),
    authSecretsManagerArn: S.optional(S.String),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/applications/{applicationId}/batch-job",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "StartBatchJobRequest",
});
export const StartBatchJobResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ executionId: S.String })).annotate({
    identifier: "StartBatchJobResponse",
});
export const StopApplicationRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    applicationId: S.String.pipe(T.HttpLabel("applicationId")),
    forceStop: S.optional(S.Boolean),
}).pipe(T.all(T.Http({ method: "POST", uri: "/applications/{applicationId}/stop" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "StopApplicationRequest",
});
export const StopApplicationResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "StopApplicationResponse",
});
export const String50List = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const EfsStorageConfiguration = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ fileSystemId: S.String, mountPoint: S.String }).pipe(S.encodeKeys({
    fileSystemId: "file-system-id",
    mountPoint: "mount-point",
}))).annotate({
    identifier: "EfsStorageConfiguration",
});
export const FsxStorageConfiguration = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ fileSystemId: S.String, mountPoint: S.String }).pipe(S.encodeKeys({
    fileSystemId: "file-system-id",
    mountPoint: "mount-point",
}))).annotate({
    identifier: "FsxStorageConfiguration",
});
export const StorageConfiguration = /*@__PURE__*/ /*#__PURE__*/ S.Union([
    S.Struct({ efs: EfsStorageConfiguration }),
    S.Struct({ fsx: FsxStorageConfiguration }),
]);
export const StorageConfigurationList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(StorageConfiguration);
export const HighAvailabilityConfig = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ desiredCapacity: S.Number })).annotate({
    identifier: "HighAvailabilityConfig",
});
export const CreateEnvironmentRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    name: S.String,
    instanceType: S.String,
    description: S.optional(S.String),
    engineType: S.String,
    engineVersion: S.optional(S.String),
    subnetIds: S.optional(String50List),
    securityGroupIds: S.optional(String50List),
    storageConfigurations: S.optional(StorageConfigurationList),
    publiclyAccessible: S.optional(S.Boolean),
    highAvailabilityConfig: S.optional(HighAvailabilityConfig),
    tags: S.optional(TagMap),
    preferredMaintenanceWindow: S.optional(S.String),
    networkType: S.optional(S.String),
    clientToken: S.optional(S.String).pipe(T.IdempotencyToken()),
    kmsKeyId: S.optional(S.String),
}).pipe(T.all(T.Http({ method: "POST", uri: "/environments" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateEnvironmentRequest",
});
export const CreateEnvironmentResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ environmentId: S.String })).annotate({
    identifier: "CreateEnvironmentResponse",
});
export const GetEnvironmentRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ environmentId: S.String.pipe(T.HttpLabel("environmentId")) }).pipe(T.all(T.Http({ method: "GET", uri: "/environments/{environmentId}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetEnvironmentRequest",
});
export const MaintenanceSchedule = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    startTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    endTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
})).annotate({
    identifier: "MaintenanceSchedule",
});
export const PendingMaintenance = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    schedule: S.optional(MaintenanceSchedule),
    engineVersion: S.optional(S.String),
})).annotate({
    identifier: "PendingMaintenance",
});
export const GetEnvironmentResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    name: S.String,
    description: S.optional(S.String),
    environmentArn: S.String,
    environmentId: S.String,
    instanceType: S.String,
    status: S.String,
    engineType: S.String,
    engineVersion: S.String,
    vpcId: S.String,
    subnetIds: String50List,
    securityGroupIds: String50List,
    creationTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    storageConfigurations: S.optional(StorageConfigurationList),
    tags: S.optional(TagMap),
    highAvailabilityConfig: S.optional(HighAvailabilityConfig),
    publiclyAccessible: S.optional(S.Boolean),
    actualCapacity: S.optional(S.Number),
    loadBalancerArn: S.optional(S.String),
    statusReason: S.optional(S.String),
    preferredMaintenanceWindow: S.optional(S.String),
    pendingMaintenance: S.optional(PendingMaintenance),
    kmsKeyId: S.optional(S.String),
    networkType: S.optional(S.String),
})).annotate({
    identifier: "GetEnvironmentResponse",
});
export const UpdateEnvironmentRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    environmentId: S.String.pipe(T.HttpLabel("environmentId")),
    desiredCapacity: S.optional(S.Number),
    instanceType: S.optional(S.String),
    engineVersion: S.optional(S.String),
    preferredMaintenanceWindow: S.optional(S.String),
    applyDuringMaintenanceWindow: S.optional(S.Boolean),
    forceUpdate: S.optional(S.Boolean),
}).pipe(T.all(T.Http({ method: "PATCH", uri: "/environments/{environmentId}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateEnvironmentRequest",
});
export const UpdateEnvironmentResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ environmentId: S.String })).annotate({
    identifier: "UpdateEnvironmentResponse",
});
export const DeleteEnvironmentRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    environmentId: S.String.pipe(T.HttpLabel("environmentId")),
}).pipe(T.all(T.Http({ method: "DELETE", uri: "/environments/{environmentId}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteEnvironmentRequest",
});
export const DeleteEnvironmentResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "DeleteEnvironmentResponse",
});
export const ListEnvironmentsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    nextToken: S.optional(S.String).pipe(T.HttpQuery("nextToken")),
    maxResults: S.optional(S.Number).pipe(T.HttpQuery("maxResults")),
    names: S.optional(EntityNameList).pipe(T.HttpQuery("names")),
    engineType: S.optional(S.String).pipe(T.HttpQuery("engineType")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/environments" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListEnvironmentsRequest",
});
export const EnvironmentSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    name: S.String,
    environmentArn: S.String,
    environmentId: S.String,
    instanceType: S.String,
    status: S.String,
    engineType: S.String,
    engineVersion: S.String,
    creationTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    networkType: S.optional(S.String),
})).annotate({
    identifier: "EnvironmentSummary",
});
export const EnvironmentSummaryList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(EnvironmentSummary);
export const ListEnvironmentsResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    environments: EnvironmentSummaryList,
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListEnvironmentsResponse",
});
//# Errors
export class AccessDeniedException extends S.TaggedErrorClass()("AccessDeniedException", { message: S.String }).pipe(C.withAuthError) {
}
export class InternalServerException extends S.TaggedErrorClass()("InternalServerException", {
    message: S.String,
    retryAfterSeconds: S.optional(S.Number).pipe(T.HttpHeader("Retry-After")),
}, T.Retryable()).pipe(C.withServerError, C.withRetryableError) {
}
export class ThrottlingException extends S.TaggedErrorClass()("ThrottlingException", {
    message: S.String,
    serviceCode: S.optional(S.String),
    quotaCode: S.optional(S.String),
    retryAfterSeconds: S.optional(S.Number).pipe(T.HttpHeader("Retry-After")),
}, T.Retryable({ throttling: true })).pipe(C.withThrottlingError, C.withRetryableError) {
}
export class ValidationException extends S.TaggedErrorClass()("ValidationException", {
    message: S.String,
    reason: S.optional(S.String),
    fieldList: S.optional(ValidationExceptionFieldList),
}).pipe(C.withBadRequestError) {
}
export class ResourceNotFoundException extends S.TaggedErrorClass()("ResourceNotFoundException", {
    message: S.String,
    resourceId: S.optional(S.String),
    resourceType: S.optional(S.String),
}).pipe(C.withBadRequestError) {
}
export class ServiceQuotaExceededException extends S.TaggedErrorClass()("ServiceQuotaExceededException", {
    message: S.String,
    resourceId: S.optional(S.String),
    resourceType: S.optional(S.String),
    serviceCode: S.optional(S.String),
    quotaCode: S.optional(S.String),
}).pipe(C.withQuotaError) {
}
export class ConflictException extends S.TaggedErrorClass()("ConflictException", {
    message: S.String,
    resourceId: S.optional(S.String),
    resourceType: S.optional(S.String),
}).pipe(C.withConflictError) {
}
export class ExecutionTimeoutException extends S.TaggedErrorClass()("ExecutionTimeoutException", { message: S.String }, T.Retryable()).pipe(C.withTimeoutError, C.withRetryableError) {
}
export class ServiceUnavailableException extends S.TaggedErrorClass()("ServiceUnavailableException", { message: S.String }, T.Retryable()).pipe(C.withServerError, C.withRetryableError) {
}
/**
 * Gets a single sign-on URL that can be used to connect to AWS Blu Insights.
 */
export const getSignedBluinsightsUrl = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetSignedBluinsightsUrlRequest,
    output: GetSignedBluinsightsUrlResponse,
    errors: [AccessDeniedException, InternalServerException, ThrottlingException],
}));
/**
 * Lists the available engine versions.
 */
export const listEngineVersions = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListEngineVersionsRequest,
    output: ListEngineVersionsResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ThrottlingException,
        ValidationException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "engineVersions",
        pageSize: "maxResults",
    },
}));
/**
 * Lists the tags for the specified resource.
 */
export const listTagsForResource = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: ListTagsForResourceRequest,
    output: ListTagsForResourceResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Adds one or more tags to the specified resource.
 */
export const tagResource = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: TagResourceRequest,
    output: TagResourceResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ServiceQuotaExceededException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Removes one or more tags from the specified resource.
 */
export const untagResource = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UntagResourceRequest,
    output: UntagResourceResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Creates a new application with given parameters. Requires an existing runtime
 * environment and application definition file.
 */
export const createApplication = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateApplicationRequest,
    output: CreateApplicationResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ServiceQuotaExceededException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Describes the details of a specific application.
 */
export const getApplication = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetApplicationRequest,
    output: GetApplicationResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Updates an application and creates a new version.
 */
export const updateApplication = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateApplicationRequest,
    output: UpdateApplicationResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Deletes a specific application. You cannot delete a running application.
 */
export const deleteApplication = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteApplicationRequest,
    output: DeleteApplicationResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Lists the applications associated with a specific Amazon Web Services account. You can provide the
 * unique identifier of a specific runtime environment in a query parameter to see all
 * applications associated with that environment.
 */
export const listApplications = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListApplicationsRequest,
    output: ListApplicationsResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ThrottlingException,
        ValidationException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "applications",
        pageSize: "maxResults",
    },
}));
/**
 * Cancels the running of a specific batch job execution.
 */
export const cancelBatchJobExecution = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CancelBatchJobExecutionRequest,
    output: CancelBatchJobExecutionResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Starts a data set export task for a specific application.
 */
export const createDataSetExportTask = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateDataSetExportTaskRequest,
    output: CreateDataSetExportTaskResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ResourceNotFoundException,
        ServiceQuotaExceededException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Starts a data set import task for a specific application.
 */
export const createDataSetImportTask = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateDataSetImportTaskRequest,
    output: CreateDataSetImportTaskResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ResourceNotFoundException,
        ServiceQuotaExceededException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Creates and starts a deployment to deploy an application into a runtime
 * environment.
 */
export const createDeployment = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateDeploymentRequest,
    output: CreateDeploymentResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ResourceNotFoundException,
        ServiceQuotaExceededException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Deletes a specific application from the specific runtime environment where it was
 * previously deployed. You cannot delete a runtime environment using DeleteEnvironment if any
 * application has ever been deployed to it. This API removes the association of the
 * application with the runtime environment so you can delete the environment smoothly.
 */
export const deleteApplicationFromEnvironment = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteApplicationFromEnvironmentRequest,
    output: DeleteApplicationFromEnvironmentResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Returns details about a specific version of a specific application.
 */
export const getApplicationVersion = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetApplicationVersionRequest,
    output: GetApplicationVersionResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Gets the details of a specific batch job execution for a specific application.
 */
export const getBatchJobExecution = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetBatchJobExecutionRequest,
    output: GetBatchJobExecutionResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Gets the details of a specific data set.
 */
export const getDataSetDetails = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetDataSetDetailsRequest,
    output: GetDataSetDetailsResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        ExecutionTimeoutException,
        InternalServerException,
        ResourceNotFoundException,
        ServiceUnavailableException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Gets the status of a data set import task initiated with the CreateDataSetExportTask operation.
 */
export const getDataSetExportTask = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetDataSetExportTaskRequest,
    output: GetDataSetExportTaskResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Gets the status of a data set import task initiated with the CreateDataSetImportTask operation.
 */
export const getDataSetImportTask = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetDataSetImportTaskRequest,
    output: GetDataSetImportTaskResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Gets details of a specific deployment with a given deployment identifier.
 */
export const getDeployment = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetDeploymentRequest,
    output: GetDeploymentResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Returns a list of the application versions for a specific application.
 */
export const listApplicationVersions = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListApplicationVersionsRequest,
    output: ListApplicationVersionsResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "applicationVersions",
        pageSize: "maxResults",
    },
}));
/**
 * Lists all the available batch job definitions based on the batch job resources uploaded
 * during the application creation. You can use the batch job definitions in the list to start
 * a batch job.
 */
export const listBatchJobDefinitions = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListBatchJobDefinitionsRequest,
    output: ListBatchJobDefinitionsResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "batchJobDefinitions",
        pageSize: "maxResults",
    },
}));
/**
 * Lists historical, current, and scheduled batch job executions for a specific
 * application.
 */
export const listBatchJobExecutions = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListBatchJobExecutionsRequest,
    output: ListBatchJobExecutionsResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "batchJobExecutions",
        pageSize: "maxResults",
    },
}));
/**
 * Lists all the job steps for a JCL file to restart a batch job. This is only applicable for Micro Focus engine with versions 8.0.6 and above.
 */
export const listBatchJobRestartPoints = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: ListBatchJobRestartPointsRequest,
    output: ListBatchJobRestartPointsResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Lists the data set exports for the specified application.
 */
export const listDataSetExportHistory = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListDataSetExportHistoryRequest,
    output: ListDataSetExportHistoryResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "dataSetExportTasks",
        pageSize: "maxResults",
    },
}));
/**
 * Lists the data set imports for the specified application.
 */
export const listDataSetImportHistory = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListDataSetImportHistoryRequest,
    output: ListDataSetImportHistoryResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "dataSetImportTasks",
        pageSize: "maxResults",
    },
}));
/**
 * Lists the data sets imported for a specific application. In Amazon Web Services Mainframe Modernization, data sets are
 * associated with applications deployed on runtime environments. This is known as importing
 * data sets. Currently, Amazon Web Services Mainframe Modernization can import data sets into catalogs using CreateDataSetImportTask.
 */
export const listDataSets = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListDataSetsRequest,
    output: ListDataSetsResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        ExecutionTimeoutException,
        InternalServerException,
        ResourceNotFoundException,
        ServiceUnavailableException,
        ThrottlingException,
        ValidationException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "dataSets",
        pageSize: "maxResults",
    },
}));
/**
 * Returns a list of all deployments of a specific application. A deployment is a
 * combination of a specific application and a specific version of that application. Each
 * deployment is mapped to a particular application version.
 */
export const listDeployments = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListDeploymentsRequest,
    output: ListDeploymentsResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "deployments",
        pageSize: "maxResults",
    },
}));
/**
 * Starts an application that is currently stopped.
 */
export const startApplication = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: StartApplicationRequest,
    output: StartApplicationResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Starts a batch job and returns the unique identifier of this execution of the batch job.
 * The associated application must be running in order to start the batch job.
 */
export const startBatchJob = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: StartBatchJobRequest,
    output: StartBatchJobResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Stops a running application.
 */
export const stopApplication = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: StopApplicationRequest,
    output: StopApplicationResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Creates a runtime environment for a given runtime engine.
 */
export const createEnvironment = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateEnvironmentRequest,
    output: CreateEnvironmentResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ServiceQuotaExceededException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Describes a specific runtime environment.
 */
export const getEnvironment = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetEnvironmentRequest,
    output: GetEnvironmentResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Updates the configuration details for a specific runtime environment.
 */
export const updateEnvironment = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateEnvironmentRequest,
    output: UpdateEnvironmentResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ResourceNotFoundException,
        ServiceQuotaExceededException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Deletes a specific runtime environment. The environment cannot contain deployed
 * applications. If it does, you must delete those applications before you delete the
 * environment.
 */
export const deleteEnvironment = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteEnvironmentRequest,
    output: DeleteEnvironmentResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Lists the runtime environments.
 */
export const listEnvironments = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListEnvironmentsRequest,
    output: ListEnvironmentsResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ThrottlingException,
        ValidationException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "environments",
        pageSize: "maxResults",
    },
}));
//# sourceMappingURL=m2.js.map