"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    var desc = Object.getOwnPropertyDescriptor(m, k);
    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
      desc = { enumerable: true, get: function() { return m[k]; } };
    }
    Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
    Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
    o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
    var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function (o) {
            var ar = [];
            for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
            return ar;
        };
        return ownKeys(o);
    };
    return function (mod) {
        if (mod && mod.__esModule) return mod;
        var result = {};
        if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
        __setModuleDefault(result, mod);
        return result;
    };
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.CfnQuickResponsePropsMixin = exports.CfnMessageTemplateVersionPropsMixin = exports.CfnMessageTemplatePropsMixin = exports.CfnAIPromptVersionPropsMixin = exports.CfnAIPromptPropsMixin = exports.CfnAIGuardrailVersionPropsMixin = exports.CfnAIGuardrailPropsMixin = exports.CfnAIAgentVersionPropsMixin = exports.CfnAIAgentPropsMixin = exports.CfnKnowledgeBasePropsMixin = exports.CfnAssistantAssociationPropsMixin = exports.CfnAssistantPropsMixin = void 0;
const jsiiDeprecationWarnings = require("../../../.warnings.jsii.js");
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
/* eslint-disable @stylistic/max-len, eol-last */
const cdk = __importStar(require("aws-cdk-lib/core"));
const service = __importStar(require("aws-cdk-lib/aws-wisdom"));
/**
 * Specifies an Connect Customer Wisdom assistant.
 *
 * @cloudformationResource AWS::Wisdom::Assistant
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-assistant.html
 */
class CfnAssistantPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_wisdom.CfnAssistantPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["description", "name", "serverSideEncryptionConfiguration", "tags", "type"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::Wisdom::Assistant`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_wisdom_CfnAssistantMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnAssistantPropsMixin);
            }
            throw error;
        }
        this.props = props;
        this.strategy = (options.strategy ?? cdk.PropertyMergeStrategy.combine());
    }
    /**
     * Check if this mixin supports the given construct
     */
    supports(construct) {
        return (cdk.CfnResource.isCfnResource(construct) && service.CfnAssistant.isCfnAssistant(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnAssistantPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnAssistantPropsMixin = CfnAssistantPropsMixin;
/**
 * Specifies an association between an Connect Customer Wisdom assistant and another resource.
 *
 * Currently, the only supported association is with a knowledge base. An assistant can have only a single association.
 *
 * @cloudformationResource AWS::Wisdom::AssistantAssociation
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-assistantassociation.html
 */
class CfnAssistantAssociationPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_wisdom.CfnAssistantAssociationPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["assistantId", "association", "associationType", "tags"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::Wisdom::AssistantAssociation`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_wisdom_CfnAssistantAssociationMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnAssistantAssociationPropsMixin);
            }
            throw error;
        }
        this.props = props;
        this.strategy = (options.strategy ?? cdk.PropertyMergeStrategy.combine());
    }
    /**
     * Check if this mixin supports the given construct
     */
    supports(construct) {
        return (cdk.CfnResource.isCfnResource(construct) && service.CfnAssistantAssociation.isCfnAssistantAssociation(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnAssistantAssociationPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnAssistantAssociationPropsMixin = CfnAssistantAssociationPropsMixin;
/**
 * Specifies a knowledge base.
 *
 * @cloudformationResource AWS::Wisdom::KnowledgeBase
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-knowledgebase.html
 */
class CfnKnowledgeBasePropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_wisdom.CfnKnowledgeBasePropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["description", "knowledgeBaseType", "name", "renderingConfiguration", "serverSideEncryptionConfiguration", "sourceConfiguration", "tags", "vectorIngestionConfiguration"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::Wisdom::KnowledgeBase`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_wisdom_CfnKnowledgeBaseMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnKnowledgeBasePropsMixin);
            }
            throw error;
        }
        this.props = props;
        this.strategy = (options.strategy ?? cdk.PropertyMergeStrategy.combine());
    }
    /**
     * Check if this mixin supports the given construct
     */
    supports(construct) {
        return (cdk.CfnResource.isCfnResource(construct) && service.CfnKnowledgeBase.isCfnKnowledgeBase(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnKnowledgeBasePropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnKnowledgeBasePropsMixin = CfnKnowledgeBasePropsMixin;
/**
 * Creates an Amazon Q in Connect AI Agent.
 *
 * @cloudformationResource AWS::Wisdom::AIAgent
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aiagent.html
 */
class CfnAIAgentPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_wisdom.CfnAIAgentPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["assistantId", "configuration", "description", "name", "tags", "type"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::Wisdom::AIAgent`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_wisdom_CfnAIAgentMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnAIAgentPropsMixin);
            }
            throw error;
        }
        this.props = props;
        this.strategy = (options.strategy ?? cdk.PropertyMergeStrategy.combine());
    }
    /**
     * Check if this mixin supports the given construct
     */
    supports(construct) {
        return (cdk.CfnResource.isCfnResource(construct) && service.CfnAIAgent.isCfnAIAgent(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnAIAgentPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnAIAgentPropsMixin = CfnAIAgentPropsMixin;
/**
 * Creates and Amazon Q in Connect AI Agent version.
 *
 * @cloudformationResource AWS::Wisdom::AIAgentVersion
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aiagentversion.html
 */
class CfnAIAgentVersionPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_wisdom.CfnAIAgentVersionPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["aiAgentId", "assistantId", "modifiedTimeSeconds"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::Wisdom::AIAgentVersion`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_wisdom_CfnAIAgentVersionMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnAIAgentVersionPropsMixin);
            }
            throw error;
        }
        this.props = props;
        this.strategy = (options.strategy ?? cdk.PropertyMergeStrategy.combine());
    }
    /**
     * Check if this mixin supports the given construct
     */
    supports(construct) {
        return (cdk.CfnResource.isCfnResource(construct) && service.CfnAIAgentVersion.isCfnAIAgentVersion(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnAIAgentVersionPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnAIAgentVersionPropsMixin = CfnAIAgentVersionPropsMixin;
/**
 * Creates an Amazon Q in Connect AI Guardrail.
 *
 * @cloudformationResource AWS::Wisdom::AIGuardrail
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aiguardrail.html
 */
class CfnAIGuardrailPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_wisdom.CfnAIGuardrailPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["assistantId", "blockedInputMessaging", "blockedOutputsMessaging", "contentPolicyConfig", "contextualGroundingPolicyConfig", "description", "name", "sensitiveInformationPolicyConfig", "tags", "topicPolicyConfig", "wordPolicyConfig"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::Wisdom::AIGuardrail`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_wisdom_CfnAIGuardrailMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnAIGuardrailPropsMixin);
            }
            throw error;
        }
        this.props = props;
        this.strategy = (options.strategy ?? cdk.PropertyMergeStrategy.combine());
    }
    /**
     * Check if this mixin supports the given construct
     */
    supports(construct) {
        return (cdk.CfnResource.isCfnResource(construct) && service.CfnAIGuardrail.isCfnAIGuardrail(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnAIGuardrailPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnAIGuardrailPropsMixin = CfnAIGuardrailPropsMixin;
/**
 * Creates an Amazon Q in Connect AI Guardrail version.
 *
 * @cloudformationResource AWS::Wisdom::AIGuardrailVersion
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aiguardrailversion.html
 */
class CfnAIGuardrailVersionPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_wisdom.CfnAIGuardrailVersionPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["aiGuardrailId", "assistantId", "modifiedTimeSeconds"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::Wisdom::AIGuardrailVersion`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_wisdom_CfnAIGuardrailVersionMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnAIGuardrailVersionPropsMixin);
            }
            throw error;
        }
        this.props = props;
        this.strategy = (options.strategy ?? cdk.PropertyMergeStrategy.combine());
    }
    /**
     * Check if this mixin supports the given construct
     */
    supports(construct) {
        return (cdk.CfnResource.isCfnResource(construct) && service.CfnAIGuardrailVersion.isCfnAIGuardrailVersion(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnAIGuardrailVersionPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnAIGuardrailVersionPropsMixin = CfnAIGuardrailVersionPropsMixin;
/**
 * Creates an Amazon Q in Connect AI Prompt.
 *
 * @cloudformationResource AWS::Wisdom::AIPrompt
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aiprompt.html
 */
class CfnAIPromptPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_wisdom.CfnAIPromptPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["apiFormat", "assistantId", "description", "modelId", "name", "tags", "templateConfiguration", "templateType", "type"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::Wisdom::AIPrompt`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_wisdom_CfnAIPromptMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnAIPromptPropsMixin);
            }
            throw error;
        }
        this.props = props;
        this.strategy = (options.strategy ?? cdk.PropertyMergeStrategy.combine());
    }
    /**
     * Check if this mixin supports the given construct
     */
    supports(construct) {
        return (cdk.CfnResource.isCfnResource(construct) && service.CfnAIPrompt.isCfnAIPrompt(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnAIPromptPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnAIPromptPropsMixin = CfnAIPromptPropsMixin;
/**
 * Creates an Amazon Q in Connect AI Prompt version.
 *
 * @cloudformationResource AWS::Wisdom::AIPromptVersion
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-aipromptversion.html
 */
class CfnAIPromptVersionPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_wisdom.CfnAIPromptVersionPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["aiPromptId", "assistantId", "modifiedTimeSeconds"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::Wisdom::AIPromptVersion`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_wisdom_CfnAIPromptVersionMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnAIPromptVersionPropsMixin);
            }
            throw error;
        }
        this.props = props;
        this.strategy = (options.strategy ?? cdk.PropertyMergeStrategy.combine());
    }
    /**
     * Check if this mixin supports the given construct
     */
    supports(construct) {
        return (cdk.CfnResource.isCfnResource(construct) && service.CfnAIPromptVersion.isCfnAIPromptVersion(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnAIPromptVersionPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnAIPromptVersionPropsMixin = CfnAIPromptVersionPropsMixin;
/**
 * Creates an Amazon Q in Connect message template.
 *
 * The name of the message template has to be unique for each knowledge base. The channel subtype of the message template is immutable and cannot be modified after creation. After the message template is created, you can use the `$LATEST` qualifier to reference the created message template.
 *
 * @cloudformationResource AWS::Wisdom::MessageTemplate
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-messagetemplate.html
 */
class CfnMessageTemplatePropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_wisdom.CfnMessageTemplatePropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["channelSubtype", "content", "defaultAttributes", "description", "groupingConfiguration", "knowledgeBaseArn", "language", "messageTemplateAttachments", "name", "tags"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::Wisdom::MessageTemplate`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_wisdom_CfnMessageTemplateMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnMessageTemplatePropsMixin);
            }
            throw error;
        }
        this.props = props;
        this.strategy = (options.strategy ?? cdk.PropertyMergeStrategy.combine());
    }
    /**
     * Check if this mixin supports the given construct
     */
    supports(construct) {
        return (cdk.CfnResource.isCfnResource(construct) && service.CfnMessageTemplate.isCfnMessageTemplate(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnMessageTemplatePropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnMessageTemplatePropsMixin = CfnMessageTemplatePropsMixin;
/**
 * Creates a new Amazon Q in Connect message template version from the current content and configuration of a message template.
 *
 * Versions are immutable and monotonically increasing. Once a version is created, you can reference a specific version of the message template by passing in `<messageTemplateArn>:<versionNumber>` as the message template identifier. An error is displayed if the supplied `messageTemplateContentSha256` is different from the `messageTemplateContentSha256` of the message template with `$LATEST` qualifier. If multiple `CreateMessageTemplateVersion` requests are made while the message template remains the same, only the first invocation creates a new version and the succeeding requests will return the same response as the first invocation.
 *
 * @cloudformationResource AWS::Wisdom::MessageTemplateVersion
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-messagetemplateversion.html
 */
class CfnMessageTemplateVersionPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_wisdom.CfnMessageTemplateVersionPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["messageTemplateArn", "messageTemplateContentSha256"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::Wisdom::MessageTemplateVersion`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_wisdom_CfnMessageTemplateVersionMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnMessageTemplateVersionPropsMixin);
            }
            throw error;
        }
        this.props = props;
        this.strategy = (options.strategy ?? cdk.PropertyMergeStrategy.combine());
    }
    /**
     * Check if this mixin supports the given construct
     */
    supports(construct) {
        return (cdk.CfnResource.isCfnResource(construct) && service.CfnMessageTemplateVersion.isCfnMessageTemplateVersion(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnMessageTemplateVersionPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnMessageTemplateVersionPropsMixin = CfnMessageTemplateVersionPropsMixin;
/**
 * Creates an Amazon Q in Connect quick response.
 *
 * @cloudformationResource AWS::Wisdom::QuickResponse
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wisdom-quickresponse.html
 */
class CfnQuickResponsePropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_wisdom.CfnQuickResponsePropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["channels", "content", "contentType", "description", "groupingConfiguration", "isActive", "knowledgeBaseArn", "language", "name", "shortcutKey", "tags"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::Wisdom::QuickResponse`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_wisdom_CfnQuickResponseMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnQuickResponsePropsMixin);
            }
            throw error;
        }
        this.props = props;
        this.strategy = (options.strategy ?? cdk.PropertyMergeStrategy.combine());
    }
    /**
     * Check if this mixin supports the given construct
     */
    supports(construct) {
        return (cdk.CfnResource.isCfnResource(construct) && service.CfnQuickResponse.isCfnQuickResponse(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnQuickResponsePropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnQuickResponsePropsMixin = CfnQuickResponsePropsMixin;
