import { SENSITIVE_STRING } from "@smithy/smithy-client";
import { VerifiedAccessTrustProviderFilterSensitiveLog, } from "./models_0";
import { VpnConnectionFilterSensitiveLog, } from "./models_2";
import { SpotFleetLaunchSpecificationFilterSensitiveLog, } from "./models_4";
export const ReplacementStrategy = {
    LAUNCH: "launch",
    LAUNCH_BEFORE_TERMINATE: "launch-before-terminate",
};
export const SpotInstanceState = {
    active: "active",
    cancelled: "cancelled",
    closed: "closed",
    disabled: "disabled",
    failed: "failed",
    open: "open",
};
export const VerifiedAccessLogDeliveryStatusCode = {
    FAILED: "failed",
    SUCCESS: "success",
};
export const VolumeAttributeName = {
    autoEnableIO: "autoEnableIO",
    productCodes: "productCodes",
};
export const VolumeModificationState = {
    completed: "completed",
    failed: "failed",
    modifying: "modifying",
    optimizing: "optimizing",
};
export const VolumeStatusName = {
    io_enabled: "io-enabled",
    io_performance: "io-performance",
};
export const VolumeStatusInfoStatus = {
    impaired: "impaired",
    insufficient_data: "insufficient-data",
    ok: "ok",
};
export const VpcAttributeName = {
    enableDnsHostnames: "enableDnsHostnames",
    enableDnsSupport: "enableDnsSupport",
    enableNetworkAddressUsageMetrics: "enableNetworkAddressUsageMetrics",
};
export const ImageBlockPublicAccessDisabledState = {
    unblocked: "unblocked",
};
export const SnapshotBlockPublicAccessState = {
    block_all_sharing: "block-all-sharing",
    block_new_sharing: "block-new-sharing",
    unblocked: "unblocked",
};
export const TransitGatewayPropagationState = {
    disabled: "disabled",
    disabling: "disabling",
    enabled: "enabled",
    enabling: "enabling",
};
export const ImageBlockPublicAccessEnabledState = {
    block_new_sharing: "block-new-sharing",
};
export const ClientCertificateRevocationListStatusCode = {
    active: "active",
    pending: "pending",
};
export const UnlimitedSupportedInstanceFamily = {
    t2: "t2",
    t3: "t3",
    t3a: "t3a",
    t4g: "t4g",
};
export const PartitionLoadFrequency = {
    DAILY: "daily",
    MONTHLY: "monthly",
    NONE: "none",
    WEEKLY: "weekly",
};
export const SpotFleetRequestConfigDataFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.LaunchSpecifications && {
        LaunchSpecifications: obj.LaunchSpecifications.map((item) => SpotFleetLaunchSpecificationFilterSensitiveLog(item)),
    }),
});
export const SpotFleetRequestConfigFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.SpotFleetRequestConfig && {
        SpotFleetRequestConfig: SpotFleetRequestConfigDataFilterSensitiveLog(obj.SpotFleetRequestConfig),
    }),
});
export const DescribeSpotFleetRequestsResponseFilterSensitiveLog = (obj) => ({
    ...obj,
});
export const LaunchSpecificationFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.UserData && { UserData: SENSITIVE_STRING }),
});
export const SpotInstanceRequestFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.LaunchSpecification && {
        LaunchSpecification: LaunchSpecificationFilterSensitiveLog(obj.LaunchSpecification),
    }),
});
export const DescribeSpotInstanceRequestsResultFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.SpotInstanceRequests && {
        SpotInstanceRequests: obj.SpotInstanceRequests.map((item) => SpotInstanceRequestFilterSensitiveLog(item)),
    }),
});
export const DescribeVerifiedAccessTrustProvidersResultFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.VerifiedAccessTrustProviders && {
        VerifiedAccessTrustProviders: obj.VerifiedAccessTrustProviders.map((item) => VerifiedAccessTrustProviderFilterSensitiveLog(item)),
    }),
});
export const DescribeVpnConnectionsResultFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.VpnConnections && {
        VpnConnections: obj.VpnConnections.map((item) => VpnConnectionFilterSensitiveLog(item)),
    }),
});
export const DetachVerifiedAccessTrustProviderResultFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.VerifiedAccessTrustProvider && {
        VerifiedAccessTrustProvider: VerifiedAccessTrustProviderFilterSensitiveLog(obj.VerifiedAccessTrustProvider),
    }),
});
