UNPKG

@cdktf/provider-azurerm

Version:

Prebuilt azurerm Provider for Terraform CDK (cdktf)

1,023 lines 147 kB
"use strict"; var _a, _b, _c, _d, _e; Object.defineProperty(exports, "__esModule", { value: true }); exports.ExpressRouteCircuitPeering = exports.ExpressRouteCircuitPeeringTimeoutsOutputReference = exports.expressRouteCircuitPeeringTimeoutsToHclTerraform = exports.expressRouteCircuitPeeringTimeoutsToTerraform = exports.ExpressRouteCircuitPeeringMicrosoftPeeringConfigOutputReference = exports.expressRouteCircuitPeeringMicrosoftPeeringConfigToHclTerraform = exports.expressRouteCircuitPeeringMicrosoftPeeringConfigToTerraform = exports.ExpressRouteCircuitPeeringIpv6OutputReference = exports.expressRouteCircuitPeeringIpv6ToHclTerraform = exports.expressRouteCircuitPeeringIpv6ToTerraform = exports.ExpressRouteCircuitPeeringIpv6MicrosoftPeeringOutputReference = exports.expressRouteCircuitPeeringIpv6MicrosoftPeeringToHclTerraform = exports.expressRouteCircuitPeeringIpv6MicrosoftPeeringToTerraform = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const cdktf = require("cdktf"); function expressRouteCircuitPeeringIpv6MicrosoftPeeringToTerraform(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 { advertised_communities: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.advertisedCommunities), advertised_public_prefixes: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.advertisedPublicPrefixes), customer_asn: cdktf.numberToTerraform(struct.customerAsn), routing_registry_name: cdktf.stringToTerraform(struct.routingRegistryName), }; } exports.expressRouteCircuitPeeringIpv6MicrosoftPeeringToTerraform = expressRouteCircuitPeeringIpv6MicrosoftPeeringToTerraform; function expressRouteCircuitPeeringIpv6MicrosoftPeeringToHclTerraform(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 = { advertised_communities: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.advertisedCommunities), isBlock: false, type: "list", storageClassType: "stringList", }, advertised_public_prefixes: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.advertisedPublicPrefixes), isBlock: false, type: "list", storageClassType: "stringList", }, customer_asn: { value: cdktf.numberToHclTerraform(struct.customerAsn), isBlock: false, type: "simple", storageClassType: "number", }, routing_registry_name: { value: cdktf.stringToHclTerraform(struct.routingRegistryName), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.expressRouteCircuitPeeringIpv6MicrosoftPeeringToHclTerraform = expressRouteCircuitPeeringIpv6MicrosoftPeeringToHclTerraform; class ExpressRouteCircuitPeeringIpv6MicrosoftPeeringOutputReference 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._advertisedCommunities !== undefined) { hasAnyValues = true; internalValueResult.advertisedCommunities = this._advertisedCommunities; } if (this._advertisedPublicPrefixes !== undefined) { hasAnyValues = true; internalValueResult.advertisedPublicPrefixes = this._advertisedPublicPrefixes; } if (this._customerAsn !== undefined) { hasAnyValues = true; internalValueResult.customerAsn = this._customerAsn; } if (this._routingRegistryName !== undefined) { hasAnyValues = true; internalValueResult.routingRegistryName = this._routingRegistryName; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._advertisedCommunities = undefined; this._advertisedPublicPrefixes = undefined; this._customerAsn = undefined; this._routingRegistryName = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._advertisedCommunities = value.advertisedCommunities; this._advertisedPublicPrefixes = value.advertisedPublicPrefixes; this._customerAsn = value.customerAsn; this._routingRegistryName = value.routingRegistryName; } } get advertisedCommunities() { return this.getListAttribute('advertised_communities'); } set advertisedCommunities(value) { this._advertisedCommunities = value; } resetAdvertisedCommunities() { this._advertisedCommunities = undefined; } // Temporarily expose input value. Use with caution. get advertisedCommunitiesInput() { return this._advertisedCommunities; } get advertisedPublicPrefixes() { return this.getListAttribute('advertised_public_prefixes'); } set advertisedPublicPrefixes(value) { this._advertisedPublicPrefixes = value; } resetAdvertisedPublicPrefixes() { this._advertisedPublicPrefixes = undefined; } // Temporarily expose input value. Use with caution. get advertisedPublicPrefixesInput() { return this._advertisedPublicPrefixes; } get customerAsn() { return this.getNumberAttribute('customer_asn'); } set customerAsn(value) { this._customerAsn = value; } resetCustomerAsn() { this._customerAsn = undefined; } // Temporarily expose input value. Use with caution. get customerAsnInput() { return this._customerAsn; } get routingRegistryName() { return this.getStringAttribute('routing_registry_name'); } set routingRegistryName(value) { this._routingRegistryName = value; } resetRoutingRegistryName() { this._routingRegistryName = undefined; } // Temporarily expose input value. Use with caution. get routingRegistryNameInput() { return this._routingRegistryName; } } exports.ExpressRouteCircuitPeeringIpv6MicrosoftPeeringOutputReference = ExpressRouteCircuitPeeringIpv6MicrosoftPeeringOutputReference; _a = JSII_RTTI_SYMBOL_1; ExpressRouteCircuitPeeringIpv6MicrosoftPeeringOutputReference[_a] = { fqn: "@cdktf/provider-azurerm.expressRouteCircuitPeering.ExpressRouteCircuitPeeringIpv6MicrosoftPeeringOutputReference", version: "12.27.0" }; function expressRouteCircuitPeeringIpv6ToTerraform(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 { enabled: cdktf.booleanToTerraform(struct.enabled), primary_peer_address_prefix: cdktf.stringToTerraform(struct.primaryPeerAddressPrefix), route_filter_id: cdktf.stringToTerraform(struct.routeFilterId), secondary_peer_address_prefix: cdktf.stringToTerraform(struct.secondaryPeerAddressPrefix), microsoft_peering: expressRouteCircuitPeeringIpv6MicrosoftPeeringToTerraform(struct.microsoftPeering), }; } exports.expressRouteCircuitPeeringIpv6ToTerraform = expressRouteCircuitPeeringIpv6ToTerraform; function expressRouteCircuitPeeringIpv6ToHclTerraform(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 = { enabled: { value: cdktf.booleanToHclTerraform(struct.enabled), isBlock: false, type: "simple", storageClassType: "boolean", }, primary_peer_address_prefix: { value: cdktf.stringToHclTerraform(struct.primaryPeerAddressPrefix), isBlock: false, type: "simple", storageClassType: "string", }, route_filter_id: { value: cdktf.stringToHclTerraform(struct.routeFilterId), isBlock: false, type: "simple", storageClassType: "string", }, secondary_peer_address_prefix: { value: cdktf.stringToHclTerraform(struct.secondaryPeerAddressPrefix), isBlock: false, type: "simple", storageClassType: "string", }, microsoft_peering: { value: expressRouteCircuitPeeringIpv6MicrosoftPeeringToHclTerraform(struct.microsoftPeering), isBlock: true, type: "list", storageClassType: "ExpressRouteCircuitPeeringIpv6MicrosoftPeeringList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.expressRouteCircuitPeeringIpv6ToHclTerraform = expressRouteCircuitPeeringIpv6ToHclTerraform; class ExpressRouteCircuitPeeringIpv6OutputReference 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; // microsoft_peering - computed: false, optional: true, required: false this._microsoftPeering = new ExpressRouteCircuitPeeringIpv6MicrosoftPeeringOutputReference(this, "microsoft_peering"); } get internalValue() { let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._enabled !== undefined) { hasAnyValues = true; internalValueResult.enabled = this._enabled; } if (this._primaryPeerAddressPrefix !== undefined) { hasAnyValues = true; internalValueResult.primaryPeerAddressPrefix = this._primaryPeerAddressPrefix; } if (this._routeFilterId !== undefined) { hasAnyValues = true; internalValueResult.routeFilterId = this._routeFilterId; } if (this._secondaryPeerAddressPrefix !== undefined) { hasAnyValues = true; internalValueResult.secondaryPeerAddressPrefix = this._secondaryPeerAddressPrefix; } if (this._microsoftPeering?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.microsoftPeering = this._microsoftPeering?.internalValue; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._enabled = undefined; this._primaryPeerAddressPrefix = undefined; this._routeFilterId = undefined; this._secondaryPeerAddressPrefix = undefined; this._microsoftPeering.internalValue = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._enabled = value.enabled; this._primaryPeerAddressPrefix = value.primaryPeerAddressPrefix; this._routeFilterId = value.routeFilterId; this._secondaryPeerAddressPrefix = value.secondaryPeerAddressPrefix; this._microsoftPeering.internalValue = value.microsoftPeering; } } get enabled() { return this.getBooleanAttribute('enabled'); } set enabled(value) { this._enabled = value; } resetEnabled() { this._enabled = undefined; } // Temporarily expose input value. Use with caution. get enabledInput() { return this._enabled; } get primaryPeerAddressPrefix() { return this.getStringAttribute('primary_peer_address_prefix'); } set primaryPeerAddressPrefix(value) { this._primaryPeerAddressPrefix = value; } // Temporarily expose input value. Use with caution. get primaryPeerAddressPrefixInput() { return this._primaryPeerAddressPrefix; } get routeFilterId() { return this.getStringAttribute('route_filter_id'); } set routeFilterId(value) { this._routeFilterId = value; } resetRouteFilterId() { this._routeFilterId = undefined; } // Temporarily expose input value. Use with caution. get routeFilterIdInput() { return this._routeFilterId; } get secondaryPeerAddressPrefix() { return this.getStringAttribute('secondary_peer_address_prefix'); } set secondaryPeerAddressPrefix(value) { this._secondaryPeerAddressPrefix = value; } // Temporarily expose input value. Use with caution. get secondaryPeerAddressPrefixInput() { return this._secondaryPeerAddressPrefix; } get microsoftPeering() { return this._microsoftPeering; } putMicrosoftPeering(value) { this._microsoftPeering.internalValue = value; } resetMicrosoftPeering() { this._microsoftPeering.internalValue = undefined; } // Temporarily expose input value. Use with caution. get microsoftPeeringInput() { return this._microsoftPeering.internalValue; } } exports.ExpressRouteCircuitPeeringIpv6OutputReference = ExpressRouteCircuitPeeringIpv6OutputReference; _b = JSII_RTTI_SYMBOL_1; ExpressRouteCircuitPeeringIpv6OutputReference[_b] = { fqn: "@cdktf/provider-azurerm.expressRouteCircuitPeering.ExpressRouteCircuitPeeringIpv6OutputReference", version: "12.27.0" }; function expressRouteCircuitPeeringMicrosoftPeeringConfigToTerraform(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 { advertised_communities: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.advertisedCommunities), advertised_public_prefixes: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.advertisedPublicPrefixes), customer_asn: cdktf.numberToTerraform(struct.customerAsn), routing_registry_name: cdktf.stringToTerraform(struct.routingRegistryName), }; } exports.expressRouteCircuitPeeringMicrosoftPeeringConfigToTerraform = expressRouteCircuitPeeringMicrosoftPeeringConfigToTerraform; function expressRouteCircuitPeeringMicrosoftPeeringConfigToHclTerraform(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 = { advertised_communities: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.advertisedCommunities), isBlock: false, type: "list", storageClassType: "stringList", }, advertised_public_prefixes: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.advertisedPublicPrefixes), isBlock: false, type: "list", storageClassType: "stringList", }, customer_asn: { value: cdktf.numberToHclTerraform(struct.customerAsn), isBlock: false, type: "simple", storageClassType: "number", }, routing_registry_name: { value: cdktf.stringToHclTerraform(struct.routingRegistryName), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.expressRouteCircuitPeeringMicrosoftPeeringConfigToHclTerraform = expressRouteCircuitPeeringMicrosoftPeeringConfigToHclTerraform; class ExpressRouteCircuitPeeringMicrosoftPeeringConfigOutputReference 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._advertisedCommunities !== undefined) { hasAnyValues = true; internalValueResult.advertisedCommunities = this._advertisedCommunities; } if (this._advertisedPublicPrefixes !== undefined) { hasAnyValues = true; internalValueResult.advertisedPublicPrefixes = this._advertisedPublicPrefixes; } if (this._customerAsn !== undefined) { hasAnyValues = true; internalValueResult.customerAsn = this._customerAsn; } if (this._routingRegistryName !== undefined) { hasAnyValues = true; internalValueResult.routingRegistryName = this._routingRegistryName; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._advertisedCommunities = undefined; this._advertisedPublicPrefixes = undefined; this._customerAsn = undefined; this._routingRegistryName = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._advertisedCommunities = value.advertisedCommunities; this._advertisedPublicPrefixes = value.advertisedPublicPrefixes; this._customerAsn = value.customerAsn; this._routingRegistryName = value.routingRegistryName; } } get advertisedCommunities() { return this.getListAttribute('advertised_communities'); } set advertisedCommunities(value) { this._advertisedCommunities = value; } resetAdvertisedCommunities() { this._advertisedCommunities = undefined; } // Temporarily expose input value. Use with caution. get advertisedCommunitiesInput() { return this._advertisedCommunities; } get advertisedPublicPrefixes() { return this.getListAttribute('advertised_public_prefixes'); } set advertisedPublicPrefixes(value) { this._advertisedPublicPrefixes = value; } // Temporarily expose input value. Use with caution. get advertisedPublicPrefixesInput() { return this._advertisedPublicPrefixes; } get customerAsn() { return this.getNumberAttribute('customer_asn'); } set customerAsn(value) { this._customerAsn = value; } resetCustomerAsn() { this._customerAsn = undefined; } // Temporarily expose input value. Use with caution. get customerAsnInput() { return this._customerAsn; } get routingRegistryName() { return this.getStringAttribute('routing_registry_name'); } set routingRegistryName(value) { this._routingRegistryName = value; } resetRoutingRegistryName() { this._routingRegistryName = undefined; } // Temporarily expose input value. Use with caution. get routingRegistryNameInput() { return this._routingRegistryName; } } exports.ExpressRouteCircuitPeeringMicrosoftPeeringConfigOutputReference = ExpressRouteCircuitPeeringMicrosoftPeeringConfigOutputReference; _c = JSII_RTTI_SYMBOL_1; ExpressRouteCircuitPeeringMicrosoftPeeringConfigOutputReference[_c] = { fqn: "@cdktf/provider-azurerm.expressRouteCircuitPeering.ExpressRouteCircuitPeeringMicrosoftPeeringConfigOutputReference", version: "12.27.0" }; function expressRouteCircuitPeeringTimeoutsToTerraform(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 { create: cdktf.stringToTerraform(struct.create), delete: cdktf.stringToTerraform(struct.delete), read: cdktf.stringToTerraform(struct.read), update: cdktf.stringToTerraform(struct.update), }; } exports.expressRouteCircuitPeeringTimeoutsToTerraform = expressRouteCircuitPeeringTimeoutsToTerraform; function expressRouteCircuitPeeringTimeoutsToHclTerraform(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 = { create: { value: cdktf.stringToHclTerraform(struct.create), isBlock: false, type: "simple", storageClassType: "string", }, delete: { value: cdktf.stringToHclTerraform(struct.delete), isBlock: false, type: "simple", storageClassType: "string", }, read: { value: cdktf.stringToHclTerraform(struct.read), isBlock: false, type: "simple", storageClassType: "string", }, update: { value: cdktf.stringToHclTerraform(struct.update), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.expressRouteCircuitPeeringTimeoutsToHclTerraform = expressRouteCircuitPeeringTimeoutsToHclTerraform; class ExpressRouteCircuitPeeringTimeoutsOutputReference 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); this.isEmptyObject = false; } get internalValue() { if (this.resolvableValue) { return this.resolvableValue; } let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._create !== undefined) { hasAnyValues = true; internalValueResult.create = this._create; } if (this._delete !== undefined) { hasAnyValues = true; internalValueResult.delete = this._delete; } if (this._read !== undefined) { hasAnyValues = true; internalValueResult.read = this._read; } if (this._update !== undefined) { hasAnyValues = true; internalValueResult.update = this._update; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this.resolvableValue = undefined; this._create = undefined; this._delete = undefined; this._read = undefined; this._update = undefined; } else if (cdktf.Tokenization.isResolvable(value)) { this.isEmptyObject = false; this.resolvableValue = value; } else { this.isEmptyObject = Object.keys(value).length === 0; this.resolvableValue = undefined; this._create = value.create; this._delete = value.delete; this._read = value.read; this._update = value.update; } } get create() { return this.getStringAttribute('create'); } set create(value) { this._create = value; } resetCreate() { this._create = undefined; } // Temporarily expose input value. Use with caution. get createInput() { return this._create; } get delete() { return this.getStringAttribute('delete'); } set delete(value) { this._delete = value; } resetDelete() { this._delete = undefined; } // Temporarily expose input value. Use with caution. get deleteInput() { return this._delete; } get read() { return this.getStringAttribute('read'); } set read(value) { this._read = value; } resetRead() { this._read = undefined; } // Temporarily expose input value. Use with caution. get readInput() { return this._read; } get update() { return this.getStringAttribute('update'); } set update(value) { this._update = value; } resetUpdate() { this._update = undefined; } // Temporarily expose input value. Use with caution. get updateInput() { return this._update; } } exports.ExpressRouteCircuitPeeringTimeoutsOutputReference = ExpressRouteCircuitPeeringTimeoutsOutputReference; _d = JSII_RTTI_SYMBOL_1; ExpressRouteCircuitPeeringTimeoutsOutputReference[_d] = { fqn: "@cdktf/provider-azurerm.expressRouteCircuitPeering.ExpressRouteCircuitPeeringTimeoutsOutputReference", version: "12.27.0" }; /** * Represents a {@link https://registry.terraform.io/providers/hashicorp/azurerm/3.116.0/docs/resources/express_route_circuit_peering azurerm_express_route_circuit_peering} */ class ExpressRouteCircuitPeering extends cdktf.TerraformResource { // ============== // STATIC Methods // ============== /** * Generates CDKTF code for importing a ExpressRouteCircuitPeering 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 ExpressRouteCircuitPeering to import * @param importFromId The id of the existing ExpressRouteCircuitPeering that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/azurerm/3.116.0/docs/resources/express_route_circuit_peering#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the ExpressRouteCircuitPeering to import is found */ static generateConfigForImport(scope, importToId, importFromId, provider) { return new cdktf.ImportableResource(scope, importToId, { terraformResourceType: "azurerm_express_route_circuit_peering", importId: importFromId, provider }); } // =========== // INITIALIZER // =========== /** * Create a new {@link https://registry.terraform.io/providers/hashicorp/azurerm/3.116.0/docs/resources/express_route_circuit_peering azurerm_express_route_circuit_peering} 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 ExpressRouteCircuitPeeringConfig */ constructor(scope, id, config) { super(scope, id, { terraformResourceType: 'azurerm_express_route_circuit_peering', terraformGeneratorMetadata: { providerName: 'azurerm', providerVersion: '3.116.0', providerVersionConstraint: '~> 3.10' }, provider: config.provider, dependsOn: config.dependsOn, count: config.count, lifecycle: config.lifecycle, provisioners: config.provisioners, connection: config.connection, forEach: config.forEach }); // ipv6 - computed: false, optional: true, required: false this._ipv6 = new ExpressRouteCircuitPeeringIpv6OutputReference(this, "ipv6"); // microsoft_peering_config - computed: false, optional: true, required: false this._microsoftPeeringConfig = new ExpressRouteCircuitPeeringMicrosoftPeeringConfigOutputReference(this, "microsoft_peering_config"); // timeouts - computed: false, optional: true, required: false this._timeouts = new ExpressRouteCircuitPeeringTimeoutsOutputReference(this, "timeouts"); this._expressRouteCircuitName = config.expressRouteCircuitName; this._id = config.id; this._ipv4Enabled = config.ipv4Enabled; this._peerAsn = config.peerAsn; this._peeringType = config.peeringType; this._primaryPeerAddressPrefix = config.primaryPeerAddressPrefix; this._resourceGroupName = config.resourceGroupName; this._routeFilterId = config.routeFilterId; this._secondaryPeerAddressPrefix = config.secondaryPeerAddressPrefix; this._sharedKey = config.sharedKey; this._vlanId = config.vlanId; this._ipv6.internalValue = config.ipv6; this._microsoftPeeringConfig.internalValue = config.microsoftPeeringConfig; this._timeouts.internalValue = config.timeouts; } // ========== // ATTRIBUTES // ========== // azure_asn - computed: true, optional: false, required: false get azureAsn() { return this.getNumberAttribute('azure_asn'); } get expressRouteCircuitName() { return this.getStringAttribute('express_route_circuit_name'); } set expressRouteCircuitName(value) { this._expressRouteCircuitName = value; } // Temporarily expose input value. Use with caution. get expressRouteCircuitNameInput() { return this._expressRouteCircuitName; } // gateway_manager_etag - computed: true, optional: false, required: false get gatewayManagerEtag() { return this.getStringAttribute('gateway_manager_etag'); } 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 ipv4Enabled() { return this.getBooleanAttribute('ipv4_enabled'); } set ipv4Enabled(value) { this._ipv4Enabled = value; } resetIpv4Enabled() { this._ipv4Enabled = undefined; } // Temporarily expose input value. Use with caution. get ipv4EnabledInput() { return this._ipv4Enabled; } get peerAsn() { return this.getNumberAttribute('peer_asn'); } set peerAsn(value) { this._peerAsn = value; } resetPeerAsn() { this._peerAsn = undefined; } // Temporarily expose input value. Use with caution. get peerAsnInput() { return this._peerAsn; } get peeringType() { return this.getStringAttribute('peering_type'); } set peeringType(value) { this._peeringType = value; } // Temporarily expose input value. Use with caution. get peeringTypeInput() { return this._peeringType; } // primary_azure_port - computed: true, optional: false, required: false get primaryAzurePort() { return this.getStringAttribute('primary_azure_port'); } get primaryPeerAddressPrefix() { return this.getStringAttribute('primary_peer_address_prefix'); } set primaryPeerAddressPrefix(value) { this._primaryPeerAddressPrefix = value; } resetPrimaryPeerAddressPrefix() { this._primaryPeerAddressPrefix = undefined; } // Temporarily expose input value. Use with caution. get primaryPeerAddressPrefixInput() { return this._primaryPeerAddressPrefix; } get resourceGroupName() { return this.getStringAttribute('resource_group_name'); } set resourceGroupName(value) { this._resourceGroupName = value; } // Temporarily expose input value. Use with caution. get resourceGroupNameInput() { return this._resourceGroupName; } get routeFilterId() { return this.getStringAttribute('route_filter_id'); } set routeFilterId(value) { this._routeFilterId = value; } resetRouteFilterId() { this._routeFilterId = undefined; } // Temporarily expose input value. Use with caution. get routeFilterIdInput() { return this._routeFilterId; } // secondary_azure_port - computed: true, optional: false, required: false get secondaryAzurePort() { return this.getStringAttribute('secondary_azure_port'); } get secondaryPeerAddressPrefix() { return this.getStringAttribute('secondary_peer_address_prefix'); } set secondaryPeerAddressPrefix(value) { this._secondaryPeerAddressPrefix = value; } resetSecondaryPeerAddressPrefix() { this._secondaryPeerAddressPrefix = undefined; } // Temporarily expose input value. Use with caution. get secondaryPeerAddressPrefixInput() { return this._secondaryPeerAddressPrefix; } get sharedKey() { return this.getStringAttribute('shared_key'); } set sharedKey(value) { this._sharedKey = value; } resetSharedKey() { this._sharedKey = undefined; } // Temporarily expose input value. Use with caution. get sharedKeyInput() { return this._sharedKey; } get vlanId() { return this.getNumberAttribute('vlan_id'); } set vlanId(value) { this._vlanId = value; } // Temporarily expose input value. Use with caution. get vlanIdInput() { return this._vlanId; } get ipv6() { return this._ipv6; } putIpv6(value) { this._ipv6.internalValue = value; } resetIpv6() { this._ipv6.internalValue = undefined; } // Temporarily expose input value. Use with caution. get ipv6Input() { return this._ipv6.internalValue; } get microsoftPeeringConfig() { return this._microsoftPeeringConfig; } putMicrosoftPeeringConfig(value) { this._microsoftPeeringConfig.internalValue = value; } resetMicrosoftPeeringConfig() { this._microsoftPeeringConfig.internalValue = undefined; } // Temporarily expose input value. Use with caution. get microsoftPeeringConfigInput() { return this._microsoftPeeringConfig.internalValue; } get timeouts() { return this._timeouts; } putTimeouts(value) { this._timeouts.internalValue = value; } resetTimeouts() { this._timeouts.internalValue = undefined; } // Temporarily expose input value. Use with caution. get timeoutsInput() { return this._timeouts.internalValue; } // ========= // SYNTHESIS // ========= synthesizeAttributes() { return { express_route_circuit_name: cdktf.stringToTerraform(this._expressRouteCircuitName), id: cdktf.stringToTerraform(this._id), ipv4_enabled: cdktf.booleanToTerraform(this._ipv4Enabled), peer_asn: cdktf.numberToTerraform(this._peerAsn), peering_type: cdktf.stringToTerraform(this._peeringType), primary_peer_address_prefix: cdktf.stringToTerraform(this._primaryPeerAddressPrefix), resource_group_name: cdktf.stringToTerraform(this._resourceGroupName), route_filter_id: cdktf.stringToTerraform(this._routeFilterId), secondary_peer_address_prefix: cdktf.stringToTerraform(this._secondaryPeerAddressPrefix), shared_key: cdktf.stringToTerraform(this._sharedKey), vlan_id: cdktf.numberToTerraform(this._vlanId), ipv6: expressRouteCircuitPeeringIpv6ToTerraform(this._ipv6.internalValue), microsoft_peering_config: expressRouteCircuitPeeringMicrosoftPeeringConfigToTerraform(this._microsoftPeeringConfig.internalValue), timeouts: expressRouteCircuitPeeringTimeoutsToTerraform(this._timeouts.internalValue), }; } synthesizeHclAttributes() { const attrs = { express_route_circuit_name: { value: cdktf.stringToHclTerraform(this._expressRouteCircuitName), isBlock: false, type: "simple", storageClassType: "string", }, id: { value: cdktf.stringToHclTerraform(this._id), isBlock: false, type: "simple", storageClassType: "string", }, ipv4_enabled: { value: cdktf.booleanToHclTerraform(this._ipv4Enabled), isBlock: false, type: "simple", storageClassType: "boolean", }, peer_asn: { value: cdktf.numberToHclTerraform(this._peerAsn), isBlock: false, type: "simple", storageClassType: "number", }, peering_type: { value: cdktf.stringToHclTerraform(this._peeringType), isBlock: false, type: "simple", storageClassType: "string", }, primary_peer_address_prefix: { value: cdktf.stringToHclTerraform(this._primaryPeerAddressPrefix), isBlock: false, type: "simple", storageClassType: "string", }, resource_group_name: { value: cdktf.stringToHclTerraform(this._resourceGroupName), isBlock: false, type: "simple", storageClassType: "string", }, route_filter_id: { value: cdktf.stringToHclTerraform(this._routeFilterId), isBlock: false, type: "simple", storageClassType: "string", }, secondary_peer_address_prefix: { value: cdktf.stringToHclTerraform(this._secondaryPeerAddressPrefix), isBlock: false, type: "simple", storageClassType: "string", }, shared_key: { value: cdktf.stringToHclTerraform(this._sharedKey), isBlock: false, type: "simple", storageClassType: "string", }, vlan_id: { value: cdktf.numberToHclTerraform(this._vlanId), isBlock: false, type: "simple", storageClassType: "number", }, ipv6: { value: expressRouteCircuitPeeringIpv6ToHclTerraform(this._ipv6.internalValue), isBlock: true, type: "list", storageClassType: "ExpressRouteCircuitPeeringIpv6List", }, microsoft_peering_config: { value: expressRouteCircuitPeeringMicrosoftPeeringConfigToHclTerraform(this._microsoftPeeringConfig.internalValue), isBlock: true, type: "list", storageClassType: "ExpressRouteCircuitPeeringMicrosoftPeeringConfigList", }, timeouts: { value: expressRouteCircuitPeeringTimeoutsToHclTerraform(this._timeouts.internalValue), isBlock: true, type: "struct", storageClassType: "ExpressRouteCircuitPeeringTimeouts", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } } exports.ExpressRouteCircuitPeering = ExpressRouteCircuitPeering; _e = JSII_RTTI_SYMBOL_1; ExpressRouteCircuitPeering[_e] = { fqn: "@cdktf/provider-azurerm.expressRouteCircuitPeering.ExpressRouteCircuitPeering", version: "12.27.0" }; // ================= // STATIC PROPERTIES // ================= ExpressRouteCircuitPeering.tfResourceType = "azurerm_express_route_circuit_peering"; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXhwcmVzcy1yb3V0ZS1jaXJjdWl0LXBlZXJpbmcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFTQSwrQkFBK0I7QUEwRi9CLFNBQWdCLHlEQUF5RCxDQUFDLE1BQXVIO0lBQy9MLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFBQyxPQUFPLE1BQU0sQ0FBQztJQUFDLENBQUM7SUFDNUYsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLG9IQUFvSCxDQUFDLENBQUM7SUFDeEksQ0FBQztJQUNELE9BQU87UUFDTCxzQkFBc0IsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxLQUFLLENBQUMsQ0FBQyxNQUFPLENBQUMscUJBQXFCLENBQUM7UUFDdkcsMEJBQTBCLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLENBQUMsTUFBTyxDQUFDLHdCQUF3QixDQUFDO1FBQzlHLFlBQVksRUFBRSxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTyxDQUFDLFdBQVcsQ0FBQztRQUMxRCxxQkFBcUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTyxDQUFDLG1CQUFtQixDQUFDO0tBQzVFLENBQUE7QUFDSCxDQUFDO0FBWEQsOEhBV0M7QUFHRCxTQUFnQiw0REFBNEQsQ0FBQyxNQUF1SDtJQUNsTSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxD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