import { SENSITIVE_STRING } from "@smithy/smithy-client";
import { OrganizationsServiceException as __BaseException } from "./OrganizationsServiceException";
export const ActionType = {
    ADD_ORGANIZATIONS_SERVICE_LINKED_ROLE: "ADD_ORGANIZATIONS_SERVICE_LINKED_ROLE",
    APPROVE_ALL_FEATURES: "APPROVE_ALL_FEATURES",
    ENABLE_ALL_FEATURES: "ENABLE_ALL_FEATURES",
    INVITE_ACCOUNT_TO_ORGANIZATION: "INVITE",
};
export const HandshakePartyType = {
    ACCOUNT: "ACCOUNT",
    EMAIL: "EMAIL",
    ORGANIZATION: "ORGANIZATION",
};
export const HandshakeResourceType = {
    ACCOUNT: "ACCOUNT",
    EMAIL: "EMAIL",
    MASTER_EMAIL: "MASTER_EMAIL",
    MASTER_NAME: "MASTER_NAME",
    NOTES: "NOTES",
    ORGANIZATION: "ORGANIZATION",
    ORGANIZATION_FEATURE_SET: "ORGANIZATION_FEATURE_SET",
    PARENT_HANDSHAKE: "PARENT_HANDSHAKE",
};
export const HandshakeState = {
    ACCEPTED: "ACCEPTED",
    CANCELED: "CANCELED",
    DECLINED: "DECLINED",
    EXPIRED: "EXPIRED",
    OPEN: "OPEN",
    REQUESTED: "REQUESTED",
};
export class AccessDeniedException extends __BaseException {
    constructor(opts) {
        super({
            name: "AccessDeniedException",
            $fault: "client",
            ...opts,
        });
        this.name = "AccessDeniedException";
        this.$fault = "client";
        Object.setPrototypeOf(this, AccessDeniedException.prototype);
        this.Message = opts.Message;
    }
}
export const AccessDeniedForDependencyExceptionReason = {
    ACCESS_DENIED_DURING_CREATE_SERVICE_LINKED_ROLE: "ACCESS_DENIED_DURING_CREATE_SERVICE_LINKED_ROLE",
};
export class AccessDeniedForDependencyException extends __BaseException {
    constructor(opts) {
        super({
            name: "AccessDeniedForDependencyException",
            $fault: "client",
            ...opts,
        });
        this.name = "AccessDeniedForDependencyException";
        this.$fault = "client";
        Object.setPrototypeOf(this, AccessDeniedForDependencyException.prototype);
        this.Message = opts.Message;
        this.Reason = opts.Reason;
    }
}
export class AWSOrganizationsNotInUseException extends __BaseException {
    constructor(opts) {
        super({
            name: "AWSOrganizationsNotInUseException",
            $fault: "client",
            ...opts,
        });
        this.name = "AWSOrganizationsNotInUseException";
        this.$fault = "client";
        Object.setPrototypeOf(this, AWSOrganizationsNotInUseException.prototype);
        this.Message = opts.Message;
    }
}
export class ConcurrentModificationException extends __BaseException {
    constructor(opts) {
        super({
            name: "ConcurrentModificationException",
            $fault: "client",
            ...opts,
        });
        this.name = "ConcurrentModificationException";
        this.$fault = "client";
        Object.setPrototypeOf(this, ConcurrentModificationException.prototype);
        this.Message = opts.Message;
    }
}
export class HandshakeAlreadyInStateException extends __BaseException {
    constructor(opts) {
        super({
            name: "HandshakeAlreadyInStateException",
            $fault: "client",
            ...opts,
        });
        this.name = "HandshakeAlreadyInStateException";
        this.$fault = "client";
        Object.setPrototypeOf(this, HandshakeAlreadyInStateException.prototype);
        this.Message = opts.Message;
    }
}
export const HandshakeConstraintViolationExceptionReason = {
    ACCOUNT_NUMBER_LIMIT_EXCEEDED: "ACCOUNT_NUMBER_LIMIT_EXCEEDED",
    ALREADY_IN_AN_ORGANIZATION: "ALREADY_IN_AN_ORGANIZATION",
    HANDSHAKE_RATE_LIMIT_EXCEEDED: "HANDSHAKE_RATE_LIMIT_EXCEEDED",
    INVITE_DISABLED_DURING_ENABLE_ALL_FEATURES: "INVITE_DISABLED_DURING_ENABLE_ALL_FEATURES",
    MANAGEMENT_ACCOUNT_EMAIL_NOT_VERIFIED: "MANAGEMENT_ACCOUNT_EMAIL_NOT_VERIFIED",
    ORGANIZATION_ALREADY_HAS_ALL_FEATURES: "ORGANIZATION_ALREADY_HAS_ALL_FEATURES",
    ORGANIZATION_FROM_DIFFERENT_SELLER_OF_RECORD: "ORGANIZATION_FROM_DIFFERENT_SELLER_OF_RECORD",
    ORGANIZATION_IS_ALREADY_PENDING_ALL_FEATURES_MIGRATION: "ORGANIZATION_IS_ALREADY_PENDING_ALL_FEATURES_MIGRATION",
    ORGANIZATION_MEMBERSHIP_CHANGE_RATE_LIMIT_EXCEEDED: "ORGANIZATION_MEMBERSHIP_CHANGE_RATE_LIMIT_EXCEEDED",
    PAYMENT_INSTRUMENT_REQUIRED: "PAYMENT_INSTRUMENT_REQUIRED",
};
export class HandshakeConstraintViolationException extends __BaseException {
    constructor(opts) {
        super({
            name: "HandshakeConstraintViolationException",
            $fault: "client",
            ...opts,
        });
        this.name = "HandshakeConstraintViolationException";
        this.$fault = "client";
        Object.setPrototypeOf(this, HandshakeConstraintViolationException.prototype);
        this.Message = opts.Message;
        this.Reason = opts.Reason;
    }
}
export class HandshakeNotFoundException extends __BaseException {
    constructor(opts) {
        super({
            name: "HandshakeNotFoundException",
            $fault: "client",
            ...opts,
        });
        this.name = "HandshakeNotFoundException";
        this.$fault = "client";
        Object.setPrototypeOf(this, HandshakeNotFoundException.prototype);
        this.Message = opts.Message;
    }
}
export class InvalidHandshakeTransitionException extends __BaseException {
    constructor(opts) {
        super({
            name: "InvalidHandshakeTransitionException",
            $fault: "client",
            ...opts,
        });
        this.name = "InvalidHandshakeTransitionException";
        this.$fault = "client";
        Object.setPrototypeOf(this, InvalidHandshakeTransitionException.prototype);
        this.Message = opts.Message;
    }
}
export const InvalidInputExceptionReason = {
    DUPLICATE_TAG_KEY: "DUPLICATE_TAG_KEY",
    IMMUTABLE_POLICY: "IMMUTABLE_POLICY",
    INPUT_REQUIRED: "INPUT_REQUIRED",
    INVALID_EMAIL_ADDRESS_TARGET: "INVALID_EMAIL_ADDRESS_TARGET",
    INVALID_ENUM: "INVALID_ENUM",
    INVALID_ENUM_POLICY_TYPE: "INVALID_ENUM_POLICY_TYPE",
    INVALID_FULL_NAME_TARGET: "INVALID_FULL_NAME_TARGET",
    INVALID_LIST_MEMBER: "INVALID_LIST_MEMBER",
    INVALID_PAGINATION_TOKEN: "INVALID_NEXT_TOKEN",
    INVALID_PARTY_TYPE_TARGET: "INVALID_PARTY_TYPE_TARGET",
    INVALID_PATTERN: "INVALID_PATTERN",
    INVALID_PATTERN_TARGET_ID: "INVALID_PATTERN_TARGET_ID",
    INVALID_RESOURCE_POLICY_JSON: "INVALID_RESOURCE_POLICY_JSON",
    INVALID_ROLE_NAME: "INVALID_ROLE_NAME",
    INVALID_SYNTAX_ORGANIZATION: "INVALID_SYNTAX_ORGANIZATION_ARN",
    INVALID_SYNTAX_POLICY: "INVALID_SYNTAX_POLICY_ID",
    INVALID_SYSTEM_TAGS_PARAMETER: "INVALID_SYSTEM_TAGS_PARAMETER",
    MAX_FILTER_LIMIT_EXCEEDED: "MAX_LIMIT_EXCEEDED_FILTER",
    MAX_LENGTH_EXCEEDED: "MAX_LENGTH_EXCEEDED",
    MAX_VALUE_EXCEEDED: "MAX_VALUE_EXCEEDED",
    MIN_LENGTH_EXCEEDED: "MIN_LENGTH_EXCEEDED",
    MIN_VALUE_EXCEEDED: "MIN_VALUE_EXCEEDED",
    MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: "MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS",
    TARGET_NOT_SUPPORTED: "TARGET_NOT_SUPPORTED",
    UNRECOGNIZED_SERVICE_PRINCIPAL: "UNRECOGNIZED_SERVICE_PRINCIPAL",
    UNSUPPORTED_ACTION_IN_RESOURCE_POLICY: "UNSUPPORTED_ACTION_IN_RESOURCE_POLICY",
    UNSUPPORTED_POLICY_TYPE_IN_RESOURCE_POLICY: "UNSUPPORTED_POLICY_TYPE_IN_RESOURCE_POLICY",
    UNSUPPORTED_RESOURCE_IN_RESOURCE_POLICY: "UNSUPPORTED_RESOURCE_IN_RESOURCE_POLICY",
};
export class InvalidInputException extends __BaseException {
    constructor(opts) {
        super({
            name: "InvalidInputException",
            $fault: "client",
            ...opts,
        });
        this.name = "InvalidInputException";
        this.$fault = "client";
        Object.setPrototypeOf(this, InvalidInputException.prototype);
        this.Message = opts.Message;
        this.Reason = opts.Reason;
    }
}
export class ServiceException extends __BaseException {
    constructor(opts) {
        super({
            name: "ServiceException",
            $fault: "server",
            ...opts,
        });
        this.name = "ServiceException";
        this.$fault = "server";
        Object.setPrototypeOf(this, ServiceException.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyRequestsException extends __BaseException {
    constructor(opts) {
        super({
            name: "TooManyRequestsException",
            $fault: "client",
            ...opts,
        });
        this.name = "TooManyRequestsException";
        this.$fault = "client";
        Object.setPrototypeOf(this, TooManyRequestsException.prototype);
        this.Type = opts.Type;
        this.Message = opts.Message;
    }
}
export const AccountJoinedMethod = {
    CREATED: "CREATED",
    INVITED: "INVITED",
};
export const AccountStatus = {
    ACTIVE: "ACTIVE",
    PENDING_CLOSURE: "PENDING_CLOSURE",
    SUSPENDED: "SUSPENDED",
};
export class AccountAlreadyClosedException extends __BaseException {
    constructor(opts) {
        super({
            name: "AccountAlreadyClosedException",
            $fault: "client",
            ...opts,
        });
        this.name = "AccountAlreadyClosedException";
        this.$fault = "client";
        Object.setPrototypeOf(this, AccountAlreadyClosedException.prototype);
        this.Message = opts.Message;
    }
}
export class AccountAlreadyRegisteredException extends __BaseException {
    constructor(opts) {
        super({
            name: "AccountAlreadyRegisteredException",
            $fault: "client",
            ...opts,
        });
        this.name = "AccountAlreadyRegisteredException";
        this.$fault = "client";
        Object.setPrototypeOf(this, AccountAlreadyRegisteredException.prototype);
        this.Message = opts.Message;
    }
}
export class AccountNotFoundException extends __BaseException {
    constructor(opts) {
        super({
            name: "AccountNotFoundException",
            $fault: "client",
            ...opts,
        });
        this.name = "AccountNotFoundException";
        this.$fault = "client";
        Object.setPrototypeOf(this, AccountNotFoundException.prototype);
        this.Message = opts.Message;
    }
}
export class AccountNotRegisteredException extends __BaseException {
    constructor(opts) {
        super({
            name: "AccountNotRegisteredException",
            $fault: "client",
            ...opts,
        });
        this.name = "AccountNotRegisteredException";
        this.$fault = "client";
        Object.setPrototypeOf(this, AccountNotRegisteredException.prototype);
        this.Message = opts.Message;
    }
}
export class AccountOwnerNotVerifiedException extends __BaseException {
    constructor(opts) {
        super({
            name: "AccountOwnerNotVerifiedException",
            $fault: "client",
            ...opts,
        });
        this.name = "AccountOwnerNotVerifiedException";
        this.$fault = "client";
        Object.setPrototypeOf(this, AccountOwnerNotVerifiedException.prototype);
        this.Message = opts.Message;
    }
}
export class AlreadyInOrganizationException extends __BaseException {
    constructor(opts) {
        super({
            name: "AlreadyInOrganizationException",
            $fault: "client",
            ...opts,
        });
        this.name = "AlreadyInOrganizationException";
        this.$fault = "client";
        Object.setPrototypeOf(this, AlreadyInOrganizationException.prototype);
        this.Message = opts.Message;
    }
}
export const ConstraintViolationExceptionReason = {
    ACCOUNT_CANNOT_LEAVE_ORGANIZATION: "ACCOUNT_CANNOT_LEAVE_ORGANIZATION",
    ACCOUNT_CANNOT_LEAVE_WITHOUT_EULA: "ACCOUNT_CANNOT_LEAVE_WITHOUT_EULA",
    ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: "ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION",
    ACCOUNT_CREATION_NOT_COMPLETE: "ACCOUNT_CREATION_NOT_COMPLETE",
    ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: "ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED",
    ACCOUNT_NUMBER_LIMIT_EXCEEDED: "ACCOUNT_NUMBER_LIMIT_EXCEEDED",
    CANNOT_CLOSE_MANAGEMENT_ACCOUNT: "CANNOT_CLOSE_MANAGEMENT_ACCOUNT",
    CANNOT_REGISTER_MASTER_AS_DELEGATED_ADMINISTRATOR: "CANNOT_REGISTER_MASTER_AS_DELEGATED_ADMINISTRATOR",
    CANNOT_REMOVE_DELEGATED_ADMINISTRATOR_FROM_ORG: "CANNOT_REMOVE_DELEGATED_ADMINISTRATOR_FROM_ORG",
    CLOSE_ACCOUNT_QUOTA_EXCEEDED: "CLOSE_ACCOUNT_QUOTA_EXCEEDED",
    CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED: "CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED",
    CREATE_ORGANIZATION_IN_BILLING_MODE_UNSUPPORTED_REGION: "CREATE_ORGANIZATION_IN_BILLING_MODE_UNSUPPORTED_REGION",
    DELEGATED_ADMINISTRATOR_EXISTS_FOR_THIS_SERVICE: "DELEGATED_ADMINISTRATOR_EXISTS_FOR_THIS_SERVICE",
    EMAIL_VERIFICATION_CODE_EXPIRED: "EMAIL_VERIFICATION_CODE_EXPIRED",
    HANDSHAKE_RATE_LIMIT_EXCEEDED: "HANDSHAKE_RATE_LIMIT_EXCEEDED",
    INVALID_PAYMENT_INSTRUMENT: "INVALID_PAYMENT_INSTRUMENT",
    MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: "MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE",
    MASTER_ACCOUNT_MISSING_BUSINESS_LICENSE: "MASTER_ACCOUNT_MISSING_BUSINESS_LICENSE",
    MASTER_ACCOUNT_MISSING_CONTACT_INFO: "MASTER_ACCOUNT_MISSING_CONTACT_INFO",
    MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED: "MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED",
    MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: "MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED",
    MAX_DELEGATED_ADMINISTRATORS_FOR_SERVICE_LIMIT_EXCEEDED: "MAX_DELEGATED_ADMINISTRATORS_FOR_SERVICE_LIMIT_EXCEEDED",
    MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: "MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED",
    MAX_TAG_LIMIT_EXCEEDED: "MAX_TAG_LIMIT_EXCEEDED",
    MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: "MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED",
    MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: "MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED",
    ORGANIZATION_NOT_IN_ALL_FEATURES_MODE: "ORGANIZATION_NOT_IN_ALL_FEATURES_MODE",
    OU_DEPTH_LIMIT_EXCEEDED: "OU_DEPTH_LIMIT_EXCEEDED",
    OU_NUMBER_LIMIT_EXCEEDED: "OU_NUMBER_LIMIT_EXCEEDED",
    POLICY_CONTENT_LIMIT_EXCEEDED: "POLICY_CONTENT_LIMIT_EXCEEDED",
    POLICY_NUMBER_LIMIT_EXCEEDED: "POLICY_NUMBER_LIMIT_EXCEEDED",
    SERVICE_ACCESS_NOT_ENABLED: "SERVICE_ACCESS_NOT_ENABLED",
    TAG_POLICY_VIOLATION: "TAG_POLICY_VIOLATION",
    WAIT_PERIOD_ACTIVE: "WAIT_PERIOD_ACTIVE",
};
export class ConstraintViolationException extends __BaseException {
    constructor(opts) {
        super({
            name: "ConstraintViolationException",
            $fault: "client",
            ...opts,
        });
        this.name = "ConstraintViolationException";
        this.$fault = "client";
        Object.setPrototypeOf(this, ConstraintViolationException.prototype);
        this.Message = opts.Message;
        this.Reason = opts.Reason;
    }
}
export class DuplicatePolicyAttachmentException extends __BaseException {
    constructor(opts) {
        super({
            name: "DuplicatePolicyAttachmentException",
            $fault: "client",
            ...opts,
        });
        this.name = "DuplicatePolicyAttachmentException";
        this.$fault = "client";
        Object.setPrototypeOf(this, DuplicatePolicyAttachmentException.prototype);
        this.Message = opts.Message;
    }
}
export class PolicyChangesInProgressException extends __BaseException {
    constructor(opts) {
        super({
            name: "PolicyChangesInProgressException",
            $fault: "client",
            ...opts,
        });
        this.name = "PolicyChangesInProgressException";
        this.$fault = "client";
        Object.setPrototypeOf(this, PolicyChangesInProgressException.prototype);
        this.Message = opts.Message;
    }
}
export class PolicyNotFoundException extends __BaseException {
    constructor(opts) {
        super({
            name: "PolicyNotFoundException",
            $fault: "client",
            ...opts,
        });
        this.name = "PolicyNotFoundException";
        this.$fault = "client";
        Object.setPrototypeOf(this, PolicyNotFoundException.prototype);
        this.Message = opts.Message;
    }
}
export class PolicyTypeNotEnabledException extends __BaseException {
    constructor(opts) {
        super({
            name: "PolicyTypeNotEnabledException",
            $fault: "client",
            ...opts,
        });
        this.name = "PolicyTypeNotEnabledException";
        this.$fault = "client";
        Object.setPrototypeOf(this, PolicyTypeNotEnabledException.prototype);
        this.Message = opts.Message;
    }
}
export class TargetNotFoundException extends __BaseException {
    constructor(opts) {
        super({
            name: "TargetNotFoundException",
            $fault: "client",
            ...opts,
        });
        this.name = "TargetNotFoundException";
        this.$fault = "client";
        Object.setPrototypeOf(this, TargetNotFoundException.prototype);
        this.Message = opts.Message;
    }
}
export class UnsupportedAPIEndpointException extends __BaseException {
    constructor(opts) {
        super({
            name: "UnsupportedAPIEndpointException",
            $fault: "client",
            ...opts,
        });
        this.name = "UnsupportedAPIEndpointException";
        this.$fault = "client";
        Object.setPrototypeOf(this, UnsupportedAPIEndpointException.prototype);
        this.Message = opts.Message;
    }
}
export class ConflictException extends __BaseException {
    constructor(opts) {
        super({
            name: "ConflictException",
            $fault: "client",
            ...opts,
        });
        this.name = "ConflictException";
        this.$fault = "client";
        Object.setPrototypeOf(this, ConflictException.prototype);
        this.Message = opts.Message;
    }
}
export const IAMUserAccessToBilling = {
    ALLOW: "ALLOW",
    DENY: "DENY",
};
export const CreateAccountFailureReason = {
    ACCOUNT_LIMIT_EXCEEDED: "ACCOUNT_LIMIT_EXCEEDED",
    CONCURRENT_ACCOUNT_MODIFICATION: "CONCURRENT_ACCOUNT_MODIFICATION",
    EMAIL_ALREADY_EXISTS: "EMAIL_ALREADY_EXISTS",
    FAILED_BUSINESS_VALIDATION: "FAILED_BUSINESS_VALIDATION",
    GOVCLOUD_ACCOUNT_ALREADY_EXISTS: "GOVCLOUD_ACCOUNT_ALREADY_EXISTS",
    INTERNAL_FAILURE: "INTERNAL_FAILURE",
    INVALID_ADDRESS: "INVALID_ADDRESS",
    INVALID_EMAIL: "INVALID_EMAIL",
    INVALID_IDENTITY_FOR_BUSINESS_VALIDATION: "INVALID_IDENTITY_FOR_BUSINESS_VALIDATION",
    INVALID_PAYMENT_INSTRUMENT: "INVALID_PAYMENT_INSTRUMENT",
    MISSING_BUSINESS_VALIDATION: "MISSING_BUSINESS_VALIDATION",
    MISSING_PAYMENT_INSTRUMENT: "MISSING_PAYMENT_INSTRUMENT",
    PENDING_BUSINESS_VALIDATIONv: "PENDING_BUSINESS_VALIDATION",
    UNKNOWN_BUSINESS_VALIDATION: "UNKNOWN_BUSINESS_VALIDATION",
    UPDATE_EXISTING_RESOURCE_POLICY_WITH_TAGS_NOT_SUPPORTED: "UPDATE_EXISTING_RESOURCE_POLICY_WITH_TAGS_NOT_SUPPORTED",
};
export const CreateAccountState = {
    FAILED: "FAILED",
    IN_PROGRESS: "IN_PROGRESS",
    SUCCEEDED: "SUCCEEDED",
};
export class FinalizingOrganizationException extends __BaseException {
    constructor(opts) {
        super({
            name: "FinalizingOrganizationException",
            $fault: "client",
            ...opts,
        });
        this.name = "FinalizingOrganizationException";
        this.$fault = "client";
        Object.setPrototypeOf(this, FinalizingOrganizationException.prototype);
        this.Message = opts.Message;
    }
}
export const OrganizationFeatureSet = {
    ALL: "ALL",
    CONSOLIDATED_BILLING: "CONSOLIDATED_BILLING",
};
export const PolicyTypeStatus = {
    ENABLED: "ENABLED",
    PENDING_DISABLE: "PENDING_DISABLE",
    PENDING_ENABLE: "PENDING_ENABLE",
};
export const PolicyType = {
    AISERVICES_OPT_OUT_POLICY: "AISERVICES_OPT_OUT_POLICY",
    BACKUP_POLICY: "BACKUP_POLICY",
    SERVICE_CONTROL_POLICY: "SERVICE_CONTROL_POLICY",
    TAG_POLICY: "TAG_POLICY",
};
export class DuplicateOrganizationalUnitException extends __BaseException {
    constructor(opts) {
        super({
            name: "DuplicateOrganizationalUnitException",
            $fault: "client",
            ...opts,
        });
        this.name = "DuplicateOrganizationalUnitException";
        this.$fault = "client";
        Object.setPrototypeOf(this, DuplicateOrganizationalUnitException.prototype);
        this.Message = opts.Message;
    }
}
export class ParentNotFoundException extends __BaseException {
    constructor(opts) {
        super({
            name: "ParentNotFoundException",
            $fault: "client",
            ...opts,
        });
        this.name = "ParentNotFoundException";
        this.$fault = "client";
        Object.setPrototypeOf(this, ParentNotFoundException.prototype);
        this.Message = opts.Message;
    }
}
export class DuplicatePolicyException extends __BaseException {
    constructor(opts) {
        super({
            name: "DuplicatePolicyException",
            $fault: "client",
            ...opts,
        });
        this.name = "DuplicatePolicyException";
        this.$fault = "client";
        Object.setPrototypeOf(this, DuplicatePolicyException.prototype);
        this.Message = opts.Message;
    }
}
export class MalformedPolicyDocumentException extends __BaseException {
    constructor(opts) {
        super({
            name: "MalformedPolicyDocumentException",
            $fault: "client",
            ...opts,
        });
        this.name = "MalformedPolicyDocumentException";
        this.$fault = "client";
        Object.setPrototypeOf(this, MalformedPolicyDocumentException.prototype);
        this.Message = opts.Message;
    }
}
export class PolicyTypeNotAvailableForOrganizationException extends __BaseException {
    constructor(opts) {
        super({
            name: "PolicyTypeNotAvailableForOrganizationException",
            $fault: "client",
            ...opts,
        });
        this.name = "PolicyTypeNotAvailableForOrganizationException";
        this.$fault = "client";
        Object.setPrototypeOf(this, PolicyTypeNotAvailableForOrganizationException.prototype);
        this.Message = opts.Message;
    }
}
export class OrganizationNotEmptyException extends __BaseException {
    constructor(opts) {
        super({
            name: "OrganizationNotEmptyException",
            $fault: "client",
            ...opts,
        });
        this.name = "OrganizationNotEmptyException";
        this.$fault = "client";
        Object.setPrototypeOf(this, OrganizationNotEmptyException.prototype);
        this.Message = opts.Message;
    }
}
export class OrganizationalUnitNotEmptyException extends __BaseException {
    constructor(opts) {
        super({
            name: "OrganizationalUnitNotEmptyException",
            $fault: "client",
            ...opts,
        });
        this.name = "OrganizationalUnitNotEmptyException";
        this.$fault = "client";
        Object.setPrototypeOf(this, OrganizationalUnitNotEmptyException.prototype);
        this.Message = opts.Message;
    }
}
export class OrganizationalUnitNotFoundException extends __BaseException {
    constructor(opts) {
        super({
            name: "OrganizationalUnitNotFoundException",
            $fault: "client",
            ...opts,
        });
        this.name = "OrganizationalUnitNotFoundException";
        this.$fault = "client";
        Object.setPrototypeOf(this, OrganizationalUnitNotFoundException.prototype);
        this.Message = opts.Message;
    }
}
export class PolicyInUseException extends __BaseException {
    constructor(opts) {
        super({
            name: "PolicyInUseException",
            $fault: "client",
            ...opts,
        });
        this.name = "PolicyInUseException";
        this.$fault = "client";
        Object.setPrototypeOf(this, PolicyInUseException.prototype);
        this.Message = opts.Message;
    }
}
export class ResourcePolicyNotFoundException extends __BaseException {
    constructor(opts) {
        super({
            name: "ResourcePolicyNotFoundException",
            $fault: "client",
            ...opts,
        });
        this.name = "ResourcePolicyNotFoundException";
        this.$fault = "client";
        Object.setPrototypeOf(this, ResourcePolicyNotFoundException.prototype);
        this.Message = opts.Message;
    }
}
export class CreateAccountStatusNotFoundException extends __BaseException {
    constructor(opts) {
        super({
            name: "CreateAccountStatusNotFoundException",
            $fault: "client",
            ...opts,
        });
        this.name = "CreateAccountStatusNotFoundException";
        this.$fault = "client";
        Object.setPrototypeOf(this, CreateAccountStatusNotFoundException.prototype);
        this.Message = opts.Message;
    }
}
export const EffectivePolicyType = {
    AISERVICES_OPT_OUT_POLICY: "AISERVICES_OPT_OUT_POLICY",
    BACKUP_POLICY: "BACKUP_POLICY",
    TAG_POLICY: "TAG_POLICY",
};
export class EffectivePolicyNotFoundException extends __BaseException {
    constructor(opts) {
        super({
            name: "EffectivePolicyNotFoundException",
            $fault: "client",
            ...opts,
        });
        this.name = "EffectivePolicyNotFoundException";
        this.$fault = "client";
        Object.setPrototypeOf(this, EffectivePolicyNotFoundException.prototype);
        this.Message = opts.Message;
    }
}
export class PolicyNotAttachedException extends __BaseException {
    constructor(opts) {
        super({
            name: "PolicyNotAttachedException",
            $fault: "client",
            ...opts,
        });
        this.name = "PolicyNotAttachedException";
        this.$fault = "client";
        Object.setPrototypeOf(this, PolicyNotAttachedException.prototype);
        this.Message = opts.Message;
    }
}
export class RootNotFoundException extends __BaseException {
    constructor(opts) {
        super({
            name: "RootNotFoundException",
            $fault: "client",
            ...opts,
        });
        this.name = "RootNotFoundException";
        this.$fault = "client";
        Object.setPrototypeOf(this, RootNotFoundException.prototype);
        this.Message = opts.Message;
    }
}
export class PolicyTypeAlreadyEnabledException extends __BaseException {
    constructor(opts) {
        super({
            name: "PolicyTypeAlreadyEnabledException",
            $fault: "client",
            ...opts,
        });
        this.name = "PolicyTypeAlreadyEnabledException";
        this.$fault = "client";
        Object.setPrototypeOf(this, PolicyTypeAlreadyEnabledException.prototype);
        this.Message = opts.Message;
    }
}
export class DuplicateHandshakeException extends __BaseException {
    constructor(opts) {
        super({
            name: "DuplicateHandshakeException",
            $fault: "client",
            ...opts,
        });
        this.name = "DuplicateHandshakeException";
        this.$fault = "client";
        Object.setPrototypeOf(this, DuplicateHandshakeException.prototype);
        this.Message = opts.Message;
    }
}
export class MasterCannotLeaveOrganizationException extends __BaseException {
    constructor(opts) {
        super({
            name: "MasterCannotLeaveOrganizationException",
            $fault: "client",
            ...opts,
        });
        this.name = "MasterCannotLeaveOrganizationException";
        this.$fault = "client";
        Object.setPrototypeOf(this, MasterCannotLeaveOrganizationException.prototype);
        this.Message = opts.Message;
    }
}
export const ChildType = {
    ACCOUNT: "ACCOUNT",
    ORGANIZATIONAL_UNIT: "ORGANIZATIONAL_UNIT",
};
export class ChildNotFoundException extends __BaseException {
    constructor(opts) {
        super({
            name: "ChildNotFoundException",
            $fault: "client",
            ...opts,
        });
        this.name = "ChildNotFoundException";
        this.$fault = "client";
        Object.setPrototypeOf(this, ChildNotFoundException.prototype);
        this.Message = opts.Message;
    }
}
export const ParentType = {
    ORGANIZATIONAL_UNIT: "ORGANIZATIONAL_UNIT",
    ROOT: "ROOT",
};
export const TargetType = {
    ACCOUNT: "ACCOUNT",
    ORGANIZATIONAL_UNIT: "ORGANIZATIONAL_UNIT",
    ROOT: "ROOT",
};
export class DestinationParentNotFoundException extends __BaseException {
    constructor(opts) {
        super({
            name: "DestinationParentNotFoundException",
            $fault: "client",
            ...opts,
        });
        this.name = "DestinationParentNotFoundException";
        this.$fault = "client";
        Object.setPrototypeOf(this, DestinationParentNotFoundException.prototype);
        this.Message = opts.Message;
    }
}
export class DuplicateAccountException extends __BaseException {
    constructor(opts) {
        super({
            name: "DuplicateAccountException",
            $fault: "client",
            ...opts,
        });
        this.name = "DuplicateAccountException";
        this.$fault = "client";
        Object.setPrototypeOf(this, DuplicateAccountException.prototype);
        this.Message = opts.Message;
    }
}
export class SourceParentNotFoundException extends __BaseException {
    constructor(opts) {
        super({
            name: "SourceParentNotFoundException",
            $fault: "client",
            ...opts,
        });
        this.name = "SourceParentNotFoundException";
        this.$fault = "client";
        Object.setPrototypeOf(this, SourceParentNotFoundException.prototype);
        this.Message = opts.Message;
    }
}
export const HandshakePartyFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.Id && { Id: SENSITIVE_STRING }),
});
export const AccountFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.Email && { Email: SENSITIVE_STRING }),
    ...(obj.Name && { Name: SENSITIVE_STRING }),
});
export const CreateAccountRequestFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.Email && { Email: SENSITIVE_STRING }),
    ...(obj.AccountName && { AccountName: SENSITIVE_STRING }),
});
export const CreateAccountStatusFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.AccountName && { AccountName: SENSITIVE_STRING }),
});
export const CreateAccountResponseFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.CreateAccountStatus && {
        CreateAccountStatus: CreateAccountStatusFilterSensitiveLog(obj.CreateAccountStatus),
    }),
});
export const CreateGovCloudAccountRequestFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.Email && { Email: SENSITIVE_STRING }),
    ...(obj.AccountName && { AccountName: SENSITIVE_STRING }),
});
export const CreateGovCloudAccountResponseFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.CreateAccountStatus && {
        CreateAccountStatus: CreateAccountStatusFilterSensitiveLog(obj.CreateAccountStatus),
    }),
});
export const OrganizationFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.MasterAccountEmail && { MasterAccountEmail: SENSITIVE_STRING }),
});
export const CreateOrganizationResponseFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.Organization && { Organization: OrganizationFilterSensitiveLog(obj.Organization) }),
});
export const DescribeAccountResponseFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.Account && { Account: AccountFilterSensitiveLog(obj.Account) }),
});
export const DescribeCreateAccountStatusResponseFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.CreateAccountStatus && {
        CreateAccountStatus: CreateAccountStatusFilterSensitiveLog(obj.CreateAccountStatus),
    }),
});
export const DescribeOrganizationResponseFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.Organization && { Organization: OrganizationFilterSensitiveLog(obj.Organization) }),
});
export const InviteAccountToOrganizationRequestFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.Target && { Target: HandshakePartyFilterSensitiveLog(obj.Target) }),
    ...(obj.Notes && { Notes: SENSITIVE_STRING }),
});
export const ListAccountsResponseFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.Accounts && { Accounts: obj.Accounts.map((item) => AccountFilterSensitiveLog(item)) }),
});
export const ListAccountsForParentResponseFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.Accounts && { Accounts: obj.Accounts.map((item) => AccountFilterSensitiveLog(item)) }),
});
export const ListCreateAccountStatusResponseFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.CreateAccountStatuses && {
        CreateAccountStatuses: obj.CreateAccountStatuses.map((item) => CreateAccountStatusFilterSensitiveLog(item)),
    }),
});
export const DelegatedAdministratorFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.Email && { Email: SENSITIVE_STRING }),
    ...(obj.Name && { Name: SENSITIVE_STRING }),
});
export const ListDelegatedAdministratorsResponseFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.DelegatedAdministrators && {
        DelegatedAdministrators: obj.DelegatedAdministrators.map((item) => DelegatedAdministratorFilterSensitiveLog(item)),
    }),
});
export const HandshakeResourceFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.Value && { Value: SENSITIVE_STRING }),
    ...(obj.Resources && { Resources: obj.Resources.map((item) => HandshakeResourceFilterSensitiveLog(item)) }),
});
export const HandshakeFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.Parties && { Parties: obj.Parties.map((item) => HandshakePartyFilterSensitiveLog(item)) }),
    ...(obj.Resources && { Resources: obj.Resources.map((item) => HandshakeResourceFilterSensitiveLog(item)) }),
});
export const AcceptHandshakeResponseFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.Handshake && { Handshake: HandshakeFilterSensitiveLog(obj.Handshake) }),
});
export const CancelHandshakeResponseFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.Handshake && { Handshake: HandshakeFilterSensitiveLog(obj.Handshake) }),
});
export const DeclineHandshakeResponseFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.Handshake && { Handshake: HandshakeFilterSensitiveLog(obj.Handshake) }),
});
export const DescribeHandshakeResponseFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.Handshake && { Handshake: HandshakeFilterSensitiveLog(obj.Handshake) }),
});
export const EnableAllFeaturesResponseFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.Handshake && { Handshake: HandshakeFilterSensitiveLog(obj.Handshake) }),
});
export const InviteAccountToOrganizationResponseFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.Handshake && { Handshake: HandshakeFilterSensitiveLog(obj.Handshake) }),
});
export const ListHandshakesForAccountResponseFilterSensitiveLog = (obj) => ({
    ...obj,
});
export const ListHandshakesForOrganizationResponseFilterSensitiveLog = (obj) => ({
    ...obj,
});
