import { SENSITIVE_STRING } from "@smithy/smithy-client";
import { VerifiedAccessTrustProviderFilterSensitiveLog, } from "./models_0";
import { ResponseLaunchTemplateDataFilterSensitiveLog, } from "./models_1";
import { VpnConnectionFilterSensitiveLog, } from "./models_2";
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 TransitGatewayPropagationState = {
    disabled: "disabled",
    disabling: "disabling",
    enabled: "enabled",
    enabling: "enabling",
};
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 IpamComplianceStatus = {
    compliant: "compliant",
    ignored: "ignored",
    noncompliant: "noncompliant",
    unmanaged: "unmanaged",
};
export const IpamOverlapStatus = {
    ignored: "ignored",
    nonoverlapping: "nonoverlapping",
    overlapping: "overlapping",
};
export const IpamAddressHistoryResourceType = {
    eip: "eip",
    instance: "instance",
    network_interface: "network-interface",
    subnet: "subnet",
    vpc: "vpc",
};
export const IpamDiscoveryFailureCode = {
    assume_role_failure: "assume-role-failure",
    throttling_failure: "throttling-failure",
    unauthorized_failure: "unauthorized-failure",
};
export const IpamResourceType = {
    eip: "eip",
    ipv6_pool: "ipv6-pool",
    public_ipv4_pool: "public-ipv4-pool",
    subnet: "subnet",
    vpc: "vpc",
};
export const IpamManagementState = {
    ignored: "ignored",
    managed: "managed",
    unmanaged: "unmanaged",
};
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),
    }),
});
export const GetLaunchTemplateDataResultFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.LaunchTemplateData && {
        LaunchTemplateData: ResponseLaunchTemplateDataFilterSensitiveLog(obj.LaunchTemplateData),
    }),
});
export const GetVpnConnectionDeviceSampleConfigurationResultFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.VpnConnectionDeviceSampleConfiguration && { VpnConnectionDeviceSampleConfiguration: SENSITIVE_STRING }),
});
export const ImageDiskContainerFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.Url && { Url: SENSITIVE_STRING }),
});
