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: "Wisdom",
    serviceShapeName: "WisdomService",
});
const auth = T.AwsAuthSigv4({ name: "wisdom" });
const ver = T.ServiceVersion("2020-10-19");
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://wisdom-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://wisdom-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://wisdom.${Region}.${_.getAttr(PartitionResult, "dualStackDnsSuffix")}`);
                    }
                    return err("DualStack is enabled but this partition does not support DualStack");
                }
                return e(`https://wisdom.${Region}.${_.getAttr(PartitionResult, "dnsSuffix")}`);
            }
        }
    }
    return err("Invalid Configuration: Missing Region");
});
export const ListTagsForResourceRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ resourceArn: S.String.pipe(T.HttpLabel("resourceArn")) }).pipe(T.all(T.Http({ method: "GET", uri: "/tags/{resourceArn}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListTagsForResourceRequest",
});
export const Tags = /*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, S.String.pipe(S.optional));
export const ListTagsForResourceResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ tags: S.optional(Tags) })).annotate({
    identifier: "ListTagsForResourceResponse",
});
export const TagResourceRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    resourceArn: S.String.pipe(T.HttpLabel("resourceArn")),
    tags: Tags,
}).pipe(T.all(T.Http({ method: "POST", uri: "/tags/{resourceArn}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "TagResourceRequest",
});
export const TagResourceResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "TagResourceResponse",
});
export const TagKeyList = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const UntagResourceRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    resourceArn: S.String.pipe(T.HttpLabel("resourceArn")),
    tagKeys: TagKeyList.pipe(T.HttpQuery("tagKeys")),
}).pipe(T.all(T.Http({ method: "DELETE", uri: "/tags/{resourceArn}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UntagResourceRequest",
});
export const UntagResourceResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "UntagResourceResponse",
});
export const ServerSideEncryptionConfiguration = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ kmsKeyId: S.optional(S.String) })).annotate({
    identifier: "ServerSideEncryptionConfiguration",
});
export const CreateAssistantRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    clientToken: S.optional(S.String).pipe(T.IdempotencyToken()),
    name: S.String,
    type: S.String,
    description: S.optional(S.String),
    tags: S.optional(Tags),
    serverSideEncryptionConfiguration: S.optional(ServerSideEncryptionConfiguration),
}).pipe(T.all(T.Http({ method: "POST", uri: "/assistants" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateAssistantRequest",
});
export const AssistantIntegrationConfiguration = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ topicIntegrationArn: S.optional(S.String) })).annotate({
    identifier: "AssistantIntegrationConfiguration",
});
export const AssistantData = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    assistantId: S.String,
    assistantArn: S.String,
    name: S.String,
    type: S.String,
    status: S.String,
    description: S.optional(S.String),
    tags: S.optional(Tags),
    serverSideEncryptionConfiguration: S.optional(ServerSideEncryptionConfiguration),
    integrationConfiguration: S.optional(AssistantIntegrationConfiguration),
})).annotate({ identifier: "AssistantData" });
export const CreateAssistantResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ assistant: S.optional(AssistantData) })).annotate({
    identifier: "CreateAssistantResponse",
});
export const GetAssistantRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ assistantId: S.String.pipe(T.HttpLabel("assistantId")) }).pipe(T.all(T.Http({ method: "GET", uri: "/assistants/{assistantId}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetAssistantRequest",
});
export const GetAssistantResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ assistant: S.optional(AssistantData) })).annotate({
    identifier: "GetAssistantResponse",
});
export const DeleteAssistantRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ assistantId: S.String.pipe(T.HttpLabel("assistantId")) }).pipe(T.all(T.Http({ method: "DELETE", uri: "/assistants/{assistantId}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteAssistantRequest",
});
export const DeleteAssistantResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "DeleteAssistantResponse",
});
export const ListAssistantsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    nextToken: S.optional(S.String).pipe(T.HttpQuery("nextToken")),
    maxResults: S.optional(S.Number).pipe(T.HttpQuery("maxResults")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/assistants" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListAssistantsRequest",
});
export const AssistantSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    assistantId: S.String,
    assistantArn: S.String,
    name: S.String,
    type: S.String,
    status: S.String,
    description: S.optional(S.String),
    tags: S.optional(Tags),
    serverSideEncryptionConfiguration: S.optional(ServerSideEncryptionConfiguration),
    integrationConfiguration: S.optional(AssistantIntegrationConfiguration),
})).annotate({
    identifier: "AssistantSummary",
});
export const AssistantList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(AssistantSummary);
export const ListAssistantsResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    assistantSummaries: AssistantList,
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListAssistantsResponse",
});
export const GetRecommendationsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    assistantId: S.String.pipe(T.HttpLabel("assistantId")),
    sessionId: S.String.pipe(T.HttpLabel("sessionId")),
    maxResults: S.optional(S.Number).pipe(T.HttpQuery("maxResults")),
    waitTimeSeconds: S.optional(S.Number).pipe(T.HttpQuery("waitTimeSeconds")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/assistants/{assistantId}/sessions/{sessionId}/recommendations",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetRecommendationsRequest",
});
export const ContentReference = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    knowledgeBaseArn: S.optional(S.String),
    knowledgeBaseId: S.optional(S.String),
    contentArn: S.optional(S.String),
    contentId: S.optional(S.String),
})).annotate({
    identifier: "ContentReference",
});
export const Highlight = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    beginOffsetInclusive: S.optional(S.Number),
    endOffsetExclusive: S.optional(S.Number),
})).annotate({ identifier: "Highlight" });
export const Highlights = /*@__PURE__*/ /*#__PURE__*/ S.Array(Highlight);
export const DocumentText = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    text: S.optional(SensitiveString),
    highlights: S.optional(Highlights),
})).annotate({ identifier: "DocumentText" });
export const Document = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    contentReference: ContentReference,
    title: S.optional(DocumentText),
    excerpt: S.optional(DocumentText),
})).annotate({ identifier: "Document" });
export const RecommendationData = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    recommendationId: S.String,
    document: Document,
    relevanceScore: S.optional(S.Number),
    relevanceLevel: S.optional(S.String),
    type: S.optional(S.String),
})).annotate({
    identifier: "RecommendationData",
});
export const RecommendationList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(RecommendationData);
export const QueryRecommendationTriggerData = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ text: S.optional(SensitiveString) })).annotate({
    identifier: "QueryRecommendationTriggerData",
});
export const RecommendationTriggerData = /*@__PURE__*/ /*#__PURE__*/ S.Union([
    S.Struct({ query: QueryRecommendationTriggerData }),
]);
export const RecommendationIdList = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const RecommendationTrigger = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    id: S.String,
    type: S.String,
    source: S.String,
    data: RecommendationTriggerData,
    recommendationIds: RecommendationIdList,
})).annotate({
    identifier: "RecommendationTrigger",
});
export const RecommendationTriggerList = /*@__PURE__*/ /*#__PURE__*/ S.Array(RecommendationTrigger);
export const GetRecommendationsResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    recommendations: RecommendationList,
    triggers: S.optional(RecommendationTriggerList),
})).annotate({
    identifier: "GetRecommendationsResponse",
});
export const NotifyRecommendationsReceivedRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    assistantId: S.String.pipe(T.HttpLabel("assistantId")),
    sessionId: S.String.pipe(T.HttpLabel("sessionId")),
    recommendationIds: RecommendationIdList,
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/assistants/{assistantId}/sessions/{sessionId}/recommendations/notify",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "NotifyRecommendationsReceivedRequest",
});
export const NotifyRecommendationsReceivedError_ = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    recommendationId: S.optional(S.String),
    message: S.optional(S.String),
})).annotate({
    identifier: "NotifyRecommendationsReceivedError",
});
export const NotifyRecommendationsReceivedErrorList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(NotifyRecommendationsReceivedError_);
export const NotifyRecommendationsReceivedResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    recommendationIds: S.optional(RecommendationIdList),
    errors: S.optional(NotifyRecommendationsReceivedErrorList),
})).annotate({
    identifier: "NotifyRecommendationsReceivedResponse",
});
export const QueryAssistantRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    assistantId: S.String.pipe(T.HttpLabel("assistantId")),
    queryText: SensitiveString,
    nextToken: S.optional(S.String),
    maxResults: S.optional(S.Number),
}).pipe(T.all(T.Http({ method: "POST", uri: "/assistants/{assistantId}/query" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "QueryAssistantRequest",
});
export const ResultData = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    resultId: S.String,
    document: Document,
    relevanceScore: S.optional(S.Number),
})).annotate({ identifier: "ResultData" });
export const QueryResultsList = /*@__PURE__*/ /*#__PURE__*/ S.Array(ResultData);
export const QueryAssistantResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ results: QueryResultsList, nextToken: S.optional(S.String) })).annotate({
    identifier: "QueryAssistantResponse",
});
export const Filter = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ field: S.String, operator: S.String, value: S.String })).annotate({ identifier: "Filter" });
export const FilterList = /*@__PURE__*/ /*#__PURE__*/ S.Array(Filter);
export const SearchExpression = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ filters: FilterList })).annotate({
    identifier: "SearchExpression",
});
export const SearchSessionsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    nextToken: S.optional(S.String).pipe(T.HttpQuery("nextToken")),
    maxResults: S.optional(S.Number).pipe(T.HttpQuery("maxResults")),
    assistantId: S.String.pipe(T.HttpLabel("assistantId")),
    searchExpression: SearchExpression,
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/assistants/{assistantId}/searchSessions",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "SearchSessionsRequest",
});
export const SessionSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    sessionId: S.String,
    sessionArn: S.String,
    assistantId: S.String,
    assistantArn: S.String,
})).annotate({ identifier: "SessionSummary" });
export const SessionSummaries = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(SessionSummary);
export const SearchSessionsResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    sessionSummaries: SessionSummaries,
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "SearchSessionsResponse",
});
export const AssistantAssociationInputData = 
/*@__PURE__*/ /*#__PURE__*/ S.Union([
    S.Struct({ knowledgeBaseId: S.String }),
]);
export const CreateAssistantAssociationRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    assistantId: S.String.pipe(T.HttpLabel("assistantId")),
    associationType: S.String,
    association: AssistantAssociationInputData,
    clientToken: S.optional(S.String).pipe(T.IdempotencyToken()),
    tags: S.optional(Tags),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/assistants/{assistantId}/associations",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateAssistantAssociationRequest",
});
export const KnowledgeBaseAssociationData = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    knowledgeBaseId: S.optional(S.String),
    knowledgeBaseArn: S.optional(S.String),
})).annotate({
    identifier: "KnowledgeBaseAssociationData",
});
export const AssistantAssociationOutputData = 
/*@__PURE__*/ /*#__PURE__*/ S.Union([
    S.Struct({ knowledgeBaseAssociation: KnowledgeBaseAssociationData }),
]);
export const AssistantAssociationData = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    assistantAssociationId: S.String,
    assistantAssociationArn: S.String,
    assistantId: S.String,
    assistantArn: S.String,
    associationType: S.String,
    associationData: AssistantAssociationOutputData,
    tags: S.optional(Tags),
})).annotate({
    identifier: "AssistantAssociationData",
});
export const CreateAssistantAssociationResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ assistantAssociation: S.optional(AssistantAssociationData) })).annotate({
    identifier: "CreateAssistantAssociationResponse",
});
export const GetAssistantAssociationRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    assistantAssociationId: S.String.pipe(T.HttpLabel("assistantAssociationId")),
    assistantId: S.String.pipe(T.HttpLabel("assistantId")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/assistants/{assistantId}/associations/{assistantAssociationId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetAssistantAssociationRequest",
});
export const GetAssistantAssociationResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ assistantAssociation: S.optional(AssistantAssociationData) })).annotate({
    identifier: "GetAssistantAssociationResponse",
});
export const DeleteAssistantAssociationRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    assistantAssociationId: S.String.pipe(T.HttpLabel("assistantAssociationId")),
    assistantId: S.String.pipe(T.HttpLabel("assistantId")),
}).pipe(T.all(T.Http({
    method: "DELETE",
    uri: "/assistants/{assistantId}/associations/{assistantAssociationId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteAssistantAssociationRequest",
});
export const DeleteAssistantAssociationResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "DeleteAssistantAssociationResponse",
});
export const ListAssistantAssociationsRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    nextToken: S.optional(S.String).pipe(T.HttpQuery("nextToken")),
    maxResults: S.optional(S.Number).pipe(T.HttpQuery("maxResults")),
    assistantId: S.String.pipe(T.HttpLabel("assistantId")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/assistants/{assistantId}/associations",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListAssistantAssociationsRequest",
});
export const AssistantAssociationSummary = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    assistantAssociationId: S.String,
    assistantAssociationArn: S.String,
    assistantId: S.String,
    assistantArn: S.String,
    associationType: S.String,
    associationData: AssistantAssociationOutputData,
    tags: S.optional(Tags),
})).annotate({
    identifier: "AssistantAssociationSummary",
});
export const AssistantAssociationSummaryList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(AssistantAssociationSummary);
export const ListAssistantAssociationsResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    assistantAssociationSummaries: AssistantAssociationSummaryList,
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListAssistantAssociationsResponse",
});
export const CreateSessionRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    clientToken: S.optional(S.String).pipe(T.IdempotencyToken()),
    assistantId: S.String.pipe(T.HttpLabel("assistantId")),
    name: S.String,
    description: S.optional(S.String),
    tags: S.optional(Tags),
}).pipe(T.all(T.Http({ method: "POST", uri: "/assistants/{assistantId}/sessions" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateSessionRequest",
});
export const SessionIntegrationConfiguration = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ topicIntegrationArn: S.optional(S.String) })).annotate({
    identifier: "SessionIntegrationConfiguration",
});
export const SessionData = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    sessionArn: S.String,
    sessionId: S.String,
    name: S.String,
    description: S.optional(S.String),
    tags: S.optional(Tags),
    integrationConfiguration: S.optional(SessionIntegrationConfiguration),
})).annotate({ identifier: "SessionData" });
export const CreateSessionResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ session: S.optional(SessionData) })).annotate({
    identifier: "CreateSessionResponse",
});
export const GetSessionRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    assistantId: S.String.pipe(T.HttpLabel("assistantId")),
    sessionId: S.String.pipe(T.HttpLabel("sessionId")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/assistants/{assistantId}/sessions/{sessionId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetSessionRequest",
});
export const GetSessionResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ session: S.optional(SessionData) })).annotate({
    identifier: "GetSessionResponse",
});
export const ObjectFieldsList = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const AppIntegrationsConfiguration = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    appIntegrationArn: S.String,
    objectFields: S.optional(ObjectFieldsList),
})).annotate({
    identifier: "AppIntegrationsConfiguration",
});
export const SourceConfiguration = /*@__PURE__*/ /*#__PURE__*/ S.Union([
    S.Struct({ appIntegrations: AppIntegrationsConfiguration }),
]);
export const RenderingConfiguration = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ templateUri: S.optional(S.String) })).annotate({
    identifier: "RenderingConfiguration",
});
export const CreateKnowledgeBaseRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    clientToken: S.optional(S.String).pipe(T.IdempotencyToken()),
    name: S.String,
    knowledgeBaseType: S.String,
    sourceConfiguration: S.optional(SourceConfiguration),
    renderingConfiguration: S.optional(RenderingConfiguration),
    serverSideEncryptionConfiguration: S.optional(ServerSideEncryptionConfiguration),
    description: S.optional(S.String),
    tags: S.optional(Tags),
}).pipe(T.all(T.Http({ method: "POST", uri: "/knowledgeBases" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateKnowledgeBaseRequest",
});
export const KnowledgeBaseData = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    knowledgeBaseId: S.String,
    knowledgeBaseArn: S.String,
    name: S.String,
    knowledgeBaseType: S.String,
    status: S.String,
    lastContentModificationTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    sourceConfiguration: S.optional(SourceConfiguration),
    renderingConfiguration: S.optional(RenderingConfiguration),
    serverSideEncryptionConfiguration: S.optional(ServerSideEncryptionConfiguration),
    description: S.optional(S.String),
    tags: S.optional(Tags),
})).annotate({
    identifier: "KnowledgeBaseData",
});
export const CreateKnowledgeBaseResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ knowledgeBase: S.optional(KnowledgeBaseData) })).annotate({
    identifier: "CreateKnowledgeBaseResponse",
});
export const GetKnowledgeBaseRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    knowledgeBaseId: S.String.pipe(T.HttpLabel("knowledgeBaseId")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/knowledgeBases/{knowledgeBaseId}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetKnowledgeBaseRequest",
});
export const GetKnowledgeBaseResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ knowledgeBase: S.optional(KnowledgeBaseData) })).annotate({
    identifier: "GetKnowledgeBaseResponse",
});
export const DeleteKnowledgeBaseRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    knowledgeBaseId: S.String.pipe(T.HttpLabel("knowledgeBaseId")),
}).pipe(T.all(T.Http({ method: "DELETE", uri: "/knowledgeBases/{knowledgeBaseId}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteKnowledgeBaseRequest",
});
export const DeleteKnowledgeBaseResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "DeleteKnowledgeBaseResponse",
});
export const ListKnowledgeBasesRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    nextToken: S.optional(S.String).pipe(T.HttpQuery("nextToken")),
    maxResults: S.optional(S.Number).pipe(T.HttpQuery("maxResults")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/knowledgeBases" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListKnowledgeBasesRequest",
});
export const KnowledgeBaseSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    knowledgeBaseId: S.String,
    knowledgeBaseArn: S.String,
    name: S.String,
    knowledgeBaseType: S.String,
    status: S.String,
    sourceConfiguration: S.optional(SourceConfiguration),
    renderingConfiguration: S.optional(RenderingConfiguration),
    serverSideEncryptionConfiguration: S.optional(ServerSideEncryptionConfiguration),
    description: S.optional(S.String),
    tags: S.optional(Tags),
})).annotate({
    identifier: "KnowledgeBaseSummary",
});
export const KnowledgeBaseList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(KnowledgeBaseSummary);
export const ListKnowledgeBasesResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    knowledgeBaseSummaries: KnowledgeBaseList,
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListKnowledgeBasesResponse",
});
export const DeleteImportJobRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    knowledgeBaseId: S.String.pipe(T.HttpLabel("knowledgeBaseId")),
    importJobId: S.String.pipe(T.HttpLabel("importJobId")),
}).pipe(T.all(T.Http({
    method: "DELETE",
    uri: "/knowledgeBases/{knowledgeBaseId}/importJobs/{importJobId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteImportJobRequest",
});
export const DeleteImportJobResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "DeleteImportJobResponse",
});
export const GetImportJobRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    importJobId: S.String.pipe(T.HttpLabel("importJobId")),
    knowledgeBaseId: S.String.pipe(T.HttpLabel("knowledgeBaseId")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/knowledgeBases/{knowledgeBaseId}/importJobs/{importJobId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetImportJobRequest",
});
export const ContentMetadata = /*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, S.String.pipe(S.optional));
export const ConnectConfiguration = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ instanceId: S.optional(S.String) })).annotate({
    identifier: "ConnectConfiguration",
});
export const Configuration = /*@__PURE__*/ /*#__PURE__*/ S.Union([
    S.Struct({ connectConfiguration: ConnectConfiguration }),
]);
export const ExternalSourceConfiguration = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ source: S.String, configuration: Configuration })).annotate({
    identifier: "ExternalSourceConfiguration",
});
export const ImportJobData = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    importJobId: S.String,
    knowledgeBaseId: S.String,
    uploadId: S.String,
    knowledgeBaseArn: S.String,
    importJobType: S.String,
    status: S.String,
    url: SensitiveString,
    failedRecordReport: S.optional(SensitiveString),
    urlExpiry: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    createdTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    lastModifiedTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    metadata: S.optional(ContentMetadata),
    externalSourceConfiguration: S.optional(ExternalSourceConfiguration),
})).annotate({ identifier: "ImportJobData" });
export const GetImportJobResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ importJob: S.optional(ImportJobData) })).annotate({
    identifier: "GetImportJobResponse",
});
export const ListImportJobsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    nextToken: S.optional(S.String).pipe(T.HttpQuery("nextToken")),
    maxResults: S.optional(S.Number).pipe(T.HttpQuery("maxResults")),
    knowledgeBaseId: S.String.pipe(T.HttpLabel("knowledgeBaseId")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/knowledgeBases/{knowledgeBaseId}/importJobs",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListImportJobsRequest",
});
export const ImportJobSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    importJobId: S.String,
    knowledgeBaseId: S.String,
    uploadId: S.String,
    knowledgeBaseArn: S.String,
    importJobType: S.String,
    status: S.String,
    createdTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    lastModifiedTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    metadata: S.optional(ContentMetadata),
    externalSourceConfiguration: S.optional(ExternalSourceConfiguration),
})).annotate({
    identifier: "ImportJobSummary",
});
export const ImportJobList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(ImportJobSummary);
export const ListImportJobsResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    importJobSummaries: ImportJobList,
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListImportJobsResponse",
});
export const RemoveKnowledgeBaseTemplateUriRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    knowledgeBaseId: S.String.pipe(T.HttpLabel("knowledgeBaseId")),
}).pipe(T.all(T.Http({
    method: "DELETE",
    uri: "/knowledgeBases/{knowledgeBaseId}/templateUri",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "RemoveKnowledgeBaseTemplateUriRequest",
});
export const RemoveKnowledgeBaseTemplateUriResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "RemoveKnowledgeBaseTemplateUriResponse",
});
export const SearchContentRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    nextToken: S.optional(S.String).pipe(T.HttpQuery("nextToken")),
    maxResults: S.optional(S.Number).pipe(T.HttpQuery("maxResults")),
    knowledgeBaseId: S.String.pipe(T.HttpLabel("knowledgeBaseId")),
    searchExpression: SearchExpression,
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/knowledgeBases/{knowledgeBaseId}/search",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "SearchContentRequest",
});
export const ContentSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    contentArn: S.String,
    contentId: S.String,
    knowledgeBaseArn: S.String,
    knowledgeBaseId: S.String,
    name: S.String,
    revisionId: S.String,
    title: S.String,
    contentType: S.String,
    status: S.String,
    metadata: ContentMetadata,
    tags: S.optional(Tags),
})).annotate({ identifier: "ContentSummary" });
export const ContentSummaryList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(ContentSummary);
export const SearchContentResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    contentSummaries: ContentSummaryList,
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "SearchContentResponse",
});
export const QuickResponseQueryValueList = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const QuickResponseQueryField = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    name: S.String,
    values: QuickResponseQueryValueList,
    operator: S.String,
    allowFuzziness: S.optional(S.Boolean),
    priority: S.optional(S.String),
})).annotate({
    identifier: "QuickResponseQueryField",
});
export const QuickResponseQueryFieldList = /*@__PURE__*/ /*#__PURE__*/ S.Array(QuickResponseQueryField);
export const QuickResponseFilterValueList = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const QuickResponseFilterField = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    name: S.String,
    values: S.optional(QuickResponseFilterValueList),
    operator: S.String,
    includeNoExistence: S.optional(S.Boolean),
})).annotate({
    identifier: "QuickResponseFilterField",
});
export const QuickResponseFilterFieldList = /*@__PURE__*/ /*#__PURE__*/ S.Array(QuickResponseFilterField);
export const QuickResponseOrderField = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ name: S.String, order: S.optional(S.String) })).annotate({
    identifier: "QuickResponseOrderField",
});
export const QuickResponseSearchExpression = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    queries: S.optional(QuickResponseQueryFieldList),
    filters: S.optional(QuickResponseFilterFieldList),
    orderOnField: S.optional(QuickResponseOrderField),
})).annotate({
    identifier: "QuickResponseSearchExpression",
});
export const ContactAttributes = /*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, S.String.pipe(S.optional));
export const SearchQuickResponsesRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    knowledgeBaseId: S.String.pipe(T.HttpLabel("knowledgeBaseId")),
    searchExpression: QuickResponseSearchExpression,
    nextToken: S.optional(S.String).pipe(T.HttpQuery("nextToken")),
    maxResults: S.optional(S.Number).pipe(T.HttpQuery("maxResults")),
    attributes: S.optional(ContactAttributes),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/knowledgeBases/{knowledgeBaseId}/search/quickResponses",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "SearchQuickResponsesRequest",
});
export const QuickResponseContentProvider = /*@__PURE__*/ /*#__PURE__*/ S.Union([S.Struct({ content: SensitiveString })]);
export const QuickResponseContents = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    plainText: S.optional(QuickResponseContentProvider),
    markdown: S.optional(QuickResponseContentProvider),
})).annotate({
    identifier: "QuickResponseContents",
});
export const GroupingValues = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(SensitiveString);
export const GroupingConfiguration = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    criteria: S.optional(SensitiveString),
    values: S.optional(GroupingValues),
})).annotate({
    identifier: "GroupingConfiguration",
});
export const Channels = /*@__PURE__*/ /*#__PURE__*/ S.Array(SensitiveString);
export const ContactAttributeKeys = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const QuickResponseSearchResultData = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    quickResponseArn: S.String,
    quickResponseId: S.String,
    knowledgeBaseArn: S.String,
    knowledgeBaseId: S.String,
    name: S.String,
    contentType: S.String,
    status: S.String,
    contents: QuickResponseContents,
    createdTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    lastModifiedTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    isActive: S.Boolean,
    description: S.optional(S.String),
    groupingConfiguration: S.optional(GroupingConfiguration),
    shortcutKey: S.optional(S.String),
    lastModifiedBy: S.optional(S.String),
    channels: S.optional(Channels),
    language: S.optional(S.String),
    attributesNotInterpolated: S.optional(ContactAttributeKeys),
    attributesInterpolated: S.optional(ContactAttributeKeys),
    tags: S.optional(Tags),
})).annotate({
    identifier: "QuickResponseSearchResultData",
});
export const QuickResponseSearchResultsList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(QuickResponseSearchResultData);
export const SearchQuickResponsesResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    results: QuickResponseSearchResultsList,
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "SearchQuickResponsesResponse",
});
export const StartContentUploadRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    knowledgeBaseId: S.String.pipe(T.HttpLabel("knowledgeBaseId")),
    contentType: S.String,
    presignedUrlTimeToLive: S.optional(S.Number),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/knowledgeBases/{knowledgeBaseId}/upload",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "StartContentUploadRequest",
});
export const Headers = /*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, S.String.pipe(S.optional));
export const StartContentUploadResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    uploadId: S.String,
    url: SensitiveString,
    urlExpiry: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    headersToInclude: Headers,
})).annotate({
    identifier: "StartContentUploadResponse",
});
export const StartImportJobRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    knowledgeBaseId: S.String.pipe(T.HttpLabel("knowledgeBaseId")),
    importJobType: S.String,
    uploadId: S.String,
    clientToken: S.optional(S.String).pipe(T.IdempotencyToken()),
    metadata: S.optional(ContentMetadata),
    externalSourceConfiguration: S.optional(ExternalSourceConfiguration),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/knowledgeBases/{knowledgeBaseId}/importJobs",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "StartImportJobRequest",
});
export const StartImportJobResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ importJob: S.optional(ImportJobData) })).annotate({
    identifier: "StartImportJobResponse",
});
export const UpdateKnowledgeBaseTemplateUriRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    knowledgeBaseId: S.String.pipe(T.HttpLabel("knowledgeBaseId")),
    templateUri: S.String,
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/knowledgeBases/{knowledgeBaseId}/templateUri",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateKnowledgeBaseTemplateUriRequest",
});
export const UpdateKnowledgeBaseTemplateUriResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ knowledgeBase: S.optional(KnowledgeBaseData) })).annotate({
    identifier: "UpdateKnowledgeBaseTemplateUriResponse",
});
export const CreateContentRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    knowledgeBaseId: S.String.pipe(T.HttpLabel("knowledgeBaseId")),
    name: S.String,
    title: S.optional(S.String),
    overrideLinkOutUri: S.optional(S.String),
    metadata: S.optional(ContentMetadata),
    uploadId: S.String,
    clientToken: S.optional(S.String).pipe(T.IdempotencyToken()),
    tags: S.optional(Tags),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/knowledgeBases/{knowledgeBaseId}/contents",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateContentRequest",
});
export const ContentData = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    contentArn: S.String,
    contentId: S.String,
    knowledgeBaseArn: S.String,
    knowledgeBaseId: S.String,
    name: S.String,
    revisionId: S.String,
    title: S.String,
    contentType: S.String,
    status: S.String,
    metadata: ContentMetadata,
    tags: S.optional(Tags),
    linkOutUri: S.optional(S.String),
    url: SensitiveString,
    urlExpiry: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
})).annotate({ identifier: "ContentData" });
export const CreateContentResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ content: S.optional(ContentData) })).annotate({
    identifier: "CreateContentResponse",
});
export const GetContentRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    contentId: S.String.pipe(T.HttpLabel("contentId")),
    knowledgeBaseId: S.String.pipe(T.HttpLabel("knowledgeBaseId")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/knowledgeBases/{knowledgeBaseId}/contents/{contentId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetContentRequest",
});
export const GetContentResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ content: S.optional(ContentData) })).annotate({
    identifier: "GetContentResponse",
});
export const UpdateContentRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    knowledgeBaseId: S.String.pipe(T.HttpLabel("knowledgeBaseId")),
    contentId: S.String.pipe(T.HttpLabel("contentId")),
    revisionId: S.optional(S.String),
    title: S.optional(S.String),
    overrideLinkOutUri: S.optional(S.String),
    removeOverrideLinkOutUri: S.optional(S.Boolean),
    metadata: S.optional(ContentMetadata),
    uploadId: S.optional(S.String),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/knowledgeBases/{knowledgeBaseId}/contents/{contentId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateContentRequest",
});
export const UpdateContentResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ content: S.optional(ContentData) })).annotate({
    identifier: "UpdateContentResponse",
});
export const DeleteContentRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    knowledgeBaseId: S.String.pipe(T.HttpLabel("knowledgeBaseId")),
    contentId: S.String.pipe(T.HttpLabel("contentId")),
}).pipe(T.all(T.Http({
    method: "DELETE",
    uri: "/knowledgeBases/{knowledgeBaseId}/contents/{contentId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteContentRequest",
});
export const DeleteContentResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "DeleteContentResponse",
});
export const ListContentsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    nextToken: S.optional(S.String).pipe(T.HttpQuery("nextToken")),
    maxResults: S.optional(S.Number).pipe(T.HttpQuery("maxResults")),
    knowledgeBaseId: S.String.pipe(T.HttpLabel("knowledgeBaseId")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/knowledgeBases/{knowledgeBaseId}/contents",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListContentsRequest",
});
export const ListContentsResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    contentSummaries: ContentSummaryList,
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListContentsResponse",
});
export const GetContentSummaryRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    contentId: S.String.pipe(T.HttpLabel("contentId")),
    knowledgeBaseId: S.String.pipe(T.HttpLabel("knowledgeBaseId")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/knowledgeBases/{knowledgeBaseId}/contents/{contentId}/summary",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetContentSummaryRequest",
});
export const GetContentSummaryResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ contentSummary: S.optional(ContentSummary) })).annotate({
    identifier: "GetContentSummaryResponse",
});
export const QuickResponseDataProvider = /*@__PURE__*/ /*#__PURE__*/ S.Union([
    S.Struct({ content: SensitiveString }),
]);
export const CreateQuickResponseRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    knowledgeBaseId: S.String.pipe(T.HttpLabel("knowledgeBaseId")),
    name: S.String,
    content: QuickResponseDataProvider,
    contentType: S.optional(S.String),
    groupingConfiguration: S.optional(GroupingConfiguration),
    description: S.optional(S.String),
    shortcutKey: S.optional(S.String),
    isActive: S.optional(S.Boolean),
    channels: S.optional(Channels),
    language: S.optional(S.String),
    clientToken: S.optional(S.String).pipe(T.IdempotencyToken()),
    tags: S.optional(Tags),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/knowledgeBases/{knowledgeBaseId}/quickResponses",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateQuickResponseRequest",
});
export const QuickResponseData = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    quickResponseArn: S.String,
    quickResponseId: S.String,
    knowledgeBaseArn: S.String,
    knowledgeBaseId: S.String,
    name: S.String,
    contentType: S.String,
    status: S.String,
    createdTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    lastModifiedTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    contents: S.optional(QuickResponseContents),
    description: S.optional(S.String),
    groupingConfiguration: S.optional(GroupingConfiguration),
    shortcutKey: S.optional(S.String),
    lastModifiedBy: S.optional(S.String),
    isActive: S.optional(S.Boolean),
    channels: S.optional(Channels),
    language: S.optional(S.String),
    tags: S.optional(Tags),
})).annotate({
    identifier: "QuickResponseData",
});
export const CreateQuickResponseResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ quickResponse: S.optional(QuickResponseData) })).annotate({
    identifier: "CreateQuickResponseResponse",
});
export const GetQuickResponseRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    quickResponseId: S.String.pipe(T.HttpLabel("quickResponseId")),
    knowledgeBaseId: S.String.pipe(T.HttpLabel("knowledgeBaseId")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/knowledgeBases/{knowledgeBaseId}/quickResponses/{quickResponseId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetQuickResponseRequest",
});
export const GetQuickResponseResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ quickResponse: S.optional(QuickResponseData) })).annotate({
    identifier: "GetQuickResponseResponse",
});
export const UpdateQuickResponseRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    knowledgeBaseId: S.String.pipe(T.HttpLabel("knowledgeBaseId")),
    quickResponseId: S.String.pipe(T.HttpLabel("quickResponseId")),
    name: S.optional(S.String),
    content: S.optional(QuickResponseDataProvider),
    contentType: S.optional(S.String),
    groupingConfiguration: S.optional(GroupingConfiguration),
    removeGroupingConfiguration: S.optional(S.Boolean),
    description: S.optional(S.String),
    removeDescription: S.optional(S.Boolean),
    shortcutKey: S.optional(S.String),
    removeShortcutKey: S.optional(S.Boolean),
    isActive: S.optional(S.Boolean),
    channels: S.optional(Channels),
    language: S.optional(S.String),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/knowledgeBases/{knowledgeBaseId}/quickResponses/{quickResponseId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateQuickResponseRequest",
});
export const UpdateQuickResponseResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ quickResponse: S.optional(QuickResponseData) })).annotate({
    identifier: "UpdateQuickResponseResponse",
});
export const DeleteQuickResponseRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    knowledgeBaseId: S.String.pipe(T.HttpLabel("knowledgeBaseId")),
    quickResponseId: S.String.pipe(T.HttpLabel("quickResponseId")),
}).pipe(T.all(T.Http({
    method: "DELETE",
    uri: "/knowledgeBases/{knowledgeBaseId}/quickResponses/{quickResponseId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteQuickResponseRequest",
});
export const DeleteQuickResponseResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "DeleteQuickResponseResponse",
});
export const ListQuickResponsesRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    nextToken: S.optional(S.String).pipe(T.HttpQuery("nextToken")),
    maxResults: S.optional(S.Number).pipe(T.HttpQuery("maxResults")),
    knowledgeBaseId: S.String.pipe(T.HttpLabel("knowledgeBaseId")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/knowledgeBases/{knowledgeBaseId}/quickResponses",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListQuickResponsesRequest",
});
export const QuickResponseSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    quickResponseArn: S.String,
    quickResponseId: S.String,
    knowledgeBaseArn: S.String,
    knowledgeBaseId: S.String,
    name: S.String,
    contentType: S.String,
    status: S.String,
    createdTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    lastModifiedTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    description: S.optional(S.String),
    lastModifiedBy: S.optional(S.String),
    isActive: S.optional(S.Boolean),
    channels: S.optional(Channels),
    tags: S.optional(Tags),
})).annotate({
    identifier: "QuickResponseSummary",
});
export const QuickResponseSummaryList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(QuickResponseSummary);
export const ListQuickResponsesResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    quickResponseSummaries: QuickResponseSummaryList,
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListQuickResponsesResponse",
});
//# Errors
export class ResourceNotFoundException extends S.TaggedErrorClass()("ResourceNotFoundException", { message: S.optional(S.String), resourceName: S.optional(S.String) }).pipe(C.withBadRequestError) {
}
export class TooManyTagsException extends S.TaggedErrorClass()("TooManyTagsException", { message: S.optional(S.String), resourceName: S.optional(S.String) }).pipe(C.withBadRequestError) {
}
export class AccessDeniedException extends S.TaggedErrorClass()("AccessDeniedException", { 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 ServiceQuotaExceededException extends S.TaggedErrorClass()("ServiceQuotaExceededException", { message: S.optional(S.String) }).pipe(C.withQuotaError) {
}
export class ValidationException extends S.TaggedErrorClass()("ValidationException", { message: S.optional(S.String) }).pipe(C.withBadRequestError) {
}
export class RequestTimeoutException extends S.TaggedErrorClass()("RequestTimeoutException", { message: S.optional(S.String) }, T.Retryable()).pipe(C.withTimeoutError, C.withRetryableError) {
}
export class PreconditionFailedException extends S.TaggedErrorClass()("PreconditionFailedException", { message: S.optional(S.String) }) {
}
/**
 * Lists the tags for the specified resource.
 */
export const listTagsForResource = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: ListTagsForResourceRequest,
    output: ListTagsForResourceResponse,
    errors: [ResourceNotFoundException],
}));
/**
 * Adds the specified tags to the specified resource.
 */
export const tagResource = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: TagResourceRequest,
    output: TagResourceResponse,
    errors: [ResourceNotFoundException, TooManyTagsException],
}));
/**
 * Removes the specified tags from the specified resource.
 */
export const untagResource = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UntagResourceRequest,
    output: UntagResourceResponse,
    errors: [ResourceNotFoundException],
}));
/**
 * Creates an Amazon Connect Wisdom assistant.
 */
export const createAssistant = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateAssistantRequest,
    output: CreateAssistantResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        ServiceQuotaExceededException,
        ValidationException,
    ],
}));
/**
 * Retrieves information about an assistant.
 */
export const getAssistant = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetAssistantRequest,
    output: GetAssistantResponse,
    errors: [
        AccessDeniedException,
        ResourceNotFoundException,
        ValidationException,
    ],
}));
/**
 * Deletes an assistant.
 */
export const deleteAssistant = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteAssistantRequest,
    output: DeleteAssistantResponse,
    errors: [
        AccessDeniedException,
        ResourceNotFoundException,
        ValidationException,
    ],
}));
/**
 * Lists information about assistants.
 */
export const listAssistants = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListAssistantsRequest,
    output: ListAssistantsResponse,
    errors: [AccessDeniedException, ValidationException],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "assistantSummaries",
        pageSize: "maxResults",
    },
}));
/**
 * Retrieves recommendations for the specified session. To avoid retrieving the same
 * recommendations in subsequent calls, use NotifyRecommendationsReceived. This API supports long-polling behavior with the
 * `waitTimeSeconds` parameter. Short poll is the default behavior and only returns
 * recommendations already available. To perform a manual query against an assistant, use QueryAssistant.
 */
export const getRecommendations = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetRecommendationsRequest,
    output: GetRecommendationsResponse,
    errors: [
        AccessDeniedException,
        ResourceNotFoundException,
        ValidationException,
    ],
}));
/**
 * Removes the specified recommendations from the specified assistant's queue of newly
 * available recommendations. You can use this API in conjunction with GetRecommendations and a `waitTimeSeconds` input for long-polling
 * behavior and avoiding duplicate recommendations.
 */
export const notifyRecommendationsReceived = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: NotifyRecommendationsReceivedRequest,
    output: NotifyRecommendationsReceivedResponse,
    errors: [
        AccessDeniedException,
        ResourceNotFoundException,
        ValidationException,
    ],
}));
/**
 * Performs a manual search against the specified assistant. To retrieve recommendations for
 * an assistant, use GetRecommendations.
 */
export const queryAssistant = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: QueryAssistantRequest,
    output: QueryAssistantResponse,
    errors: [
        AccessDeniedException,
        RequestTimeoutException,
        ResourceNotFoundException,
        ValidationException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "results",
        pageSize: "maxResults",
    },
}));
/**
 * Searches for sessions.
 */
export const searchSessions = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: SearchSessionsRequest,
    output: SearchSessionsResponse,
    errors: [
        AccessDeniedException,
        ResourceNotFoundException,
        ValidationException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "sessionSummaries",
        pageSize: "maxResults",
    },
}));
/**
 * Creates an association between an Amazon Connect Wisdom assistant and another resource. Currently, the
 * only supported association is with a knowledge base. An assistant can have only a single
 * association.
 */
export const createAssistantAssociation = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateAssistantAssociationRequest,
    output: CreateAssistantAssociationResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        ResourceNotFoundException,
        ServiceQuotaExceededException,
        ValidationException,
    ],
}));
/**
 * Retrieves information about an assistant association.
 */
export const getAssistantAssociation = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetAssistantAssociationRequest,
    output: GetAssistantAssociationResponse,
    errors: [
        AccessDeniedException,
        ResourceNotFoundException,
        ValidationException,
    ],
}));
/**
 * Deletes an assistant association.
 */
export const deleteAssistantAssociation = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteAssistantAssociationRequest,
    output: DeleteAssistantAssociationResponse,
    errors: [
        AccessDeniedException,
        ResourceNotFoundException,
        ValidationException,
    ],
}));
/**
 * Lists information about assistant associations.
 */
export const listAssistantAssociations = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListAssistantAssociationsRequest,
    output: ListAssistantAssociationsResponse,
    errors: [
        AccessDeniedException,
        ResourceNotFoundException,
        ValidationException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "assistantAssociationSummaries",
        pageSize: "maxResults",
    },
}));
/**
 * Creates a session. A session is a contextual container used for generating
 * recommendations. Amazon Connect creates a new Wisdom session for each contact on which
 * Wisdom is enabled.
 */
export const createSession = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateSessionRequest,
    output: CreateSessionResponse,
    errors: [ConflictException, ResourceNotFoundException, ValidationException],
}));
/**
 * Retrieves information for a specified session.
 */
export const getSession = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetSessionRequest,
    output: GetSessionResponse,
    errors: [
        AccessDeniedException,
        ResourceNotFoundException,
        ValidationException,
    ],
}));
/**
 * Creates a knowledge base.
 *
 * When using this API, you cannot reuse Amazon AppIntegrations
 * DataIntegrations with external knowledge bases such as Salesforce and ServiceNow. If you do,
 * you'll get an `InvalidRequestException` error.
 *
 * For example, you're programmatically managing your external knowledge base, and you want
 * to add or remove one of the fields that is being ingested from Salesforce. Do the
 * following:
 *
 * - Call DeleteKnowledgeBase.
 *
 * - Call DeleteDataIntegration.
 *
 * - Call CreateDataIntegration to recreate the DataIntegration or a create different
 * one.
 *
 * - Call CreateKnowledgeBase.
 */
export const createKnowledgeBase = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateKnowledgeBaseRequest,
    output: CreateKnowledgeBaseResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        ServiceQuotaExceededException,
        ValidationException,
    ],
}));
/**
 * Retrieves information about the knowledge base.
 */
export const getKnowledgeBase = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetKnowledgeBaseRequest,
    output: GetKnowledgeBaseResponse,
    errors: [
        AccessDeniedException,
        ResourceNotFoundException,
        ValidationException,
    ],
}));
/**
 * Deletes the knowledge base.
 *
 * When you use this API to delete an external knowledge base such as Salesforce or
 * ServiceNow, you must also delete the Amazon AppIntegrations
 * DataIntegration. This is because you can't reuse the DataIntegration after it's been
 * associated with an external knowledge base. However, you can delete and recreate it. See
 * DeleteDataIntegration and CreateDataIntegration in the Amazon AppIntegrations API
 * Reference.
 */
export const deleteKnowledgeBase = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteKnowledgeBaseRequest,
    output: DeleteKnowledgeBaseResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        ResourceNotFoundException,
        ValidationException,
    ],
}));
/**
 * Lists the knowledge bases.
 */
export const listKnowledgeBases = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListKnowledgeBasesRequest,
    output: ListKnowledgeBasesResponse,
    errors: [AccessDeniedException, ValidationException],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "knowledgeBaseSummaries",
        pageSize: "maxResults",
    },
}));
/**
 * Deletes the quick response import job.
 */
export const deleteImportJob = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteImportJobRequest,
    output: DeleteImportJobResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        ResourceNotFoundException,
        ValidationException,
    ],
}));
/**
 * Retrieves the started import job.
 */
export const getImportJob = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetImportJobRequest,
    output: GetImportJobResponse,
    errors: [
        AccessDeniedException,
        ResourceNotFoundException,
        ValidationException,
    ],
}));
/**
 * Lists information about import jobs.
 */
export const listImportJobs = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListImportJobsRequest,
    output: ListImportJobsResponse,
    errors: [AccessDeniedException, ValidationException],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "importJobSummaries",
        pageSize: "maxResults",
    },
}));
/**
 * Removes a URI template from a knowledge base.
 */
export const removeKnowledgeBaseTemplateUri = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: RemoveKnowledgeBaseTemplateUriRequest,
    output: RemoveKnowledgeBaseTemplateUriResponse,
    errors: [
        AccessDeniedException,
        ResourceNotFoundException,
        ValidationException,
    ],
}));
/**
 * Searches for content in a specified knowledge base. Can be used to get a specific content
 * resource by its name.
 */
export const searchContent = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: SearchContentRequest,
    output: SearchContentResponse,
    errors: [
        AccessDeniedException,
        ResourceNotFoundException,
        ValidationException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "contentSummaries",
        pageSize: "maxResults",
    },
}));
/**
 * Searches existing Wisdom quick responses in a Wisdom knowledge base.
 */
export const searchQuickResponses = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: SearchQuickResponsesRequest,
    output: SearchQuickResponsesResponse,
    errors: [
        AccessDeniedException,
        RequestTimeoutException,
        ResourceNotFoundException,
        ValidationException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "results",
        pageSize: "maxResults",
    },
}));
/**
 * Get a URL to upload content to a knowledge base. To upload content, first make a PUT
 * request to the returned URL with your file, making sure to include the required headers. Then
 * use CreateContent to finalize the content creation process or UpdateContent to modify an existing resource. You can only upload content to a
 * knowledge base of type CUSTOM.
 */
export const startContentUpload = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: StartContentUploadRequest,
    output: StartContentUploadResponse,
    errors: [
        AccessDeniedException,
        ResourceNotFoundException,
        ValidationException,
    ],
}));
/**
 * Start an asynchronous job to import Wisdom resources from an uploaded source file. Before calling this API, use StartContentUpload to
 * upload an asset that contains the resource data.
 *
 * - For importing Wisdom quick responses, you need to upload a csv file including the quick responses. For information about how to format the csv file for importing quick responses, see Import quick responses.
 */
export const startImportJob = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: StartImportJobRequest,
    output: StartImportJobResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        ResourceNotFoundException,
        ServiceQuotaExceededException,
        ValidationException,
    ],
}));
/**
 * Updates the template URI of a knowledge base. This is only supported for knowledge bases
 * of type EXTERNAL. Include a single variable in `${variable}` format; this
 * interpolated by Wisdom using ingested content. For example, if you ingest a Salesforce
 * article, it has an `Id` value, and you can set the template URI to
 * `https://myInstanceName.lightning.force.com/lightning/r/Knowledge__kav/*${Id}*\/view`.
 */
export const updateKnowledgeBaseTemplateUri = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateKnowledgeBaseTemplateUriRequest,
    output: UpdateKnowledgeBaseTemplateUriResponse,
    errors: [
        AccessDeniedException,
        ResourceNotFoundException,
        ValidationException,
    ],
}));
/**
 * Creates Wisdom content. Before to calling this API, use StartContentUpload to
 * upload an asset.
 */
export const createContent = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateContentRequest,
    output: CreateContentResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        ResourceNotFoundException,
        ServiceQuotaExceededException,
        ValidationException,
    ],
}));
/**
 * Retrieves content, including a pre-signed URL to download the content.
 */
export const getContent = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetContentRequest,
    output: GetContentResponse,
    errors: [
        AccessDeniedException,
        ResourceNotFoundException,
        ValidationException,
    ],
}));
/**
 * Updates information about the content.
 */
export const updateContent = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateContentRequest,
    output: UpdateContentResponse,
    errors: [
        AccessDeniedException,
        PreconditionFailedException,
        ResourceNotFoundException,
        ValidationException,
    ],
}));
/**
 * Deletes the content.
 */
export const deleteContent = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteContentRequest,
    output: DeleteContentResponse,
    errors: [
        AccessDeniedException,
        ResourceNotFoundException,
        ValidationException,
    ],
}));
/**
 * Lists the content.
 */
export const listContents = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListContentsRequest,
    output: ListContentsResponse,
    errors: [
        AccessDeniedException,
        ResourceNotFoundException,
        ValidationException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "contentSummaries",
        pageSize: "maxResults",
    },
}));
/**
 * Retrieves summary information about the content.
 */
export const getContentSummary = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetContentSummaryRequest,
    output: GetContentSummaryResponse,
    errors: [
        AccessDeniedException,
        ResourceNotFoundException,
        ValidationException,
    ],
}));
/**
 * Creates a Wisdom quick response.
 */
export const createQuickResponse = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateQuickResponseRequest,
    output: CreateQuickResponseResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        ResourceNotFoundException,
        ServiceQuotaExceededException,
        ValidationException,
    ],
}));
/**
 * Retrieves the quick response.
 */
export const getQuickResponse = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetQuickResponseRequest,
    output: GetQuickResponseResponse,
    errors: [
        AccessDeniedException,
        ResourceNotFoundException,
        ValidationException,
    ],
}));
/**
 * Updates an existing Wisdom quick response.
 */
export const updateQuickResponse = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateQuickResponseRequest,
    output: UpdateQuickResponseResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        PreconditionFailedException,
        ResourceNotFoundException,
        ValidationException,
    ],
}));
/**
 * Deletes a quick response.
 */
export const deleteQuickResponse = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteQuickResponseRequest,
    output: DeleteQuickResponseResponse,
    errors: [
        AccessDeniedException,
        ResourceNotFoundException,
        ValidationException,
    ],
}));
/**
 * Lists information about quick response.
 */
export const listQuickResponses = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListQuickResponsesRequest,
    output: ListQuickResponsesResponse,
    errors: [
        AccessDeniedException,
        ResourceNotFoundException,
        ValidationException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        items: "quickResponseSummaries",
        pageSize: "maxResults",
    },
}));
//# sourceMappingURL=wisdom.js.map