import { ExceptionOptionType as __ExceptionOptionType } from "@smithy/smithy-client";
import { OrganizationsServiceException as __BaseException } from "./OrganizationsServiceException";
export interface AcceptHandshakeRequest {
  HandshakeId: string | undefined;
}
export declare const ActionType: {
  readonly ADD_ORGANIZATIONS_SERVICE_LINKED_ROLE: "ADD_ORGANIZATIONS_SERVICE_LINKED_ROLE";
  readonly APPROVE_ALL_FEATURES: "APPROVE_ALL_FEATURES";
  readonly ENABLE_ALL_FEATURES: "ENABLE_ALL_FEATURES";
  readonly INVITE_ACCOUNT_TO_ORGANIZATION: "INVITE";
};
export type ActionType = (typeof ActionType)[keyof typeof ActionType];
export declare const HandshakePartyType: {
  readonly ACCOUNT: "ACCOUNT";
  readonly EMAIL: "EMAIL";
  readonly ORGANIZATION: "ORGANIZATION";
};
export type HandshakePartyType =
  (typeof HandshakePartyType)[keyof typeof HandshakePartyType];
export interface HandshakeParty {
  Id: string | undefined;
  Type: HandshakePartyType | undefined;
}
export declare const HandshakeResourceType: {
  readonly ACCOUNT: "ACCOUNT";
  readonly EMAIL: "EMAIL";
  readonly MASTER_EMAIL: "MASTER_EMAIL";
  readonly MASTER_NAME: "MASTER_NAME";
  readonly NOTES: "NOTES";
  readonly ORGANIZATION: "ORGANIZATION";
  readonly ORGANIZATION_FEATURE_SET: "ORGANIZATION_FEATURE_SET";
  readonly PARENT_HANDSHAKE: "PARENT_HANDSHAKE";
};
export type HandshakeResourceType =
  (typeof HandshakeResourceType)[keyof typeof HandshakeResourceType];
export declare const HandshakeState: {
  readonly ACCEPTED: "ACCEPTED";
  readonly CANCELED: "CANCELED";
  readonly DECLINED: "DECLINED";
  readonly EXPIRED: "EXPIRED";
  readonly OPEN: "OPEN";
  readonly REQUESTED: "REQUESTED";
};
export type HandshakeState =
  (typeof HandshakeState)[keyof typeof HandshakeState];
export declare class AccessDeniedException extends __BaseException {
  readonly name: "AccessDeniedException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<AccessDeniedException, __BaseException>
  );
}
export declare const AccessDeniedForDependencyExceptionReason: {
  readonly ACCESS_DENIED_DURING_CREATE_SERVICE_LINKED_ROLE: "ACCESS_DENIED_DURING_CREATE_SERVICE_LINKED_ROLE";
};
export type AccessDeniedForDependencyExceptionReason =
  (typeof AccessDeniedForDependencyExceptionReason)[keyof typeof AccessDeniedForDependencyExceptionReason];
export declare class AccessDeniedForDependencyException extends __BaseException {
  readonly name: "AccessDeniedForDependencyException";
  readonly $fault: "client";
  Message?: string;
  Reason?: AccessDeniedForDependencyExceptionReason;
  constructor(
    opts: __ExceptionOptionType<
      AccessDeniedForDependencyException,
      __BaseException
    >
  );
}
export declare class AWSOrganizationsNotInUseException extends __BaseException {
  readonly name: "AWSOrganizationsNotInUseException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<
      AWSOrganizationsNotInUseException,
      __BaseException
    >
  );
}
export declare class ConcurrentModificationException extends __BaseException {
  readonly name: "ConcurrentModificationException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<
      ConcurrentModificationException,
      __BaseException
    >
  );
}
export declare class HandshakeAlreadyInStateException extends __BaseException {
  readonly name: "HandshakeAlreadyInStateException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<
      HandshakeAlreadyInStateException,
      __BaseException
    >
  );
}
export declare const HandshakeConstraintViolationExceptionReason: {
  readonly ACCOUNT_NUMBER_LIMIT_EXCEEDED: "ACCOUNT_NUMBER_LIMIT_EXCEEDED";
  readonly ALREADY_IN_AN_ORGANIZATION: "ALREADY_IN_AN_ORGANIZATION";
  readonly HANDSHAKE_RATE_LIMIT_EXCEEDED: "HANDSHAKE_RATE_LIMIT_EXCEEDED";
  readonly INVITE_DISABLED_DURING_ENABLE_ALL_FEATURES: "INVITE_DISABLED_DURING_ENABLE_ALL_FEATURES";
  readonly MANAGEMENT_ACCOUNT_EMAIL_NOT_VERIFIED: "MANAGEMENT_ACCOUNT_EMAIL_NOT_VERIFIED";
  readonly ORGANIZATION_ALREADY_HAS_ALL_FEATURES: "ORGANIZATION_ALREADY_HAS_ALL_FEATURES";
  readonly ORGANIZATION_FROM_DIFFERENT_SELLER_OF_RECORD: "ORGANIZATION_FROM_DIFFERENT_SELLER_OF_RECORD";
  readonly ORGANIZATION_IS_ALREADY_PENDING_ALL_FEATURES_MIGRATION: "ORGANIZATION_IS_ALREADY_PENDING_ALL_FEATURES_MIGRATION";
  readonly ORGANIZATION_MEMBERSHIP_CHANGE_RATE_LIMIT_EXCEEDED: "ORGANIZATION_MEMBERSHIP_CHANGE_RATE_LIMIT_EXCEEDED";
  readonly PAYMENT_INSTRUMENT_REQUIRED: "PAYMENT_INSTRUMENT_REQUIRED";
};
export type HandshakeConstraintViolationExceptionReason =
  (typeof HandshakeConstraintViolationExceptionReason)[keyof typeof HandshakeConstraintViolationExceptionReason];
export declare class HandshakeConstraintViolationException extends __BaseException {
  readonly name: "HandshakeConstraintViolationException";
  readonly $fault: "client";
  Message?: string;
  Reason?: HandshakeConstraintViolationExceptionReason;
  constructor(
    opts: __ExceptionOptionType<
      HandshakeConstraintViolationException,
      __BaseException
    >
  );
}
export declare class HandshakeNotFoundException extends __BaseException {
  readonly name: "HandshakeNotFoundException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<HandshakeNotFoundException, __BaseException>
  );
}
export declare class InvalidHandshakeTransitionException extends __BaseException {
  readonly name: "InvalidHandshakeTransitionException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<
      InvalidHandshakeTransitionException,
      __BaseException
    >
  );
}
export declare const InvalidInputExceptionReason: {
  readonly DUPLICATE_TAG_KEY: "DUPLICATE_TAG_KEY";
  readonly IMMUTABLE_POLICY: "IMMUTABLE_POLICY";
  readonly INPUT_REQUIRED: "INPUT_REQUIRED";
  readonly INVALID_EMAIL_ADDRESS_TARGET: "INVALID_EMAIL_ADDRESS_TARGET";
  readonly INVALID_ENUM: "INVALID_ENUM";
  readonly INVALID_ENUM_POLICY_TYPE: "INVALID_ENUM_POLICY_TYPE";
  readonly INVALID_FULL_NAME_TARGET: "INVALID_FULL_NAME_TARGET";
  readonly INVALID_LIST_MEMBER: "INVALID_LIST_MEMBER";
  readonly INVALID_PAGINATION_TOKEN: "INVALID_NEXT_TOKEN";
  readonly INVALID_PARTY_TYPE_TARGET: "INVALID_PARTY_TYPE_TARGET";
  readonly INVALID_PATTERN: "INVALID_PATTERN";
  readonly INVALID_PATTERN_TARGET_ID: "INVALID_PATTERN_TARGET_ID";
  readonly INVALID_RESOURCE_POLICY_JSON: "INVALID_RESOURCE_POLICY_JSON";
  readonly INVALID_ROLE_NAME: "INVALID_ROLE_NAME";
  readonly INVALID_SYNTAX_ORGANIZATION: "INVALID_SYNTAX_ORGANIZATION_ARN";
  readonly INVALID_SYNTAX_POLICY: "INVALID_SYNTAX_POLICY_ID";
  readonly INVALID_SYSTEM_TAGS_PARAMETER: "INVALID_SYSTEM_TAGS_PARAMETER";
  readonly MAX_FILTER_LIMIT_EXCEEDED: "MAX_LIMIT_EXCEEDED_FILTER";
  readonly MAX_LENGTH_EXCEEDED: "MAX_LENGTH_EXCEEDED";
  readonly MAX_VALUE_EXCEEDED: "MAX_VALUE_EXCEEDED";
  readonly MIN_LENGTH_EXCEEDED: "MIN_LENGTH_EXCEEDED";
  readonly MIN_VALUE_EXCEEDED: "MIN_VALUE_EXCEEDED";
  readonly MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: "MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS";
  readonly TARGET_NOT_SUPPORTED: "TARGET_NOT_SUPPORTED";
  readonly UNRECOGNIZED_SERVICE_PRINCIPAL: "UNRECOGNIZED_SERVICE_PRINCIPAL";
  readonly UNSUPPORTED_ACTION_IN_RESOURCE_POLICY: "UNSUPPORTED_ACTION_IN_RESOURCE_POLICY";
  readonly UNSUPPORTED_POLICY_TYPE_IN_RESOURCE_POLICY: "UNSUPPORTED_POLICY_TYPE_IN_RESOURCE_POLICY";
  readonly UNSUPPORTED_RESOURCE_IN_RESOURCE_POLICY: "UNSUPPORTED_RESOURCE_IN_RESOURCE_POLICY";
};
export type InvalidInputExceptionReason =
  (typeof InvalidInputExceptionReason)[keyof typeof InvalidInputExceptionReason];
export declare class InvalidInputException extends __BaseException {
  readonly name: "InvalidInputException";
  readonly $fault: "client";
  Message?: string;
  Reason?: InvalidInputExceptionReason;
  constructor(
    opts: __ExceptionOptionType<InvalidInputException, __BaseException>
  );
}
export declare class ServiceException extends __BaseException {
  readonly name: "ServiceException";
  readonly $fault: "server";
  Message?: string;
  constructor(opts: __ExceptionOptionType<ServiceException, __BaseException>);
}
export declare class TooManyRequestsException extends __BaseException {
  readonly name: "TooManyRequestsException";
  readonly $fault: "client";
  Type?: string;
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<TooManyRequestsException, __BaseException>
  );
}
export declare const AccountJoinedMethod: {
  readonly CREATED: "CREATED";
  readonly INVITED: "INVITED";
};
export type AccountJoinedMethod =
  (typeof AccountJoinedMethod)[keyof typeof AccountJoinedMethod];
export declare const AccountStatus: {
  readonly ACTIVE: "ACTIVE";
  readonly PENDING_CLOSURE: "PENDING_CLOSURE";
  readonly SUSPENDED: "SUSPENDED";
};
export type AccountStatus = (typeof AccountStatus)[keyof typeof AccountStatus];
export interface Account {
  Id?: string;
  Arn?: string;
  Email?: string;
  Name?: string;
  Status?: AccountStatus;
  JoinedMethod?: AccountJoinedMethod;
  JoinedTimestamp?: Date;
}
export declare class AccountAlreadyClosedException extends __BaseException {
  readonly name: "AccountAlreadyClosedException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<AccountAlreadyClosedException, __BaseException>
  );
}
export declare class AccountAlreadyRegisteredException extends __BaseException {
  readonly name: "AccountAlreadyRegisteredException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<
      AccountAlreadyRegisteredException,
      __BaseException
    >
  );
}
export declare class AccountNotFoundException extends __BaseException {
  readonly name: "AccountNotFoundException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<AccountNotFoundException, __BaseException>
  );
}
export declare class AccountNotRegisteredException extends __BaseException {
  readonly name: "AccountNotRegisteredException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<AccountNotRegisteredException, __BaseException>
  );
}
export declare class AccountOwnerNotVerifiedException extends __BaseException {
  readonly name: "AccountOwnerNotVerifiedException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<
      AccountOwnerNotVerifiedException,
      __BaseException
    >
  );
}
export declare class AlreadyInOrganizationException extends __BaseException {
  readonly name: "AlreadyInOrganizationException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<AlreadyInOrganizationException, __BaseException>
  );
}
export interface AttachPolicyRequest {
  PolicyId: string | undefined;
  TargetId: string | undefined;
}
export declare const ConstraintViolationExceptionReason: {
  readonly ACCOUNT_CANNOT_LEAVE_ORGANIZATION: "ACCOUNT_CANNOT_LEAVE_ORGANIZATION";
  readonly ACCOUNT_CANNOT_LEAVE_WITHOUT_EULA: "ACCOUNT_CANNOT_LEAVE_WITHOUT_EULA";
  readonly ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: "ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION";
  readonly ACCOUNT_CREATION_NOT_COMPLETE: "ACCOUNT_CREATION_NOT_COMPLETE";
  readonly ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: "ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED";
  readonly ACCOUNT_NUMBER_LIMIT_EXCEEDED: "ACCOUNT_NUMBER_LIMIT_EXCEEDED";
  readonly CANNOT_CLOSE_MANAGEMENT_ACCOUNT: "CANNOT_CLOSE_MANAGEMENT_ACCOUNT";
  readonly CANNOT_REGISTER_MASTER_AS_DELEGATED_ADMINISTRATOR: "CANNOT_REGISTER_MASTER_AS_DELEGATED_ADMINISTRATOR";
  readonly CANNOT_REMOVE_DELEGATED_ADMINISTRATOR_FROM_ORG: "CANNOT_REMOVE_DELEGATED_ADMINISTRATOR_FROM_ORG";
  readonly CLOSE_ACCOUNT_QUOTA_EXCEEDED: "CLOSE_ACCOUNT_QUOTA_EXCEEDED";
  readonly CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED: "CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED";
  readonly CREATE_ORGANIZATION_IN_BILLING_MODE_UNSUPPORTED_REGION: "CREATE_ORGANIZATION_IN_BILLING_MODE_UNSUPPORTED_REGION";
  readonly DELEGATED_ADMINISTRATOR_EXISTS_FOR_THIS_SERVICE: "DELEGATED_ADMINISTRATOR_EXISTS_FOR_THIS_SERVICE";
  readonly EMAIL_VERIFICATION_CODE_EXPIRED: "EMAIL_VERIFICATION_CODE_EXPIRED";
  readonly HANDSHAKE_RATE_LIMIT_EXCEEDED: "HANDSHAKE_RATE_LIMIT_EXCEEDED";
  readonly INVALID_PAYMENT_INSTRUMENT: "INVALID_PAYMENT_INSTRUMENT";
  readonly MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: "MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE";
  readonly MASTER_ACCOUNT_MISSING_BUSINESS_LICENSE: "MASTER_ACCOUNT_MISSING_BUSINESS_LICENSE";
  readonly MASTER_ACCOUNT_MISSING_CONTACT_INFO: "MASTER_ACCOUNT_MISSING_CONTACT_INFO";
  readonly MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED: "MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED";
  readonly MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: "MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED";
  readonly MAX_DELEGATED_ADMINISTRATORS_FOR_SERVICE_LIMIT_EXCEEDED: "MAX_DELEGATED_ADMINISTRATORS_FOR_SERVICE_LIMIT_EXCEEDED";
  readonly MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: "MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED";
  readonly MAX_TAG_LIMIT_EXCEEDED: "MAX_TAG_LIMIT_EXCEEDED";
  readonly MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: "MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED";
  readonly MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: "MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED";
  readonly ORGANIZATION_NOT_IN_ALL_FEATURES_MODE: "ORGANIZATION_NOT_IN_ALL_FEATURES_MODE";
  readonly OU_DEPTH_LIMIT_EXCEEDED: "OU_DEPTH_LIMIT_EXCEEDED";
  readonly OU_NUMBER_LIMIT_EXCEEDED: "OU_NUMBER_LIMIT_EXCEEDED";
  readonly POLICY_CONTENT_LIMIT_EXCEEDED: "POLICY_CONTENT_LIMIT_EXCEEDED";
  readonly POLICY_NUMBER_LIMIT_EXCEEDED: "POLICY_NUMBER_LIMIT_EXCEEDED";
  readonly SERVICE_ACCESS_NOT_ENABLED: "SERVICE_ACCESS_NOT_ENABLED";
  readonly TAG_POLICY_VIOLATION: "TAG_POLICY_VIOLATION";
  readonly WAIT_PERIOD_ACTIVE: "WAIT_PERIOD_ACTIVE";
};
export type ConstraintViolationExceptionReason =
  (typeof ConstraintViolationExceptionReason)[keyof typeof ConstraintViolationExceptionReason];
export declare class ConstraintViolationException extends __BaseException {
  readonly name: "ConstraintViolationException";
  readonly $fault: "client";
  Message?: string;
  Reason?: ConstraintViolationExceptionReason;
  constructor(
    opts: __ExceptionOptionType<ConstraintViolationException, __BaseException>
  );
}
export declare class DuplicatePolicyAttachmentException extends __BaseException {
  readonly name: "DuplicatePolicyAttachmentException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<
      DuplicatePolicyAttachmentException,
      __BaseException
    >
  );
}
export declare class PolicyChangesInProgressException extends __BaseException {
  readonly name: "PolicyChangesInProgressException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<
      PolicyChangesInProgressException,
      __BaseException
    >
  );
}
export declare class PolicyNotFoundException extends __BaseException {
  readonly name: "PolicyNotFoundException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<PolicyNotFoundException, __BaseException>
  );
}
export declare class PolicyTypeNotEnabledException extends __BaseException {
  readonly name: "PolicyTypeNotEnabledException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<PolicyTypeNotEnabledException, __BaseException>
  );
}
export declare class TargetNotFoundException extends __BaseException {
  readonly name: "TargetNotFoundException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<TargetNotFoundException, __BaseException>
  );
}
export declare class UnsupportedAPIEndpointException extends __BaseException {
  readonly name: "UnsupportedAPIEndpointException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<
      UnsupportedAPIEndpointException,
      __BaseException
    >
  );
}
export interface CancelHandshakeRequest {
  HandshakeId: string | undefined;
}
export interface CloseAccountRequest {
  AccountId: string | undefined;
}
export declare class ConflictException extends __BaseException {
  readonly name: "ConflictException";
  readonly $fault: "client";
  Message?: string;
  constructor(opts: __ExceptionOptionType<ConflictException, __BaseException>);
}
export declare const IAMUserAccessToBilling: {
  readonly ALLOW: "ALLOW";
  readonly DENY: "DENY";
};
export type IAMUserAccessToBilling =
  (typeof IAMUserAccessToBilling)[keyof typeof IAMUserAccessToBilling];
export interface Tag {
  Key: string | undefined;
  Value: string | undefined;
}
export interface CreateAccountRequest {
  Email: string | undefined;
  AccountName: string | undefined;
  RoleName?: string;
  IamUserAccessToBilling?: IAMUserAccessToBilling;
  Tags?: Tag[];
}
export declare const CreateAccountFailureReason: {
  readonly ACCOUNT_LIMIT_EXCEEDED: "ACCOUNT_LIMIT_EXCEEDED";
  readonly CONCURRENT_ACCOUNT_MODIFICATION: "CONCURRENT_ACCOUNT_MODIFICATION";
  readonly EMAIL_ALREADY_EXISTS: "EMAIL_ALREADY_EXISTS";
  readonly FAILED_BUSINESS_VALIDATION: "FAILED_BUSINESS_VALIDATION";
  readonly GOVCLOUD_ACCOUNT_ALREADY_EXISTS: "GOVCLOUD_ACCOUNT_ALREADY_EXISTS";
  readonly INTERNAL_FAILURE: "INTERNAL_FAILURE";
  readonly INVALID_ADDRESS: "INVALID_ADDRESS";
  readonly INVALID_EMAIL: "INVALID_EMAIL";
  readonly INVALID_IDENTITY_FOR_BUSINESS_VALIDATION: "INVALID_IDENTITY_FOR_BUSINESS_VALIDATION";
  readonly INVALID_PAYMENT_INSTRUMENT: "INVALID_PAYMENT_INSTRUMENT";
  readonly MISSING_BUSINESS_VALIDATION: "MISSING_BUSINESS_VALIDATION";
  readonly MISSING_PAYMENT_INSTRUMENT: "MISSING_PAYMENT_INSTRUMENT";
  readonly PENDING_BUSINESS_VALIDATIONv: "PENDING_BUSINESS_VALIDATION";
  readonly UNKNOWN_BUSINESS_VALIDATION: "UNKNOWN_BUSINESS_VALIDATION";
  readonly UPDATE_EXISTING_RESOURCE_POLICY_WITH_TAGS_NOT_SUPPORTED: "UPDATE_EXISTING_RESOURCE_POLICY_WITH_TAGS_NOT_SUPPORTED";
};
export type CreateAccountFailureReason =
  (typeof CreateAccountFailureReason)[keyof typeof CreateAccountFailureReason];
export declare const CreateAccountState: {
  readonly FAILED: "FAILED";
  readonly IN_PROGRESS: "IN_PROGRESS";
  readonly SUCCEEDED: "SUCCEEDED";
};
export type CreateAccountState =
  (typeof CreateAccountState)[keyof typeof CreateAccountState];
export interface CreateAccountStatus {
  Id?: string;
  AccountName?: string;
  State?: CreateAccountState;
  RequestedTimestamp?: Date;
  CompletedTimestamp?: Date;
  AccountId?: string;
  GovCloudAccountId?: string;
  FailureReason?: CreateAccountFailureReason;
}
export interface CreateAccountResponse {
  CreateAccountStatus?: CreateAccountStatus;
}
export declare class FinalizingOrganizationException extends __BaseException {
  readonly name: "FinalizingOrganizationException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<
      FinalizingOrganizationException,
      __BaseException
    >
  );
}
export interface CreateGovCloudAccountRequest {
  Email: string | undefined;
  AccountName: string | undefined;
  RoleName?: string;
  IamUserAccessToBilling?: IAMUserAccessToBilling;
  Tags?: Tag[];
}
export interface CreateGovCloudAccountResponse {
  CreateAccountStatus?: CreateAccountStatus;
}
export declare const OrganizationFeatureSet: {
  readonly ALL: "ALL";
  readonly CONSOLIDATED_BILLING: "CONSOLIDATED_BILLING";
};
export type OrganizationFeatureSet =
  (typeof OrganizationFeatureSet)[keyof typeof OrganizationFeatureSet];
export interface CreateOrganizationRequest {
  FeatureSet?: OrganizationFeatureSet;
}
export declare const PolicyTypeStatus: {
  readonly ENABLED: "ENABLED";
  readonly PENDING_DISABLE: "PENDING_DISABLE";
  readonly PENDING_ENABLE: "PENDING_ENABLE";
};
export type PolicyTypeStatus =
  (typeof PolicyTypeStatus)[keyof typeof PolicyTypeStatus];
export declare const PolicyType: {
  readonly AISERVICES_OPT_OUT_POLICY: "AISERVICES_OPT_OUT_POLICY";
  readonly BACKUP_POLICY: "BACKUP_POLICY";
  readonly SERVICE_CONTROL_POLICY: "SERVICE_CONTROL_POLICY";
  readonly TAG_POLICY: "TAG_POLICY";
};
export type PolicyType = (typeof PolicyType)[keyof typeof PolicyType];
export interface PolicyTypeSummary {
  Type?: PolicyType;
  Status?: PolicyTypeStatus;
}
export interface Organization {
  Id?: string;
  Arn?: string;
  FeatureSet?: OrganizationFeatureSet;
  MasterAccountArn?: string;
  MasterAccountId?: string;
  MasterAccountEmail?: string;
  AvailablePolicyTypes?: PolicyTypeSummary[];
}
export interface CreateOrganizationResponse {
  Organization?: Organization;
}
export interface CreateOrganizationalUnitRequest {
  ParentId: string | undefined;
  Name: string | undefined;
  Tags?: Tag[];
}
export interface OrganizationalUnit {
  Id?: string;
  Arn?: string;
  Name?: string;
}
export interface CreateOrganizationalUnitResponse {
  OrganizationalUnit?: OrganizationalUnit;
}
export declare class DuplicateOrganizationalUnitException extends __BaseException {
  readonly name: "DuplicateOrganizationalUnitException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<
      DuplicateOrganizationalUnitException,
      __BaseException
    >
  );
}
export declare class ParentNotFoundException extends __BaseException {
  readonly name: "ParentNotFoundException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<ParentNotFoundException, __BaseException>
  );
}
export interface CreatePolicyRequest {
  Content: string | undefined;
  Description: string | undefined;
  Name: string | undefined;
  Type: PolicyType | undefined;
  Tags?: Tag[];
}
export interface PolicySummary {
  Id?: string;
  Arn?: string;
  Name?: string;
  Description?: string;
  Type?: PolicyType;
  AwsManaged?: boolean;
}
export interface Policy {
  PolicySummary?: PolicySummary;
  Content?: string;
}
export interface CreatePolicyResponse {
  Policy?: Policy;
}
export declare class DuplicatePolicyException extends __BaseException {
  readonly name: "DuplicatePolicyException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<DuplicatePolicyException, __BaseException>
  );
}
export declare class MalformedPolicyDocumentException extends __BaseException {
  readonly name: "MalformedPolicyDocumentException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<
      MalformedPolicyDocumentException,
      __BaseException
    >
  );
}
export declare class PolicyTypeNotAvailableForOrganizationException extends __BaseException {
  readonly name: "PolicyTypeNotAvailableForOrganizationException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<
      PolicyTypeNotAvailableForOrganizationException,
      __BaseException
    >
  );
}
export interface DeclineHandshakeRequest {
  HandshakeId: string | undefined;
}
export declare class OrganizationNotEmptyException extends __BaseException {
  readonly name: "OrganizationNotEmptyException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<OrganizationNotEmptyException, __BaseException>
  );
}
export interface DeleteOrganizationalUnitRequest {
  OrganizationalUnitId: string | undefined;
}
export declare class OrganizationalUnitNotEmptyException extends __BaseException {
  readonly name: "OrganizationalUnitNotEmptyException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<
      OrganizationalUnitNotEmptyException,
      __BaseException
    >
  );
}
export declare class OrganizationalUnitNotFoundException extends __BaseException {
  readonly name: "OrganizationalUnitNotFoundException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<
      OrganizationalUnitNotFoundException,
      __BaseException
    >
  );
}
export interface DeletePolicyRequest {
  PolicyId: string | undefined;
}
export declare class PolicyInUseException extends __BaseException {
  readonly name: "PolicyInUseException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<PolicyInUseException, __BaseException>
  );
}
export declare class ResourcePolicyNotFoundException extends __BaseException {
  readonly name: "ResourcePolicyNotFoundException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<
      ResourcePolicyNotFoundException,
      __BaseException
    >
  );
}
export interface DeregisterDelegatedAdministratorRequest {
  AccountId: string | undefined;
  ServicePrincipal: string | undefined;
}
export interface DescribeAccountRequest {
  AccountId: string | undefined;
}
export interface DescribeAccountResponse {
  Account?: Account;
}
export declare class CreateAccountStatusNotFoundException extends __BaseException {
  readonly name: "CreateAccountStatusNotFoundException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<
      CreateAccountStatusNotFoundException,
      __BaseException
    >
  );
}
export interface DescribeCreateAccountStatusRequest {
  CreateAccountRequestId: string | undefined;
}
export interface DescribeCreateAccountStatusResponse {
  CreateAccountStatus?: CreateAccountStatus;
}
export declare const EffectivePolicyType: {
  readonly AISERVICES_OPT_OUT_POLICY: "AISERVICES_OPT_OUT_POLICY";
  readonly BACKUP_POLICY: "BACKUP_POLICY";
  readonly TAG_POLICY: "TAG_POLICY";
};
export type EffectivePolicyType =
  (typeof EffectivePolicyType)[keyof typeof EffectivePolicyType];
export interface DescribeEffectivePolicyRequest {
  PolicyType: EffectivePolicyType | undefined;
  TargetId?: string;
}
export interface EffectivePolicy {
  PolicyContent?: string;
  LastUpdatedTimestamp?: Date;
  TargetId?: string;
  PolicyType?: EffectivePolicyType;
}
export interface DescribeEffectivePolicyResponse {
  EffectivePolicy?: EffectivePolicy;
}
export declare class EffectivePolicyNotFoundException extends __BaseException {
  readonly name: "EffectivePolicyNotFoundException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<
      EffectivePolicyNotFoundException,
      __BaseException
    >
  );
}
export interface DescribeHandshakeRequest {
  HandshakeId: string | undefined;
}
export interface DescribeOrganizationResponse {
  Organization?: Organization;
}
export interface DescribeOrganizationalUnitRequest {
  OrganizationalUnitId: string | undefined;
}
export interface DescribeOrganizationalUnitResponse {
  OrganizationalUnit?: OrganizationalUnit;
}
export interface DescribePolicyRequest {
  PolicyId: string | undefined;
}
export interface DescribePolicyResponse {
  Policy?: Policy;
}
export interface ResourcePolicySummary {
  Id?: string;
  Arn?: string;
}
export interface ResourcePolicy {
  ResourcePolicySummary?: ResourcePolicySummary;
  Content?: string;
}
export interface DescribeResourcePolicyResponse {
  ResourcePolicy?: ResourcePolicy;
}
export interface DetachPolicyRequest {
  PolicyId: string | undefined;
  TargetId: string | undefined;
}
export declare class PolicyNotAttachedException extends __BaseException {
  readonly name: "PolicyNotAttachedException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<PolicyNotAttachedException, __BaseException>
  );
}
export interface DisableAWSServiceAccessRequest {
  ServicePrincipal: string | undefined;
}
export interface DisablePolicyTypeRequest {
  RootId: string | undefined;
  PolicyType: PolicyType | undefined;
}
export interface Root {
  Id?: string;
  Arn?: string;
  Name?: string;
  PolicyTypes?: PolicyTypeSummary[];
}
export interface DisablePolicyTypeResponse {
  Root?: Root;
}
export declare class RootNotFoundException extends __BaseException {
  readonly name: "RootNotFoundException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<RootNotFoundException, __BaseException>
  );
}
export interface EnableAllFeaturesRequest {}
export interface EnableAWSServiceAccessRequest {
  ServicePrincipal: string | undefined;
}
export interface EnablePolicyTypeRequest {
  RootId: string | undefined;
  PolicyType: PolicyType | undefined;
}
export interface EnablePolicyTypeResponse {
  Root?: Root;
}
export declare class PolicyTypeAlreadyEnabledException extends __BaseException {
  readonly name: "PolicyTypeAlreadyEnabledException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<
      PolicyTypeAlreadyEnabledException,
      __BaseException
    >
  );
}
export declare class DuplicateHandshakeException extends __BaseException {
  readonly name: "DuplicateHandshakeException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<DuplicateHandshakeException, __BaseException>
  );
}
export interface InviteAccountToOrganizationRequest {
  Target: HandshakeParty | undefined;
  Notes?: string;
  Tags?: Tag[];
}
export declare class MasterCannotLeaveOrganizationException extends __BaseException {
  readonly name: "MasterCannotLeaveOrganizationException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<
      MasterCannotLeaveOrganizationException,
      __BaseException
    >
  );
}
export interface ListAccountsRequest {
  NextToken?: string;
  MaxResults?: number;
}
export interface ListAccountsResponse {
  Accounts?: Account[];
  NextToken?: string;
}
export interface ListAccountsForParentRequest {
  ParentId: string | undefined;
  NextToken?: string;
  MaxResults?: number;
}
export interface ListAccountsForParentResponse {
  Accounts?: Account[];
  NextToken?: string;
}
export interface ListAWSServiceAccessForOrganizationRequest {
  NextToken?: string;
  MaxResults?: number;
}
export interface EnabledServicePrincipal {
  ServicePrincipal?: string;
  DateEnabled?: Date;
}
export interface ListAWSServiceAccessForOrganizationResponse {
  EnabledServicePrincipals?: EnabledServicePrincipal[];
  NextToken?: string;
}
export declare const ChildType: {
  readonly ACCOUNT: "ACCOUNT";
  readonly ORGANIZATIONAL_UNIT: "ORGANIZATIONAL_UNIT";
};
export type ChildType = (typeof ChildType)[keyof typeof ChildType];
export interface ListChildrenRequest {
  ParentId: string | undefined;
  ChildType: ChildType | undefined;
  NextToken?: string;
  MaxResults?: number;
}
export interface Child {
  Id?: string;
  Type?: ChildType;
}
export interface ListChildrenResponse {
  Children?: Child[];
  NextToken?: string;
}
export interface ListCreateAccountStatusRequest {
  States?: CreateAccountState[];
  NextToken?: string;
  MaxResults?: number;
}
export interface ListCreateAccountStatusResponse {
  CreateAccountStatuses?: CreateAccountStatus[];
  NextToken?: string;
}
export interface ListDelegatedAdministratorsRequest {
  ServicePrincipal?: string;
  NextToken?: string;
  MaxResults?: number;
}
export interface DelegatedAdministrator {
  Id?: string;
  Arn?: string;
  Email?: string;
  Name?: string;
  Status?: AccountStatus;
  JoinedMethod?: AccountJoinedMethod;
  JoinedTimestamp?: Date;
  DelegationEnabledDate?: Date;
}
export interface ListDelegatedAdministratorsResponse {
  DelegatedAdministrators?: DelegatedAdministrator[];
  NextToken?: string;
}
export interface ListDelegatedServicesForAccountRequest {
  AccountId: string | undefined;
  NextToken?: string;
  MaxResults?: number;
}
export interface DelegatedService {
  ServicePrincipal?: string;
  DelegationEnabledDate?: Date;
}
export interface ListDelegatedServicesForAccountResponse {
  DelegatedServices?: DelegatedService[];
  NextToken?: string;
}
export interface HandshakeFilter {
  ActionType?: ActionType;
  ParentHandshakeId?: string;
}
export interface ListHandshakesForAccountRequest {
  Filter?: HandshakeFilter;
  NextToken?: string;
  MaxResults?: number;
}
export interface ListHandshakesForOrganizationRequest {
  Filter?: HandshakeFilter;
  NextToken?: string;
  MaxResults?: number;
}
export interface ListOrganizationalUnitsForParentRequest {
  ParentId: string | undefined;
  NextToken?: string;
  MaxResults?: number;
}
export interface ListOrganizationalUnitsForParentResponse {
  OrganizationalUnits?: OrganizationalUnit[];
  NextToken?: string;
}
export declare class ChildNotFoundException extends __BaseException {
  readonly name: "ChildNotFoundException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<ChildNotFoundException, __BaseException>
  );
}
export interface ListParentsRequest {
  ChildId: string | undefined;
  NextToken?: string;
  MaxResults?: number;
}
export declare const ParentType: {
  readonly ORGANIZATIONAL_UNIT: "ORGANIZATIONAL_UNIT";
  readonly ROOT: "ROOT";
};
export type ParentType = (typeof ParentType)[keyof typeof ParentType];
export interface Parent {
  Id?: string;
  Type?: ParentType;
}
export interface ListParentsResponse {
  Parents?: Parent[];
  NextToken?: string;
}
export interface ListPoliciesRequest {
  Filter: PolicyType | undefined;
  NextToken?: string;
  MaxResults?: number;
}
export interface ListPoliciesResponse {
  Policies?: PolicySummary[];
  NextToken?: string;
}
export interface ListPoliciesForTargetRequest {
  TargetId: string | undefined;
  Filter: PolicyType | undefined;
  NextToken?: string;
  MaxResults?: number;
}
export interface ListPoliciesForTargetResponse {
  Policies?: PolicySummary[];
  NextToken?: string;
}
export interface ListRootsRequest {
  NextToken?: string;
  MaxResults?: number;
}
export interface ListRootsResponse {
  Roots?: Root[];
  NextToken?: string;
}
export interface ListTagsForResourceRequest {
  ResourceId: string | undefined;
  NextToken?: string;
}
export interface ListTagsForResourceResponse {
  Tags?: Tag[];
  NextToken?: string;
}
export interface ListTargetsForPolicyRequest {
  PolicyId: string | undefined;
  NextToken?: string;
  MaxResults?: number;
}
export declare const TargetType: {
  readonly ACCOUNT: "ACCOUNT";
  readonly ORGANIZATIONAL_UNIT: "ORGANIZATIONAL_UNIT";
  readonly ROOT: "ROOT";
};
export type TargetType = (typeof TargetType)[keyof typeof TargetType];
export interface PolicyTargetSummary {
  TargetId?: string;
  Arn?: string;
  Name?: string;
  Type?: TargetType;
}
export interface ListTargetsForPolicyResponse {
  Targets?: PolicyTargetSummary[];
  NextToken?: string;
}
export declare class DestinationParentNotFoundException extends __BaseException {
  readonly name: "DestinationParentNotFoundException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<
      DestinationParentNotFoundException,
      __BaseException
    >
  );
}
export declare class DuplicateAccountException extends __BaseException {
  readonly name: "DuplicateAccountException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<DuplicateAccountException, __BaseException>
  );
}
export interface MoveAccountRequest {
  AccountId: string | undefined;
  SourceParentId: string | undefined;
  DestinationParentId: string | undefined;
}
export declare class SourceParentNotFoundException extends __BaseException {
  readonly name: "SourceParentNotFoundException";
  readonly $fault: "client";
  Message?: string;
  constructor(
    opts: __ExceptionOptionType<SourceParentNotFoundException, __BaseException>
  );
}
export interface PutResourcePolicyRequest {
  Content: string | undefined;
  Tags?: Tag[];
}
export interface PutResourcePolicyResponse {
  ResourcePolicy?: ResourcePolicy;
}
export interface RegisterDelegatedAdministratorRequest {
  AccountId: string | undefined;
  ServicePrincipal: string | undefined;
}
export interface RemoveAccountFromOrganizationRequest {
  AccountId: string | undefined;
}
export interface TagResourceRequest {
  ResourceId: string | undefined;
  Tags: Tag[] | undefined;
}
export interface UntagResourceRequest {
  ResourceId: string | undefined;
  TagKeys: string[] | undefined;
}
export interface UpdateOrganizationalUnitRequest {
  OrganizationalUnitId: string | undefined;
  Name?: string;
}
export interface UpdateOrganizationalUnitResponse {
  OrganizationalUnit?: OrganizationalUnit;
}
export interface UpdatePolicyRequest {
  PolicyId: string | undefined;
  Name?: string;
  Description?: string;
  Content?: string;
}
export interface UpdatePolicyResponse {
  Policy?: Policy;
}
export interface HandshakeResource {
  Value?: string;
  Type?: HandshakeResourceType;
  Resources?: HandshakeResource[];
}
export interface Handshake {
  Id?: string;
  Arn?: string;
  Parties?: HandshakeParty[];
  State?: HandshakeState;
  RequestedTimestamp?: Date;
  ExpirationTimestamp?: Date;
  Action?: ActionType;
  Resources?: HandshakeResource[];
}
export interface AcceptHandshakeResponse {
  Handshake?: Handshake;
}
export interface CancelHandshakeResponse {
  Handshake?: Handshake;
}
export interface DeclineHandshakeResponse {
  Handshake?: Handshake;
}
export interface DescribeHandshakeResponse {
  Handshake?: Handshake;
}
export interface EnableAllFeaturesResponse {
  Handshake?: Handshake;
}
export interface InviteAccountToOrganizationResponse {
  Handshake?: Handshake;
}
export interface ListHandshakesForAccountResponse {
  Handshakes?: Handshake[];
  NextToken?: string;
}
export interface ListHandshakesForOrganizationResponse {
  Handshakes?: Handshake[];
  NextToken?: string;
}
export declare const HandshakePartyFilterSensitiveLog: (
  obj: HandshakeParty
) => any;
export declare const AccountFilterSensitiveLog: (obj: Account) => any;
export declare const CreateAccountRequestFilterSensitiveLog: (
  obj: CreateAccountRequest
) => any;
export declare const CreateAccountStatusFilterSensitiveLog: (
  obj: CreateAccountStatus
) => any;
export declare const CreateAccountResponseFilterSensitiveLog: (
  obj: CreateAccountResponse
) => any;
export declare const CreateGovCloudAccountRequestFilterSensitiveLog: (
  obj: CreateGovCloudAccountRequest
) => any;
export declare const CreateGovCloudAccountResponseFilterSensitiveLog: (
  obj: CreateGovCloudAccountResponse
) => any;
export declare const OrganizationFilterSensitiveLog: (obj: Organization) => any;
export declare const CreateOrganizationResponseFilterSensitiveLog: (
  obj: CreateOrganizationResponse
) => any;
export declare const DescribeAccountResponseFilterSensitiveLog: (
  obj: DescribeAccountResponse
) => any;
export declare const DescribeCreateAccountStatusResponseFilterSensitiveLog: (
  obj: DescribeCreateAccountStatusResponse
) => any;
export declare const DescribeOrganizationResponseFilterSensitiveLog: (
  obj: DescribeOrganizationResponse
) => any;
export declare const InviteAccountToOrganizationRequestFilterSensitiveLog: (
  obj: InviteAccountToOrganizationRequest
) => any;
export declare const ListAccountsResponseFilterSensitiveLog: (
  obj: ListAccountsResponse
) => any;
export declare const ListAccountsForParentResponseFilterSensitiveLog: (
  obj: ListAccountsForParentResponse
) => any;
export declare const ListCreateAccountStatusResponseFilterSensitiveLog: (
  obj: ListCreateAccountStatusResponse
) => any;
export declare const DelegatedAdministratorFilterSensitiveLog: (
  obj: DelegatedAdministrator
) => any;
export declare const ListDelegatedAdministratorsResponseFilterSensitiveLog: (
  obj: ListDelegatedAdministratorsResponse
) => any;
export declare const HandshakeResourceFilterSensitiveLog: (
  obj: HandshakeResource
) => any;
export declare const HandshakeFilterSensitiveLog: (obj: Handshake) => any;
export declare const AcceptHandshakeResponseFilterSensitiveLog: (
  obj: AcceptHandshakeResponse
) => any;
export declare const CancelHandshakeResponseFilterSensitiveLog: (
  obj: CancelHandshakeResponse
) => any;
export declare const DeclineHandshakeResponseFilterSensitiveLog: (
  obj: DeclineHandshakeResponse
) => any;
export declare const DescribeHandshakeResponseFilterSensitiveLog: (
  obj: DescribeHandshakeResponse
) => any;
export declare const EnableAllFeaturesResponseFilterSensitiveLog: (
  obj: EnableAllFeaturesResponse
) => any;
export declare const InviteAccountToOrganizationResponseFilterSensitiveLog: (
  obj: InviteAccountToOrganizationResponse
) => any;
export declare const ListHandshakesForAccountResponseFilterSensitiveLog: (
  obj: ListHandshakesForAccountResponse
) => any;
export declare const ListHandshakesForOrganizationResponseFilterSensitiveLog: (
  obj: ListHandshakesForOrganizationResponse
) => any;
