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 ns = T.XmlNamespace("http://wheatley.amazonaws.com/orchestration/2017-10-11/");
const svc = T.AwsApiService({
    sdkId: "chatbot",
    serviceShapeName: "WheatleyOrchestration_20171011",
});
const auth = T.AwsAuthSigv4({ name: "chatbot" });
const ver = T.ServiceVersion("2017-10-11");
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 (UseFIPS === true && UseDualStack === true) {
                    if (true === _.getAttr(PartitionResult, "supportsFIPS") &&
                        true === _.getAttr(PartitionResult, "supportsDualStack")) {
                        return e(`https://chatbot-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://chatbot-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://chatbot.${Region}.${_.getAttr(PartitionResult, "dualStackDnsSuffix")}`);
                    }
                    return err("DualStack is enabled but this partition does not support DualStack");
                }
                return e(`https://chatbot.${Region}.${_.getAttr(PartitionResult, "dnsSuffix")}`);
            }
        }
    }
    return err("Invalid Configuration: Missing Region");
});
export const AssociateToConfigurationRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Resource: S.String, ChatConfiguration: S.String }).pipe(T.all(ns, T.Http({ method: "POST", uri: "/associate-to-configuration" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "AssociateToConfigurationRequest",
});
export const AssociateToConfigurationResult = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({}).pipe(ns)).annotate({
    identifier: "AssociateToConfigurationResult",
});
export const SnsTopicArnList = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const Tag = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ TagKey: S.String, TagValue: S.String })).annotate({ identifier: "Tag" });
export const Tags = /*@__PURE__*/ /*#__PURE__*/ S.Array(Tag);
export const CreateChimeWebhookConfigurationRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    WebhookDescription: SensitiveString,
    WebhookUrl: SensitiveString,
    SnsTopicArns: SnsTopicArnList,
    IamRoleArn: S.String,
    ConfigurationName: S.String,
    LoggingLevel: S.optional(S.String),
    Tags: S.optional(Tags),
}).pipe(T.all(ns, T.Http({ method: "POST", uri: "/create-chime-webhook-configuration" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateChimeWebhookConfigurationRequest",
});
export const ChimeWebhookConfiguration = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    WebhookDescription: SensitiveString,
    ChatConfigurationArn: S.String,
    IamRoleArn: S.String,
    SnsTopicArns: SnsTopicArnList,
    ConfigurationName: S.optional(S.String),
    LoggingLevel: S.optional(S.String),
    Tags: S.optional(Tags),
    State: S.optional(S.String),
    StateReason: S.optional(S.String),
})).annotate({
    identifier: "ChimeWebhookConfiguration",
});
export const CreateChimeWebhookConfigurationResult = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    WebhookConfiguration: S.optional(ChimeWebhookConfiguration),
}).pipe(ns)).annotate({
    identifier: "CreateChimeWebhookConfigurationResult",
});
export const GuardrailPolicyArnList = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const CreateTeamsChannelConfigurationRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ChannelId: S.String,
    ChannelName: S.optional(SensitiveString),
    TeamId: S.String,
    TeamName: S.optional(SensitiveString),
    TenantId: S.String,
    SnsTopicArns: S.optional(SnsTopicArnList),
    IamRoleArn: S.String,
    ConfigurationName: S.String,
    LoggingLevel: S.optional(S.String),
    GuardrailPolicyArns: S.optional(GuardrailPolicyArnList),
    UserAuthorizationRequired: S.optional(S.Boolean),
    Tags: S.optional(Tags),
}).pipe(T.all(ns, T.Http({
    method: "POST",
    uri: "/create-ms-teams-channel-configuration",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateTeamsChannelConfigurationRequest",
});
export const TeamsChannelConfiguration = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ChannelId: S.String,
    ChannelName: S.optional(SensitiveString),
    TeamId: S.String,
    TeamName: S.optional(SensitiveString),
    TenantId: S.String,
    ChatConfigurationArn: S.String,
    IamRoleArn: S.String,
    SnsTopicArns: SnsTopicArnList,
    ConfigurationName: S.optional(S.String),
    LoggingLevel: S.optional(S.String),
    GuardrailPolicyArns: S.optional(GuardrailPolicyArnList),
    UserAuthorizationRequired: S.optional(S.Boolean),
    Tags: S.optional(Tags),
    State: S.optional(S.String),
    StateReason: S.optional(S.String),
})).annotate({
    identifier: "TeamsChannelConfiguration",
});
export const CreateTeamsChannelConfigurationResult = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ChannelConfiguration: S.optional(TeamsChannelConfiguration),
}).pipe(ns)).annotate({
    identifier: "CreateTeamsChannelConfigurationResult",
});
export const CreateSlackChannelConfigurationRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    SlackTeamId: S.String,
    SlackChannelId: S.String,
    SlackChannelName: S.optional(SensitiveString),
    SnsTopicArns: S.optional(SnsTopicArnList),
    IamRoleArn: S.String,
    ConfigurationName: S.String,
    LoggingLevel: S.optional(S.String),
    GuardrailPolicyArns: S.optional(GuardrailPolicyArnList),
    UserAuthorizationRequired: S.optional(S.Boolean),
    Tags: S.optional(Tags),
}).pipe(T.all(ns, T.Http({ method: "POST", uri: "/create-slack-channel-configuration" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateSlackChannelConfigurationRequest",
});
export const SlackChannelConfiguration = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    SlackTeamName: S.String,
    SlackTeamId: S.String,
    SlackChannelId: S.String,
    SlackChannelName: SensitiveString,
    ChatConfigurationArn: S.String,
    IamRoleArn: S.String,
    SnsTopicArns: SnsTopicArnList,
    ConfigurationName: S.optional(S.String),
    LoggingLevel: S.optional(S.String),
    GuardrailPolicyArns: S.optional(GuardrailPolicyArnList),
    UserAuthorizationRequired: S.optional(S.Boolean),
    Tags: S.optional(Tags),
    State: S.optional(S.String),
    StateReason: S.optional(S.String),
})).annotate({
    identifier: "SlackChannelConfiguration",
});
export const CreateSlackChannelConfigurationResult = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ChannelConfiguration: S.optional(SlackChannelConfiguration),
}).pipe(ns)).annotate({
    identifier: "CreateSlackChannelConfigurationResult",
});
export const DeleteChimeWebhookConfigurationRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ ChatConfigurationArn: S.String }).pipe(T.all(ns, T.Http({ method: "POST", uri: "/delete-chime-webhook-configuration" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteChimeWebhookConfigurationRequest",
});
export const DeleteChimeWebhookConfigurationResult = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({}).pipe(ns)).annotate({
    identifier: "DeleteChimeWebhookConfigurationResult",
});
export const DeleteTeamsChannelConfigurationRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ ChatConfigurationArn: S.String }).pipe(T.all(ns, T.Http({
    method: "POST",
    uri: "/delete-ms-teams-channel-configuration",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteTeamsChannelConfigurationRequest",
});
export const DeleteTeamsChannelConfigurationResult = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({}).pipe(ns)).annotate({
    identifier: "DeleteTeamsChannelConfigurationResult",
});
export const DeleteTeamsConfiguredTeamRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ TeamId: S.String }).pipe(T.all(ns, T.Http({ method: "POST", uri: "/delete-ms-teams-configured-teams" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteTeamsConfiguredTeamRequest",
});
export const DeleteTeamsConfiguredTeamResult = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({}).pipe(ns)).annotate({
    identifier: "DeleteTeamsConfiguredTeamResult",
});
export const DeleteMicrosoftTeamsUserIdentityRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ ChatConfigurationArn: S.String, UserId: S.String }).pipe(T.all(ns, T.Http({ method: "POST", uri: "/delete-ms-teams-user-identity" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteMicrosoftTeamsUserIdentityRequest",
});
export const DeleteMicrosoftTeamsUserIdentityResult = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({}).pipe(ns)).annotate({
    identifier: "DeleteMicrosoftTeamsUserIdentityResult",
});
export const DeleteSlackChannelConfigurationRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ ChatConfigurationArn: S.String }).pipe(T.all(ns, T.Http({ method: "POST", uri: "/delete-slack-channel-configuration" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteSlackChannelConfigurationRequest",
});
export const DeleteSlackChannelConfigurationResult = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({}).pipe(ns)).annotate({
    identifier: "DeleteSlackChannelConfigurationResult",
});
export const DeleteSlackUserIdentityRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ChatConfigurationArn: S.String,
    SlackTeamId: S.String,
    SlackUserId: S.String,
}).pipe(T.all(ns, T.Http({ method: "POST", uri: "/delete-slack-user-identity" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteSlackUserIdentityRequest",
});
export const DeleteSlackUserIdentityResult = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({}).pipe(ns)).annotate({
    identifier: "DeleteSlackUserIdentityResult",
});
export const DeleteSlackWorkspaceAuthorizationRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ SlackTeamId: S.String }).pipe(T.all(ns, T.Http({
    method: "POST",
    uri: "/delete-slack-workspace-authorization",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteSlackWorkspaceAuthorizationRequest",
});
export const DeleteSlackWorkspaceAuthorizationResult = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({}).pipe(ns)).annotate({
    identifier: "DeleteSlackWorkspaceAuthorizationResult",
});
export const DescribeChimeWebhookConfigurationsRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    MaxResults: S.optional(S.Number),
    NextToken: S.optional(S.String),
    ChatConfigurationArn: S.optional(S.String),
}).pipe(T.all(ns, T.Http({
    method: "POST",
    uri: "/describe-chime-webhook-configurations",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "DescribeChimeWebhookConfigurationsRequest",
});
export const ChimeWebhookConfigurationList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(ChimeWebhookConfiguration);
export const DescribeChimeWebhookConfigurationsResult = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    NextToken: S.optional(S.String),
    WebhookConfigurations: S.optional(ChimeWebhookConfigurationList),
}).pipe(ns)).annotate({
    identifier: "DescribeChimeWebhookConfigurationsResult",
});
export const DescribeSlackChannelConfigurationsRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    MaxResults: S.optional(S.Number),
    NextToken: S.optional(S.String),
    ChatConfigurationArn: S.optional(S.String),
}).pipe(T.all(ns, T.Http({
    method: "POST",
    uri: "/describe-slack-channel-configurations",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "DescribeSlackChannelConfigurationsRequest",
});
export const SlackChannelConfigurationList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(SlackChannelConfiguration);
export const DescribeSlackChannelConfigurationsResult = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    NextToken: S.optional(S.String),
    SlackChannelConfigurations: S.optional(SlackChannelConfigurationList),
}).pipe(ns)).annotate({
    identifier: "DescribeSlackChannelConfigurationsResult",
});
export const DescribeSlackUserIdentitiesRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ChatConfigurationArn: S.optional(S.String),
    NextToken: S.optional(S.String),
    MaxResults: S.optional(S.Number),
}).pipe(T.all(ns, T.Http({ method: "POST", uri: "/describe-slack-user-identities" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DescribeSlackUserIdentitiesRequest",
});
export const SlackUserIdentity = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    IamRoleArn: S.String,
    ChatConfigurationArn: S.String,
    SlackTeamId: S.String,
    SlackUserId: S.String,
    AwsUserIdentity: S.optional(S.String),
})).annotate({
    identifier: "SlackUserIdentity",
});
export const SlackUserIdentitiesList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(SlackUserIdentity);
export const DescribeSlackUserIdentitiesResult = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    SlackUserIdentities: S.optional(SlackUserIdentitiesList),
    NextToken: S.optional(S.String),
}).pipe(ns)).annotate({
    identifier: "DescribeSlackUserIdentitiesResult",
});
export const DescribeSlackWorkspacesRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    MaxResults: S.optional(S.Number),
    NextToken: S.optional(S.String),
}).pipe(T.all(ns, T.Http({ method: "POST", uri: "/describe-slack-workspaces" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DescribeSlackWorkspacesRequest",
});
export const SlackWorkspace = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    SlackTeamId: S.String,
    SlackTeamName: S.String,
    State: S.optional(S.String),
    StateReason: S.optional(S.String),
})).annotate({ identifier: "SlackWorkspace" });
export const SlackWorkspacesList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(SlackWorkspace);
export const DescribeSlackWorkspacesResult = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    SlackWorkspaces: S.optional(SlackWorkspacesList),
    NextToken: S.optional(S.String),
}).pipe(ns)).annotate({
    identifier: "DescribeSlackWorkspacesResult",
});
export const DisassociateFromConfigurationRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Resource: S.String, ChatConfiguration: S.String }).pipe(T.all(ns, T.Http({ method: "POST", uri: "/disassociate-from-configuration" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DisassociateFromConfigurationRequest",
});
export const DisassociateFromConfigurationResult = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({}).pipe(ns)).annotate({
    identifier: "DisassociateFromConfigurationResult",
});
export const GetAccountPreferencesRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({}).pipe(T.all(ns, T.Http({ method: "POST", uri: "/get-account-preferences" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetAccountPreferencesRequest",
});
export const AccountPreferences = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    UserAuthorizationRequired: S.optional(S.Boolean),
    TrainingDataCollectionEnabled: S.optional(S.Boolean),
})).annotate({
    identifier: "AccountPreferences",
});
export const GetAccountPreferencesResult = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ AccountPreferences: S.optional(AccountPreferences) }).pipe(ns)).annotate({
    identifier: "GetAccountPreferencesResult",
});
export const GetTeamsChannelConfigurationRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ ChatConfigurationArn: S.String }).pipe(T.all(ns, T.Http({ method: "POST", uri: "/get-ms-teams-channel-configuration" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetTeamsChannelConfigurationRequest",
});
export const GetTeamsChannelConfigurationResult = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ChannelConfiguration: S.optional(TeamsChannelConfiguration),
}).pipe(ns)).annotate({
    identifier: "GetTeamsChannelConfigurationResult",
});
export const ListAssociationsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ChatConfiguration: S.String,
    MaxResults: S.optional(S.Number),
    NextToken: S.optional(S.String),
}).pipe(T.all(ns, T.Http({ method: "POST", uri: "/list-associations" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListAssociationsRequest",
});
export const AssociationListing = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Resource: S.String })).annotate({
    identifier: "AssociationListing",
});
export const AssociationList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(AssociationListing);
export const ListAssociationsResult = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Associations: AssociationList,
    NextToken: S.optional(S.String),
}).pipe(ns)).annotate({
    identifier: "ListAssociationsResult",
});
export const ListTeamsChannelConfigurationsRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    MaxResults: S.optional(S.Number),
    NextToken: S.optional(S.String),
    TeamId: S.optional(S.String),
}).pipe(T.all(ns, T.Http({
    method: "POST",
    uri: "/list-ms-teams-channel-configurations",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListTeamsChannelConfigurationsRequest",
});
export const TeamChannelConfigurationsList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(TeamsChannelConfiguration);
export const ListTeamsChannelConfigurationsResult = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    NextToken: S.optional(S.String),
    TeamChannelConfigurations: S.optional(TeamChannelConfigurationsList),
}).pipe(ns)).annotate({
    identifier: "ListTeamsChannelConfigurationsResult",
});
export const ListMicrosoftTeamsConfiguredTeamsRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    MaxResults: S.optional(S.Number),
    NextToken: S.optional(S.String),
}).pipe(T.all(ns, T.Http({ method: "POST", uri: "/list-ms-teams-configured-teams" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListMicrosoftTeamsConfiguredTeamsRequest",
});
export const ConfiguredTeam = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    TenantId: S.String,
    TeamId: S.String,
    TeamName: S.optional(S.String),
    State: S.optional(S.String),
    StateReason: S.optional(S.String),
})).annotate({ identifier: "ConfiguredTeam" });
export const ConfiguredTeamsList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(ConfiguredTeam);
export const ListMicrosoftTeamsConfiguredTeamsResult = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ConfiguredTeams: S.optional(ConfiguredTeamsList),
    NextToken: S.optional(S.String),
}).pipe(ns)).annotate({
    identifier: "ListMicrosoftTeamsConfiguredTeamsResult",
});
export const ListMicrosoftTeamsUserIdentitiesRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ChatConfigurationArn: S.optional(S.String),
    NextToken: S.optional(S.String),
    MaxResults: S.optional(S.Number),
}).pipe(T.all(ns, T.Http({ method: "POST", uri: "/list-ms-teams-user-identities" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListMicrosoftTeamsUserIdentitiesRequest",
});
export const TeamsUserIdentity = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    IamRoleArn: S.String,
    ChatConfigurationArn: S.String,
    TeamId: S.String,
    UserId: S.optional(S.String),
    AwsUserIdentity: S.optional(S.String),
    TeamsChannelId: S.optional(S.String),
    TeamsTenantId: S.optional(S.String),
})).annotate({
    identifier: "TeamsUserIdentity",
});
export const TeamsUserIdentitiesList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(TeamsUserIdentity);
export const ListMicrosoftTeamsUserIdentitiesResult = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    TeamsUserIdentities: S.optional(TeamsUserIdentitiesList),
    NextToken: S.optional(S.String),
}).pipe(ns)).annotate({
    identifier: "ListMicrosoftTeamsUserIdentitiesResult",
});
export const ListTagsForResourceRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ ResourceARN: S.String }).pipe(T.all(ns, T.Http({ method: "POST", uri: "/list-tags-for-resource" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListTagsForResourceRequest",
});
export const TagList = /*@__PURE__*/ /*#__PURE__*/ S.Array(Tag);
export const ListTagsForResourceResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Tags: S.optional(TagList) }).pipe(ns)).annotate({
    identifier: "ListTagsForResourceResponse",
});
export const TagResourceRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ ResourceARN: S.String, Tags: TagList }).pipe(T.all(ns, T.Http({ method: "POST", uri: "/tag-resource" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "TagResourceRequest",
});
export const TagResourceResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({}).pipe(ns)).annotate({
    identifier: "TagResourceResponse",
});
export const TagKeyList = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const UntagResourceRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ ResourceARN: S.String, TagKeys: TagKeyList }).pipe(T.all(ns, T.Http({ method: "POST", uri: "/untag-resource" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UntagResourceRequest",
});
export const UntagResourceResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({}).pipe(ns)).annotate({
    identifier: "UntagResourceResponse",
});
export const UpdateAccountPreferencesRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    UserAuthorizationRequired: S.optional(S.Boolean),
    TrainingDataCollectionEnabled: S.optional(S.Boolean),
}).pipe(T.all(ns, T.Http({ method: "POST", uri: "/update-account-preferences" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateAccountPreferencesRequest",
});
export const UpdateAccountPreferencesResult = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ AccountPreferences: S.optional(AccountPreferences) }).pipe(ns)).annotate({
    identifier: "UpdateAccountPreferencesResult",
});
export const UpdateChimeWebhookConfigurationRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ChatConfigurationArn: S.String,
    WebhookDescription: S.optional(SensitiveString),
    WebhookUrl: S.optional(SensitiveString),
    SnsTopicArns: S.optional(SnsTopicArnList),
    IamRoleArn: S.optional(S.String),
    LoggingLevel: S.optional(S.String),
}).pipe(T.all(ns, T.Http({ method: "POST", uri: "/update-chime-webhook-configuration" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateChimeWebhookConfigurationRequest",
});
export const UpdateChimeWebhookConfigurationResult = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    WebhookConfiguration: S.optional(ChimeWebhookConfiguration),
}).pipe(ns)).annotate({
    identifier: "UpdateChimeWebhookConfigurationResult",
});
export const UpdateTeamsChannelConfigurationRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ChatConfigurationArn: S.String,
    ChannelId: S.String,
    ChannelName: S.optional(SensitiveString),
    SnsTopicArns: S.optional(SnsTopicArnList),
    IamRoleArn: S.optional(S.String),
    LoggingLevel: S.optional(S.String),
    GuardrailPolicyArns: S.optional(GuardrailPolicyArnList),
    UserAuthorizationRequired: S.optional(S.Boolean),
}).pipe(T.all(ns, T.Http({
    method: "POST",
    uri: "/update-ms-teams-channel-configuration",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateTeamsChannelConfigurationRequest",
});
export const UpdateTeamsChannelConfigurationResult = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ChannelConfiguration: S.optional(TeamsChannelConfiguration),
}).pipe(ns)).annotate({
    identifier: "UpdateTeamsChannelConfigurationResult",
});
export const UpdateSlackChannelConfigurationRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ChatConfigurationArn: S.String,
    SlackChannelId: S.String,
    SlackChannelName: S.optional(SensitiveString),
    SnsTopicArns: S.optional(SnsTopicArnList),
    IamRoleArn: S.optional(S.String),
    LoggingLevel: S.optional(S.String),
    GuardrailPolicyArns: S.optional(GuardrailPolicyArnList),
    UserAuthorizationRequired: S.optional(S.Boolean),
}).pipe(T.all(ns, T.Http({ method: "POST", uri: "/update-slack-channel-configuration" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateSlackChannelConfigurationRequest",
});
export const UpdateSlackChannelConfigurationResult = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ChannelConfiguration: S.optional(SlackChannelConfiguration),
}).pipe(ns)).annotate({
    identifier: "UpdateSlackChannelConfigurationResult",
});
export const CustomActionDefinition = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ CommandText: S.String })).annotate({
    identifier: "CustomActionDefinition",
});
export const CustomActionAttachmentCriteriaOperator = 
/*@__PURE__*/ /*#__PURE__*/ S.String;
export const CustomActionAttachmentCriteria = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Operator: CustomActionAttachmentCriteriaOperator,
    VariableName: S.String,
    Value: S.optional(S.String),
})).annotate({
    identifier: "CustomActionAttachmentCriteria",
});
export const CustomActionAttachmentCriteriaList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(CustomActionAttachmentCriteria);
export const CustomActionAttachmentVariables = 
/*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, S.String.pipe(S.optional));
export const CustomActionAttachment = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    NotificationType: S.optional(S.String),
    ButtonText: S.optional(S.String),
    Criteria: S.optional(CustomActionAttachmentCriteriaList),
    Variables: S.optional(CustomActionAttachmentVariables),
})).annotate({
    identifier: "CustomActionAttachment",
});
export const CustomActionAttachmentList = /*@__PURE__*/ /*#__PURE__*/ S.Array(CustomActionAttachment);
export const CreateCustomActionRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Definition: CustomActionDefinition,
    AliasName: S.optional(S.String),
    Attachments: S.optional(CustomActionAttachmentList),
    Tags: S.optional(TagList),
    ClientToken: S.optional(S.String).pipe(T.IdempotencyToken()),
    ActionName: S.String,
}).pipe(T.all(ns, T.Http({ method: "POST", uri: "/create-custom-action" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateCustomActionRequest",
});
export const CreateCustomActionResult = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ CustomActionArn: S.String }).pipe(ns)).annotate({
    identifier: "CreateCustomActionResult",
});
export const GetCustomActionRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ CustomActionArn: S.String }).pipe(T.all(ns, T.Http({ method: "POST", uri: "/get-custom-action" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetCustomActionRequest",
});
export const CustomAction = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    CustomActionArn: S.String,
    Definition: CustomActionDefinition,
    AliasName: S.optional(S.String),
    Attachments: S.optional(CustomActionAttachmentList),
    ActionName: S.optional(S.String),
})).annotate({ identifier: "CustomAction" });
export const GetCustomActionResult = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ CustomAction: S.optional(CustomAction) }).pipe(ns)).annotate({
    identifier: "GetCustomActionResult",
});
export const UpdateCustomActionRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    CustomActionArn: S.String,
    Definition: CustomActionDefinition,
    AliasName: S.optional(S.String),
    Attachments: S.optional(CustomActionAttachmentList),
}).pipe(T.all(ns, T.Http({ method: "POST", uri: "/update-custom-action" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateCustomActionRequest",
});
export const UpdateCustomActionResult = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ CustomActionArn: S.String }).pipe(ns)).annotate({
    identifier: "UpdateCustomActionResult",
});
export const DeleteCustomActionRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ CustomActionArn: S.String }).pipe(T.all(ns, T.Http({ method: "POST", uri: "/delete-custom-action" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteCustomActionRequest",
});
export const DeleteCustomActionResult = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({}).pipe(ns)).annotate({
    identifier: "DeleteCustomActionResult",
});
export const ListCustomActionsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    MaxResults: S.optional(S.Number),
    NextToken: S.optional(S.String),
}).pipe(T.all(ns, T.Http({ method: "POST", uri: "/list-custom-actions" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListCustomActionsRequest",
});
export const CustomActionArnList = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const ListCustomActionsResult = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    CustomActions: CustomActionArnList,
    NextToken: S.optional(S.String),
}).pipe(ns)).annotate({
    identifier: "ListCustomActionsResult",
});
//# Errors
export class InternalServiceError extends S.TaggedErrorClass()("InternalServiceError", { Message: S.optional(S.String) }).pipe(C.withServerError) {
}
export class InvalidRequestException extends S.TaggedErrorClass()("InvalidRequestException", { message: S.optional(S.String) }).pipe(C.withBadRequestError) {
}
export class UnauthorizedException extends S.TaggedErrorClass()("UnauthorizedException", { message: S.optional(S.String) }).pipe(C.withAuthError) {
}
export class ConflictException extends S.TaggedErrorClass()("ConflictException", { message: S.optional(S.String) }).pipe(C.withConflictError) {
}
export class CreateChimeWebhookConfigurationException extends S.TaggedErrorClass()("CreateChimeWebhookConfigurationException", { Message: S.optional(S.String) }).pipe(C.withServerError) {
}
export class InvalidParameterException extends S.TaggedErrorClass()("InvalidParameterException", { message: S.optional(S.String) }).pipe(C.withBadRequestError) {
}
export class LimitExceededException extends S.TaggedErrorClass()("LimitExceededException", { message: S.optional(S.String) }).pipe(C.withAuthError) {
}
export class CreateTeamsChannelConfigurationException extends S.TaggedErrorClass()("CreateTeamsChannelConfigurationException", { Message: S.optional(S.String) }).pipe(C.withServerError) {
}
export class CreateSlackChannelConfigurationException extends S.TaggedErrorClass()("CreateSlackChannelConfigurationException", { Message: S.optional(S.String) }).pipe(C.withServerError) {
}
export class DeleteChimeWebhookConfigurationException extends S.TaggedErrorClass()("DeleteChimeWebhookConfigurationException", { Message: S.optional(S.String) }).pipe(C.withServerError) {
}
export class ResourceNotFoundException extends S.TaggedErrorClass()("ResourceNotFoundException", { Message: S.optional(S.String) }).pipe(C.withBadRequestError) {
}
export class DeleteTeamsChannelConfigurationException extends S.TaggedErrorClass()("DeleteTeamsChannelConfigurationException", { Message: S.optional(S.String) }).pipe(C.withServerError) {
}
export class DeleteTeamsConfiguredTeamException extends S.TaggedErrorClass()("DeleteTeamsConfiguredTeamException", { Message: S.optional(S.String) }).pipe(C.withServerError) {
}
export class DeleteMicrosoftTeamsUserIdentityException extends S.TaggedErrorClass()("DeleteMicrosoftTeamsUserIdentityException", { Message: S.optional(S.String) }).pipe(C.withServerError) {
}
export class DeleteSlackChannelConfigurationException extends S.TaggedErrorClass()("DeleteSlackChannelConfigurationException", { Message: S.optional(S.String) }).pipe(C.withServerError) {
}
export class DeleteSlackUserIdentityException extends S.TaggedErrorClass()("DeleteSlackUserIdentityException", { Message: S.optional(S.String) }).pipe(C.withServerError) {
}
export class DeleteSlackWorkspaceAuthorizationFault extends S.TaggedErrorClass()("DeleteSlackWorkspaceAuthorizationFault", { Message: S.optional(S.String) }).pipe(C.withServerError) {
}
export class DescribeChimeWebhookConfigurationsException extends S.TaggedErrorClass()("DescribeChimeWebhookConfigurationsException", { Message: S.optional(S.String) }).pipe(C.withServerError) {
}
export class DescribeSlackChannelConfigurationsException extends S.TaggedErrorClass()("DescribeSlackChannelConfigurationsException", { Message: S.optional(S.String) }).pipe(C.withServerError) {
}
export class DescribeSlackUserIdentitiesException extends S.TaggedErrorClass()("DescribeSlackUserIdentitiesException", { Message: S.optional(S.String) }).pipe(C.withServerError) {
}
export class DescribeSlackWorkspacesException extends S.TaggedErrorClass()("DescribeSlackWorkspacesException", { Message: S.optional(S.String) }).pipe(C.withServerError) {
}
export class GetAccountPreferencesException extends S.TaggedErrorClass()("GetAccountPreferencesException", { Message: S.optional(S.String) }).pipe(C.withServerError) {
}
export class GetTeamsChannelConfigurationException extends S.TaggedErrorClass()("GetTeamsChannelConfigurationException", { Message: S.optional(S.String) }).pipe(C.withServerError) {
}
export class ListTeamsChannelConfigurationsException extends S.TaggedErrorClass()("ListTeamsChannelConfigurationsException", { Message: S.optional(S.String) }).pipe(C.withServerError) {
}
export class ListMicrosoftTeamsConfiguredTeamsException extends S.TaggedErrorClass()("ListMicrosoftTeamsConfiguredTeamsException", { Message: S.optional(S.String) }).pipe(C.withServerError) {
}
export class ListMicrosoftTeamsUserIdentitiesException extends S.TaggedErrorClass()("ListMicrosoftTeamsUserIdentitiesException", { Message: S.optional(S.String) }).pipe(C.withServerError) {
}
export class ServiceUnavailableException extends S.TaggedErrorClass()("ServiceUnavailableException", { message: S.optional(S.String) }).pipe(C.withThrottlingError, C.withServerError) {
}
export class TooManyTagsException extends S.TaggedErrorClass()("TooManyTagsException", { message: S.optional(S.String) }).pipe(C.withBadRequestError) {
}
export class UpdateAccountPreferencesException extends S.TaggedErrorClass()("UpdateAccountPreferencesException", { Message: S.optional(S.String) }).pipe(C.withServerError) {
}
export class UpdateChimeWebhookConfigurationException extends S.TaggedErrorClass()("UpdateChimeWebhookConfigurationException", { Message: S.optional(S.String) }).pipe(C.withServerError) {
}
export class UpdateTeamsChannelConfigurationException extends S.TaggedErrorClass()("UpdateTeamsChannelConfigurationException", { Message: S.optional(S.String) }).pipe(C.withServerError) {
}
export class UpdateSlackChannelConfigurationException extends S.TaggedErrorClass()("UpdateSlackChannelConfigurationException", { Message: S.optional(S.String) }).pipe(C.withServerError) {
}
/**
 * Links a resource (for example, a custom action) to a channel configuration.
 */
export const associateToConfiguration = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: AssociateToConfigurationRequest,
    output: AssociateToConfigurationResult,
    errors: [
        InternalServiceError,
        InvalidRequestException,
        UnauthorizedException,
    ],
}));
/**
 * Creates an AWS Chatbot configuration for Amazon Chime.
 */
export const createChimeWebhookConfiguration = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateChimeWebhookConfigurationRequest,
    output: CreateChimeWebhookConfigurationResult,
    errors: [
        ConflictException,
        CreateChimeWebhookConfigurationException,
        InvalidParameterException,
        InvalidRequestException,
        LimitExceededException,
    ],
}));
/**
 * Creates an AWS Chatbot configuration for Microsoft Teams.
 */
export const createMicrosoftTeamsChannelConfiguration = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateTeamsChannelConfigurationRequest,
    output: CreateTeamsChannelConfigurationResult,
    errors: [
        ConflictException,
        CreateTeamsChannelConfigurationException,
        InvalidParameterException,
        InvalidRequestException,
        LimitExceededException,
    ],
}));
/**
 * Creates an AWS Chatbot confugration for Slack.
 */
export const createSlackChannelConfiguration = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateSlackChannelConfigurationRequest,
    output: CreateSlackChannelConfigurationResult,
    errors: [
        ConflictException,
        CreateSlackChannelConfigurationException,
        InvalidParameterException,
        InvalidRequestException,
        LimitExceededException,
    ],
}));
/**
 * Deletes a Amazon Chime webhook configuration for AWS Chatbot.
 */
export const deleteChimeWebhookConfiguration = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteChimeWebhookConfigurationRequest,
    output: DeleteChimeWebhookConfigurationResult,
    errors: [
        DeleteChimeWebhookConfigurationException,
        InvalidParameterException,
        InvalidRequestException,
        ResourceNotFoundException,
    ],
}));
/**
 * Deletes a Microsoft Teams channel configuration for AWS Chatbot
 */
export const deleteMicrosoftTeamsChannelConfiguration = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteTeamsChannelConfigurationRequest,
    output: DeleteTeamsChannelConfigurationResult,
    errors: [
        DeleteTeamsChannelConfigurationException,
        InvalidParameterException,
        InvalidRequestException,
        ResourceNotFoundException,
    ],
}));
/**
 * Deletes the Microsoft Teams team authorization allowing for channels to be configured in that Microsoft Teams team. Note that the Microsoft Teams team must have no channels configured to remove it.
 */
export const deleteMicrosoftTeamsConfiguredTeam = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteTeamsConfiguredTeamRequest,
    output: DeleteTeamsConfiguredTeamResult,
    errors: [DeleteTeamsConfiguredTeamException, InvalidParameterException],
}));
/**
 * Identifes a user level permission for a channel configuration.
 */
export const deleteMicrosoftTeamsUserIdentity = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteMicrosoftTeamsUserIdentityRequest,
    output: DeleteMicrosoftTeamsUserIdentityResult,
    errors: [
        DeleteMicrosoftTeamsUserIdentityException,
        InvalidParameterException,
        ResourceNotFoundException,
    ],
}));
/**
 * Deletes a Slack channel configuration for AWS Chatbot
 */
export const deleteSlackChannelConfiguration = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteSlackChannelConfigurationRequest,
    output: DeleteSlackChannelConfigurationResult,
    errors: [
        DeleteSlackChannelConfigurationException,
        InvalidParameterException,
        InvalidRequestException,
        ResourceNotFoundException,
    ],
}));
/**
 * Deletes a user level permission for a Slack channel configuration.
 */
export const deleteSlackUserIdentity = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteSlackUserIdentityRequest,
    output: DeleteSlackUserIdentityResult,
    errors: [
        DeleteSlackUserIdentityException,
        InvalidParameterException,
        ResourceNotFoundException,
    ],
}));
/**
 * Deletes the Slack workspace authorization that allows channels to be configured in that workspace. This requires all configured channels in the workspace to be deleted.
 */
export const deleteSlackWorkspaceAuthorization = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteSlackWorkspaceAuthorizationRequest,
    output: DeleteSlackWorkspaceAuthorizationResult,
    errors: [DeleteSlackWorkspaceAuthorizationFault, InvalidParameterException],
}));
/**
 * Lists Amazon Chime webhook configurations optionally filtered by ChatConfigurationArn
 */
export const describeChimeWebhookConfigurations = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: DescribeChimeWebhookConfigurationsRequest,
    output: DescribeChimeWebhookConfigurationsResult,
    errors: [
        DescribeChimeWebhookConfigurationsException,
        InvalidParameterException,
        InvalidRequestException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        items: "WebhookConfigurations",
        pageSize: "MaxResults",
    },
}));
/**
 * Lists Slack channel configurations optionally filtered by ChatConfigurationArn
 */
export const describeSlackChannelConfigurations = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: DescribeSlackChannelConfigurationsRequest,
    output: DescribeSlackChannelConfigurationsResult,
    errors: [
        DescribeSlackChannelConfigurationsException,
        InvalidParameterException,
        InvalidRequestException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        items: "SlackChannelConfigurations",
        pageSize: "MaxResults",
    },
}));
/**
 * Lists all Slack user identities with a mapped role.
 */
export const describeSlackUserIdentities = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: DescribeSlackUserIdentitiesRequest,
    output: DescribeSlackUserIdentitiesResult,
    errors: [
        DescribeSlackUserIdentitiesException,
        InvalidParameterException,
        InvalidRequestException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        items: "SlackUserIdentities",
        pageSize: "MaxResults",
    },
}));
/**
 * List all authorized Slack workspaces connected to the AWS Account onboarded with AWS Chatbot.
 */
export const describeSlackWorkspaces = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: DescribeSlackWorkspacesRequest,
    output: DescribeSlackWorkspacesResult,
    errors: [
        DescribeSlackWorkspacesException,
        InvalidParameterException,
        InvalidRequestException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        items: "SlackWorkspaces",
        pageSize: "MaxResults",
    },
}));
/**
 * Unlink a resource, for example a custom action, from a channel configuration.
 */
export const disassociateFromConfiguration = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DisassociateFromConfigurationRequest,
    output: DisassociateFromConfigurationResult,
    errors: [
        InternalServiceError,
        InvalidRequestException,
        UnauthorizedException,
    ],
}));
/**
 * Returns AWS Chatbot account preferences.
 */
export const getAccountPreferences = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetAccountPreferencesRequest,
    output: GetAccountPreferencesResult,
    errors: [GetAccountPreferencesException, InvalidRequestException],
}));
/**
 * Returns a Microsoft Teams channel configuration in an AWS account.
 */
export const getMicrosoftTeamsChannelConfiguration = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetTeamsChannelConfigurationRequest,
    output: GetTeamsChannelConfigurationResult,
    errors: [
        GetTeamsChannelConfigurationException,
        InvalidParameterException,
        InvalidRequestException,
    ],
}));
/**
 * Lists resources associated with a channel configuration.
 */
export const listAssociations = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListAssociationsRequest,
    output: ListAssociationsResult,
    errors: [],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        items: "Associations",
        pageSize: "MaxResults",
    },
}));
/**
 * Lists all AWS Chatbot Microsoft Teams channel configurations in an AWS account.
 */
export const listMicrosoftTeamsChannelConfigurations = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListTeamsChannelConfigurationsRequest,
    output: ListTeamsChannelConfigurationsResult,
    errors: [
        InvalidParameterException,
        InvalidRequestException,
        ListTeamsChannelConfigurationsException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        items: "TeamChannelConfigurations",
        pageSize: "MaxResults",
    },
}));
/**
 * Lists all authorized Microsoft Teams for an AWS Account
 */
export const listMicrosoftTeamsConfiguredTeams = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListMicrosoftTeamsConfiguredTeamsRequest,
    output: ListMicrosoftTeamsConfiguredTeamsResult,
    errors: [
        InvalidParameterException,
        InvalidRequestException,
        ListMicrosoftTeamsConfiguredTeamsException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        items: "ConfiguredTeams",
        pageSize: "MaxResults",
    },
}));
/**
 * A list all Microsoft Teams user identities with a mapped role.
 */
export const listMicrosoftTeamsUserIdentities = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListMicrosoftTeamsUserIdentitiesRequest,
    output: ListMicrosoftTeamsUserIdentitiesResult,
    errors: [
        InvalidParameterException,
        InvalidRequestException,
        ListMicrosoftTeamsUserIdentitiesException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        items: "TeamsUserIdentities",
        pageSize: "MaxResults",
    },
}));
/**
 * Lists all of the tags associated with the Amazon Resource Name (ARN) that you specify. The resource can be a user, server, or role.
 */
export const listTagsForResource = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: ListTagsForResourceRequest,
    output: ListTagsForResourceResponse,
    errors: [
        InternalServiceError,
        ResourceNotFoundException,
        ServiceUnavailableException,
    ],
}));
/**
 * Attaches a key-value pair to a resource, as identified by its Amazon Resource Name (ARN). Resources are users, servers, roles, and other entities.
 */
export const tagResource = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: TagResourceRequest,
    output: TagResourceResponse,
    errors: [
        InternalServiceError,
        ResourceNotFoundException,
        ServiceUnavailableException,
        TooManyTagsException,
    ],
}));
/**
 * Detaches a key-value pair from a resource, as identified by its Amazon Resource Name (ARN). Resources are users, servers, roles, and other entities.
 */
export const untagResource = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UntagResourceRequest,
    output: UntagResourceResponse,
    errors: [
        InternalServiceError,
        ResourceNotFoundException,
        ServiceUnavailableException,
    ],
}));
/**
 * Updates AWS Chatbot account preferences.
 */
export const updateAccountPreferences = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateAccountPreferencesRequest,
    output: UpdateAccountPreferencesResult,
    errors: [
        InvalidParameterException,
        InvalidRequestException,
        UpdateAccountPreferencesException,
    ],
}));
/**
 * Updates a Amazon Chime webhook configuration.
 */
export const updateChimeWebhookConfiguration = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateChimeWebhookConfigurationRequest,
    output: UpdateChimeWebhookConfigurationResult,
    errors: [
        InvalidParameterException,
        InvalidRequestException,
        ResourceNotFoundException,
        UpdateChimeWebhookConfigurationException,
    ],
}));
/**
 * Updates an Microsoft Teams channel configuration.
 */
export const updateMicrosoftTeamsChannelConfiguration = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateTeamsChannelConfigurationRequest,
    output: UpdateTeamsChannelConfigurationResult,
    errors: [
        InvalidParameterException,
        InvalidRequestException,
        ResourceNotFoundException,
        UpdateTeamsChannelConfigurationException,
    ],
}));
/**
 * Updates a Slack channel configuration.
 */
export const updateSlackChannelConfiguration = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateSlackChannelConfigurationRequest,
    output: UpdateSlackChannelConfigurationResult,
    errors: [
        InvalidParameterException,
        InvalidRequestException,
        ResourceNotFoundException,
        UpdateSlackChannelConfigurationException,
    ],
}));
/**
 * Creates a custom action that can be invoked as an alias or as a button on a notification.
 */
export const createCustomAction = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateCustomActionRequest,
    output: CreateCustomActionResult,
    errors: [
        ConflictException,
        InternalServiceError,
        InvalidRequestException,
        LimitExceededException,
        UnauthorizedException,
    ],
}));
/**
 * Returns a custom action.
 */
export const getCustomAction = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetCustomActionRequest,
    output: GetCustomActionResult,
    errors: [
        InternalServiceError,
        InvalidRequestException,
        ResourceNotFoundException,
        UnauthorizedException,
    ],
}));
/**
 * Updates a custom action.
 */
export const updateCustomAction = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateCustomActionRequest,
    output: UpdateCustomActionResult,
    errors: [
        InternalServiceError,
        InvalidRequestException,
        ResourceNotFoundException,
        UnauthorizedException,
    ],
}));
/**
 * Deletes a custom action.
 */
export const deleteCustomAction = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteCustomActionRequest,
    output: DeleteCustomActionResult,
    errors: [
        InternalServiceError,
        InvalidRequestException,
        ResourceNotFoundException,
        UnauthorizedException,
    ],
}));
/**
 * Lists custom actions defined in this account.
 */
export const listCustomActions = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListCustomActionsRequest,
    output: ListCustomActionsResult,
    errors: [
        InternalServiceError,
        InvalidRequestException,
        UnauthorizedException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        items: "CustomActions",
        pageSize: "MaxResults",
    },
}));
//# sourceMappingURL=chatbot.js.map