'use strict';

var middlewareHostHeader = require('@aws-sdk/middleware-host-header');
var middlewareLogger = require('@aws-sdk/middleware-logger');
var middlewareRecursionDetection = require('@aws-sdk/middleware-recursion-detection');
var middlewareUserAgent = require('@aws-sdk/middleware-user-agent');
var configResolver = require('@smithy/config-resolver');
var core = require('@smithy/core');
var schema = require('@smithy/core/schema');
var middlewareContentLength = require('@smithy/middleware-content-length');
var middlewareEndpoint = require('@smithy/middleware-endpoint');
var middlewareRetry = require('@smithy/middleware-retry');
var smithyClient = require('@smithy/smithy-client');
var httpAuthSchemeProvider = require('./auth/httpAuthSchemeProvider');
var runtimeConfig = require('./runtimeConfig');
var regionConfigResolver = require('@aws-sdk/region-config-resolver');
var protocolHttp = require('@smithy/protocol-http');
var schemas_0 = require('./schemas/schemas_0');
var utilWaiter = require('@smithy/util-waiter');
var errors = require('./models/errors');
var CodeDeployServiceException = require('./models/CodeDeployServiceException');

const resolveClientEndpointParameters = (options) => {
    return Object.assign(options, {
        useDualstackEndpoint: options.useDualstackEndpoint ?? false,
        useFipsEndpoint: options.useFipsEndpoint ?? false,
        defaultSigningName: "codedeploy",
    });
};
const commonParams = {
    UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" },
    Endpoint: { type: "builtInParams", name: "endpoint" },
    Region: { type: "builtInParams", name: "region" },
    UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" },
};

const getHttpAuthExtensionConfiguration = (runtimeConfig) => {
    const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;
    let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;
    let _credentials = runtimeConfig.credentials;
    return {
        setHttpAuthScheme(httpAuthScheme) {
            const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);
            if (index === -1) {
                _httpAuthSchemes.push(httpAuthScheme);
            }
            else {
                _httpAuthSchemes.splice(index, 1, httpAuthScheme);
            }
        },
        httpAuthSchemes() {
            return _httpAuthSchemes;
        },
        setHttpAuthSchemeProvider(httpAuthSchemeProvider) {
            _httpAuthSchemeProvider = httpAuthSchemeProvider;
        },
        httpAuthSchemeProvider() {
            return _httpAuthSchemeProvider;
        },
        setCredentials(credentials) {
            _credentials = credentials;
        },
        credentials() {
            return _credentials;
        },
    };
};
const resolveHttpAuthRuntimeConfig = (config) => {
    return {
        httpAuthSchemes: config.httpAuthSchemes(),
        httpAuthSchemeProvider: config.httpAuthSchemeProvider(),
        credentials: config.credentials(),
    };
};

const resolveRuntimeExtensions = (runtimeConfig, extensions) => {
    const extensionConfiguration = Object.assign(regionConfigResolver.getAwsRegionExtensionConfiguration(runtimeConfig), smithyClient.getDefaultExtensionConfiguration(runtimeConfig), protocolHttp.getHttpHandlerExtensionConfiguration(runtimeConfig), getHttpAuthExtensionConfiguration(runtimeConfig));
    extensions.forEach((extension) => extension.configure(extensionConfiguration));
    return Object.assign(runtimeConfig, regionConfigResolver.resolveAwsRegionExtensionConfiguration(extensionConfiguration), smithyClient.resolveDefaultRuntimeConfig(extensionConfiguration), protocolHttp.resolveHttpHandlerRuntimeConfig(extensionConfiguration), resolveHttpAuthRuntimeConfig(extensionConfiguration));
};

class CodeDeployClient extends smithyClient.Client {
    config;
    constructor(...[configuration]) {
        const _config_0 = runtimeConfig.getRuntimeConfig(configuration || {});
        super(_config_0);
        this.initConfig = _config_0;
        const _config_1 = resolveClientEndpointParameters(_config_0);
        const _config_2 = middlewareUserAgent.resolveUserAgentConfig(_config_1);
        const _config_3 = middlewareRetry.resolveRetryConfig(_config_2);
        const _config_4 = configResolver.resolveRegionConfig(_config_3);
        const _config_5 = middlewareHostHeader.resolveHostHeaderConfig(_config_4);
        const _config_6 = middlewareEndpoint.resolveEndpointConfig(_config_5);
        const _config_7 = httpAuthSchemeProvider.resolveHttpAuthSchemeConfig(_config_6);
        const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);
        this.config = _config_8;
        this.middlewareStack.use(schema.getSchemaSerdePlugin(this.config));
        this.middlewareStack.use(middlewareUserAgent.getUserAgentPlugin(this.config));
        this.middlewareStack.use(middlewareRetry.getRetryPlugin(this.config));
        this.middlewareStack.use(middlewareContentLength.getContentLengthPlugin(this.config));
        this.middlewareStack.use(middlewareHostHeader.getHostHeaderPlugin(this.config));
        this.middlewareStack.use(middlewareLogger.getLoggerPlugin(this.config));
        this.middlewareStack.use(middlewareRecursionDetection.getRecursionDetectionPlugin(this.config));
        this.middlewareStack.use(core.getHttpAuthSchemeEndpointRuleSetPlugin(this.config, {
            httpAuthSchemeParametersProvider: httpAuthSchemeProvider.defaultCodeDeployHttpAuthSchemeParametersProvider,
            identityProviderConfigProvider: async (config) => new core.DefaultIdentityProviderConfig({
                "aws.auth#sigv4": config.credentials,
            }),
        }));
        this.middlewareStack.use(core.getHttpSigningPlugin(this.config));
    }
    destroy() {
        super.destroy();
    }
}

class AddTagsToOnPremisesInstancesCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "AddTagsToOnPremisesInstances", {})
    .n("CodeDeployClient", "AddTagsToOnPremisesInstancesCommand")
    .sc(schemas_0.AddTagsToOnPremisesInstances$)
    .build() {
}

class BatchGetApplicationRevisionsCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "BatchGetApplicationRevisions", {})
    .n("CodeDeployClient", "BatchGetApplicationRevisionsCommand")
    .sc(schemas_0.BatchGetApplicationRevisions$)
    .build() {
}

class BatchGetApplicationsCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "BatchGetApplications", {})
    .n("CodeDeployClient", "BatchGetApplicationsCommand")
    .sc(schemas_0.BatchGetApplications$)
    .build() {
}

class BatchGetDeploymentGroupsCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "BatchGetDeploymentGroups", {})
    .n("CodeDeployClient", "BatchGetDeploymentGroupsCommand")
    .sc(schemas_0.BatchGetDeploymentGroups$)
    .build() {
}

class BatchGetDeploymentInstancesCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "BatchGetDeploymentInstances", {})
    .n("CodeDeployClient", "BatchGetDeploymentInstancesCommand")
    .sc(schemas_0.BatchGetDeploymentInstances$)
    .build() {
}

class BatchGetDeploymentsCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "BatchGetDeployments", {})
    .n("CodeDeployClient", "BatchGetDeploymentsCommand")
    .sc(schemas_0.BatchGetDeployments$)
    .build() {
}

class BatchGetDeploymentTargetsCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "BatchGetDeploymentTargets", {})
    .n("CodeDeployClient", "BatchGetDeploymentTargetsCommand")
    .sc(schemas_0.BatchGetDeploymentTargets$)
    .build() {
}

class BatchGetOnPremisesInstancesCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "BatchGetOnPremisesInstances", {})
    .n("CodeDeployClient", "BatchGetOnPremisesInstancesCommand")
    .sc(schemas_0.BatchGetOnPremisesInstances$)
    .build() {
}

class ContinueDeploymentCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "ContinueDeployment", {})
    .n("CodeDeployClient", "ContinueDeploymentCommand")
    .sc(schemas_0.ContinueDeployment$)
    .build() {
}

class CreateApplicationCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "CreateApplication", {})
    .n("CodeDeployClient", "CreateApplicationCommand")
    .sc(schemas_0.CreateApplication$)
    .build() {
}

class CreateDeploymentCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "CreateDeployment", {})
    .n("CodeDeployClient", "CreateDeploymentCommand")
    .sc(schemas_0.CreateDeployment$)
    .build() {
}

class CreateDeploymentConfigCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "CreateDeploymentConfig", {})
    .n("CodeDeployClient", "CreateDeploymentConfigCommand")
    .sc(schemas_0.CreateDeploymentConfig$)
    .build() {
}

class CreateDeploymentGroupCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "CreateDeploymentGroup", {})
    .n("CodeDeployClient", "CreateDeploymentGroupCommand")
    .sc(schemas_0.CreateDeploymentGroup$)
    .build() {
}

class DeleteApplicationCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "DeleteApplication", {})
    .n("CodeDeployClient", "DeleteApplicationCommand")
    .sc(schemas_0.DeleteApplication$)
    .build() {
}

class DeleteDeploymentConfigCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "DeleteDeploymentConfig", {})
    .n("CodeDeployClient", "DeleteDeploymentConfigCommand")
    .sc(schemas_0.DeleteDeploymentConfig$)
    .build() {
}

class DeleteDeploymentGroupCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "DeleteDeploymentGroup", {})
    .n("CodeDeployClient", "DeleteDeploymentGroupCommand")
    .sc(schemas_0.DeleteDeploymentGroup$)
    .build() {
}

class DeleteGitHubAccountTokenCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "DeleteGitHubAccountToken", {})
    .n("CodeDeployClient", "DeleteGitHubAccountTokenCommand")
    .sc(schemas_0.DeleteGitHubAccountToken$)
    .build() {
}

class DeleteResourcesByExternalIdCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "DeleteResourcesByExternalId", {})
    .n("CodeDeployClient", "DeleteResourcesByExternalIdCommand")
    .sc(schemas_0.DeleteResourcesByExternalId$)
    .build() {
}

class DeregisterOnPremisesInstanceCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "DeregisterOnPremisesInstance", {})
    .n("CodeDeployClient", "DeregisterOnPremisesInstanceCommand")
    .sc(schemas_0.DeregisterOnPremisesInstance$)
    .build() {
}

class GetApplicationCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "GetApplication", {})
    .n("CodeDeployClient", "GetApplicationCommand")
    .sc(schemas_0.GetApplication$)
    .build() {
}

class GetApplicationRevisionCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "GetApplicationRevision", {})
    .n("CodeDeployClient", "GetApplicationRevisionCommand")
    .sc(schemas_0.GetApplicationRevision$)
    .build() {
}

class GetDeploymentCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "GetDeployment", {})
    .n("CodeDeployClient", "GetDeploymentCommand")
    .sc(schemas_0.GetDeployment$)
    .build() {
}

class GetDeploymentConfigCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "GetDeploymentConfig", {})
    .n("CodeDeployClient", "GetDeploymentConfigCommand")
    .sc(schemas_0.GetDeploymentConfig$)
    .build() {
}

class GetDeploymentGroupCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "GetDeploymentGroup", {})
    .n("CodeDeployClient", "GetDeploymentGroupCommand")
    .sc(schemas_0.GetDeploymentGroup$)
    .build() {
}

class GetDeploymentInstanceCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "GetDeploymentInstance", {})
    .n("CodeDeployClient", "GetDeploymentInstanceCommand")
    .sc(schemas_0.GetDeploymentInstance$)
    .build() {
}

class GetDeploymentTargetCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "GetDeploymentTarget", {})
    .n("CodeDeployClient", "GetDeploymentTargetCommand")
    .sc(schemas_0.GetDeploymentTarget$)
    .build() {
}

class GetOnPremisesInstanceCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "GetOnPremisesInstance", {})
    .n("CodeDeployClient", "GetOnPremisesInstanceCommand")
    .sc(schemas_0.GetOnPremisesInstance$)
    .build() {
}

class ListApplicationRevisionsCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "ListApplicationRevisions", {})
    .n("CodeDeployClient", "ListApplicationRevisionsCommand")
    .sc(schemas_0.ListApplicationRevisions$)
    .build() {
}

class ListApplicationsCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "ListApplications", {})
    .n("CodeDeployClient", "ListApplicationsCommand")
    .sc(schemas_0.ListApplications$)
    .build() {
}

class ListDeploymentConfigsCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "ListDeploymentConfigs", {})
    .n("CodeDeployClient", "ListDeploymentConfigsCommand")
    .sc(schemas_0.ListDeploymentConfigs$)
    .build() {
}

class ListDeploymentGroupsCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "ListDeploymentGroups", {})
    .n("CodeDeployClient", "ListDeploymentGroupsCommand")
    .sc(schemas_0.ListDeploymentGroups$)
    .build() {
}

class ListDeploymentInstancesCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "ListDeploymentInstances", {})
    .n("CodeDeployClient", "ListDeploymentInstancesCommand")
    .sc(schemas_0.ListDeploymentInstances$)
    .build() {
}

class ListDeploymentsCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "ListDeployments", {})
    .n("CodeDeployClient", "ListDeploymentsCommand")
    .sc(schemas_0.ListDeployments$)
    .build() {
}

class ListDeploymentTargetsCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "ListDeploymentTargets", {})
    .n("CodeDeployClient", "ListDeploymentTargetsCommand")
    .sc(schemas_0.ListDeploymentTargets$)
    .build() {
}

class ListGitHubAccountTokenNamesCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "ListGitHubAccountTokenNames", {})
    .n("CodeDeployClient", "ListGitHubAccountTokenNamesCommand")
    .sc(schemas_0.ListGitHubAccountTokenNames$)
    .build() {
}

class ListOnPremisesInstancesCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "ListOnPremisesInstances", {})
    .n("CodeDeployClient", "ListOnPremisesInstancesCommand")
    .sc(schemas_0.ListOnPremisesInstances$)
    .build() {
}

class ListTagsForResourceCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "ListTagsForResource", {})
    .n("CodeDeployClient", "ListTagsForResourceCommand")
    .sc(schemas_0.ListTagsForResource$)
    .build() {
}

class PutLifecycleEventHookExecutionStatusCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "PutLifecycleEventHookExecutionStatus", {})
    .n("CodeDeployClient", "PutLifecycleEventHookExecutionStatusCommand")
    .sc(schemas_0.PutLifecycleEventHookExecutionStatus$)
    .build() {
}

class RegisterApplicationRevisionCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "RegisterApplicationRevision", {})
    .n("CodeDeployClient", "RegisterApplicationRevisionCommand")
    .sc(schemas_0.RegisterApplicationRevision$)
    .build() {
}

class RegisterOnPremisesInstanceCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "RegisterOnPremisesInstance", {})
    .n("CodeDeployClient", "RegisterOnPremisesInstanceCommand")
    .sc(schemas_0.RegisterOnPremisesInstance$)
    .build() {
}

class RemoveTagsFromOnPremisesInstancesCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "RemoveTagsFromOnPremisesInstances", {})
    .n("CodeDeployClient", "RemoveTagsFromOnPremisesInstancesCommand")
    .sc(schemas_0.RemoveTagsFromOnPremisesInstances$)
    .build() {
}

class SkipWaitTimeForInstanceTerminationCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "SkipWaitTimeForInstanceTermination", {})
    .n("CodeDeployClient", "SkipWaitTimeForInstanceTerminationCommand")
    .sc(schemas_0.SkipWaitTimeForInstanceTermination$)
    .build() {
}

class StopDeploymentCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "StopDeployment", {})
    .n("CodeDeployClient", "StopDeploymentCommand")
    .sc(schemas_0.StopDeployment$)
    .build() {
}

class TagResourceCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "TagResource", {})
    .n("CodeDeployClient", "TagResourceCommand")
    .sc(schemas_0.TagResource$)
    .build() {
}

class UntagResourceCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "UntagResource", {})
    .n("CodeDeployClient", "UntagResourceCommand")
    .sc(schemas_0.UntagResource$)
    .build() {
}

class UpdateApplicationCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "UpdateApplication", {})
    .n("CodeDeployClient", "UpdateApplicationCommand")
    .sc(schemas_0.UpdateApplication$)
    .build() {
}

class UpdateDeploymentGroupCommand extends smithyClient.Command
    .classBuilder()
    .ep(commonParams)
    .m(function (Command, cs, config, o) {
    return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
})
    .s("CodeDeploy_20141006", "UpdateDeploymentGroup", {})
    .n("CodeDeployClient", "UpdateDeploymentGroupCommand")
    .sc(schemas_0.UpdateDeploymentGroup$)
    .build() {
}

const paginateListApplicationRevisions = core.createPaginator(CodeDeployClient, ListApplicationRevisionsCommand, "nextToken", "nextToken", "");

const paginateListApplications = core.createPaginator(CodeDeployClient, ListApplicationsCommand, "nextToken", "nextToken", "");

const paginateListDeploymentConfigs = core.createPaginator(CodeDeployClient, ListDeploymentConfigsCommand, "nextToken", "nextToken", "");

const paginateListDeploymentGroups = core.createPaginator(CodeDeployClient, ListDeploymentGroupsCommand, "nextToken", "nextToken", "");

const paginateListDeploymentInstances = core.createPaginator(CodeDeployClient, ListDeploymentInstancesCommand, "nextToken", "nextToken", "");

const paginateListDeployments = core.createPaginator(CodeDeployClient, ListDeploymentsCommand, "nextToken", "nextToken", "");

const checkState = async (client, input) => {
    let reason;
    try {
        let result = await client.send(new GetDeploymentCommand(input));
        reason = result;
        try {
            const returnComparator = () => {
                return result.deploymentInfo.status;
            };
            if (returnComparator() === "Succeeded") {
                return { state: utilWaiter.WaiterState.SUCCESS, reason };
            }
        }
        catch (e) { }
        try {
            const returnComparator = () => {
                return result.deploymentInfo.status;
            };
            if (returnComparator() === "Failed") {
                return { state: utilWaiter.WaiterState.FAILURE, reason };
            }
        }
        catch (e) { }
        try {
            const returnComparator = () => {
                return result.deploymentInfo.status;
            };
            if (returnComparator() === "Stopped") {
                return { state: utilWaiter.WaiterState.FAILURE, reason };
            }
        }
        catch (e) { }
    }
    catch (exception) {
        reason = exception;
    }
    return { state: utilWaiter.WaiterState.RETRY, reason };
};
const waitForDeploymentSuccessful = async (params, input) => {
    const serviceDefaults = { minDelay: 15, maxDelay: 120 };
    return utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState);
};
const waitUntilDeploymentSuccessful = async (params, input) => {
    const serviceDefaults = { minDelay: 15, maxDelay: 120 };
    const result = await utilWaiter.createWaiter({ ...serviceDefaults, ...params }, input, checkState);
    return utilWaiter.checkExceptions(result);
};

const commands = {
    AddTagsToOnPremisesInstancesCommand,
    BatchGetApplicationRevisionsCommand,
    BatchGetApplicationsCommand,
    BatchGetDeploymentGroupsCommand,
    BatchGetDeploymentInstancesCommand,
    BatchGetDeploymentsCommand,
    BatchGetDeploymentTargetsCommand,
    BatchGetOnPremisesInstancesCommand,
    ContinueDeploymentCommand,
    CreateApplicationCommand,
    CreateDeploymentCommand,
    CreateDeploymentConfigCommand,
    CreateDeploymentGroupCommand,
    DeleteApplicationCommand,
    DeleteDeploymentConfigCommand,
    DeleteDeploymentGroupCommand,
    DeleteGitHubAccountTokenCommand,
    DeleteResourcesByExternalIdCommand,
    DeregisterOnPremisesInstanceCommand,
    GetApplicationCommand,
    GetApplicationRevisionCommand,
    GetDeploymentCommand,
    GetDeploymentConfigCommand,
    GetDeploymentGroupCommand,
    GetDeploymentInstanceCommand,
    GetDeploymentTargetCommand,
    GetOnPremisesInstanceCommand,
    ListApplicationRevisionsCommand,
    ListApplicationsCommand,
    ListDeploymentConfigsCommand,
    ListDeploymentGroupsCommand,
    ListDeploymentInstancesCommand,
    ListDeploymentsCommand,
    ListDeploymentTargetsCommand,
    ListGitHubAccountTokenNamesCommand,
    ListOnPremisesInstancesCommand,
    ListTagsForResourceCommand,
    PutLifecycleEventHookExecutionStatusCommand,
    RegisterApplicationRevisionCommand,
    RegisterOnPremisesInstanceCommand,
    RemoveTagsFromOnPremisesInstancesCommand,
    SkipWaitTimeForInstanceTerminationCommand,
    StopDeploymentCommand,
    TagResourceCommand,
    UntagResourceCommand,
    UpdateApplicationCommand,
    UpdateDeploymentGroupCommand,
};
const paginators = {
    paginateListApplicationRevisions,
    paginateListApplications,
    paginateListDeploymentConfigs,
    paginateListDeploymentGroups,
    paginateListDeploymentInstances,
    paginateListDeployments,
};
const waiters = {
    waitUntilDeploymentSuccessful,
};
class CodeDeploy extends CodeDeployClient {
}
smithyClient.createAggregatedClient(commands, CodeDeploy, { paginators, waiters });

const ComputePlatform = {
    ECS: "ECS",
    LAMBDA: "Lambda",
    SERVER: "Server",
};
const ApplicationRevisionSortBy = {
    FirstUsedTime: "firstUsedTime",
    LastUsedTime: "lastUsedTime",
    RegisterTime: "registerTime",
};
const AutoRollbackEvent = {
    DEPLOYMENT_FAILURE: "DEPLOYMENT_FAILURE",
    DEPLOYMENT_STOP_ON_ALARM: "DEPLOYMENT_STOP_ON_ALARM",
    DEPLOYMENT_STOP_ON_REQUEST: "DEPLOYMENT_STOP_ON_REQUEST",
};
const RevisionLocationType = {
    AppSpecContent: "AppSpecContent",
    GitHub: "GitHub",
    S3: "S3",
    String: "String",
};
const BundleType = {
    JSON: "JSON",
    Tar: "tar",
    TarGZip: "tgz",
    YAML: "YAML",
    Zip: "zip",
};
const DeploymentReadyAction = {
    CONTINUE_DEPLOYMENT: "CONTINUE_DEPLOYMENT",
    STOP_DEPLOYMENT: "STOP_DEPLOYMENT",
};
const GreenFleetProvisioningAction = {
    COPY_AUTO_SCALING_GROUP: "COPY_AUTO_SCALING_GROUP",
    DISCOVER_EXISTING: "DISCOVER_EXISTING",
};
const InstanceAction = {
    KEEP_ALIVE: "KEEP_ALIVE",
    TERMINATE: "TERMINATE",
};
const DeploymentOption = {
    WITHOUT_TRAFFIC_CONTROL: "WITHOUT_TRAFFIC_CONTROL",
    WITH_TRAFFIC_CONTROL: "WITH_TRAFFIC_CONTROL",
};
const DeploymentType = {
    BLUE_GREEN: "BLUE_GREEN",
    IN_PLACE: "IN_PLACE",
};
const EC2TagFilterType = {
    KEY_AND_VALUE: "KEY_AND_VALUE",
    KEY_ONLY: "KEY_ONLY",
    VALUE_ONLY: "VALUE_ONLY",
};
const DeploymentStatus = {
    BAKING: "Baking",
    CREATED: "Created",
    FAILED: "Failed",
    IN_PROGRESS: "InProgress",
    QUEUED: "Queued",
    READY: "Ready",
    STOPPED: "Stopped",
    SUCCEEDED: "Succeeded",
};
const TagFilterType = {
    KEY_AND_VALUE: "KEY_AND_VALUE",
    KEY_ONLY: "KEY_ONLY",
    VALUE_ONLY: "VALUE_ONLY",
};
const OutdatedInstancesStrategy = {
    Ignore: "IGNORE",
    Update: "UPDATE",
};
const TriggerEventType = {
    DEPLOYMENT_FAILURE: "DeploymentFailure",
    DEPLOYMENT_READY: "DeploymentReady",
    DEPLOYMENT_ROLLBACK: "DeploymentRollback",
    DEPLOYMENT_START: "DeploymentStart",
    DEPLOYMENT_STOP: "DeploymentStop",
    DEPLOYMENT_SUCCESS: "DeploymentSuccess",
    INSTANCE_FAILURE: "InstanceFailure",
    INSTANCE_READY: "InstanceReady",
    INSTANCE_START: "InstanceStart",
    INSTANCE_SUCCESS: "InstanceSuccess",
};
const _InstanceType = {
    BLUE: "Blue",
    GREEN: "Green",
};
const LifecycleErrorCode = {
    SCRIPT_FAILED: "ScriptFailed",
    SCRIPT_MISSING: "ScriptMissing",
    SCRIPT_NOT_EXECUTABLE: "ScriptNotExecutable",
    SCRIPT_TIMED_OUT: "ScriptTimedOut",
    SUCCESS: "Success",
    UNKNOWN_ERROR: "UnknownError",
};
const LifecycleEventStatus = {
    FAILED: "Failed",
    IN_PROGRESS: "InProgress",
    PENDING: "Pending",
    SKIPPED: "Skipped",
    SUCCEEDED: "Succeeded",
    UNKNOWN: "Unknown",
};
const InstanceStatus = {
    FAILED: "Failed",
    IN_PROGRESS: "InProgress",
    PENDING: "Pending",
    READY: "Ready",
    SKIPPED: "Skipped",
    SUCCEEDED: "Succeeded",
    UNKNOWN: "Unknown",
};
const DeploymentCreator = {
    Autoscaling: "autoscaling",
    AutoscalingTermination: "autoscalingTermination",
    CloudFormation: "CloudFormation",
    CloudFormationRollback: "CloudFormationRollback",
    CodeDeploy: "CodeDeploy",
    CodeDeployAutoUpdate: "CodeDeployAutoUpdate",
    CodeDeployRollback: "codeDeployRollback",
    User: "user",
};
const ErrorCode = {
    AGENT_ISSUE: "AGENT_ISSUE",
    ALARM_ACTIVE: "ALARM_ACTIVE",
    APPLICATION_MISSING: "APPLICATION_MISSING",
    AUTOSCALING_VALIDATION_ERROR: "AUTOSCALING_VALIDATION_ERROR",
    AUTO_SCALING_CONFIGURATION: "AUTO_SCALING_CONFIGURATION",
    AUTO_SCALING_IAM_ROLE_PERMISSIONS: "AUTO_SCALING_IAM_ROLE_PERMISSIONS",
    CLOUDFORMATION_STACK_FAILURE: "CLOUDFORMATION_STACK_FAILURE",
    CODEDEPLOY_RESOURCE_CANNOT_BE_FOUND: "CODEDEPLOY_RESOURCE_CANNOT_BE_FOUND",
    CUSTOMER_APPLICATION_UNHEALTHY: "CUSTOMER_APPLICATION_UNHEALTHY",
    DEPLOYMENT_GROUP_MISSING: "DEPLOYMENT_GROUP_MISSING",
    ECS_UPDATE_ERROR: "ECS_UPDATE_ERROR",
    ELASTIC_LOAD_BALANCING_INVALID: "ELASTIC_LOAD_BALANCING_INVALID",
    ELB_INVALID_INSTANCE: "ELB_INVALID_INSTANCE",
    HEALTH_CONSTRAINTS: "HEALTH_CONSTRAINTS",
    HEALTH_CONSTRAINTS_INVALID: "HEALTH_CONSTRAINTS_INVALID",
    HOOK_EXECUTION_FAILURE: "HOOK_EXECUTION_FAILURE",
    IAM_ROLE_MISSING: "IAM_ROLE_MISSING",
    IAM_ROLE_PERMISSIONS: "IAM_ROLE_PERMISSIONS",
    INTERNAL_ERROR: "INTERNAL_ERROR",
    INVALID_ECS_SERVICE: "INVALID_ECS_SERVICE",
    INVALID_LAMBDA_CONFIGURATION: "INVALID_LAMBDA_CONFIGURATION",
    INVALID_LAMBDA_FUNCTION: "INVALID_LAMBDA_FUNCTION",
    INVALID_REVISION: "INVALID_REVISION",
    MANUAL_STOP: "MANUAL_STOP",
    MISSING_BLUE_GREEN_DEPLOYMENT_CONFIGURATION: "MISSING_BLUE_GREEN_DEPLOYMENT_CONFIGURATION",
    MISSING_ELB_INFORMATION: "MISSING_ELB_INFORMATION",
    MISSING_GITHUB_TOKEN: "MISSING_GITHUB_TOKEN",
    NO_EC2_SUBSCRIPTION: "NO_EC2_SUBSCRIPTION",
    NO_INSTANCES: "NO_INSTANCES",
    OVER_MAX_INSTANCES: "OVER_MAX_INSTANCES",
    RESOURCE_LIMIT_EXCEEDED: "RESOURCE_LIMIT_EXCEEDED",
    REVISION_MISSING: "REVISION_MISSING",
    THROTTLED: "THROTTLED",
    TIMEOUT: "TIMEOUT",
};
const FileExistsBehavior = {
    DISALLOW: "DISALLOW",
    OVERWRITE: "OVERWRITE",
    RETAIN: "RETAIN",
};
const TargetStatus = {
    FAILED: "Failed",
    IN_PROGRESS: "InProgress",
    PENDING: "Pending",
    READY: "Ready",
    SKIPPED: "Skipped",
    SUCCEEDED: "Succeeded",
    UNKNOWN: "Unknown",
};
const DeploymentTargetType = {
    CLOUDFORMATION_TARGET: "CloudFormationTarget",
    ECS_TARGET: "ECSTarget",
    INSTANCE_TARGET: "InstanceTarget",
    LAMBDA_TARGET: "LambdaTarget",
};
const TargetLabel = {
    BLUE: "Blue",
    GREEN: "Green",
};
const DeploymentWaitType = {
    READY_WAIT: "READY_WAIT",
    TERMINATION_WAIT: "TERMINATION_WAIT",
};
const MinimumHealthyHostsType = {
    FLEET_PERCENT: "FLEET_PERCENT",
    HOST_COUNT: "HOST_COUNT",
};
const TrafficRoutingType = {
    AllAtOnce: "AllAtOnce",
    TimeBasedCanary: "TimeBasedCanary",
    TimeBasedLinear: "TimeBasedLinear",
};
const MinimumHealthyHostsPerZoneType = {
    FLEET_PERCENT: "FLEET_PERCENT",
    HOST_COUNT: "HOST_COUNT",
};
const ListStateFilterAction = {
    Exclude: "exclude",
    Ignore: "ignore",
    Include: "include",
};
const SortOrder = {
    Ascending: "ascending",
    Descending: "descending",
};
const TargetFilterName = {
    SERVER_INSTANCE_LABEL: "ServerInstanceLabel",
    TARGET_STATUS: "TargetStatus",
};
const RegistrationStatus = {
    Deregistered: "Deregistered",
    Registered: "Registered",
};
const StopStatus = {
    PENDING: "Pending",
    SUCCEEDED: "Succeeded",
};

exports.$Command = smithyClient.Command;
exports.__Client = smithyClient.Client;
exports.CodeDeployServiceException = CodeDeployServiceException.CodeDeployServiceException;
exports.AddTagsToOnPremisesInstancesCommand = AddTagsToOnPremisesInstancesCommand;
exports.ApplicationRevisionSortBy = ApplicationRevisionSortBy;
exports.AutoRollbackEvent = AutoRollbackEvent;
exports.BatchGetApplicationRevisionsCommand = BatchGetApplicationRevisionsCommand;
exports.BatchGetApplicationsCommand = BatchGetApplicationsCommand;
exports.BatchGetDeploymentGroupsCommand = BatchGetDeploymentGroupsCommand;
exports.BatchGetDeploymentInstancesCommand = BatchGetDeploymentInstancesCommand;
exports.BatchGetDeploymentTargetsCommand = BatchGetDeploymentTargetsCommand;
exports.BatchGetDeploymentsCommand = BatchGetDeploymentsCommand;
exports.BatchGetOnPremisesInstancesCommand = BatchGetOnPremisesInstancesCommand;
exports.BundleType = BundleType;
exports.CodeDeploy = CodeDeploy;
exports.CodeDeployClient = CodeDeployClient;
exports.ComputePlatform = ComputePlatform;
exports.ContinueDeploymentCommand = ContinueDeploymentCommand;
exports.CreateApplicationCommand = CreateApplicationCommand;
exports.CreateDeploymentCommand = CreateDeploymentCommand;
exports.CreateDeploymentConfigCommand = CreateDeploymentConfigCommand;
exports.CreateDeploymentGroupCommand = CreateDeploymentGroupCommand;
exports.DeleteApplicationCommand = DeleteApplicationCommand;
exports.DeleteDeploymentConfigCommand = DeleteDeploymentConfigCommand;
exports.DeleteDeploymentGroupCommand = DeleteDeploymentGroupCommand;
exports.DeleteGitHubAccountTokenCommand = DeleteGitHubAccountTokenCommand;
exports.DeleteResourcesByExternalIdCommand = DeleteResourcesByExternalIdCommand;
exports.DeploymentCreator = DeploymentCreator;
exports.DeploymentOption = DeploymentOption;
exports.DeploymentReadyAction = DeploymentReadyAction;
exports.DeploymentStatus = DeploymentStatus;
exports.DeploymentTargetType = DeploymentTargetType;
exports.DeploymentType = DeploymentType;
exports.DeploymentWaitType = DeploymentWaitType;
exports.DeregisterOnPremisesInstanceCommand = DeregisterOnPremisesInstanceCommand;
exports.EC2TagFilterType = EC2TagFilterType;
exports.ErrorCode = ErrorCode;
exports.FileExistsBehavior = FileExistsBehavior;
exports.GetApplicationCommand = GetApplicationCommand;
exports.GetApplicationRevisionCommand = GetApplicationRevisionCommand;
exports.GetDeploymentCommand = GetDeploymentCommand;
exports.GetDeploymentConfigCommand = GetDeploymentConfigCommand;
exports.GetDeploymentGroupCommand = GetDeploymentGroupCommand;
exports.GetDeploymentInstanceCommand = GetDeploymentInstanceCommand;
exports.GetDeploymentTargetCommand = GetDeploymentTargetCommand;
exports.GetOnPremisesInstanceCommand = GetOnPremisesInstanceCommand;
exports.GreenFleetProvisioningAction = GreenFleetProvisioningAction;
exports.InstanceAction = InstanceAction;
exports.InstanceStatus = InstanceStatus;
exports.LifecycleErrorCode = LifecycleErrorCode;
exports.LifecycleEventStatus = LifecycleEventStatus;
exports.ListApplicationRevisionsCommand = ListApplicationRevisionsCommand;
exports.ListApplicationsCommand = ListApplicationsCommand;
exports.ListDeploymentConfigsCommand = ListDeploymentConfigsCommand;
exports.ListDeploymentGroupsCommand = ListDeploymentGroupsCommand;
exports.ListDeploymentInstancesCommand = ListDeploymentInstancesCommand;
exports.ListDeploymentTargetsCommand = ListDeploymentTargetsCommand;
exports.ListDeploymentsCommand = ListDeploymentsCommand;
exports.ListGitHubAccountTokenNamesCommand = ListGitHubAccountTokenNamesCommand;
exports.ListOnPremisesInstancesCommand = ListOnPremisesInstancesCommand;
exports.ListStateFilterAction = ListStateFilterAction;
exports.ListTagsForResourceCommand = ListTagsForResourceCommand;
exports.MinimumHealthyHostsPerZoneType = MinimumHealthyHostsPerZoneType;
exports.MinimumHealthyHostsType = MinimumHealthyHostsType;
exports.OutdatedInstancesStrategy = OutdatedInstancesStrategy;
exports.PutLifecycleEventHookExecutionStatusCommand = PutLifecycleEventHookExecutionStatusCommand;
exports.RegisterApplicationRevisionCommand = RegisterApplicationRevisionCommand;
exports.RegisterOnPremisesInstanceCommand = RegisterOnPremisesInstanceCommand;
exports.RegistrationStatus = RegistrationStatus;
exports.RemoveTagsFromOnPremisesInstancesCommand = RemoveTagsFromOnPremisesInstancesCommand;
exports.RevisionLocationType = RevisionLocationType;
exports.SkipWaitTimeForInstanceTerminationCommand = SkipWaitTimeForInstanceTerminationCommand;
exports.SortOrder = SortOrder;
exports.StopDeploymentCommand = StopDeploymentCommand;
exports.StopStatus = StopStatus;
exports.TagFilterType = TagFilterType;
exports.TagResourceCommand = TagResourceCommand;
exports.TargetFilterName = TargetFilterName;
exports.TargetLabel = TargetLabel;
exports.TargetStatus = TargetStatus;
exports.TrafficRoutingType = TrafficRoutingType;
exports.TriggerEventType = TriggerEventType;
exports.UntagResourceCommand = UntagResourceCommand;
exports.UpdateApplicationCommand = UpdateApplicationCommand;
exports.UpdateDeploymentGroupCommand = UpdateDeploymentGroupCommand;
exports._InstanceType = _InstanceType;
exports.paginateListApplicationRevisions = paginateListApplicationRevisions;
exports.paginateListApplications = paginateListApplications;
exports.paginateListDeploymentConfigs = paginateListDeploymentConfigs;
exports.paginateListDeploymentGroups = paginateListDeploymentGroups;
exports.paginateListDeploymentInstances = paginateListDeploymentInstances;
exports.paginateListDeployments = paginateListDeployments;
exports.waitForDeploymentSuccessful = waitForDeploymentSuccessful;
exports.waitUntilDeploymentSuccessful = waitUntilDeploymentSuccessful;
Object.prototype.hasOwnProperty.call(schemas_0, '__proto__') &&
    !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&
    Object.defineProperty(exports, '__proto__', {
        enumerable: true,
        value: schemas_0['__proto__']
    });

Object.keys(schemas_0).forEach(function (k) {
    if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = schemas_0[k];
});
Object.prototype.hasOwnProperty.call(errors, '__proto__') &&
    !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&
    Object.defineProperty(exports, '__proto__', {
        enumerable: true,
        value: errors['__proto__']
    });

Object.keys(errors).forEach(function (k) {
    if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = errors[k];
});
