@cdktf/provider-aws
Version:
Prebuilt aws Provider for Terraform CDK (cdktf)
1,005 lines • 146 kB
JavaScript
"use strict";
var _a, _b, _c, _d, _e, _f, _g;
Object.defineProperty(exports, "__esModule", { value: true });
exports.FmsPolicy = exports.FmsPolicySecurityServicePolicyDataOutputReference = exports.fmsPolicySecurityServicePolicyDataToHclTerraform = exports.fmsPolicySecurityServicePolicyDataToTerraform = exports.FmsPolicySecurityServicePolicyDataPolicyOptionOutputReference = exports.fmsPolicySecurityServicePolicyDataPolicyOptionToHclTerraform = exports.fmsPolicySecurityServicePolicyDataPolicyOptionToTerraform = exports.FmsPolicySecurityServicePolicyDataPolicyOptionThirdPartyFirewallPolicyOutputReference = exports.fmsPolicySecurityServicePolicyDataPolicyOptionThirdPartyFirewallPolicyToHclTerraform = exports.fmsPolicySecurityServicePolicyDataPolicyOptionThirdPartyFirewallPolicyToTerraform = exports.FmsPolicySecurityServicePolicyDataPolicyOptionNetworkFirewallPolicyOutputReference = exports.fmsPolicySecurityServicePolicyDataPolicyOptionNetworkFirewallPolicyToHclTerraform = exports.fmsPolicySecurityServicePolicyDataPolicyOptionNetworkFirewallPolicyToTerraform = exports.FmsPolicyIncludeMapOutputReference = exports.fmsPolicyIncludeMapToHclTerraform = exports.fmsPolicyIncludeMapToTerraform = exports.FmsPolicyExcludeMapOutputReference = exports.fmsPolicyExcludeMapToHclTerraform = exports.fmsPolicyExcludeMapToTerraform = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const cdktf = require("cdktf");
function fmsPolicyExcludeMapToTerraform(struct) {
if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
return struct;
}
if (cdktf.isComplexElement(struct)) {
throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
}
return {
account: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.account),
orgunit: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.orgunit),
};
}
exports.fmsPolicyExcludeMapToTerraform = fmsPolicyExcludeMapToTerraform;
function fmsPolicyExcludeMapToHclTerraform(struct) {
if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
return struct;
}
if (cdktf.isComplexElement(struct)) {
throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
}
const attrs = {
account: {
value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.account),
isBlock: false,
type: "set",
storageClassType: "stringList",
},
orgunit: {
value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.orgunit),
isBlock: false,
type: "set",
storageClassType: "stringList",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.fmsPolicyExcludeMapToHclTerraform = fmsPolicyExcludeMapToHclTerraform;
class FmsPolicyExcludeMapOutputReference extends cdktf.ComplexObject {
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
*/
constructor(terraformResource, terraformAttribute) {
super(terraformResource, terraformAttribute, false, 0);
this.isEmptyObject = false;
}
get internalValue() {
let hasAnyValues = this.isEmptyObject;
const internalValueResult = {};
if (this._account !== undefined) {
hasAnyValues = true;
internalValueResult.account = this._account;
}
if (this._orgunit !== undefined) {
hasAnyValues = true;
internalValueResult.orgunit = this._orgunit;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this._account = undefined;
this._orgunit = undefined;
}
else {
this.isEmptyObject = Object.keys(value).length === 0;
this._account = value.account;
this._orgunit = value.orgunit;
}
}
get account() {
return cdktf.Fn.tolist(this.getListAttribute('account'));
}
set account(value) {
this._account = value;
}
resetAccount() {
this._account = undefined;
}
// Temporarily expose input value. Use with caution.
get accountInput() {
return this._account;
}
get orgunit() {
return cdktf.Fn.tolist(this.getListAttribute('orgunit'));
}
set orgunit(value) {
this._orgunit = value;
}
resetOrgunit() {
this._orgunit = undefined;
}
// Temporarily expose input value. Use with caution.
get orgunitInput() {
return this._orgunit;
}
}
exports.FmsPolicyExcludeMapOutputReference = FmsPolicyExcludeMapOutputReference;
_a = JSII_RTTI_SYMBOL_1;
FmsPolicyExcludeMapOutputReference[_a] = { fqn: "@cdktf/provider-aws.fmsPolicy.FmsPolicyExcludeMapOutputReference", version: "19.50.0" };
function fmsPolicyIncludeMapToTerraform(struct) {
if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
return struct;
}
if (cdktf.isComplexElement(struct)) {
throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
}
return {
account: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.account),
orgunit: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.orgunit),
};
}
exports.fmsPolicyIncludeMapToTerraform = fmsPolicyIncludeMapToTerraform;
function fmsPolicyIncludeMapToHclTerraform(struct) {
if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
return struct;
}
if (cdktf.isComplexElement(struct)) {
throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
}
const attrs = {
account: {
value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.account),
isBlock: false,
type: "set",
storageClassType: "stringList",
},
orgunit: {
value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.orgunit),
isBlock: false,
type: "set",
storageClassType: "stringList",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.fmsPolicyIncludeMapToHclTerraform = fmsPolicyIncludeMapToHclTerraform;
class FmsPolicyIncludeMapOutputReference extends cdktf.ComplexObject {
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
*/
constructor(terraformResource, terraformAttribute) {
super(terraformResource, terraformAttribute, false, 0);
this.isEmptyObject = false;
}
get internalValue() {
let hasAnyValues = this.isEmptyObject;
const internalValueResult = {};
if (this._account !== undefined) {
hasAnyValues = true;
internalValueResult.account = this._account;
}
if (this._orgunit !== undefined) {
hasAnyValues = true;
internalValueResult.orgunit = this._orgunit;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this._account = undefined;
this._orgunit = undefined;
}
else {
this.isEmptyObject = Object.keys(value).length === 0;
this._account = value.account;
this._orgunit = value.orgunit;
}
}
get account() {
return cdktf.Fn.tolist(this.getListAttribute('account'));
}
set account(value) {
this._account = value;
}
resetAccount() {
this._account = undefined;
}
// Temporarily expose input value. Use with caution.
get accountInput() {
return this._account;
}
get orgunit() {
return cdktf.Fn.tolist(this.getListAttribute('orgunit'));
}
set orgunit(value) {
this._orgunit = value;
}
resetOrgunit() {
this._orgunit = undefined;
}
// Temporarily expose input value. Use with caution.
get orgunitInput() {
return this._orgunit;
}
}
exports.FmsPolicyIncludeMapOutputReference = FmsPolicyIncludeMapOutputReference;
_b = JSII_RTTI_SYMBOL_1;
FmsPolicyIncludeMapOutputReference[_b] = { fqn: "@cdktf/provider-aws.fmsPolicy.FmsPolicyIncludeMapOutputReference", version: "19.50.0" };
function fmsPolicySecurityServicePolicyDataPolicyOptionNetworkFirewallPolicyToTerraform(struct) {
if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
return struct;
}
if (cdktf.isComplexElement(struct)) {
throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
}
return {
firewall_deployment_model: cdktf.stringToTerraform(struct.firewallDeploymentModel),
};
}
exports.fmsPolicySecurityServicePolicyDataPolicyOptionNetworkFirewallPolicyToTerraform = fmsPolicySecurityServicePolicyDataPolicyOptionNetworkFirewallPolicyToTerraform;
function fmsPolicySecurityServicePolicyDataPolicyOptionNetworkFirewallPolicyToHclTerraform(struct) {
if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
return struct;
}
if (cdktf.isComplexElement(struct)) {
throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
}
const attrs = {
firewall_deployment_model: {
value: cdktf.stringToHclTerraform(struct.firewallDeploymentModel),
isBlock: false,
type: "simple",
storageClassType: "string",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.fmsPolicySecurityServicePolicyDataPolicyOptionNetworkFirewallPolicyToHclTerraform = fmsPolicySecurityServicePolicyDataPolicyOptionNetworkFirewallPolicyToHclTerraform;
class FmsPolicySecurityServicePolicyDataPolicyOptionNetworkFirewallPolicyOutputReference extends cdktf.ComplexObject {
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
*/
constructor(terraformResource, terraformAttribute) {
super(terraformResource, terraformAttribute, false, 0);
this.isEmptyObject = false;
}
get internalValue() {
let hasAnyValues = this.isEmptyObject;
const internalValueResult = {};
if (this._firewallDeploymentModel !== undefined) {
hasAnyValues = true;
internalValueResult.firewallDeploymentModel = this._firewallDeploymentModel;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this._firewallDeploymentModel = undefined;
}
else {
this.isEmptyObject = Object.keys(value).length === 0;
this._firewallDeploymentModel = value.firewallDeploymentModel;
}
}
get firewallDeploymentModel() {
return this.getStringAttribute('firewall_deployment_model');
}
set firewallDeploymentModel(value) {
this._firewallDeploymentModel = value;
}
resetFirewallDeploymentModel() {
this._firewallDeploymentModel = undefined;
}
// Temporarily expose input value. Use with caution.
get firewallDeploymentModelInput() {
return this._firewallDeploymentModel;
}
}
exports.FmsPolicySecurityServicePolicyDataPolicyOptionNetworkFirewallPolicyOutputReference = FmsPolicySecurityServicePolicyDataPolicyOptionNetworkFirewallPolicyOutputReference;
_c = JSII_RTTI_SYMBOL_1;
FmsPolicySecurityServicePolicyDataPolicyOptionNetworkFirewallPolicyOutputReference[_c] = { fqn: "@cdktf/provider-aws.fmsPolicy.FmsPolicySecurityServicePolicyDataPolicyOptionNetworkFirewallPolicyOutputReference", version: "19.50.0" };
function fmsPolicySecurityServicePolicyDataPolicyOptionThirdPartyFirewallPolicyToTerraform(struct) {
if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
return struct;
}
if (cdktf.isComplexElement(struct)) {
throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
}
return {
firewall_deployment_model: cdktf.stringToTerraform(struct.firewallDeploymentModel),
};
}
exports.fmsPolicySecurityServicePolicyDataPolicyOptionThirdPartyFirewallPolicyToTerraform = fmsPolicySecurityServicePolicyDataPolicyOptionThirdPartyFirewallPolicyToTerraform;
function fmsPolicySecurityServicePolicyDataPolicyOptionThirdPartyFirewallPolicyToHclTerraform(struct) {
if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
return struct;
}
if (cdktf.isComplexElement(struct)) {
throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
}
const attrs = {
firewall_deployment_model: {
value: cdktf.stringToHclTerraform(struct.firewallDeploymentModel),
isBlock: false,
type: "simple",
storageClassType: "string",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.fmsPolicySecurityServicePolicyDataPolicyOptionThirdPartyFirewallPolicyToHclTerraform = fmsPolicySecurityServicePolicyDataPolicyOptionThirdPartyFirewallPolicyToHclTerraform;
class FmsPolicySecurityServicePolicyDataPolicyOptionThirdPartyFirewallPolicyOutputReference extends cdktf.ComplexObject {
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
*/
constructor(terraformResource, terraformAttribute) {
super(terraformResource, terraformAttribute, false, 0);
this.isEmptyObject = false;
}
get internalValue() {
let hasAnyValues = this.isEmptyObject;
const internalValueResult = {};
if (this._firewallDeploymentModel !== undefined) {
hasAnyValues = true;
internalValueResult.firewallDeploymentModel = this._firewallDeploymentModel;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this._firewallDeploymentModel = undefined;
}
else {
this.isEmptyObject = Object.keys(value).length === 0;
this._firewallDeploymentModel = value.firewallDeploymentModel;
}
}
get firewallDeploymentModel() {
return this.getStringAttribute('firewall_deployment_model');
}
set firewallDeploymentModel(value) {
this._firewallDeploymentModel = value;
}
resetFirewallDeploymentModel() {
this._firewallDeploymentModel = undefined;
}
// Temporarily expose input value. Use with caution.
get firewallDeploymentModelInput() {
return this._firewallDeploymentModel;
}
}
exports.FmsPolicySecurityServicePolicyDataPolicyOptionThirdPartyFirewallPolicyOutputReference = FmsPolicySecurityServicePolicyDataPolicyOptionThirdPartyFirewallPolicyOutputReference;
_d = JSII_RTTI_SYMBOL_1;
FmsPolicySecurityServicePolicyDataPolicyOptionThirdPartyFirewallPolicyOutputReference[_d] = { fqn: "@cdktf/provider-aws.fmsPolicy.FmsPolicySecurityServicePolicyDataPolicyOptionThirdPartyFirewallPolicyOutputReference", version: "19.50.0" };
function fmsPolicySecurityServicePolicyDataPolicyOptionToTerraform(struct) {
if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
return struct;
}
if (cdktf.isComplexElement(struct)) {
throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
}
return {
network_firewall_policy: fmsPolicySecurityServicePolicyDataPolicyOptionNetworkFirewallPolicyToTerraform(struct.networkFirewallPolicy),
third_party_firewall_policy: fmsPolicySecurityServicePolicyDataPolicyOptionThirdPartyFirewallPolicyToTerraform(struct.thirdPartyFirewallPolicy),
};
}
exports.fmsPolicySecurityServicePolicyDataPolicyOptionToTerraform = fmsPolicySecurityServicePolicyDataPolicyOptionToTerraform;
function fmsPolicySecurityServicePolicyDataPolicyOptionToHclTerraform(struct) {
if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
return struct;
}
if (cdktf.isComplexElement(struct)) {
throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
}
const attrs = {
network_firewall_policy: {
value: fmsPolicySecurityServicePolicyDataPolicyOptionNetworkFirewallPolicyToHclTerraform(struct.networkFirewallPolicy),
isBlock: true,
type: "list",
storageClassType: "FmsPolicySecurityServicePolicyDataPolicyOptionNetworkFirewallPolicyList",
},
third_party_firewall_policy: {
value: fmsPolicySecurityServicePolicyDataPolicyOptionThirdPartyFirewallPolicyToHclTerraform(struct.thirdPartyFirewallPolicy),
isBlock: true,
type: "list",
storageClassType: "FmsPolicySecurityServicePolicyDataPolicyOptionThirdPartyFirewallPolicyList",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.fmsPolicySecurityServicePolicyDataPolicyOptionToHclTerraform = fmsPolicySecurityServicePolicyDataPolicyOptionToHclTerraform;
class FmsPolicySecurityServicePolicyDataPolicyOptionOutputReference extends cdktf.ComplexObject {
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
*/
constructor(terraformResource, terraformAttribute) {
super(terraformResource, terraformAttribute, false, 0);
this.isEmptyObject = false;
// network_firewall_policy - computed: false, optional: true, required: false
this._networkFirewallPolicy = new FmsPolicySecurityServicePolicyDataPolicyOptionNetworkFirewallPolicyOutputReference(this, "network_firewall_policy");
// third_party_firewall_policy - computed: false, optional: true, required: false
this._thirdPartyFirewallPolicy = new FmsPolicySecurityServicePolicyDataPolicyOptionThirdPartyFirewallPolicyOutputReference(this, "third_party_firewall_policy");
}
get internalValue() {
let hasAnyValues = this.isEmptyObject;
const internalValueResult = {};
if (this._networkFirewallPolicy?.internalValue !== undefined) {
hasAnyValues = true;
internalValueResult.networkFirewallPolicy = this._networkFirewallPolicy?.internalValue;
}
if (this._thirdPartyFirewallPolicy?.internalValue !== undefined) {
hasAnyValues = true;
internalValueResult.thirdPartyFirewallPolicy = this._thirdPartyFirewallPolicy?.internalValue;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this._networkFirewallPolicy.internalValue = undefined;
this._thirdPartyFirewallPolicy.internalValue = undefined;
}
else {
this.isEmptyObject = Object.keys(value).length === 0;
this._networkFirewallPolicy.internalValue = value.networkFirewallPolicy;
this._thirdPartyFirewallPolicy.internalValue = value.thirdPartyFirewallPolicy;
}
}
get networkFirewallPolicy() {
return this._networkFirewallPolicy;
}
putNetworkFirewallPolicy(value) {
this._networkFirewallPolicy.internalValue = value;
}
resetNetworkFirewallPolicy() {
this._networkFirewallPolicy.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get networkFirewallPolicyInput() {
return this._networkFirewallPolicy.internalValue;
}
get thirdPartyFirewallPolicy() {
return this._thirdPartyFirewallPolicy;
}
putThirdPartyFirewallPolicy(value) {
this._thirdPartyFirewallPolicy.internalValue = value;
}
resetThirdPartyFirewallPolicy() {
this._thirdPartyFirewallPolicy.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get thirdPartyFirewallPolicyInput() {
return this._thirdPartyFirewallPolicy.internalValue;
}
}
exports.FmsPolicySecurityServicePolicyDataPolicyOptionOutputReference = FmsPolicySecurityServicePolicyDataPolicyOptionOutputReference;
_e = JSII_RTTI_SYMBOL_1;
FmsPolicySecurityServicePolicyDataPolicyOptionOutputReference[_e] = { fqn: "@cdktf/provider-aws.fmsPolicy.FmsPolicySecurityServicePolicyDataPolicyOptionOutputReference", version: "19.50.0" };
function fmsPolicySecurityServicePolicyDataToTerraform(struct) {
if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
return struct;
}
if (cdktf.isComplexElement(struct)) {
throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
}
return {
managed_service_data: cdktf.stringToTerraform(struct.managedServiceData),
type: cdktf.stringToTerraform(struct.type),
policy_option: fmsPolicySecurityServicePolicyDataPolicyOptionToTerraform(struct.policyOption),
};
}
exports.fmsPolicySecurityServicePolicyDataToTerraform = fmsPolicySecurityServicePolicyDataToTerraform;
function fmsPolicySecurityServicePolicyDataToHclTerraform(struct) {
if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
return struct;
}
if (cdktf.isComplexElement(struct)) {
throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
}
const attrs = {
managed_service_data: {
value: cdktf.stringToHclTerraform(struct.managedServiceData),
isBlock: false,
type: "simple",
storageClassType: "string",
},
type: {
value: cdktf.stringToHclTerraform(struct.type),
isBlock: false,
type: "simple",
storageClassType: "string",
},
policy_option: {
value: fmsPolicySecurityServicePolicyDataPolicyOptionToHclTerraform(struct.policyOption),
isBlock: true,
type: "list",
storageClassType: "FmsPolicySecurityServicePolicyDataPolicyOptionList",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.fmsPolicySecurityServicePolicyDataToHclTerraform = fmsPolicySecurityServicePolicyDataToHclTerraform;
class FmsPolicySecurityServicePolicyDataOutputReference extends cdktf.ComplexObject {
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
*/
constructor(terraformResource, terraformAttribute) {
super(terraformResource, terraformAttribute, false, 0);
this.isEmptyObject = false;
// policy_option - computed: false, optional: true, required: false
this._policyOption = new FmsPolicySecurityServicePolicyDataPolicyOptionOutputReference(this, "policy_option");
}
get internalValue() {
let hasAnyValues = this.isEmptyObject;
const internalValueResult = {};
if (this._managedServiceData !== undefined) {
hasAnyValues = true;
internalValueResult.managedServiceData = this._managedServiceData;
}
if (this._type !== undefined) {
hasAnyValues = true;
internalValueResult.type = this._type;
}
if (this._policyOption?.internalValue !== undefined) {
hasAnyValues = true;
internalValueResult.policyOption = this._policyOption?.internalValue;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this._managedServiceData = undefined;
this._type = undefined;
this._policyOption.internalValue = undefined;
}
else {
this.isEmptyObject = Object.keys(value).length === 0;
this._managedServiceData = value.managedServiceData;
this._type = value.type;
this._policyOption.internalValue = value.policyOption;
}
}
get managedServiceData() {
return this.getStringAttribute('managed_service_data');
}
set managedServiceData(value) {
this._managedServiceData = value;
}
resetManagedServiceData() {
this._managedServiceData = undefined;
}
// Temporarily expose input value. Use with caution.
get managedServiceDataInput() {
return this._managedServiceData;
}
get type() {
return this.getStringAttribute('type');
}
set type(value) {
this._type = value;
}
// Temporarily expose input value. Use with caution.
get typeInput() {
return this._type;
}
get policyOption() {
return this._policyOption;
}
putPolicyOption(value) {
this._policyOption.internalValue = value;
}
resetPolicyOption() {
this._policyOption.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get policyOptionInput() {
return this._policyOption.internalValue;
}
}
exports.FmsPolicySecurityServicePolicyDataOutputReference = FmsPolicySecurityServicePolicyDataOutputReference;
_f = JSII_RTTI_SYMBOL_1;
FmsPolicySecurityServicePolicyDataOutputReference[_f] = { fqn: "@cdktf/provider-aws.fmsPolicy.FmsPolicySecurityServicePolicyDataOutputReference", version: "19.50.0" };
/**
* Represents a {@link https://registry.terraform.io/providers/hashicorp/aws/5.84.0/docs/resources/fms_policy aws_fms_policy}
*/
class FmsPolicy extends cdktf.TerraformResource {
// ==============
// STATIC Methods
// ==============
/**
* Generates CDKTF code for importing a FmsPolicy resource upon running "cdktf plan <stack-name>"
* @param scope The scope in which to define this construct
* @param importToId The construct id used in the generated config for the FmsPolicy to import
* @param importFromId The id of the existing FmsPolicy that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/aws/5.84.0/docs/resources/fms_policy#import import section} in the documentation of this resource for the id to use
* @param provider? Optional instance of the provider where the FmsPolicy to import is found
*/
static generateConfigForImport(scope, importToId, importFromId, provider) {
return new cdktf.ImportableResource(scope, importToId, { terraformResourceType: "aws_fms_policy", importId: importFromId, provider });
}
// ===========
// INITIALIZER
// ===========
/**
* Create a new {@link https://registry.terraform.io/providers/hashicorp/aws/5.84.0/docs/resources/fms_policy aws_fms_policy} Resource
*
* @param scope The scope in which to define this construct
* @param id The scoped construct ID. Must be unique amongst siblings in the same scope
* @param options FmsPolicyConfig
*/
constructor(scope, id, config) {
super(scope, id, {
terraformResourceType: 'aws_fms_policy',
terraformGeneratorMetadata: {
providerName: 'aws',
providerVersion: '5.84.0',
providerVersionConstraint: '~> 5.0'
},
provider: config.provider,
dependsOn: config.dependsOn,
count: config.count,
lifecycle: config.lifecycle,
provisioners: config.provisioners,
connection: config.connection,
forEach: config.forEach
});
// exclude_map - computed: false, optional: true, required: false
this._excludeMap = new FmsPolicyExcludeMapOutputReference(this, "exclude_map");
// include_map - computed: false, optional: true, required: false
this._includeMap = new FmsPolicyIncludeMapOutputReference(this, "include_map");
// security_service_policy_data - computed: false, optional: false, required: true
this._securityServicePolicyData = new FmsPolicySecurityServicePolicyDataOutputReference(this, "security_service_policy_data");
this._deleteAllPolicyResources = config.deleteAllPolicyResources;
this._deleteUnusedFmManagedResources = config.deleteUnusedFmManagedResources;
this._description = config.description;
this._excludeResourceTags = config.excludeResourceTags;
this._id = config.id;
this._name = config.name;
this._remediationEnabled = config.remediationEnabled;
this._resourceSetIds = config.resourceSetIds;
this._resourceTags = config.resourceTags;
this._resourceType = config.resourceType;
this._resourceTypeList = config.resourceTypeList;
this._tags = config.tags;
this._tagsAll = config.tagsAll;
this._excludeMap.internalValue = config.excludeMap;
this._includeMap.internalValue = config.includeMap;
this._securityServicePolicyData.internalValue = config.securityServicePolicyData;
}
// ==========
// ATTRIBUTES
// ==========
// arn - computed: true, optional: false, required: false
get arn() {
return this.getStringAttribute('arn');
}
get deleteAllPolicyResources() {
return this.getBooleanAttribute('delete_all_policy_resources');
}
set deleteAllPolicyResources(value) {
this._deleteAllPolicyResources = value;
}
resetDeleteAllPolicyResources() {
this._deleteAllPolicyResources = undefined;
}
// Temporarily expose input value. Use with caution.
get deleteAllPolicyResourcesInput() {
return this._deleteAllPolicyResources;
}
get deleteUnusedFmManagedResources() {
return this.getBooleanAttribute('delete_unused_fm_managed_resources');
}
set deleteUnusedFmManagedResources(value) {
this._deleteUnusedFmManagedResources = value;
}
resetDeleteUnusedFmManagedResources() {
this._deleteUnusedFmManagedResources = undefined;
}
// Temporarily expose input value. Use with caution.
get deleteUnusedFmManagedResourcesInput() {
return this._deleteUnusedFmManagedResources;
}
get description() {
return this.getStringAttribute('description');
}
set description(value) {
this._description = value;
}
resetDescription() {
this._description = undefined;
}
// Temporarily expose input value. Use with caution.
get descriptionInput() {
return this._description;
}
get excludeResourceTags() {
return this.getBooleanAttribute('exclude_resource_tags');
}
set excludeResourceTags(value) {
this._excludeResourceTags = value;
}
// Temporarily expose input value. Use with caution.
get excludeResourceTagsInput() {
return this._excludeResourceTags;
}
get id() {
return this.getStringAttribute('id');
}
set id(value) {
this._id = value;
}
resetId() {
this._id = undefined;
}
// Temporarily expose input value. Use with caution.
get idInput() {
return this._id;
}
get name() {
return this.getStringAttribute('name');
}
set name(value) {
this._name = value;
}
// Temporarily expose input value. Use with caution.
get nameInput() {
return this._name;
}
// policy_update_token - computed: true, optional: false, required: false
get policyUpdateToken() {
return this.getStringAttribute('policy_update_token');
}
get remediationEnabled() {
return this.getBooleanAttribute('remediation_enabled');
}
set remediationEnabled(value) {
this._remediationEnabled = value;
}
resetRemediationEnabled() {
this._remediationEnabled = undefined;
}
// Temporarily expose input value. Use with caution.
get remediationEnabledInput() {
return this._remediationEnabled;
}
get resourceSetIds() {
return cdktf.Fn.tolist(this.getListAttribute('resource_set_ids'));
}
set resourceSetIds(value) {
this._resourceSetIds = value;
}
resetResourceSetIds() {
this._resourceSetIds = undefined;
}
// Temporarily expose input value. Use with caution.
get resourceSetIdsInput() {
return this._resourceSetIds;
}
get resourceTags() {
return this.getStringMapAttribute('resource_tags');
}
set resourceTags(value) {
this._resourceTags = value;
}
resetResourceTags() {
this._resourceTags = undefined;
}
// Temporarily expose input value. Use with caution.
get resourceTagsInput() {
return this._resourceTags;
}
get resourceType() {
return this.getStringAttribute('resource_type');
}
set resourceType(value) {
this._resourceType = value;
}
resetResourceType() {
this._resourceType = undefined;
}
// Temporarily expose input value. Use with caution.
get resourceTypeInput() {
return this._resourceType;
}
get resourceTypeList() {
return cdktf.Fn.tolist(this.getListAttribute('resource_type_list'));
}
set resourceTypeList(value) {
this._resourceTypeList = value;
}
resetResourceTypeList() {
this._resourceTypeList = undefined;
}
// Temporarily expose input value. Use with caution.
get resourceTypeListInput() {
return this._resourceTypeList;
}
get tags() {
return this.getStringMapAttribute('tags');
}
set tags(value) {
this._tags = value;
}
resetTags() {
this._tags = undefined;
}
// Temporarily expose input value. Use with caution.
get tagsInput() {
return this._tags;
}
get tagsAll() {
return this.getStringMapAttribute('tags_all');
}
set tagsAll(value) {
this._tagsAll = value;
}
resetTagsAll() {
this._tagsAll = undefined;
}
// Temporarily expose input value. Use with caution.
get tagsAllInput() {
return this._tagsAll;
}
get excludeMap() {
return this._excludeMap;
}
putExcludeMap(value) {
this._excludeMap.internalValue = value;
}
resetExcludeMap() {
this._excludeMap.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get excludeMapInput() {
return this._excludeMap.internalValue;
}
get includeMap() {
return this._includeMap;
}
putIncludeMap(value) {
this._includeMap.internalValue = value;
}
resetIncludeMap() {
this._includeMap.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get includeMapInput() {
return this._includeMap.internalValue;
}
get securityServicePolicyData() {
return this._securityServicePolicyData;
}
putSecurityServicePolicyData(value) {
this._securityServicePolicyData.internalValue = value;
}
// Temporarily expose input value. Use with caution.
get securityServicePolicyDataInput() {
return this._securityServicePolicyData.internalValue;
}
// =========
// SYNTHESIS
// =========
synthesizeAttributes() {
return {
delete_all_policy_resources: cdktf.booleanToTerraform(this._deleteAllPolicyResources),
delete_unused_fm_managed_resources: cdktf.booleanToTerraform(this._deleteUnusedFmManagedResources),
description: cdktf.stringToTerraform(this._description),
exclude_resource_tags: cdktf.booleanToTerraform(this._excludeResourceTags),
id: cdktf.stringToTerraform(this._id),
name: cdktf.stringToTerraform(this._name),
remediation_enabled: cdktf.booleanToTerraform(this._remediationEnabled),
resource_set_ids: cdktf.listMapper(cdktf.stringToTerraform, false)(this._resourceSetIds),
resource_tags: cdktf.hashMapper(cdktf.stringToTerraform)(this._resourceTags),
resource_type: cdktf.stringToTerraform(this._resourceType),
resource_type_list: cdktf.listMapper(cdktf.stringToTerraform, false)(this._resourceTypeList),
tags: cdktf.hashMapper(cdktf.stringToTerraform)(this._tags),
tags_all: cdktf.hashMapper(cdktf.stringToTerraform)(this._tagsAll),
exclude_map: fmsPolicyExcludeMapToTerraform(this._excludeMap.internalValue),
include_map: fmsPolicyIncludeMapToTerraform(this._includeMap.internalValue),
security_service_policy_data: fmsPolicySecurityServicePolicyDataToTerraform(this._securityServicePolicyData.internalValue),
};
}
synthesizeHclAttributes() {
const attrs = {
delete_all_policy_resources: {
value: cdktf.booleanToHclTerraform(this._deleteAllPolicyResources),
isBlock: false,
type: "simple",
storageClassType: "boolean",
},
delete_unused_fm_managed_resources: {
value: cdktf.booleanToHclTerraform(this._deleteUnusedFmManagedResources),
isBlock: false,
type: "simple",
storageClassType: "boolean",
},
description: {
value: cdktf.stringToHclTerraform(this._description),
isBlock: false,
type: "simple",
storageClassType: "string",
},
exclude_resource_tags: {
value: cdktf.booleanToHclTerraform(this._excludeResourceTags),
isBlock: false,
type: "simple",
storageClassType: "boolean",
},
id: {
value: cdktf.stringToHclTerraform(this._id),
isBlock: false,
type: "simple",
storageClassType: "string",
},
name: {
value: cdktf.stringToHclTerraform(this._name),
isBlock: false,
type: "simple",
storageClassType: "string",
},
remediation_enabled: {
value: cdktf.booleanToHclTerraform(this._remediationEnabled),
isBlock: false,
type: "simple",
storageClassType: "boolean",
},
resource_set_ids: {
value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(this._resourceSetIds),
isBlock: false,
type: "set",
storageClassType: "stringList",
},
resource_tags: {
value: cdktf.hashMapperHcl(cdktf.stringToHclTerraform)(this._resourceTags),
isBlock: false,
type: "map",
storageClassType: "stringMap",
},
resource_type: {
value: cdktf.stringToHclTerraform(this._resourceType),
isBlock: false,
type: "simple",
storageClassType: "string",
},
resource_type_list: {
value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(this._resourceTypeList),
isBlock: false,
type: "set",
storageClassType: "stringList",
},
tags: {
value: cdktf.hashMapperHcl(cdktf.stringToHclTerraform)(this._tags),
isBlock: false,
type: "map",
storageClassType: "stringMap",
},
tags_all: {
value: cdktf.hashMapperHcl(cdktf.stringToHclTerraform)(this._tagsAll),
isBlock: false,
type: "map",
storageClassType: "stringMap",
},
exclude_map: {
value: fmsPolicyExcludeMapToHclTerraform(this._excludeMap.internalValue),
isBlock: true,
type: "list",
storageClassType: "FmsPolicyExcludeMapList",
},
include_map: {
value: fmsPolicyIncludeMapToHclTerraform(this._includeMap.internalValue),
isBlock: true,
type: "list",
storageClassType: "FmsPolicyIncludeMapList",
},
security_service_policy_data: {
value: fmsPolicySecurityServicePolicyDataToHclTerraform(this._securityServicePolicyData.internalValue),
isBlock: true,
type: "list",
storageClassType: "FmsPolicySecurityServicePolicyDataList",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
}
exports.FmsPolicy = FmsPolicy;
_g = JSII_RTTI_SYMBOL_1;
FmsPolicy[_g] = { fqn: "@cdktf/provider-aws.fmsPolicy.FmsPolicy", version: "19.50.0" };
// =================
// STATIC PROPERTIES
// =================
FmsPolicy.tfResourceType = "aws_fms_policy";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZm1zLXBvbGljeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQVNBLCtCQUErQjtBQTBGL0IsU0FBZ0IsOEJBQThCLENBQUMsTUFBaUU7SUFDOUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUFDLE9BQU8sTUFBTSxDQUFDO0lBQUMsQ0FBQztJQUM1RixJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsb0hBQW9ILENBQUMsQ0FBQztJQUN4SSxDQUFDO0lBQ0QsT0FBTztRQUNMLE9BQU8sRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxLQUFLLENBQUMsQ0FBQyxNQUFPLENBQUMsT0FBTyxDQUFDO1FBQzFFLE9BQU8sRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxLQUFLLENBQUMsQ0FBQyxNQUFPLENBQUMsT0FBTyxDQUFDO0tBQzNFLENBQUE7QUFDSCxDQUFDO0FBVEQsd0VBU0M7QUFHRCxTQUFnQixpQ0FBaUMsQ0FBQyxNQUFpRTtJQUNqSCxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQUMsT0FBTyxNQUFNLENBQUM7SUFBQyxDQUFDO0lBQzVGLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxvSEFBb0gsQ0FBQyxDQUFDO0lBQ3hJLENBQUM7SUFDRCxN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