import * as HttpClient from "effect/unstable/http/HttpClient";
import * as redacted from "effect/Redacted";
import * as S from "effect/Schema";
import * as stream from "effect/Stream";
import * as API from "../client/api.js";
import * as T from "../traits.js";
import * as C from "../category.js";
import { SensitiveString } from "../sensitive.js";
const svc = T.AwsApiService({
    sdkId: "Chime",
    serviceShapeName: "UCBuzzConsoleService",
});
const auth = T.AwsAuthSigv4({ name: "chime" });
const ver = T.ServiceVersion("2018-05-01");
const proto = T.AwsProtocolsRestJson1();
const rules = T.EndpointResolver((p, _) => {
    const { Region, UseDualStack = false, UseFIPS = false, Endpoint } = p;
    const e = (u, p = {}, h = {}) => ({
        type: "endpoint",
        endpoint: { url: u, properties: p, headers: h },
    });
    const err = (m) => ({
        type: "error",
        message: m,
    });
    if (Endpoint != null) {
        if (UseFIPS === true) {
            return err("Invalid Configuration: FIPS and custom endpoint are not supported");
        }
        if (UseDualStack === true) {
            return err("Invalid Configuration: Dualstack and custom endpoint are not supported");
        }
        return e(Endpoint);
    }
    if (Region != null) {
        {
            const PartitionResult = _.partition(Region);
            if (PartitionResult != null && PartitionResult !== false) {
                if (_.getAttr(PartitionResult, "name") === "aws" &&
                    UseFIPS === false &&
                    UseDualStack === false) {
                    return e("https://chime.us-east-1.amazonaws.com", {
                        authSchemes: [
                            {
                                name: "sigv4",
                                signingName: "chime",
                                signingRegion: "us-east-1",
                            },
                        ],
                    }, {});
                }
                if (UseFIPS === true && UseDualStack === true) {
                    if (true === _.getAttr(PartitionResult, "supportsFIPS") &&
                        true === _.getAttr(PartitionResult, "supportsDualStack")) {
                        return e(`https://chime-fips.${Region}.${_.getAttr(PartitionResult, "dualStackDnsSuffix")}`);
                    }
                    return err("FIPS and DualStack are enabled, but this partition does not support one or both");
                }
                if (UseFIPS === true) {
                    if (_.getAttr(PartitionResult, "supportsFIPS") === true) {
                        return e(`https://chime-fips.${Region}.${_.getAttr(PartitionResult, "dnsSuffix")}`);
                    }
                    return err("FIPS is enabled but this partition does not support FIPS");
                }
                if (UseDualStack === true) {
                    if (true === _.getAttr(PartitionResult, "supportsDualStack")) {
                        return e(`https://chime.${Region}.${_.getAttr(PartitionResult, "dualStackDnsSuffix")}`);
                    }
                    return err("DualStack is enabled but this partition does not support DualStack");
                }
                return e(`https://chime.${Region}.${_.getAttr(PartitionResult, "dnsSuffix")}`);
            }
        }
    }
    return err("Invalid Configuration: Missing Region");
});
export const AssociatePhoneNumberWithUserRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    UserId: S.String.pipe(T.HttpLabel("UserId")),
    E164PhoneNumber: SensitiveString,
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/accounts/{AccountId}/users/{UserId}?operation=associate-phone-number",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "AssociatePhoneNumberWithUserRequest",
});
export const AssociatePhoneNumberWithUserResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "AssociatePhoneNumberWithUserResponse",
});
export const ErrorCode = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const SigninDelegateGroup = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ GroupName: S.optional(S.String) })).annotate({
    identifier: "SigninDelegateGroup",
});
export const SigninDelegateGroupList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(SigninDelegateGroup);
export const AssociateSigninDelegateGroupsWithAccountRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    SigninDelegateGroups: SigninDelegateGroupList,
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/accounts/{AccountId}?operation=associate-signin-delegate-groups",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "AssociateSigninDelegateGroupsWithAccountRequest",
});
export const AssociateSigninDelegateGroupsWithAccountResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "AssociateSigninDelegateGroupsWithAccountResponse",
});
export const RoomMembershipRole = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const MembershipItem = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    MemberId: S.optional(S.String),
    Role: S.optional(RoomMembershipRole),
})).annotate({ identifier: "MembershipItem" });
export const MembershipItemList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(MembershipItem);
export const BatchCreateRoomMembershipRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    RoomId: S.String.pipe(T.HttpLabel("RoomId")),
    MembershipItemList: MembershipItemList,
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/accounts/{AccountId}/rooms/{RoomId}/memberships?operation=batch-create",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "BatchCreateRoomMembershipRequest",
});
export const MemberError = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    MemberId: S.optional(S.String),
    ErrorCode: S.optional(ErrorCode),
    ErrorMessage: S.optional(S.String),
})).annotate({ identifier: "MemberError" });
export const MemberErrorList = /*@__PURE__*/ /*#__PURE__*/ S.Array(MemberError);
export const BatchCreateRoomMembershipResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Errors: S.optional(MemberErrorList) })).annotate({
    identifier: "BatchCreateRoomMembershipResponse",
});
export const NonEmptyStringList = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const BatchDeletePhoneNumberRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ PhoneNumberIds: NonEmptyStringList }).pipe(T.all(T.Http({
    method: "POST",
    uri: "/phone-numbers?operation=batch-delete",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "BatchDeletePhoneNumberRequest",
});
export const PhoneNumberError = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    PhoneNumberId: S.optional(S.String),
    ErrorCode: S.optional(ErrorCode),
    ErrorMessage: S.optional(S.String),
})).annotate({
    identifier: "PhoneNumberError",
});
export const PhoneNumberErrorList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(PhoneNumberError);
export const BatchDeletePhoneNumberResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ PhoneNumberErrors: S.optional(PhoneNumberErrorList) })).annotate({
    identifier: "BatchDeletePhoneNumberResponse",
});
export const UserIdList = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const BatchSuspendUserRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    UserIdList: UserIdList,
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/accounts/{AccountId}/users?operation=suspend",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "BatchSuspendUserRequest",
});
export const UserError = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    UserId: S.optional(S.String),
    ErrorCode: S.optional(ErrorCode),
    ErrorMessage: S.optional(S.String),
})).annotate({ identifier: "UserError" });
export const UserErrorList = /*@__PURE__*/ /*#__PURE__*/ S.Array(UserError);
export const BatchSuspendUserResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ UserErrors: S.optional(UserErrorList) })).annotate({
    identifier: "BatchSuspendUserResponse",
});
export const BatchUnsuspendUserRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    UserIdList: UserIdList,
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/accounts/{AccountId}/users?operation=unsuspend",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "BatchUnsuspendUserRequest",
});
export const BatchUnsuspendUserResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ UserErrors: S.optional(UserErrorList) })).annotate({
    identifier: "BatchUnsuspendUserResponse",
});
export const PhoneNumberProductType = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const UpdatePhoneNumberRequestItem = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    PhoneNumberId: S.String,
    ProductType: S.optional(PhoneNumberProductType),
    CallingName: S.optional(SensitiveString),
})).annotate({
    identifier: "UpdatePhoneNumberRequestItem",
});
export const UpdatePhoneNumberRequestItemList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(UpdatePhoneNumberRequestItem);
export const BatchUpdatePhoneNumberRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    UpdatePhoneNumberRequestItems: UpdatePhoneNumberRequestItemList,
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/phone-numbers?operation=batch-update",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "BatchUpdatePhoneNumberRequest",
});
export const BatchUpdatePhoneNumberResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ PhoneNumberErrors: S.optional(PhoneNumberErrorList) })).annotate({
    identifier: "BatchUpdatePhoneNumberResponse",
});
export const License = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const UserType = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const AlexaForBusinessMetadata = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    IsAlexaForBusinessEnabled: S.optional(S.Boolean),
    AlexaForBusinessRoomArn: S.optional(SensitiveString),
})).annotate({
    identifier: "AlexaForBusinessMetadata",
});
export const UpdateUserRequestItem = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    UserId: S.String,
    LicenseType: S.optional(License),
    UserType: S.optional(UserType),
    AlexaForBusinessMetadata: S.optional(AlexaForBusinessMetadata),
})).annotate({
    identifier: "UpdateUserRequestItem",
});
export const UpdateUserRequestItemList = /*@__PURE__*/ /*#__PURE__*/ S.Array(UpdateUserRequestItem);
export const BatchUpdateUserRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    UpdateUserRequestItems: UpdateUserRequestItemList,
}).pipe(T.all(T.Http({ method: "POST", uri: "/accounts/{AccountId}/users" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "BatchUpdateUserRequest",
});
export const BatchUpdateUserResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ UserErrors: S.optional(UserErrorList) })).annotate({
    identifier: "BatchUpdateUserResponse",
});
export const CreateAccountRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Name: S.String }).pipe(T.all(T.Http({ method: "POST", uri: "/accounts" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateAccountRequest",
});
export const AccountType = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const LicenseList = /*@__PURE__*/ /*#__PURE__*/ S.Array(License);
export const AccountStatus = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const Account = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AwsAccountId: S.String,
    AccountId: S.String,
    Name: S.String,
    AccountType: S.optional(AccountType),
    CreatedTimestamp: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    DefaultLicense: S.optional(License),
    SupportedLicenses: S.optional(LicenseList),
    AccountStatus: S.optional(AccountStatus),
    SigninDelegateGroups: S.optional(SigninDelegateGroupList),
})).annotate({ identifier: "Account" });
export const CreateAccountResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Account: S.optional(Account) })).annotate({
    identifier: "CreateAccountResponse",
});
export const CreateBotRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    DisplayName: SensitiveString,
    Domain: S.optional(S.String),
}).pipe(T.all(T.Http({ method: "POST", uri: "/accounts/{AccountId}/bots" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateBotRequest",
});
export const BotType = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const Bot = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    BotId: S.optional(S.String),
    UserId: S.optional(S.String),
    DisplayName: S.optional(SensitiveString),
    BotType: S.optional(BotType),
    Disabled: S.optional(S.Boolean),
    CreatedTimestamp: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    UpdatedTimestamp: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    BotEmail: S.optional(SensitiveString),
    SecurityToken: S.optional(SensitiveString),
})).annotate({ identifier: "Bot" });
export const CreateBotResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Bot: S.optional(Bot) })).annotate({
    identifier: "CreateBotResponse",
});
export const CreateMeetingDialOutRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    MeetingId: S.String.pipe(T.HttpLabel("MeetingId")),
    FromPhoneNumber: SensitiveString,
    ToPhoneNumber: SensitiveString,
    JoinToken: SensitiveString,
}).pipe(T.all(T.Http({ method: "POST", uri: "/meetings/{MeetingId}/dial-outs" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateMeetingDialOutRequest",
});
export const CreateMeetingDialOutResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ TransactionId: S.optional(S.String) })).annotate({
    identifier: "CreateMeetingDialOutResponse",
});
export const E164PhoneNumberList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(SensitiveString);
export const CreatePhoneNumberOrderRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ProductType: PhoneNumberProductType,
    E164PhoneNumbers: E164PhoneNumberList,
}).pipe(T.all(T.Http({ method: "POST", uri: "/phone-number-orders" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreatePhoneNumberOrderRequest",
});
export const PhoneNumberOrderStatus = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const OrderedPhoneNumberStatus = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const OrderedPhoneNumber = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    E164PhoneNumber: S.optional(SensitiveString),
    Status: S.optional(OrderedPhoneNumberStatus),
})).annotate({
    identifier: "OrderedPhoneNumber",
});
export const OrderedPhoneNumberList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(OrderedPhoneNumber);
export const PhoneNumberOrder = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    PhoneNumberOrderId: S.optional(S.String),
    ProductType: S.optional(PhoneNumberProductType),
    Status: S.optional(PhoneNumberOrderStatus),
    OrderedPhoneNumbers: S.optional(OrderedPhoneNumberList),
    CreatedTimestamp: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    UpdatedTimestamp: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
})).annotate({
    identifier: "PhoneNumberOrder",
});
export const CreatePhoneNumberOrderResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ PhoneNumberOrder: S.optional(PhoneNumberOrder) })).annotate({
    identifier: "CreatePhoneNumberOrderResponse",
});
export const CreateRoomRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    Name: SensitiveString,
    ClientRequestToken: S.optional(SensitiveString).pipe(T.IdempotencyToken()),
}).pipe(T.all(T.Http({ method: "POST", uri: "/accounts/{AccountId}/rooms" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateRoomRequest",
});
export const Room = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    RoomId: S.optional(S.String),
    Name: S.optional(SensitiveString),
    AccountId: S.optional(S.String),
    CreatedBy: S.optional(S.String),
    CreatedTimestamp: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    UpdatedTimestamp: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
})).annotate({ identifier: "Room" });
export const CreateRoomResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Room: S.optional(Room) })).annotate({
    identifier: "CreateRoomResponse",
});
export const CreateRoomMembershipRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    RoomId: S.String.pipe(T.HttpLabel("RoomId")),
    MemberId: S.String,
    Role: S.optional(RoomMembershipRole),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/accounts/{AccountId}/rooms/{RoomId}/memberships",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateRoomMembershipRequest",
});
export const MemberType = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const Member = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    MemberId: S.optional(S.String),
    MemberType: S.optional(MemberType),
    Email: S.optional(SensitiveString),
    FullName: S.optional(SensitiveString),
    AccountId: S.optional(S.String),
})).annotate({ identifier: "Member" });
export const RoomMembership = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    RoomId: S.optional(S.String),
    Member: S.optional(Member),
    Role: S.optional(RoomMembershipRole),
    InvitedBy: S.optional(S.String),
    UpdatedTimestamp: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
})).annotate({ identifier: "RoomMembership" });
export const CreateRoomMembershipResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ RoomMembership: S.optional(RoomMembership) })).annotate({
    identifier: "CreateRoomMembershipResponse",
});
export const CreateUserRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    Username: S.optional(S.String),
    Email: S.optional(SensitiveString),
    UserType: S.optional(UserType),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/accounts/{AccountId}/users?operation=create",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateUserRequest",
});
export const RegistrationStatus = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const InviteStatus = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const User = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    UserId: S.String,
    AccountId: S.optional(S.String),
    PrimaryEmail: S.optional(SensitiveString),
    PrimaryProvisionedNumber: S.optional(SensitiveString),
    DisplayName: S.optional(SensitiveString),
    LicenseType: S.optional(License),
    UserType: S.optional(UserType),
    UserRegistrationStatus: S.optional(RegistrationStatus),
    UserInvitationStatus: S.optional(InviteStatus),
    RegisteredOn: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    InvitedOn: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    AlexaForBusinessMetadata: S.optional(AlexaForBusinessMetadata),
    PersonalPIN: S.optional(S.String),
})).annotate({ identifier: "User" });
export const CreateUserResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ User: S.optional(User) })).annotate({
    identifier: "CreateUserResponse",
});
export const DeleteAccountRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ AccountId: S.String.pipe(T.HttpLabel("AccountId")) }).pipe(T.all(T.Http({ method: "DELETE", uri: "/accounts/{AccountId}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteAccountRequest",
});
export const DeleteAccountResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "DeleteAccountResponse",
});
export const DeleteEventsConfigurationRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    BotId: S.String.pipe(T.HttpLabel("BotId")),
}).pipe(T.all(T.Http({
    method: "DELETE",
    uri: "/accounts/{AccountId}/bots/{BotId}/events-configuration",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteEventsConfigurationRequest",
});
export const DeleteEventsConfigurationResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "DeleteEventsConfigurationResponse",
});
export const DeletePhoneNumberRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    PhoneNumberId: S.String.pipe(T.HttpLabel("PhoneNumberId")),
}).pipe(T.all(T.Http({ method: "DELETE", uri: "/phone-numbers/{PhoneNumberId}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeletePhoneNumberRequest",
});
export const DeletePhoneNumberResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "DeletePhoneNumberResponse",
});
export const DeleteRoomRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    RoomId: S.String.pipe(T.HttpLabel("RoomId")),
}).pipe(T.all(T.Http({ method: "DELETE", uri: "/accounts/{AccountId}/rooms/{RoomId}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteRoomRequest",
});
export const DeleteRoomResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "DeleteRoomResponse",
});
export const DeleteRoomMembershipRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    RoomId: S.String.pipe(T.HttpLabel("RoomId")),
    MemberId: S.String.pipe(T.HttpLabel("MemberId")),
}).pipe(T.all(T.Http({
    method: "DELETE",
    uri: "/accounts/{AccountId}/rooms/{RoomId}/memberships/{MemberId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteRoomMembershipRequest",
});
export const DeleteRoomMembershipResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "DeleteRoomMembershipResponse",
});
export const DisassociatePhoneNumberFromUserRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    UserId: S.String.pipe(T.HttpLabel("UserId")),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/accounts/{AccountId}/users/{UserId}?operation=disassociate-phone-number",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "DisassociatePhoneNumberFromUserRequest",
});
export const DisassociatePhoneNumberFromUserResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "DisassociatePhoneNumberFromUserResponse",
});
export const DisassociateSigninDelegateGroupsFromAccountRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    GroupNames: NonEmptyStringList,
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/accounts/{AccountId}?operation=disassociate-signin-delegate-groups",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "DisassociateSigninDelegateGroupsFromAccountRequest",
});
export const DisassociateSigninDelegateGroupsFromAccountResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "DisassociateSigninDelegateGroupsFromAccountResponse",
});
export const GetAccountRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ AccountId: S.String.pipe(T.HttpLabel("AccountId")) }).pipe(T.all(T.Http({ method: "GET", uri: "/accounts/{AccountId}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetAccountRequest",
});
export const GetAccountResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Account: S.optional(Account) })).annotate({
    identifier: "GetAccountResponse",
});
export const GetAccountSettingsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ AccountId: S.String.pipe(T.HttpLabel("AccountId")) }).pipe(T.all(T.Http({ method: "GET", uri: "/accounts/{AccountId}/settings" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetAccountSettingsRequest",
});
export const AccountSettings = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    DisableRemoteControl: S.optional(S.Boolean),
    EnableDialOut: S.optional(S.Boolean),
})).annotate({
    identifier: "AccountSettings",
});
export const GetAccountSettingsResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ AccountSettings: S.optional(AccountSettings) })).annotate({
    identifier: "GetAccountSettingsResponse",
});
export const GetBotRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    BotId: S.String.pipe(T.HttpLabel("BotId")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/accounts/{AccountId}/bots/{BotId}" }), svc, auth, proto, ver, rules))).annotate({ identifier: "GetBotRequest" });
export const GetBotResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Bot: S.optional(Bot) })).annotate({ identifier: "GetBotResponse" });
export const GetEventsConfigurationRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    BotId: S.String.pipe(T.HttpLabel("BotId")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/accounts/{AccountId}/bots/{BotId}/events-configuration",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetEventsConfigurationRequest",
});
export const EventsConfiguration = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    BotId: S.optional(S.String),
    OutboundEventsHTTPSEndpoint: S.optional(SensitiveString),
    LambdaFunctionArn: S.optional(SensitiveString),
})).annotate({
    identifier: "EventsConfiguration",
});
export const GetEventsConfigurationResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ EventsConfiguration: S.optional(EventsConfiguration) })).annotate({
    identifier: "GetEventsConfigurationResponse",
});
export const GetGlobalSettingsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({}).pipe(T.all(T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetGlobalSettingsRequest",
});
export const BusinessCallingSettings = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ CdrBucket: S.optional(S.String) })).annotate({
    identifier: "BusinessCallingSettings",
});
export const VoiceConnectorSettings = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ CdrBucket: S.optional(S.String) })).annotate({
    identifier: "VoiceConnectorSettings",
});
export const GetGlobalSettingsResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    BusinessCalling: S.optional(BusinessCallingSettings),
    VoiceConnector: S.optional(VoiceConnectorSettings),
})).annotate({
    identifier: "GetGlobalSettingsResponse",
});
export const GetPhoneNumberRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ PhoneNumberId: S.String.pipe(T.HttpLabel("PhoneNumberId")) }).pipe(T.all(T.Http({ method: "GET", uri: "/phone-numbers/{PhoneNumberId}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetPhoneNumberRequest",
});
export const PhoneNumberType = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const PhoneNumberStatus = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const PhoneNumberCapabilities = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    InboundCall: S.optional(S.Boolean),
    OutboundCall: S.optional(S.Boolean),
    InboundSMS: S.optional(S.Boolean),
    OutboundSMS: S.optional(S.Boolean),
    InboundMMS: S.optional(S.Boolean),
    OutboundMMS: S.optional(S.Boolean),
})).annotate({
    identifier: "PhoneNumberCapabilities",
});
export const PhoneNumberAssociationName = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const PhoneNumberAssociation = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Value: S.optional(S.String),
    Name: S.optional(PhoneNumberAssociationName),
    AssociatedTimestamp: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
})).annotate({
    identifier: "PhoneNumberAssociation",
});
export const PhoneNumberAssociationList = /*@__PURE__*/ /*#__PURE__*/ S.Array(PhoneNumberAssociation);
export const CallingNameStatus = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const PhoneNumber = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    PhoneNumberId: S.optional(S.String),
    E164PhoneNumber: S.optional(SensitiveString),
    Country: S.optional(S.String),
    Type: S.optional(PhoneNumberType),
    ProductType: S.optional(PhoneNumberProductType),
    Status: S.optional(PhoneNumberStatus),
    Capabilities: S.optional(PhoneNumberCapabilities),
    Associations: S.optional(PhoneNumberAssociationList),
    CallingName: S.optional(SensitiveString),
    CallingNameStatus: S.optional(CallingNameStatus),
    CreatedTimestamp: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    UpdatedTimestamp: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    DeletionTimestamp: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
})).annotate({ identifier: "PhoneNumber" });
export const GetPhoneNumberResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ PhoneNumber: S.optional(PhoneNumber) })).annotate({
    identifier: "GetPhoneNumberResponse",
});
export const GetPhoneNumberOrderRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    PhoneNumberOrderId: S.String.pipe(T.HttpLabel("PhoneNumberOrderId")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/phone-number-orders/{PhoneNumberOrderId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetPhoneNumberOrderRequest",
});
export const GetPhoneNumberOrderResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ PhoneNumberOrder: S.optional(PhoneNumberOrder) })).annotate({
    identifier: "GetPhoneNumberOrderResponse",
});
export const GetPhoneNumberSettingsRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({}).pipe(T.all(T.Http({ method: "POST", uri: "/" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetPhoneNumberSettingsRequest",
});
export const GetPhoneNumberSettingsResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    CallingName: S.optional(SensitiveString),
    CallingNameUpdatedTimestamp: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
})).annotate({
    identifier: "GetPhoneNumberSettingsResponse",
});
export const GetRetentionSettingsRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ AccountId: S.String.pipe(T.HttpLabel("AccountId")) }).pipe(T.all(T.Http({
    method: "GET",
    uri: "/accounts/{AccountId}/retention-settings",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetRetentionSettingsRequest",
});
export const RoomRetentionSettings = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ RetentionDays: S.optional(S.Number) })).annotate({
    identifier: "RoomRetentionSettings",
});
export const ConversationRetentionSettings = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ RetentionDays: S.optional(S.Number) })).annotate({
    identifier: "ConversationRetentionSettings",
});
export const RetentionSettings = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    RoomRetentionSettings: S.optional(RoomRetentionSettings),
    ConversationRetentionSettings: S.optional(ConversationRetentionSettings),
})).annotate({
    identifier: "RetentionSettings",
});
export const GetRetentionSettingsResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    RetentionSettings: S.optional(RetentionSettings),
    InitiateDeletionTimestamp: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
})).annotate({
    identifier: "GetRetentionSettingsResponse",
});
export const GetRoomRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    RoomId: S.String.pipe(T.HttpLabel("RoomId")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/accounts/{AccountId}/rooms/{RoomId}" }), svc, auth, proto, ver, rules))).annotate({ identifier: "GetRoomRequest" });
export const GetRoomResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Room: S.optional(Room) })).annotate({
    identifier: "GetRoomResponse",
});
export const GetUserRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    UserId: S.String.pipe(T.HttpLabel("UserId")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/accounts/{AccountId}/users/{UserId}" }), svc, auth, proto, ver, rules))).annotate({ identifier: "GetUserRequest" });
export const GetUserResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ User: S.optional(User) })).annotate({
    identifier: "GetUserResponse",
});
export const GetUserSettingsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    UserId: S.String.pipe(T.HttpLabel("UserId")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/accounts/{AccountId}/users/{UserId}/settings",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetUserSettingsRequest",
});
export const TelephonySettings = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    InboundCalling: S.Boolean,
    OutboundCalling: S.Boolean,
    SMS: S.Boolean,
})).annotate({
    identifier: "TelephonySettings",
});
export const UserSettings = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Telephony: TelephonySettings })).annotate({ identifier: "UserSettings" });
export const GetUserSettingsResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ UserSettings: S.optional(UserSettings) })).annotate({
    identifier: "GetUserSettingsResponse",
});
export const UserEmailList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(SensitiveString);
export const InviteUsersRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    UserEmailList: UserEmailList,
    UserType: S.optional(UserType),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/accounts/{AccountId}/users?operation=add",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "InviteUsersRequest",
});
export const EmailStatus = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const Invite = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    InviteId: S.optional(S.String),
    Status: S.optional(InviteStatus),
    EmailAddress: S.optional(SensitiveString),
    EmailStatus: S.optional(EmailStatus),
})).annotate({ identifier: "Invite" });
export const InviteList = /*@__PURE__*/ /*#__PURE__*/ S.Array(Invite);
export const InviteUsersResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Invites: S.optional(InviteList) })).annotate({
    identifier: "InviteUsersResponse",
});
export const ListAccountsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Name: S.optional(S.String).pipe(T.HttpQuery("name")),
    UserEmail: S.optional(SensitiveString).pipe(T.HttpQuery("user-email")),
    NextToken: S.optional(S.String).pipe(T.HttpQuery("next-token")),
    MaxResults: S.optional(S.Number).pipe(T.HttpQuery("max-results")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/accounts" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListAccountsRequest",
});
export const AccountList = /*@__PURE__*/ /*#__PURE__*/ S.Array(Account);
export const ListAccountsResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Accounts: S.optional(AccountList),
    NextToken: S.optional(S.String),
})).annotate({
    identifier: "ListAccountsResponse",
});
export const ListBotsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    MaxResults: S.optional(S.Number).pipe(T.HttpQuery("max-results")),
    NextToken: S.optional(S.String).pipe(T.HttpQuery("next-token")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/accounts/{AccountId}/bots" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListBotsRequest",
});
export const BotList = /*@__PURE__*/ /*#__PURE__*/ S.Array(Bot);
export const ListBotsResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Bots: S.optional(BotList), NextToken: S.optional(S.String) })).annotate({
    identifier: "ListBotsResponse",
});
export const ListPhoneNumberOrdersRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    NextToken: S.optional(S.String).pipe(T.HttpQuery("next-token")),
    MaxResults: S.optional(S.Number).pipe(T.HttpQuery("max-results")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/phone-number-orders" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListPhoneNumberOrdersRequest",
});
export const PhoneNumberOrderList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(PhoneNumberOrder);
export const ListPhoneNumberOrdersResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    PhoneNumberOrders: S.optional(PhoneNumberOrderList),
    NextToken: S.optional(S.String),
})).annotate({
    identifier: "ListPhoneNumberOrdersResponse",
});
export const ListPhoneNumbersRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Status: S.optional(PhoneNumberStatus).pipe(T.HttpQuery("status")),
    ProductType: S.optional(PhoneNumberProductType).pipe(T.HttpQuery("product-type")),
    FilterName: S.optional(PhoneNumberAssociationName).pipe(T.HttpQuery("filter-name")),
    FilterValue: S.optional(S.String).pipe(T.HttpQuery("filter-value")),
    MaxResults: S.optional(S.Number).pipe(T.HttpQuery("max-results")),
    NextToken: S.optional(S.String).pipe(T.HttpQuery("next-token")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/phone-numbers" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListPhoneNumbersRequest",
});
export const PhoneNumberList = /*@__PURE__*/ /*#__PURE__*/ S.Array(PhoneNumber);
export const ListPhoneNumbersResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    PhoneNumbers: S.optional(PhoneNumberList),
    NextToken: S.optional(S.String),
})).annotate({
    identifier: "ListPhoneNumbersResponse",
});
export const ListRoomMembershipsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    RoomId: S.String.pipe(T.HttpLabel("RoomId")),
    MaxResults: S.optional(S.Number).pipe(T.HttpQuery("max-results")),
    NextToken: S.optional(S.String).pipe(T.HttpQuery("next-token")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/accounts/{AccountId}/rooms/{RoomId}/memberships",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListRoomMembershipsRequest",
});
export const RoomMembershipList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(RoomMembership);
export const ListRoomMembershipsResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    RoomMemberships: S.optional(RoomMembershipList),
    NextToken: S.optional(S.String),
})).annotate({
    identifier: "ListRoomMembershipsResponse",
});
export const ListRoomsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    MemberId: S.optional(S.String).pipe(T.HttpQuery("member-id")),
    MaxResults: S.optional(S.Number).pipe(T.HttpQuery("max-results")),
    NextToken: S.optional(S.String).pipe(T.HttpQuery("next-token")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/accounts/{AccountId}/rooms" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListRoomsRequest",
});
export const RoomList = /*@__PURE__*/ /*#__PURE__*/ S.Array(Room);
export const ListRoomsResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Rooms: S.optional(RoomList), NextToken: S.optional(S.String) })).annotate({
    identifier: "ListRoomsResponse",
});
export const ListSupportedPhoneNumberCountriesRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ProductType: PhoneNumberProductType.pipe(T.HttpQuery("product-type")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/phone-number-countries" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListSupportedPhoneNumberCountriesRequest",
});
export const PhoneNumberTypeList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(PhoneNumberType);
export const PhoneNumberCountry = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    CountryCode: S.optional(S.String),
    SupportedPhoneNumberTypes: S.optional(PhoneNumberTypeList),
})).annotate({
    identifier: "PhoneNumberCountry",
});
export const PhoneNumberCountriesList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(PhoneNumberCountry);
export const ListSupportedPhoneNumberCountriesResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ PhoneNumberCountries: S.optional(PhoneNumberCountriesList) })).annotate({
    identifier: "ListSupportedPhoneNumberCountriesResponse",
});
export const ListUsersRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    UserEmail: S.optional(SensitiveString).pipe(T.HttpQuery("user-email")),
    UserType: S.optional(UserType).pipe(T.HttpQuery("user-type")),
    MaxResults: S.optional(S.Number).pipe(T.HttpQuery("max-results")),
    NextToken: S.optional(S.String).pipe(T.HttpQuery("next-token")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/accounts/{AccountId}/users" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListUsersRequest",
});
export const UserList = /*@__PURE__*/ /*#__PURE__*/ S.Array(User);
export const ListUsersResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Users: S.optional(UserList), NextToken: S.optional(S.String) })).annotate({
    identifier: "ListUsersResponse",
});
export const LogoutUserRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    UserId: S.String.pipe(T.HttpLabel("UserId")),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/accounts/{AccountId}/users/{UserId}?operation=logout",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "LogoutUserRequest",
});
export const LogoutUserResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "LogoutUserResponse",
});
export const PutEventsConfigurationRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    BotId: S.String.pipe(T.HttpLabel("BotId")),
    OutboundEventsHTTPSEndpoint: S.optional(SensitiveString),
    LambdaFunctionArn: S.optional(SensitiveString),
}).pipe(T.all(T.Http({
    method: "PUT",
    uri: "/accounts/{AccountId}/bots/{BotId}/events-configuration",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "PutEventsConfigurationRequest",
});
export const PutEventsConfigurationResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ EventsConfiguration: S.optional(EventsConfiguration) })).annotate({
    identifier: "PutEventsConfigurationResponse",
});
export const PutRetentionSettingsRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    RetentionSettings: RetentionSettings,
}).pipe(T.all(T.Http({
    method: "PUT",
    uri: "/accounts/{AccountId}/retention-settings",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "PutRetentionSettingsRequest",
});
export const PutRetentionSettingsResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    RetentionSettings: S.optional(RetentionSettings),
    InitiateDeletionTimestamp: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
})).annotate({
    identifier: "PutRetentionSettingsResponse",
});
export const RedactConversationMessageRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    ConversationId: S.String.pipe(T.HttpLabel("ConversationId")),
    MessageId: S.String.pipe(T.HttpLabel("MessageId")),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/accounts/{AccountId}/conversations/{ConversationId}/messages/{MessageId}?operation=redact",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "RedactConversationMessageRequest",
});
export const RedactConversationMessageResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "RedactConversationMessageResponse",
});
export const RedactRoomMessageRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    RoomId: S.String.pipe(T.HttpLabel("RoomId")),
    MessageId: S.String.pipe(T.HttpLabel("MessageId")),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/accounts/{AccountId}/rooms/{RoomId}/messages/{MessageId}?operation=redact",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "RedactRoomMessageRequest",
});
export const RedactRoomMessageResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "RedactRoomMessageResponse",
});
export const RegenerateSecurityTokenRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    BotId: S.String.pipe(T.HttpLabel("BotId")),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/accounts/{AccountId}/bots/{BotId}?operation=regenerate-security-token",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "RegenerateSecurityTokenRequest",
});
export const RegenerateSecurityTokenResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Bot: S.optional(Bot) })).annotate({
    identifier: "RegenerateSecurityTokenResponse",
});
export const ResetPersonalPINRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    UserId: S.String.pipe(T.HttpLabel("UserId")),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/accounts/{AccountId}/users/{UserId}?operation=reset-personal-pin",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "ResetPersonalPINRequest",
});
export const ResetPersonalPINResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ User: S.optional(User) })).annotate({
    identifier: "ResetPersonalPINResponse",
});
export const RestorePhoneNumberRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    PhoneNumberId: S.String.pipe(T.HttpLabel("PhoneNumberId")),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/phone-numbers/{PhoneNumberId}?operation=restore",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "RestorePhoneNumberRequest",
});
export const RestorePhoneNumberResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ PhoneNumber: S.optional(PhoneNumber) })).annotate({
    identifier: "RestorePhoneNumberResponse",
});
export const SearchAvailablePhoneNumbersRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AreaCode: S.optional(S.String).pipe(T.HttpQuery("area-code")),
    City: S.optional(S.String).pipe(T.HttpQuery("city")),
    Country: S.optional(S.String).pipe(T.HttpQuery("country")),
    State: S.optional(S.String).pipe(T.HttpQuery("state")),
    TollFreePrefix: S.optional(S.String).pipe(T.HttpQuery("toll-free-prefix")),
    PhoneNumberType: S.optional(PhoneNumberType).pipe(T.HttpQuery("phone-number-type")),
    MaxResults: S.optional(S.Number).pipe(T.HttpQuery("max-results")),
    NextToken: S.optional(S.String).pipe(T.HttpQuery("next-token")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/search?type=phone-numbers" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "SearchAvailablePhoneNumbersRequest",
});
export const SearchAvailablePhoneNumbersResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    E164PhoneNumbers: S.optional(E164PhoneNumberList),
    NextToken: S.optional(S.String),
})).annotate({
    identifier: "SearchAvailablePhoneNumbersResponse",
});
export const UpdateAccountRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    Name: S.optional(S.String),
    DefaultLicense: S.optional(License),
}).pipe(T.all(T.Http({ method: "POST", uri: "/accounts/{AccountId}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateAccountRequest",
});
export const UpdateAccountResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Account: S.optional(Account) })).annotate({
    identifier: "UpdateAccountResponse",
});
export const UpdateAccountSettingsRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    AccountSettings: AccountSettings,
}).pipe(T.all(T.Http({ method: "PUT", uri: "/accounts/{AccountId}/settings" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateAccountSettingsRequest",
});
export const UpdateAccountSettingsResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "UpdateAccountSettingsResponse",
});
export const UpdateBotRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    BotId: S.String.pipe(T.HttpLabel("BotId")),
    Disabled: S.optional(S.Boolean),
}).pipe(T.all(T.Http({ method: "POST", uri: "/accounts/{AccountId}/bots/{BotId}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateBotRequest",
});
export const UpdateBotResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Bot: S.optional(Bot) })).annotate({
    identifier: "UpdateBotResponse",
});
export const UpdateGlobalSettingsRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    BusinessCalling: S.optional(BusinessCallingSettings),
    VoiceConnector: S.optional(VoiceConnectorSettings),
}).pipe(T.all(T.Http({ method: "PUT", uri: "/settings" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateGlobalSettingsRequest",
});
export const UpdateGlobalSettingsResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "UpdateGlobalSettingsResponse",
});
export const UpdatePhoneNumberRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    PhoneNumberId: S.String.pipe(T.HttpLabel("PhoneNumberId")),
    ProductType: S.optional(PhoneNumberProductType),
    CallingName: S.optional(SensitiveString),
}).pipe(T.all(T.Http({ method: "POST", uri: "/phone-numbers/{PhoneNumberId}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdatePhoneNumberRequest",
});
export const UpdatePhoneNumberResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ PhoneNumber: S.optional(PhoneNumber) })).annotate({
    identifier: "UpdatePhoneNumberResponse",
});
export const UpdatePhoneNumberSettingsRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ CallingName: SensitiveString }).pipe(T.all(T.Http({ method: "PUT", uri: "/settings/phone-number" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdatePhoneNumberSettingsRequest",
});
export const UpdatePhoneNumberSettingsResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "UpdatePhoneNumberSettingsResponse",
});
export const UpdateRoomRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    RoomId: S.String.pipe(T.HttpLabel("RoomId")),
    Name: S.optional(SensitiveString),
}).pipe(T.all(T.Http({ method: "POST", uri: "/accounts/{AccountId}/rooms/{RoomId}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateRoomRequest",
});
export const UpdateRoomResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Room: S.optional(Room) })).annotate({
    identifier: "UpdateRoomResponse",
});
export const UpdateRoomMembershipRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    RoomId: S.String.pipe(T.HttpLabel("RoomId")),
    MemberId: S.String.pipe(T.HttpLabel("MemberId")),
    Role: S.optional(RoomMembershipRole),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/accounts/{AccountId}/rooms/{RoomId}/memberships/{MemberId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateRoomMembershipRequest",
});
export const UpdateRoomMembershipResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ RoomMembership: S.optional(RoomMembership) })).annotate({
    identifier: "UpdateRoomMembershipResponse",
});
export const UpdateUserRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    UserId: S.String.pipe(T.HttpLabel("UserId")),
    LicenseType: S.optional(License),
    UserType: S.optional(UserType),
    AlexaForBusinessMetadata: S.optional(AlexaForBusinessMetadata),
}).pipe(T.all(T.Http({ method: "POST", uri: "/accounts/{AccountId}/users/{UserId}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateUserRequest",
});
export const UpdateUserResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ User: S.optional(User) })).annotate({
    identifier: "UpdateUserResponse",
});
export const UpdateUserSettingsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccountId: S.String.pipe(T.HttpLabel("AccountId")),
    UserId: S.String.pipe(T.HttpLabel("UserId")),
    UserSettings: UserSettings,
}).pipe(T.all(T.Http({
    method: "PUT",
    uri: "/accounts/{AccountId}/users/{UserId}/settings",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateUserSettingsRequest",
});
export const UpdateUserSettingsResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "UpdateUserSettingsResponse",
});
//# Errors
export class AccessDeniedException extends S.TaggedErrorClass()("AccessDeniedException", { Code: S.optional(ErrorCode), Message: S.optional(S.String) }).pipe(C.withAuthError) {
}
export class BadRequestException extends S.TaggedErrorClass()("BadRequestException", { Code: S.optional(ErrorCode), Message: S.optional(S.String) }).pipe(C.withBadRequestError) {
}
export class ForbiddenException extends S.TaggedErrorClass()("ForbiddenException", { Code: S.optional(ErrorCode), Message: S.optional(S.String) }).pipe(C.withAuthError) {
}
export class NotFoundException extends S.TaggedErrorClass()("NotFoundException", { Code: S.optional(ErrorCode), Message: S.optional(S.String) }).pipe(C.withBadRequestError) {
}
export class ServiceFailureException extends S.TaggedErrorClass()("ServiceFailureException", { Code: S.optional(ErrorCode), Message: S.optional(S.String) }).pipe(C.withServerError) {
}
export class ServiceUnavailableException extends S.TaggedErrorClass()("ServiceUnavailableException", { Code: S.optional(ErrorCode), Message: S.optional(S.String) }).pipe(C.withServerError) {
}
export class ThrottledClientException extends S.TaggedErrorClass()("ThrottledClientException", { Code: S.optional(ErrorCode), Message: S.optional(S.String) }).pipe(C.withThrottlingError) {
}
export class UnauthorizedClientException extends S.TaggedErrorClass()("UnauthorizedClientException", { Code: S.optional(ErrorCode), Message: S.optional(S.String) }).pipe(C.withAuthError) {
}
export class ResourceLimitExceededException extends S.TaggedErrorClass()("ResourceLimitExceededException", { Code: S.optional(ErrorCode), Message: S.optional(S.String) }).pipe(C.withBadRequestError) {
}
export class ConflictException extends S.TaggedErrorClass()("ConflictException", { Code: S.optional(ErrorCode), Message: S.optional(S.String) }).pipe(C.withConflictError) {
}
export class UnprocessableEntityException extends S.TaggedErrorClass()("UnprocessableEntityException", { Code: S.optional(ErrorCode), Message: S.optional(S.String) }).pipe(C.withBadRequestError) {
}
/**
 * Associates a phone number with the specified Amazon Chime user.
 */
export const associatePhoneNumberWithUser = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: AssociatePhoneNumberWithUserRequest,
    output: AssociatePhoneNumberWithUserResponse,
    errors: [
        AccessDeniedException,
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Associates the specified sign-in delegate groups with the specified Amazon Chime account.
 */
export const associateSigninDelegateGroupsWithAccount = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: AssociateSigninDelegateGroupsWithAccountRequest,
    output: AssociateSigninDelegateGroupsWithAccountResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Adds up to 50 members to a chat room in an Amazon Chime Enterprise account. Members can be users or bots. The member role designates whether the member is a
 * chat room administrator or a general chat room member.
 */
export const batchCreateRoomMembership = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: BatchCreateRoomMembershipRequest,
    output: BatchCreateRoomMembershipResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Moves phone numbers into the
 * **Deletion queue**. Phone numbers must be disassociated from any users or Amazon Chime Voice Connectors before they can be deleted.
 *
 * Phone numbers remain in the
 * **Deletion queue** for 7 days before they are deleted permanently.
 */
export const batchDeletePhoneNumber = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: BatchDeletePhoneNumberRequest,
    output: BatchDeletePhoneNumberResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Suspends up to 50 users from a `Team` or `EnterpriseLWA` Amazon Chime
 * account. For more information about different account types, see Managing Your Amazon Chime Accounts in the Amazon Chime Administration
 * Guide.
 *
 * Users suspended from a `Team` account are disassociated from the account,but they
 * can continue to use Amazon Chime as free users. To remove the suspension from suspended
 * `Team` account users, invite them to the `Team` account again.
 * You can use the InviteUsers action to do so.
 *
 * Users suspended from an `EnterpriseLWA` account are immediately signed out of
 * Amazon Chime and can no longer sign in. To remove the suspension from suspended `EnterpriseLWA` account users, use the
 * BatchUnsuspendUser action.
 *
 * To sign out users without suspending them, use the
 * LogoutUser action.
 */
export const batchSuspendUser = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: BatchSuspendUserRequest,
    output: BatchSuspendUserResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Removes the suspension from up to 50 previously suspended users for the specified Amazon
 * Chime `EnterpriseLWA` account. Only users on `EnterpriseLWA`
 * accounts can be unsuspended using this action. For more information about different account types, see
 *
 * Managing Your Amazon Chime Accounts
 * in the account types, in the *Amazon Chime Administration Guide*.
 *
 * Previously suspended users who are unsuspended using this action are returned to
 * `Registered`
 * status. Users who are not previously suspended are ignored.
 */
export const batchUnsuspendUser = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: BatchUnsuspendUserRequest,
    output: BatchUnsuspendUserResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Updates phone number product types or calling names. You can update one attribute at a time for each `UpdatePhoneNumberRequestItem`. For example, you can update the product type or the calling name.
 *
 * For toll-free numbers, you cannot use the Amazon Chime Business Calling product type. For numbers outside the U.S., you must use the Amazon Chime SIP Media Application Dial-In product type.
 *
 * Updates to outbound calling names can take up to 72 hours to complete. Pending updates to outbound calling names must be complete before you can request another update.
 */
export const batchUpdatePhoneNumber = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: BatchUpdatePhoneNumberRequest,
    output: BatchUpdatePhoneNumberResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Updates user details within the UpdateUserRequestItem object for up to 20 users for the specified Amazon Chime account. Currently, only `LicenseType` updates are supported for this action.
 */
export const batchUpdateUser = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: BatchUpdateUserRequest,
    output: BatchUpdateUserResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Creates an Amazon Chime account under the administrator's AWS account. Only `Team`
 * account types are currently supported for this action. For more information about different account types, see
 * Managing Your Amazon Chime Accounts in the Amazon Chime
 * Administration Guide.
 */
export const createAccount = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateAccountRequest,
    output: CreateAccountResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Creates a bot for an Amazon Chime Enterprise account.
 */
export const createBot = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateBotRequest,
    output: CreateBotResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ResourceLimitExceededException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Uses the join token and call metadata in a meeting request (From number, To number, and so forth) to initiate an outbound call to a public
 * switched telephone network (PSTN) and join them into a Chime meeting. Also ensures that the From number belongs to the customer.
 *
 * To play welcome audio or implement an interactive voice response (IVR), use the
 * `CreateSipMediaApplicationCall` action with the corresponding SIP media application ID.
 *
 * **This API is not available in a dedicated namespace.**
 */
export const createMeetingDialOut = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateMeetingDialOutRequest,
    output: CreateMeetingDialOutResponse,
    errors: [
        AccessDeniedException,
        BadRequestException,
        ForbiddenException,
        ResourceLimitExceededException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Creates an order for phone numbers to be provisioned. For toll-free numbers, you cannot use the Amazon Chime Business Calling product type.
 * For numbers outside the U.S., you must use the Amazon Chime SIP Media Application Dial-In product type.
 */
export const createPhoneNumberOrder = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreatePhoneNumberOrderRequest,
    output: CreatePhoneNumberOrderResponse,
    errors: [
        AccessDeniedException,
        BadRequestException,
        ForbiddenException,
        ResourceLimitExceededException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Creates a chat room for the specified Amazon Chime Enterprise account.
 */
export const createRoom = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateRoomRequest,
    output: CreateRoomResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ResourceLimitExceededException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Adds a member to a chat room in an Amazon Chime Enterprise account. A member can be either a user or a bot. The member role designates whether the member is a chat room administrator or a general chat room member.
 */
export const createRoomMembership = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateRoomMembershipRequest,
    output: CreateRoomMembershipResponse,
    errors: [
        BadRequestException,
        ConflictException,
        ForbiddenException,
        NotFoundException,
        ResourceLimitExceededException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Creates a user under the specified Amazon Chime account.
 */
export const createUser = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateUserRequest,
    output: CreateUserResponse,
    errors: [
        BadRequestException,
        ConflictException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Deletes the specified Amazon Chime account. You must suspend all users before deleting
 * `Team` account. You can use the BatchSuspendUser action
 * to dodo.
 *
 * For `EnterpriseLWA` and `EnterpriseAD` accounts, you must release the
 * claimed domains for your Amazon Chime account before deletion. As soon as you release
 * the domain, all users under that account are suspended.
 *
 * Deleted accounts appear in your `Disabled` accounts list for 90 days. To restore
 * deleted account from your `Disabled` accounts list, you must contact AWS
 * Support.
 *
 * After 90 days, deleted accounts are permanently removed from your
 * `Disabled` accounts list.
 */
export const deleteAccount = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteAccountRequest,
    output: DeleteAccountResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
        UnprocessableEntityException,
    ],
}));
/**
 * Deletes the events configuration that allows a bot to receive outgoing events.
 */
export const deleteEventsConfiguration = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteEventsConfigurationRequest,
    output: DeleteEventsConfigurationResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        ResourceLimitExceededException,
        ServiceFailureException,
        ServiceUnavailableException,
        UnauthorizedClientException,
    ],
}));
/**
 * Moves the specified phone number into the **Deletion queue**. A
 * phone number must be disassociated from any users or Amazon Chime Voice Connectors
 * before it can be deleted.
 *
 * Deleted phone numbers remain in the
 * **Deletion queue**
 * for 7 days before they are deleted permanently.
 */
export const deletePhoneNumber = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeletePhoneNumberRequest,
    output: DeletePhoneNumberResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Deletes a chat room in an Amazon Chime Enterprise account.
 */
export const deleteRoom = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteRoomRequest,
    output: DeleteRoomResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Removes a member from a chat room in an Amazon Chime Enterprise account.
 */
export const deleteRoomMembership = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteRoomMembershipRequest,
    output: DeleteRoomMembershipResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Disassociates the primary provisioned phone number from the specified Amazon Chime user.
 */
export const disassociatePhoneNumberFromUser = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DisassociatePhoneNumberFromUserRequest,
    output: DisassociatePhoneNumberFromUserResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Disassociates the specified sign-in delegate groups from the specified Amazon Chime account.
 */
export const disassociateSigninDelegateGroupsFromAccount = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DisassociateSigninDelegateGroupsFromAccountRequest,
    output: DisassociateSigninDelegateGroupsFromAccountResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Retrieves details for the specified Amazon Chime account, such as account type and supported
 * licenses.
 */
export const getAccount = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetAccountRequest,
    output: GetAccountResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Retrieves account settings for the specified Amazon Chime account ID, such as remote control
 * and dialout settings. For more information about these settings, see
 * Use the Policies Page in the *Amazon Chime Administration Guide*.
 */
export const getAccountSettings = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetAccountSettingsRequest,
    output: GetAccountSettingsResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Retrieves details for the specified bot, such as bot email address, bot type, status, and display name.
 */
export const getBot = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetBotRequest,
    output: GetBotResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Gets details for an events configuration that allows a bot to receive outgoing events, such as an HTTPS endpoint or Lambda function ARN.
 */
export const getEventsConfiguration = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetEventsConfigurationRequest,
    output: GetEventsConfigurationResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ResourceLimitExceededException,
        ServiceFailureException,
        ServiceUnavailableException,
        UnauthorizedClientException,
    ],
}));
/**
 * Retrieves global settings for the administrator's AWS account, such as Amazon Chime Business
 * Calling and Amazon Chime Voice Connector settings.
 */
export const getGlobalSettings = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetGlobalSettingsRequest,
    output: GetGlobalSettingsResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Retrieves details for the specified phone number ID, such as associations, capabilities, and product type.
 */
export const getPhoneNumber = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetPhoneNumberRequest,
    output: GetPhoneNumberResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Retrieves details for the specified phone number order, such as the order creation timestamp, phone
 * numbers in E.164 format, product type, and order status.
 */
export const getPhoneNumberOrder = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetPhoneNumberOrderRequest,
    output: GetPhoneNumberOrderResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Retrieves the phone number settings for the administrator's AWS account, such as the default outbound calling name.
 */
export const getPhoneNumberSettings = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetPhoneNumberSettingsRequest,
    output: GetPhoneNumberSettingsResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Gets the retention settings for the specified Amazon Chime Enterprise account. For more information about retention settings, see
 * Managing Chat Retention Policies in the *Amazon Chime Administration Guide*.
 */
export const getRetentionSettings = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetRetentionSettingsRequest,
    output: GetRetentionSettingsResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Retrieves room details, such as the room name, for a room in an Amazon Chime Enterprise account.
 */
export const getRoom = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetRoomRequest,
    output: GetRoomResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Retrieves details for the specified user ID, such as primary email address, license type,and personal meeting PIN.
 *
 * To retrieve user details with an email address instead of a user ID, use the
 * ListUsers action, and then filter by email address.
 */
export const getUser = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetUserRequest,
    output: GetUserResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Retrieves settings for the specified user ID, such as any associated phone number settings.
 */
export const getUserSettings = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetUserSettingsRequest,
    output: GetUserSettingsResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Sends email to a maximum of 50 users, inviting them to the specified Amazon Chime
 * `Team` account. Only `Team` account types are currently
 * supported for this action.
 */
export const inviteUsers = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: InviteUsersRequest,
    output: InviteUsersResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Lists the Amazon Chime accounts under the administrator's AWS account. You can filter accounts
 * by account name prefix. To find out which Amazon Chime account a user belongs to, you can
 * filter by the user's email address, which returns one account result.
 */
export const listAccounts = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListAccountsRequest,
    output: ListAccountsResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        pageSize: "MaxResults",
    },
}));
/**
 * Lists the bots associated with the administrator's Amazon Chime Enterprise account ID.
 */
export const listBots = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListBotsRequest,
    output: ListBotsResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        pageSize: "MaxResults",
    },
}));
/**
 * Lists the phone number orders for the administrator's Amazon Chime account.
 */
export const listPhoneNumberOrders = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListPhoneNumberOrdersRequest,
    output: ListPhoneNumberOrdersResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        pageSize: "MaxResults",
    },
}));
/**
 * Lists the phone numbers for the specified Amazon Chime account, Amazon Chime user, Amazon Chime Voice Connector, or Amazon Chime Voice Connector group.
 */
export const listPhoneNumbers = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListPhoneNumbersRequest,
    output: ListPhoneNumbersResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        pageSize: "MaxResults",
    },
}));
/**
 * Lists the membership details for the specified room in an Amazon Chime Enterprise account,
 * such as the members' IDs, email addresses, and names.
 */
export const listRoomMemberships = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListRoomMembershipsRequest,
    output: ListRoomMembershipsResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        pageSize: "MaxResults",
    },
}));
/**
 * Lists the room details for the specified Amazon Chime Enterprise account. Optionally, filter the results by a member ID (user ID or bot ID) to see a list of rooms that the member belongs to.
 */
export const listRooms = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListRoomsRequest,
    output: ListRoomsResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        pageSize: "MaxResults",
    },
}));
/**
 * Lists supported phone number countries.
 */
export const listSupportedPhoneNumberCountries = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: ListSupportedPhoneNumberCountriesRequest,
    output: ListSupportedPhoneNumberCountriesResponse,
    errors: [
        AccessDeniedException,
        BadRequestException,
        ForbiddenException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Lists the users that belong to the specified Amazon Chime account. You can specify an email
 * address to list only the user that the email address belongs to.
 */
export const listUsers = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListUsersRequest,
    output: ListUsersResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        pageSize: "MaxResults",
    },
}));
/**
 * Logs out the specified user from all of the devices they are currently logged into.
 */
export const logoutUser = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: LogoutUserRequest,
    output: LogoutUserResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Creates an events configuration that allows a bot to receive outgoing events sent by Amazon
 * Chime. Choose either an HTTPS endpoint or a Lambda function ARN. For more information,
 * see Bot.
 */
export const putEventsConfiguration = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: PutEventsConfigurationRequest,
    output: PutEventsConfigurationResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ResourceLimitExceededException,
        ServiceFailureException,
        ServiceUnavailableException,
        UnauthorizedClientException,
    ],
}));
/**
 * Puts retention settings for the specified Amazon Chime Enterprise account. We recommend using AWS CloudTrail to monitor usage of this API for your account. For more information, see
 * Logging Amazon Chime API Calls with AWS CloudTrail
 * in the *Amazon Chime Administration Guide*.
 *
 * To turn off existing retention settings, remove the number of days from the corresponding
 * **RetentionDays**
 * field in the
 * **RetentionSettings**
 * object. For more information about retention settings, see
 * Managing Chat Retention Policies
 * in the *Amazon Chime Administration Guide*.
 */
export const putRetentionSettings = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: PutRetentionSettingsRequest,
    output: PutRetentionSettingsResponse,
    errors: [
        BadRequestException,
        ConflictException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Redacts the specified message from the specified Amazon Chime conversation.
 */
export const redactConversationMessage = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: RedactConversationMessageRequest,
    output: RedactConversationMessageResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Redacts the specified message from the specified Amazon Chime channel.
 */
export const redactRoomMessage = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: RedactRoomMessageRequest,
    output: RedactRoomMessageResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Regenerates the security token for a bot.
 */
export const regenerateSecurityToken = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: RegenerateSecurityTokenRequest,
    output: RegenerateSecurityTokenResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Resets the personal meeting PIN for the specified user on an Amazon Chime account. Returns
 * the User object with the updated personal meeting PIN.
 */
export const resetPersonalPIN = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: ResetPersonalPINRequest,
    output: ResetPersonalPINResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Moves a phone number from the **Deletion queue** back into the
 * phone number **Inventory**.
 */
export const restorePhoneNumber = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: RestorePhoneNumberRequest,
    output: RestorePhoneNumberResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ResourceLimitExceededException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Searches for phone numbers that can be ordered. For US numbers, provide at least one of
 * the following search filters: `AreaCode`, `City`,
 * `State`, or `TollFreePrefix`. If you provide
 * `City`, you must also provide `State`. Numbers outside the US only
 * support the `PhoneNumberType` filter, which you must use.
 */
export const searchAvailablePhoneNumbers = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: SearchAvailablePhoneNumbersRequest,
    output: SearchAvailablePhoneNumbersResponse,
    errors: [
        AccessDeniedException,
        BadRequestException,
        ForbiddenException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        pageSize: "MaxResults",
    },
}));
/**
 * Updates account details for the specified Amazon Chime account. Currently, only account name and default license updates are supported for this action.
 */
export const updateAccount = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateAccountRequest,
    output: UpdateAccountResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Updates the settings for the specified Amazon Chime account. You can update settings for
 * remote control of shared screens, or for the dial-out option. For more information about
 * these settings, see Use
 * the Policies Page in the Amazon Chime Administration
 * Guide.
 */
export const updateAccountSettings = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateAccountSettingsRequest,
    output: UpdateAccountSettingsResponse,
    errors: [
        BadRequestException,
        ConflictException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Updates the status of the specified bot, such as starting or stopping the bot from running in your Amazon Chime Enterprise account.
 */
export const updateBot = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateBotRequest,
    output: UpdateBotResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Updates global settings for the administrator's AWS account, such as Amazon Chime Business Calling and Amazon Chime Voice Connector settings.
 */
export const updateGlobalSettings = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateGlobalSettingsRequest,
    output: UpdateGlobalSettingsResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Updates phone number details, such as product type or calling name, for the specified phone number ID. You can update one phone number detail at a time. For example, you can update either the product type or the calling name in one action.
 *
 * For toll-free numbers, you cannot use the Amazon Chime Business Calling product type. For numbers outside the U.S., you must use the Amazon Chime SIP Media Application Dial-In product type.
 *
 * Updates to outbound calling names can take 72 hours to complete. Pending updates to outbound calling names must be complete before you can request another update.
 */
export const updatePhoneNumber = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdatePhoneNumberRequest,
    output: UpdatePhoneNumberResponse,
    errors: [
        BadRequestException,
        ConflictException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Updates the phone number settings for the administrator's AWS account, such as the default
 * outbound calling name. You can update the default outbound calling name once every seven
 * days. Outbound calling names can take up to 72 hours to update.
 */
export const updatePhoneNumberSettings = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdatePhoneNumberSettingsRequest,
    output: UpdatePhoneNumberSettingsResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Updates room details, such as the room name, for a room in an Amazon Chime Enterprise account.
 */
export const updateRoom = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateRoomRequest,
    output: UpdateRoomResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Updates room membership details, such as the member role, for a room in an Amazon Chime
 * Enterprise account. The member role designates whether the member is a chat room
 * administrator or a general chat room member. The member role can be updated only for
 * user IDs.
 */
export const updateRoomMembership = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateRoomMembershipRequest,
    output: UpdateRoomMembershipResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Updates user details for a specified user ID. Currently, only `LicenseType` updates are supported for this action.
 */
export const updateUser = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateUserRequest,
    output: UpdateUserResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
/**
 * Updates the settings for the specified user, such as phone number settings.
 */
export const updateUserSettings = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateUserSettingsRequest,
    output: UpdateUserSettingsResponse,
    errors: [
        BadRequestException,
        ForbiddenException,
        NotFoundException,
        ServiceFailureException,
        ServiceUnavailableException,
        ThrottledClientException,
        UnauthorizedClientException,
    ],
}));
//# sourceMappingURL=chime.js.map