"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.CfnUserProfilePropsMixin = exports.CfnSubscriptionTargetPropsMixin = exports.CfnProjectProfilePropsMixin = exports.CfnProjectMembershipPropsMixin = exports.CfnProjectPropsMixin = exports.CfnPolicyGrantPropsMixin = exports.CfnOwnerPropsMixin = exports.CfnGroupProfilePropsMixin = exports.CfnFormTypePropsMixin = exports.CfnEnvironmentProfilePropsMixin = exports.CfnEnvironmentBlueprintConfigurationPropsMixin = exports.CfnEnvironmentActionsPropsMixin = exports.CfnEnvironmentPropsMixin = exports.CfnDomainUnitPropsMixin = exports.CfnDomainPropsMixin = exports.CfnDataSourcePropsMixin = exports.CfnConnectionPropsMixin = 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-datazone"));
/**
 * In Amazon DataZone, a connection enables you to connect your resources (domains, projects, and environments) to external resources and services.
 *
 * @cloudformationResource AWS::DataZone::Connection
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-connection.html
 */
class CfnConnectionPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_datazone.CfnConnectionPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["awsLocation", "configurations", "description", "domainIdentifier", "enableTrustedIdentityPropagation", "environmentIdentifier", "name", "projectIdentifier", "props", "scope"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::DataZone::Connection`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_datazone_CfnConnectionMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnConnectionPropsMixin);
            }
            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.CfnConnection.isCfnConnection(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnConnectionPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnConnectionPropsMixin = CfnConnectionPropsMixin;
/**
 * The `AWS::DataZone::DataSource` resource specifies an Amazon DataZone data source that is used to import technical metadata of assets (data) from the source databases or data warehouses into Amazon DataZone.
 *
 * @cloudformationResource AWS::DataZone::DataSource
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-datasource.html
 */
class CfnDataSourcePropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_datazone.CfnDataSourcePropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["assetFormsInput", "configuration", "connectionIdentifier", "description", "domainIdentifier", "enableSetting", "environmentIdentifier", "name", "projectIdentifier", "publishOnImport", "recommendation", "schedule", "type"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::DataZone::DataSource`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_datazone_CfnDataSourceMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnDataSourcePropsMixin);
            }
            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.CfnDataSource.isCfnDataSource(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnDataSourcePropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnDataSourcePropsMixin = CfnDataSourcePropsMixin;
/**
 * The `AWS::DataZone::Domain` resource specifies an Amazon DataZone domain.
 *
 * You can use domains to organize your assets, users, and their projects.
 *
 * @cloudformationResource AWS::DataZone::Domain
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-domain.html
 */
class CfnDomainPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_datazone.CfnDomainPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["description", "domainExecutionRole", "domainVersion", "kmsKeyIdentifier", "name", "serviceRole", "singleSignOn", "tags"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::DataZone::Domain`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_datazone_CfnDomainMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnDomainPropsMixin);
            }
            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.CfnDomain.isCfnDomain(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnDomainPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnDomainPropsMixin = CfnDomainPropsMixin;
/**
 * The summary of the domain unit.
 *
 * @cloudformationResource AWS::DataZone::DomainUnit
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-domainunit.html
 */
class CfnDomainUnitPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_datazone.CfnDomainUnitPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["description", "domainIdentifier", "name", "parentDomainUnitIdentifier"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::DataZone::DomainUnit`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_datazone_CfnDomainUnitMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnDomainUnitPropsMixin);
            }
            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.CfnDomainUnit.isCfnDomainUnit(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnDomainUnitPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnDomainUnitPropsMixin = CfnDomainUnitPropsMixin;
/**
 * The `AWS::DataZone::Environment` resource specifies an Amazon DataZone environment, which is a collection of zero or more configured resources with a given set of IAM principals who can operate on those resources.
 *
 * @cloudformationResource AWS::DataZone::Environment
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-environment.html
 */
class CfnEnvironmentPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_datazone.CfnEnvironmentPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["deploymentOrder", "description", "domainIdentifier", "environmentAccountIdentifier", "environmentAccountRegion", "environmentBlueprintIdentifier", "environmentConfigurationId", "environmentProfileIdentifier", "environmentRoleArn", "glossaryTerms", "name", "projectIdentifier", "userParameters"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::DataZone::Environment`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_datazone_CfnEnvironmentMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnEnvironmentPropsMixin);
            }
            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.CfnEnvironment.isCfnEnvironment(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnEnvironmentPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnEnvironmentPropsMixin = CfnEnvironmentPropsMixin;
/**
 * The details about the specified action configured for an environment.
 *
 * For example, the details of the specified console links for an analytics tool that is available in this environment.
 *
 * @cloudformationResource AWS::DataZone::EnvironmentActions
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-environmentactions.html
 */
class CfnEnvironmentActionsPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_datazone.CfnEnvironmentActionsPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["description", "domainIdentifier", "environmentIdentifier", "identifier", "name", "parameters"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::DataZone::EnvironmentActions`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_datazone_CfnEnvironmentActionsMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnEnvironmentActionsPropsMixin);
            }
            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.CfnEnvironmentActions.isCfnEnvironmentActions(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnEnvironmentActionsPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnEnvironmentActionsPropsMixin = CfnEnvironmentActionsPropsMixin;
/**
 * The configuration details of an environment blueprint.
 *
 * @cloudformationResource AWS::DataZone::EnvironmentBlueprintConfiguration
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-environmentblueprintconfiguration.html
 */
class CfnEnvironmentBlueprintConfigurationPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_datazone.CfnEnvironmentBlueprintConfigurationPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["domainIdentifier", "enabledRegions", "environmentBlueprintIdentifier", "environmentRolePermissionBoundary", "globalParameters", "manageAccessRoleArn", "provisioningConfigurations", "provisioningRoleArn", "regionalParameters"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::DataZone::EnvironmentBlueprintConfiguration`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_datazone_CfnEnvironmentBlueprintConfigurationMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnEnvironmentBlueprintConfigurationPropsMixin);
            }
            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.CfnEnvironmentBlueprintConfiguration.isCfnEnvironmentBlueprintConfiguration(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnEnvironmentBlueprintConfigurationPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnEnvironmentBlueprintConfigurationPropsMixin = CfnEnvironmentBlueprintConfigurationPropsMixin;
/**
 * The details of an environment profile.
 *
 * @cloudformationResource AWS::DataZone::EnvironmentProfile
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-environmentprofile.html
 */
class CfnEnvironmentProfilePropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_datazone.CfnEnvironmentProfilePropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["awsAccountId", "awsAccountRegion", "description", "domainIdentifier", "environmentBlueprintIdentifier", "name", "projectIdentifier", "userParameters"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::DataZone::EnvironmentProfile`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_datazone_CfnEnvironmentProfileMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnEnvironmentProfilePropsMixin);
            }
            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.CfnEnvironmentProfile.isCfnEnvironmentProfile(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnEnvironmentProfilePropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnEnvironmentProfilePropsMixin = CfnEnvironmentProfilePropsMixin;
/**
 * The details of the metadata form type.
 *
 * @cloudformationResource AWS::DataZone::FormType
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-formtype.html
 */
class CfnFormTypePropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_datazone.CfnFormTypePropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["description", "domainIdentifier", "model", "name", "owningProjectIdentifier", "status"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::DataZone::FormType`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_datazone_CfnFormTypeMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnFormTypePropsMixin);
            }
            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.CfnFormType.isCfnFormType(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnFormTypePropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnFormTypePropsMixin = CfnFormTypePropsMixin;
/**
 * The details of a group profile in Amazon DataZone.
 *
 * @cloudformationResource AWS::DataZone::GroupProfile
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-groupprofile.html
 */
class CfnGroupProfilePropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_datazone.CfnGroupProfilePropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["domainIdentifier", "groupIdentifier", "groupType", "rolePrincipalArn", "status"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::DataZone::GroupProfile`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_datazone_CfnGroupProfileMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnGroupProfilePropsMixin);
            }
            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.CfnGroupProfile.isCfnGroupProfile(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnGroupProfilePropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnGroupProfilePropsMixin = CfnGroupProfilePropsMixin;
/**
 * The owner that you want to add to the entity.
 *
 * @cloudformationResource AWS::DataZone::Owner
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-owner.html
 */
class CfnOwnerPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_datazone.CfnOwnerPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["domainIdentifier", "entityIdentifier", "entityType", "owner"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::DataZone::Owner`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_datazone_CfnOwnerMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnOwnerPropsMixin);
            }
            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.CfnOwner.isCfnOwner(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnOwnerPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnOwnerPropsMixin = CfnOwnerPropsMixin;
/**
 * Adds a policy grant (an authorization policy) to a specified entity, including domain units, environment blueprint configurations, or environment profiles.
 *
 * @cloudformationResource AWS::DataZone::PolicyGrant
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-policygrant.html
 */
class CfnPolicyGrantPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_datazone.CfnPolicyGrantPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["detail", "domainIdentifier", "entityIdentifier", "entityType", "policyType", "principal"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::DataZone::PolicyGrant`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_datazone_CfnPolicyGrantMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnPolicyGrantPropsMixin);
            }
            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.CfnPolicyGrant.isCfnPolicyGrant(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnPolicyGrantPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnPolicyGrantPropsMixin = CfnPolicyGrantPropsMixin;
/**
 * The `AWS::DataZone::Project` resource specifies an Amazon DataZone project.
 *
 * Projects enable a group of users to collaborate on various business use cases that involve publishing, discovering, subscribing to, and consuming data in the Amazon DataZone catalog. Project members consume assets from the Amazon DataZone catalog and produce new assets using one or more analytical workflows.
 *
 * @cloudformationResource AWS::DataZone::Project
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-project.html
 */
class CfnProjectPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_datazone.CfnProjectPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["description", "domainIdentifier", "domainUnitId", "glossaryTerms", "membershipAssignments", "name", "projectCategory", "projectExecutionRole", "projectProfileId", "projectProfileVersion", "resourceTags", "userParameters"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::DataZone::Project`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_datazone_CfnProjectMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnProjectPropsMixin);
            }
            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.CfnProject.isCfnProject(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnProjectPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnProjectPropsMixin = CfnProjectPropsMixin;
/**
 * The `AWS::DataZone::ProjectMembership` resource adds a member to an Amazon DataZone project.
 *
 * Project members consume assets from the Amazon DataZone catalog and produce new assets using one or more analytical workflows.
 *
 * @cloudformationResource AWS::DataZone::ProjectMembership
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-projectmembership.html
 */
class CfnProjectMembershipPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_datazone.CfnProjectMembershipPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["designation", "domainIdentifier", "member", "projectIdentifier"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::DataZone::ProjectMembership`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_datazone_CfnProjectMembershipMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnProjectMembershipPropsMixin);
            }
            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.CfnProjectMembership.isCfnProjectMembership(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnProjectMembershipPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnProjectMembershipPropsMixin = CfnProjectMembershipPropsMixin;
/**
 * The summary of a project profile.
 *
 * @cloudformationResource AWS::DataZone::ProjectProfile
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-projectprofile.html
 */
class CfnProjectProfilePropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_datazone.CfnProjectProfilePropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["allowCustomProjectResourceTags", "description", "domainIdentifier", "domainUnitIdentifier", "environmentConfigurations", "name", "projectResourceTags", "projectResourceTagsDescription", "status", "useDefaultConfigurations"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::DataZone::ProjectProfile`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_datazone_CfnProjectProfileMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnProjectProfilePropsMixin);
            }
            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.CfnProjectProfile.isCfnProjectProfile(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnProjectProfilePropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnProjectProfilePropsMixin = CfnProjectProfilePropsMixin;
/**
 * The `AWS::DataZone::SubscriptionTarget` resource specifies an Amazon DataZone subscription target.
 *
 * Subscription targets enable you to access the data to which you have subscribed in your projects. A subscription target specifies the location (for example, a database or a schema) and the required permissions (for example, an IAM role) that Amazon DataZone can use to establish a connection with the source data and to create the necessary grants so that members of the Amazon DataZone project can start querying the data to which they have subscribed.
 *
 * @cloudformationResource AWS::DataZone::SubscriptionTarget
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-subscriptiontarget.html
 */
class CfnSubscriptionTargetPropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_datazone.CfnSubscriptionTargetPropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["applicableAssetTypes", "authorizedPrincipals", "domainIdentifier", "environmentIdentifier", "manageAccessRole", "name", "provider", "subscriptionTargetConfig", "type"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::DataZone::SubscriptionTarget`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_datazone_CfnSubscriptionTargetMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnSubscriptionTargetPropsMixin);
            }
            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.CfnSubscriptionTarget.isCfnSubscriptionTarget(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnSubscriptionTargetPropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnSubscriptionTargetPropsMixin = CfnSubscriptionTargetPropsMixin;
/**
 * The user type of the user for which the user profile is created.
 *
 * @cloudformationResource AWS::DataZone::UserProfile
 * @mixin true
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-userprofile.html
 */
class CfnUserProfilePropsMixin extends cdk.Mixin {
    static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cfn-property-mixins.aws_datazone.CfnUserProfilePropsMixin", version: "2.258.1" };
    static CFN_PROPERTY_KEYS = ["domainIdentifier", "sessionName", "status", "userIdentifier", "userType"];
    props;
    strategy;
    /**
     * Create a mixin to apply properties to `AWS::DataZone::UserProfile`.
     *
     * @param props L1 properties to apply
     * @param options Mixin options
     */
    constructor(props, options = {}) {
        super();
        try {
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_aws_datazone_CfnUserProfileMixinProps(props);
            jsiiDeprecationWarnings._aws_cdk_cfn_property_mixins_CfnPropertyMixinOptions(options);
        }
        catch (error) {
            if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
                Error.captureStackTrace(error, CfnUserProfilePropsMixin);
            }
            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.CfnUserProfile.isCfnUserProfile(construct));
    }
    /**
     * Apply the mixin properties to the construct
     */
    applyTo(construct) {
        if (this.supports(construct)) {
            this.strategy.apply(construct, this.props, CfnUserProfilePropsMixin.CFN_PROPERTY_KEYS);
        }
    }
}
exports.CfnUserProfilePropsMixin = CfnUserProfilePropsMixin;
