@cdktf/provider-azurerm
Version:
Prebuilt azurerm Provider for Terraform CDK (cdktf)
1,023 lines • 147 kB
JavaScript
"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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXhwcmVzcy1yb3V0ZS1jaXJjdWl0LXBlZXJpbmcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFTQSwrQkFBK0I7QUEwRi9CLFNBQWdCLHlEQUF5RCxDQUFDLE1BQXVIO0lBQy9MLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFBQyxPQUFPLE1BQU0sQ0FBQztJQUFDLENBQUM7SUFDNUYsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLG9IQUFvSCxDQUFDLENBQUM7SUFDeEksQ0FBQztJQUNELE9BQU87UUFDTCxzQkFBc0IsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxLQUFLLENBQUMsQ0FBQyxNQUFPLENBQUMscUJBQXFCLENBQUM7UUFDdkcsMEJBQTBCLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLENBQUMsTUFBTyxDQUFDLHdCQUF3QixDQUFDO1FBQzlHLFlBQVksRUFBRSxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTyxDQUFDLFdBQVcsQ0FBQztRQUMxRCxxQkFBcUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTyxDQUFDLG1CQUFtQixDQUFDO0tBQzVFLENBQUE7QUFDSCxDQUFDO0FBWEQsOEhBV0M7QUFHRCxTQUFnQiw0REFBNEQsQ0FBQyxNQUF1SDtJQUNsTSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQUMsT0FBTyxNQUFNLENBQUM7SUFBQyxDQUFDO0lBQzVGLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxvSEFBb0gsQ0FBQyxDQUFDO0lBQ3hJLENBQUM7SUFDRCxNQUFNLEtBQUssR0FBRztRQUNaLHNCQUFzQixFQUFFO1lBQ3RCLEtBQUssRUFBRSxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLENBQUMsQ0FBQyxNQUFPLENBQUMscUJBQXFCLENBQUM7WUFDNUYsT0FBTyxFQUFFLEtBQUs7WUFDZCxJQUFJLEVBQUUsTUFBTTtZQUNaLGdCQUFnQixFQUFFLFlBQVk7U0FDL0I7UUFDRCwwQkFBMEIsRUFBRTtZQUMxQixLQUFLLEVBQUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLENBQUMsTUFBTyxDQUFDLHdCQUF3QixDQUFDO1lBQy9GLE9BQU8sRUFBRSxLQUFLO1lBQ2QsSUFBSSxFQUFFLE1BQU07WUFDWixnQkFBZ0IsRUFBRSxZQUFZO1NBQy9CO1FBQ0QsWUFBWSxFQUFFO1lBQ1osS0FBSyxFQUFFLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxNQUFPLENBQUMsV0FBVyxDQUFDO1lBQ3RELE9BQU8sRUFBRSxLQUFLO1lBQ2QsSUFBSSxFQUFFLFFBQVE7WUFDZCxnQkFBZ0IsRUFBRSxRQUFRO1NBQzNCO1FBQ0QscUJBQXFCLEVBQUU7WUFDckIsS0FBSyxFQUFFLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxNQUFPLENBQUMsbUJBQW1CLENBQUM7WUFDOUQsT0FBTyxFQUFFLEtBQUs7WUFDZCxJQUFJLEVBQUUsUUFBUTtZQUNkLGdCQUFnQixFQUFFLFFBQVE7U0FDM0I7S0FDRixDQUFDO0lBRUYsOEJBQThCO0lBQzlCLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQztBQUM1SCxDQUFDO0FBbENELG9JQWtDQztBQUVELE1BQWEsNkRBQThELFNBQVEsS0FBSyxDQUFDLGFBQWE7SUFHcEc7OztNQUdFO0lBQ0YsWUFBbUIsaUJBQTZDLEVBQUUsa0JBQTBCO1FBQzFGLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFQakQsa0JBQWEsR0FBRyxLQUFLLENBQUM7SUFROUIsQ0FBQztJQUVELElBQVcsYUFBYTtRQUN0QixJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ3RDLE1BQU0sbUJBQW1CLEdBQVEsRUFBRSxDQUFDO1FBQ3BDLElBQUksSUFBSSxDQUFDLHNCQUFzQixLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzlDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDcEIsbUJBQW1CLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDO1FBQzFFLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyx5QkFBeUIsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNqRCxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQ3BCLG1CQUFtQixDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQztRQUNoRixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3BDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDcEIsbUJBQW1CLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDdEQsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLG9CQUFvQixLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzVDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDcEIsbUJBQW1CLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1FBQ3RFLENBQUM7UUFDRCxPQUFPLFlBQVksQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsSUFBVyxhQUFhLENBQUMsS0FBaUU7UUFDeEYsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7WUFDM0IsSUFBSSxDQUFDLHNCQUFzQixHQUFHLFNBQVMsQ0FBQztZQUN4QyxJQUFJLENBQUMseUJBQXlCLEdBQUcsU0FBUyxDQUFDO1lBQzNDLElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO1lBQzlCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxTQUFTLENBQUM7UUFDeEMsQ0FBQzthQUNJLENBQUM7WUFDSixJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztZQUNyRCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsS0FBSyxDQUFDLHFCQUFxQixDQUFDO1lBQzFELElBQUksQ0FBQyx5QkFBeUIsR0FBRyxLQUFLLENBQUMsd0JBQXdCLENBQUM7WUFDaEUsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUMsbUJBQW1CLENBQUM7UUFDeEQsQ0FBQztJQUNILENBQUM7SUFJRCxJQUFXLHFCQUFxQjtRQUM5QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFDRCxJQUFXLHFCQUFxQixDQUFDLEtBQWU7UUFDOUMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLEtBQUssQ0FBQztJQUN0QyxDQUFDO0lBQ00sMEJBQTBCO1FBQy9CLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxTQUFTLENBQUM7SUFDMUMsQ0FBQztJQUNELG9EQUFvRDtJQUNwRCxJQUFXLDBCQUEwQjtRQUNuQyxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztJQUNyQyxDQUFDO0lBSUQsSUFBVyx3QkFBd0I7UUFDakMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBQ0QsSUFBVyx3QkFBd0IsQ0FBQyxLQUFlO1FBQ2pELElBQUksQ0FBQyx5QkFBeUIsR0FBRyxLQUFLLENBQUM7SUFDekMsQ0FBQztJQUNNLDZCQUE2QjtRQUNsQyxJQUFJLENBQUMseUJBQXlCLEdBQUcsU0FBUyxDQUFDO0lBQzdDLENBQUM7SUFDRCxvREFBb0Q7SUFDcEQsSUFBVyw2QkFBNkI7UUFDdEMsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUM7SUFDeEMsQ0FBQztJQUlELElBQVcsV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBQ0QsSUFBVyxXQUFXLENBQUMsS0FBYTtRQUNsQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBQ00sZ0JBQWdCO1FBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO0lBQ2hDLENBQUM7SUFDRCxvREFBb0Q7SUFDcEQsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFJRCxJQUFXLG1CQUFtQjtRQUM1QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFDRCxJQUFXLG1CQUFtQixDQUFDLEtBQWE7UUFDMUMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztJQUNwQyxDQUFDO0lBQ00sd0JBQXdCO1FBQzdCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxTQUFTLENBQUM7SUFDeEMsQ0FBQztJQUNELG9EQUFvRDtJQUNwRCxJQUFXLHdCQUF3QjtRQUNqQyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNuQyxDQUFDOztBQWhISCxzSUFpSEM7OztBQTBCRCxTQUFnQix5Q0FBeUMsQ0FBQyxNQUF1RjtJQUMvSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQUMsT0FBTyxNQUFNLENBQUM7SUFBQyxDQUFDO0lBQzVGLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxvSEFBb0gsQ0FBQyxDQUFDO0lBQ3hJLENBQUM7SUFDRCxPQUFPO1FBQ0wsT0FBTyxFQUFFLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUFPLENBQUMsT0FBTyxDQUFDO1FBQ2xELDJCQUEyQixFQUFFLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUFPLENBQUMsd0JBQXdCLENBQUM7UUFDdEYsZUFBZSxFQUFFLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUFPLENBQUMsYUFBYSxDQUFDO1FBQy9ELDZCQUE2QixFQUFFLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUFPLENBQUMsMEJBQTBCLENBQUM7UUFDMUYsaUJBQWlCLEVBQUUseURBQXlELENBQUMsTUFBTyxDQUFDLGdCQUFnQixDQUFDO0tBQ3ZHLENBQUE7QUFDSCxDQUFDO0FBWkQsOEZBWUM7QUFHRCxTQUFnQiw0Q0FBNEMsQ0FBQyxNQUF1RjtJQUNsSixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQUMsT0FBTyxNQUFNLENBQUM7SUFBQyxDQUFDO0lBQzVGLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxvSEFBb0gsQ0FBQyxDQUFDO0lBQ3hJLENBQUM7SUFDRCxNQUFNLEtBQUssR0FBRztRQUNaLE9BQU8sRUFBRTtZQUNQLEtBQUssRUFBRSxLQUFLLENBQUMscUJBQXFCLENBQUMsTUFBTyxDQUFDLE9BQU8sQ0FBQztZQUNuRCxPQUFPLEVBQUUsS0FBSztZQUNkLElBQUksRUFBRSxRQUFRO1lBQ2QsZ0JBQWdCLEVBQUUsU0FBUztTQUM1QjtRQUNELDJCQUEyQixFQUFFO1lBQzNCLEtBQUssRUFBRSxLQUFLLENBQUMsb0JBQW9CLENBQUMsTUFBTyxDQUFDLHdCQUF3QixDQUFDO1lBQ25FLE9BQU8sRUFBRSxLQUFLO1lBQ2QsSUFBSSxFQUFFLFFBQVE7WUFDZCxnQkFBZ0IsRUFBRSxRQUFRO1NBQzNCO1FBQ0QsZUFBZSxFQUFFO1lBQ2YsS0FBSyxFQUFFLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxNQUFPLENBQUMsYUFBYSxDQUFDO1lBQ3hELE9BQU8sRUFBRSxLQUFLO1lBQ2QsSUFBSSxFQUFFLFFBQVE7WUFDZCxnQkFBZ0IsRUFBRSxRQUFRO1NBQzNCO1FBQ0QsNkJBQTZCLEVBQUU7WUFDN0IsS0FBSyxFQUFFLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxNQUFPLENBQUMsMEJBQTBCLENBQUM7WUFDckUsT0FBTyxFQUFFLEtBQUs7WUFDZCxJQUFJLEVBQUUsUUFBUTtZQUNkLGdCQUFnQixFQUFFLFFBQVE7U0FDM0I7UUFDRCxpQkFBaUIsRUFBRTtZQUNqQixLQUFLLEVBQUUsNERBQTRELENBQUMsTUFBTyxDQUFDLGdCQUFnQixDQUFDO1lBQzdGLE9BQU8sRUFBRSxJQUFJO1lBQ2IsSUFBSSxFQUFFLE1BQU07WUFDWixnQkFBZ0IsRUFBRSxvREFBb0Q7U0FDdkU7S0FDRixDQUFDO0lBRUYsOEJBQThCO0lBQzlCLE9BQU8