"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.CfnWorkloadIdentityPropsMixin = exports.CfnRuntimeEndpointPropsMixin = exports.CfnRuntimePropsMixin = exports.CfnPolicyEnginePropsMixin = exports.CfnPolicyPropsMixin = exports.CfnPaymentCredentialProviderPropsMixin = exports.CfnOnlineEvaluationConfigPropsMixin = exports.CfnOAuth2CredentialProviderPropsMixin = exports.CfnMemoryPropsMixin = exports.CfnHarnessPropsMixin = exports.CfnGatewayTargetPropsMixin = exports.CfnGatewayPropsMixin = exports.CfnEvaluatorPropsMixin = exports.CfnDatasetPropsMixin = exports.CfnCodeInterpreterCustomPropsMixin = exports.CfnBrowserProfilePropsMixin = exports.CfnBrowserCustomPropsMixin = exports.CfnBrowserPropsMixin = exports.CfnApiKeyCredentialProviderPropsMixin = 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-bedrockagentcore"));
/**
 * Resource Type definition for AWS::BedrockAgentCore::ApiKeyCredentialProvider.
 *
 * @cloudformationResource AWS::BedrockAgentCore::ApiKeyCredentialProvider
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-apikeycredentialprovider.html
 */
class CfnApiKeyCredentialProviderPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_bedrockagentcore.CfnApiKeyCredentialProviderPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["apiKey", "name", "tags"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::BedrockAgentCore::ApiKeyCredentialProvider`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_bedrockagentcore_CfnApiKeyCredentialProviderMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnApiKeyCredentialProviderPropsMixin);
            }
            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.CfnApiKeyCredentialProvider.isCfnApiKeyCredentialProvider(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnApiKeyCredentialProviderPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnApiKeyCredentialProviderPropsMixin = CfnApiKeyCredentialProviderPropsMixin;
/**
 * Definition of AWS::BedrockAgentCore::Browser Resource Type.
 *
 * This is a read-only resource representing the default service-managed browser.
 *
 * @cloudformationResource AWS::BedrockAgentCore::Browser
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-browser.html
 */
class CfnBrowserPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_bedrockagentcore.CfnBrowserPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = [];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::BedrockAgentCore::Browser`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_bedrockagentcore_CfnBrowserMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnBrowserPropsMixin);
            }
            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.CfnBrowser.isCfnBrowser(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnBrowserPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnBrowserPropsMixin = CfnBrowserPropsMixin;
/**
 * AgentCore Browser tool provides a fast, secure, cloud-based browser runtime to enable AI agents to interact with websites at scale.
 *
 * For more information about using the custom browser, see [Interact with web applications using Amazon Bedrock AgentCore Browser](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/browser-tool.html) .
 *
 * See the *Properties* section below for descriptions of both the required and optional properties.
 *
 * @cloudformationResource AWS::BedrockAgentCore::BrowserCustom
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-browsercustom.html
 */
class CfnBrowserCustomPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_bedrockagentcore.CfnBrowserCustomPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["browserSigning", "certificates", "description", "enterprisePolicies", "executionRoleArn", "name", "networkConfiguration", "recordingConfig", "tags"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::BedrockAgentCore::BrowserCustom`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_bedrockagentcore_CfnBrowserCustomMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnBrowserCustomPropsMixin);
            }
            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.CfnBrowserCustom.isCfnBrowserCustom(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnBrowserCustomPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnBrowserCustomPropsMixin = CfnBrowserCustomPropsMixin;
/**
 * Resource definition for AWS::BedrockAgentCore::BrowserProfile.
 *
 * @cloudformationResource AWS::BedrockAgentCore::BrowserProfile
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-browserprofile.html
 */
class CfnBrowserProfilePropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_bedrockagentcore.CfnBrowserProfilePropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["description", "name", "tags"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::BedrockAgentCore::BrowserProfile`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_bedrockagentcore_CfnBrowserProfileMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnBrowserProfilePropsMixin);
            }
            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.CfnBrowserProfile.isCfnBrowserProfile(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnBrowserProfilePropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnBrowserProfilePropsMixin = CfnBrowserProfilePropsMixin;
/**
 * The AgentCore Code Interpreter tool enables agents to securely execute code in isolated sandbox environments.
 *
 * It offers advanced configuration support and seamless integration with popular frameworks.
 *
 * For more information about using the custom code interpreter, see [Execute code and analyze data using Amazon Bedrock AgentCore Code Interpreter](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/code-interpreter-tool.html) .
 *
 * See the *Properties* section below for descriptions of both the required and optional properties.
 *
 * @cloudformationResource AWS::BedrockAgentCore::CodeInterpreterCustom
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-codeinterpretercustom.html
 */
class CfnCodeInterpreterCustomPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_bedrockagentcore.CfnCodeInterpreterCustomPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["certificates", "description", "executionRoleArn", "name", "networkConfiguration", "tags"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::BedrockAgentCore::CodeInterpreterCustom`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_bedrockagentcore_CfnCodeInterpreterCustomMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnCodeInterpreterCustomPropsMixin);
            }
            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.CfnCodeInterpreterCustom.isCfnCodeInterpreterCustom(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnCodeInterpreterCustomPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnCodeInterpreterCustomPropsMixin = CfnCodeInterpreterCustomPropsMixin;
/**
 * Definition of AWS::BedrockAgentCore::Dataset Resource Type.
 *
 * @cloudformationResource AWS::BedrockAgentCore::Dataset
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-dataset.html
 */
class CfnDatasetPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_bedrockagentcore.CfnDatasetPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["datasetName", "description", "kmsKeyArn", "schemaType", "source", "tags"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::BedrockAgentCore::Dataset`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_bedrockagentcore_CfnDatasetMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnDatasetPropsMixin);
            }
            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.CfnDataset.isCfnDataset(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnDatasetPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnDatasetPropsMixin = CfnDatasetPropsMixin;
/**
 * Resource Type definition for AWS::BedrockAgentCore::Evaluator - Creates a custom evaluator for agent quality assessment using LLM-as-a-Judge configurations.
 *
 * @cloudformationResource AWS::BedrockAgentCore::Evaluator
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-evaluator.html
 */
class CfnEvaluatorPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_bedrockagentcore.CfnEvaluatorPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["description", "evaluatorConfig", "evaluatorName", "kmsKeyArn", "level", "tags"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::BedrockAgentCore::Evaluator`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_bedrockagentcore_CfnEvaluatorMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnEvaluatorPropsMixin);
            }
            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.CfnEvaluator.isCfnEvaluator(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnEvaluatorPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnEvaluatorPropsMixin = CfnEvaluatorPropsMixin;
/**
 * Amazon Bedrock AgentCore Gateway provides a unified connectivity layer between agents and the tools and resources they need to interact with.
 *
 * For more information about creating a gateway, see [Set up an Amazon Bedrock AgentCore gateway](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-building.html) .
 *
 * See the *Properties* section below for descriptions of both the required and optional properties.
 *
 * @cloudformationResource AWS::BedrockAgentCore::Gateway
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-gateway.html
 */
class CfnGatewayPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_bedrockagentcore.CfnGatewayPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["authorizerConfiguration", "authorizerType", "description", "exceptionLevel", "interceptorConfigurations", "kmsKeyArn", "name", "policyEngineConfiguration", "protocolConfiguration", "protocolType", "roleArn", "tags"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::BedrockAgentCore::Gateway`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_bedrockagentcore_CfnGatewayMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnGatewayPropsMixin);
            }
            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.CfnGateway.isCfnGateway(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnGatewayPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnGatewayPropsMixin = CfnGatewayPropsMixin;
/**
 * After creating a gateway, you can add targets, which define the tools that your gateway will host.
 *
 * For more information about adding gateway targets, see [Add targets to an existing gateway](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-building-adding-targets.html) .
 *
 * See the *Properties* section below for descriptions of both the required and optional properties.
 *
 * @cloudformationResource AWS::BedrockAgentCore::GatewayTarget
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-gatewaytarget.html
 */
class CfnGatewayTargetPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_bedrockagentcore.CfnGatewayTargetPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["credentialProviderConfigurations", "description", "gatewayIdentifier", "metadataConfiguration", "name", "targetConfiguration"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::BedrockAgentCore::GatewayTarget`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_bedrockagentcore_CfnGatewayTargetMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnGatewayTargetPropsMixin);
            }
            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.CfnGatewayTarget.isCfnGatewayTarget(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnGatewayTargetPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnGatewayTargetPropsMixin = CfnGatewayTargetPropsMixin;
/**
 * Definition of AWS::BedrockAgentCore::Harness resource type - a managed agentic loop service that provides a turnkey solution for running stateful, tool-equipped AI agents.
 *
 * @cloudformationResource AWS::BedrockAgentCore::Harness
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-harness.html
 */
class CfnHarnessPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_bedrockagentcore.CfnHarnessPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["allowedTools", "authorizerConfiguration", "environment", "environmentArtifact", "environmentVariables", "executionRoleArn", "harnessName", "maxIterations", "maxTokens", "memory", "model", "skills", "systemPrompt", "tags", "timeoutSeconds", "tools", "truncation"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::BedrockAgentCore::Harness`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_bedrockagentcore_CfnHarnessMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnHarnessPropsMixin);
            }
            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.CfnHarness.isCfnHarness(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnHarnessPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnHarnessPropsMixin = CfnHarnessPropsMixin;
/**
 * Memory allows AI agents to maintain both immediate and long-term knowledge, enabling context-aware and personalized interactions.
 *
 * For more information about using Memory in Amazon Bedrock AgentCore, see [Host agent or tools with Amazon Bedrock AgentCore Memory](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/memory-getting-started.html) .
 *
 * See the *Properties* section below for descriptions of both the required and optional properties.
 *
 * @cloudformationResource AWS::BedrockAgentCore::Memory
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-memory.html
 */
class CfnMemoryPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_bedrockagentcore.CfnMemoryPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["description", "encryptionKeyArn", "eventExpiryDuration", "indexedKeys", "memoryExecutionRoleArn", "memoryStrategies", "name", "streamDeliveryResources", "tags"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::BedrockAgentCore::Memory`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_bedrockagentcore_CfnMemoryMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnMemoryPropsMixin);
            }
            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.CfnMemory.isCfnMemory(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnMemoryPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnMemoryPropsMixin = CfnMemoryPropsMixin;
/**
 * Resource Type definition for AWS::BedrockAgentCore::OAuth2CredentialProvider.
 *
 * @cloudformationResource AWS::BedrockAgentCore::OAuth2CredentialProvider
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-oauth2credentialprovider.html
 */
class CfnOAuth2CredentialProviderPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_bedrockagentcore.CfnOAuth2CredentialProviderPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["credentialProviderVendor", "name", "oauth2ProviderConfigInput", "tags"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::BedrockAgentCore::OAuth2CredentialProvider`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_bedrockagentcore_CfnOAuth2CredentialProviderMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnOAuth2CredentialProviderPropsMixin);
            }
            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.CfnOAuth2CredentialProvider.isCfnOAuth2CredentialProvider(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnOAuth2CredentialProviderPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnOAuth2CredentialProviderPropsMixin = CfnOAuth2CredentialProviderPropsMixin;
/**
 * Resource Type definition for AWS::BedrockAgentCore::OnlineEvaluationConfig - Creates an online evaluation configuration for continuous monitoring of agent performance.
 *
 * @cloudformationResource AWS::BedrockAgentCore::OnlineEvaluationConfig
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-onlineevaluationconfig.html
 */
class CfnOnlineEvaluationConfigPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_bedrockagentcore.CfnOnlineEvaluationConfigPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["dataSourceConfig", "description", "evaluationExecutionRoleArn", "evaluators", "executionStatus", "onlineEvaluationConfigName", "rule", "tags"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::BedrockAgentCore::OnlineEvaluationConfig`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_bedrockagentcore_CfnOnlineEvaluationConfigMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnOnlineEvaluationConfigPropsMixin);
            }
            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.CfnOnlineEvaluationConfig.isCfnOnlineEvaluationConfig(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnOnlineEvaluationConfigPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnOnlineEvaluationConfigPropsMixin = CfnOnlineEvaluationConfigPropsMixin;
/**
 * Resource Type definition for AWS::BedrockAgentCore::PaymentCredentialProvider.
 *
 * @cloudformationResource AWS::BedrockAgentCore::PaymentCredentialProvider
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-paymentcredentialprovider.html
 */
class CfnPaymentCredentialProviderPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_bedrockagentcore.CfnPaymentCredentialProviderPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["credentialProviderVendor", "name", "providerConfigurationInput", "tags"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::BedrockAgentCore::PaymentCredentialProvider`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_bedrockagentcore_CfnPaymentCredentialProviderMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnPaymentCredentialProviderPropsMixin);
            }
            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.CfnPaymentCredentialProvider.isCfnPaymentCredentialProvider(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnPaymentCredentialProviderPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnPaymentCredentialProviderPropsMixin = CfnPaymentCredentialProviderPropsMixin;
/**
 * Resource Type definition for AWS::BedrockAgentCore::Policy.
 *
 * @cloudformationResource AWS::BedrockAgentCore::Policy
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-policy.html
 */
class CfnPolicyPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_bedrockagentcore.CfnPolicyPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["definition", "description", "name", "policyEngineId", "validationMode"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::BedrockAgentCore::Policy`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_bedrockagentcore_CfnPolicyMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnPolicyPropsMixin);
            }
            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.CfnPolicy.isCfnPolicy(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnPolicyPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnPolicyPropsMixin = CfnPolicyPropsMixin;
/**
 * Resource Type definition for AWS::BedrockAgentCore::PolicyEngine.
 *
 * @cloudformationResource AWS::BedrockAgentCore::PolicyEngine
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-policyengine.html
 */
class CfnPolicyEnginePropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_bedrockagentcore.CfnPolicyEnginePropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["description", "encryptionKeyArn", "name", "tags"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::BedrockAgentCore::PolicyEngine`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_bedrockagentcore_CfnPolicyEngineMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnPolicyEnginePropsMixin);
            }
            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.CfnPolicyEngine.isCfnPolicyEngine(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnPolicyEnginePropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnPolicyEnginePropsMixin = CfnPolicyEnginePropsMixin;
/**
 * Contains information about an agent runtime. An agent runtime is the execution environment for a Amazon Bedrock Agent.
 *
 * AgentCore Runtime is a secure, serverless runtime purpose-built for deploying and scaling dynamic AI agents and tools using any open-source framework including LangGraph, CrewAI, and Strands Agents, any protocol, and any model.
 *
 * For more information about using agent runtime in Amazon Bedrock AgentCore, see [Host agent or tools with Amazon Bedrock AgentCore Runtime](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/agents-tools-runtime.html) .
 *
 * See the *Properties* section below for descriptions of both the required and optional properties.
 *
 * @cloudformationResource AWS::BedrockAgentCore::Runtime
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-runtime.html
 */
class CfnRuntimePropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_bedrockagentcore.CfnRuntimePropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["agentRuntimeArtifact", "agentRuntimeName", "authorizerConfiguration", "description", "environmentVariables", "filesystemConfigurations", "lifecycleConfiguration", "networkConfiguration", "protocolConfiguration", "requestHeaderConfiguration", "roleArn", "tags"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::BedrockAgentCore::Runtime`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_bedrockagentcore_CfnRuntimeMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnRuntimePropsMixin);
            }
            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.CfnRuntime.isCfnRuntime(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnRuntimePropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnRuntimePropsMixin = CfnRuntimePropsMixin;
/**
 * AgentCore Runtime is a secure, serverless runtime purpose-built for deploying and scaling dynamic AI agents and tools using any open-source framework including LangGraph, CrewAI, and Strands Agents, any protocol, and any model.
 *
 * For more information about using agent runtime endpoints in Amazon Bedrock AgentCore, see [AgentCore Runtime versioning and endpoints](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/agent-runtime-versioning.html) .
 *
 * See the *Properties* section below for descriptions of both the required and optional properties.
 *
 * @cloudformationResource AWS::BedrockAgentCore::RuntimeEndpoint
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-runtimeendpoint.html
 */
class CfnRuntimeEndpointPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_bedrockagentcore.CfnRuntimeEndpointPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["agentRuntimeId", "agentRuntimeVersion", "description", "name", "tags"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::BedrockAgentCore::RuntimeEndpoint`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_bedrockagentcore_CfnRuntimeEndpointMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnRuntimeEndpointPropsMixin);
            }
            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.CfnRuntimeEndpoint.isCfnRuntimeEndpoint(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnRuntimeEndpointPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnRuntimeEndpointPropsMixin = CfnRuntimeEndpointPropsMixin;
/**
 * Creates a workload identity for Amazon Bedrock AgentCore.
 *
 * A workload identity provides OAuth2-based authentication for resources associated with agent runtimes.
 *
 * For more information about using workload identities in Amazon Bedrock AgentCore, see [Managing workload identities](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/workload-identity.html) .
 *
 * See the *Properties* section below for descriptions of both the required and optional properties.
 *
 * @cloudformationResource AWS::BedrockAgentCore::WorkloadIdentity
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrockagentcore-workloadidentity.html
 */
class CfnWorkloadIdentityPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_bedrockagentcore.CfnWorkloadIdentityPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["allowedResourceOauth2ReturnUrls", "name", "tags"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::BedrockAgentCore::WorkloadIdentity`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_bedrockagentcore_CfnWorkloadIdentityMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnWorkloadIdentityPropsMixin);
            }
            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.CfnWorkloadIdentity.isCfnWorkloadIdentity(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnWorkloadIdentityPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnWorkloadIdentityPropsMixin = CfnWorkloadIdentityPropsMixin;
