@cdktf/provider-google
Version:
Prebuilt google Provider for Terraform CDK (cdktf)
1,024 lines • 149 kB
JavaScript
"use strict";
var _a, _b, _c, _d, _e, _f, _g, _h;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ChronicleDataAccessScope = exports.ChronicleDataAccessScopeTimeoutsOutputReference = exports.ChronicleDataAccessScopeDeniedDataAccessLabelsList = exports.ChronicleDataAccessScopeDeniedDataAccessLabelsOutputReference = exports.ChronicleDataAccessScopeDeniedDataAccessLabelsIngestionLabelOutputReference = exports.ChronicleDataAccessScopeAllowedDataAccessLabelsList = exports.ChronicleDataAccessScopeAllowedDataAccessLabelsOutputReference = exports.ChronicleDataAccessScopeAllowedDataAccessLabelsIngestionLabelOutputReference = void 0;
exports.chronicleDataAccessScopeAllowedDataAccessLabelsIngestionLabelToTerraform = chronicleDataAccessScopeAllowedDataAccessLabelsIngestionLabelToTerraform;
exports.chronicleDataAccessScopeAllowedDataAccessLabelsIngestionLabelToHclTerraform = chronicleDataAccessScopeAllowedDataAccessLabelsIngestionLabelToHclTerraform;
exports.chronicleDataAccessScopeAllowedDataAccessLabelsToTerraform = chronicleDataAccessScopeAllowedDataAccessLabelsToTerraform;
exports.chronicleDataAccessScopeAllowedDataAccessLabelsToHclTerraform = chronicleDataAccessScopeAllowedDataAccessLabelsToHclTerraform;
exports.chronicleDataAccessScopeDeniedDataAccessLabelsIngestionLabelToTerraform = chronicleDataAccessScopeDeniedDataAccessLabelsIngestionLabelToTerraform;
exports.chronicleDataAccessScopeDeniedDataAccessLabelsIngestionLabelToHclTerraform = chronicleDataAccessScopeDeniedDataAccessLabelsIngestionLabelToHclTerraform;
exports.chronicleDataAccessScopeDeniedDataAccessLabelsToTerraform = chronicleDataAccessScopeDeniedDataAccessLabelsToTerraform;
exports.chronicleDataAccessScopeDeniedDataAccessLabelsToHclTerraform = chronicleDataAccessScopeDeniedDataAccessLabelsToHclTerraform;
exports.chronicleDataAccessScopeTimeoutsToTerraform = chronicleDataAccessScopeTimeoutsToTerraform;
exports.chronicleDataAccessScopeTimeoutsToHclTerraform = chronicleDataAccessScopeTimeoutsToHclTerraform;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const cdktf = require("cdktf");
function chronicleDataAccessScopeAllowedDataAccessLabelsIngestionLabelToTerraform(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 {
ingestion_label_key: cdktf.stringToTerraform(struct.ingestionLabelKey),
ingestion_label_value: cdktf.stringToTerraform(struct.ingestionLabelValue),
};
}
function chronicleDataAccessScopeAllowedDataAccessLabelsIngestionLabelToHclTerraform(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 = {
ingestion_label_key: {
value: cdktf.stringToHclTerraform(struct.ingestionLabelKey),
isBlock: false,
type: "simple",
storageClassType: "string",
},
ingestion_label_value: {
value: cdktf.stringToHclTerraform(struct.ingestionLabelValue),
isBlock: false,
type: "simple",
storageClassType: "string",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
class ChronicleDataAccessScopeAllowedDataAccessLabelsIngestionLabelOutputReference 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._ingestionLabelKey !== undefined) {
hasAnyValues = true;
internalValueResult.ingestionLabelKey = this._ingestionLabelKey;
}
if (this._ingestionLabelValue !== undefined) {
hasAnyValues = true;
internalValueResult.ingestionLabelValue = this._ingestionLabelValue;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this._ingestionLabelKey = undefined;
this._ingestionLabelValue = undefined;
}
else {
this.isEmptyObject = Object.keys(value).length === 0;
this._ingestionLabelKey = value.ingestionLabelKey;
this._ingestionLabelValue = value.ingestionLabelValue;
}
}
get ingestionLabelKey() {
return this.getStringAttribute('ingestion_label_key');
}
set ingestionLabelKey(value) {
this._ingestionLabelKey = value;
}
// Temporarily expose input value. Use with caution.
get ingestionLabelKeyInput() {
return this._ingestionLabelKey;
}
get ingestionLabelValue() {
return this.getStringAttribute('ingestion_label_value');
}
set ingestionLabelValue(value) {
this._ingestionLabelValue = value;
}
resetIngestionLabelValue() {
this._ingestionLabelValue = undefined;
}
// Temporarily expose input value. Use with caution.
get ingestionLabelValueInput() {
return this._ingestionLabelValue;
}
}
exports.ChronicleDataAccessScopeAllowedDataAccessLabelsIngestionLabelOutputReference = ChronicleDataAccessScopeAllowedDataAccessLabelsIngestionLabelOutputReference;
_a = JSII_RTTI_SYMBOL_1;
ChronicleDataAccessScopeAllowedDataAccessLabelsIngestionLabelOutputReference[_a] = { fqn: "@cdktf/provider-google.chronicleDataAccessScope.ChronicleDataAccessScopeAllowedDataAccessLabelsIngestionLabelOutputReference", version: "16.3.0" };
function chronicleDataAccessScopeAllowedDataAccessLabelsToTerraform(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 {
asset_namespace: cdktf.stringToTerraform(struct.assetNamespace),
data_access_label: cdktf.stringToTerraform(struct.dataAccessLabel),
log_type: cdktf.stringToTerraform(struct.logType),
ingestion_label: chronicleDataAccessScopeAllowedDataAccessLabelsIngestionLabelToTerraform(struct.ingestionLabel),
};
}
function chronicleDataAccessScopeAllowedDataAccessLabelsToHclTerraform(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 = {
asset_namespace: {
value: cdktf.stringToHclTerraform(struct.assetNamespace),
isBlock: false,
type: "simple",
storageClassType: "string",
},
data_access_label: {
value: cdktf.stringToHclTerraform(struct.dataAccessLabel),
isBlock: false,
type: "simple",
storageClassType: "string",
},
log_type: {
value: cdktf.stringToHclTerraform(struct.logType),
isBlock: false,
type: "simple",
storageClassType: "string",
},
ingestion_label: {
value: chronicleDataAccessScopeAllowedDataAccessLabelsIngestionLabelToHclTerraform(struct.ingestionLabel),
isBlock: true,
type: "list",
storageClassType: "ChronicleDataAccessScopeAllowedDataAccessLabelsIngestionLabelList",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
class ChronicleDataAccessScopeAllowedDataAccessLabelsOutputReference extends cdktf.ComplexObject {
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param complexObjectIndex the index of this item in the list
* @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource, terraformAttribute, complexObjectIndex, complexObjectIsFromSet) {
super(terraformResource, terraformAttribute, complexObjectIsFromSet, complexObjectIndex);
this.isEmptyObject = false;
// ingestion_label - computed: false, optional: true, required: false
this._ingestionLabel = new ChronicleDataAccessScopeAllowedDataAccessLabelsIngestionLabelOutputReference(this, "ingestion_label");
}
get internalValue() {
if (this.resolvableValue) {
return this.resolvableValue;
}
let hasAnyValues = this.isEmptyObject;
const internalValueResult = {};
if (this._assetNamespace !== undefined) {
hasAnyValues = true;
internalValueResult.assetNamespace = this._assetNamespace;
}
if (this._dataAccessLabel !== undefined) {
hasAnyValues = true;
internalValueResult.dataAccessLabel = this._dataAccessLabel;
}
if (this._logType !== undefined) {
hasAnyValues = true;
internalValueResult.logType = this._logType;
}
if (this._ingestionLabel?.internalValue !== undefined) {
hasAnyValues = true;
internalValueResult.ingestionLabel = this._ingestionLabel?.internalValue;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this.resolvableValue = undefined;
this._assetNamespace = undefined;
this._dataAccessLabel = undefined;
this._logType = undefined;
this._ingestionLabel.internalValue = 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._assetNamespace = value.assetNamespace;
this._dataAccessLabel = value.dataAccessLabel;
this._logType = value.logType;
this._ingestionLabel.internalValue = value.ingestionLabel;
}
}
get assetNamespace() {
return this.getStringAttribute('asset_namespace');
}
set assetNamespace(value) {
this._assetNamespace = value;
}
resetAssetNamespace() {
this._assetNamespace = undefined;
}
// Temporarily expose input value. Use with caution.
get assetNamespaceInput() {
return this._assetNamespace;
}
get dataAccessLabel() {
return this.getStringAttribute('data_access_label');
}
set dataAccessLabel(value) {
this._dataAccessLabel = value;
}
resetDataAccessLabel() {
this._dataAccessLabel = undefined;
}
// Temporarily expose input value. Use with caution.
get dataAccessLabelInput() {
return this._dataAccessLabel;
}
// display_name - computed: true, optional: false, required: false
get displayName() {
return this.getStringAttribute('display_name');
}
get logType() {
return this.getStringAttribute('log_type');
}
set logType(value) {
this._logType = value;
}
resetLogType() {
this._logType = undefined;
}
// Temporarily expose input value. Use with caution.
get logTypeInput() {
return this._logType;
}
get ingestionLabel() {
return this._ingestionLabel;
}
putIngestionLabel(value) {
this._ingestionLabel.internalValue = value;
}
resetIngestionLabel() {
this._ingestionLabel.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get ingestionLabelInput() {
return this._ingestionLabel.internalValue;
}
}
exports.ChronicleDataAccessScopeAllowedDataAccessLabelsOutputReference = ChronicleDataAccessScopeAllowedDataAccessLabelsOutputReference;
_b = JSII_RTTI_SYMBOL_1;
ChronicleDataAccessScopeAllowedDataAccessLabelsOutputReference[_b] = { fqn: "@cdktf/provider-google.chronicleDataAccessScope.ChronicleDataAccessScopeAllowedDataAccessLabelsOutputReference", version: "16.3.0" };
class ChronicleDataAccessScopeAllowedDataAccessLabelsList extends cdktf.ComplexList {
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource, terraformAttribute, wrapsSet) {
super(terraformResource, terraformAttribute, wrapsSet);
this.terraformResource = terraformResource;
this.terraformAttribute = terraformAttribute;
this.wrapsSet = wrapsSet;
}
/**
* @param index the index of the item to return
*/
get(index) {
return new ChronicleDataAccessScopeAllowedDataAccessLabelsOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet);
}
}
exports.ChronicleDataAccessScopeAllowedDataAccessLabelsList = ChronicleDataAccessScopeAllowedDataAccessLabelsList;
_c = JSII_RTTI_SYMBOL_1;
ChronicleDataAccessScopeAllowedDataAccessLabelsList[_c] = { fqn: "@cdktf/provider-google.chronicleDataAccessScope.ChronicleDataAccessScopeAllowedDataAccessLabelsList", version: "16.3.0" };
function chronicleDataAccessScopeDeniedDataAccessLabelsIngestionLabelToTerraform(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 {
ingestion_label_key: cdktf.stringToTerraform(struct.ingestionLabelKey),
ingestion_label_value: cdktf.stringToTerraform(struct.ingestionLabelValue),
};
}
function chronicleDataAccessScopeDeniedDataAccessLabelsIngestionLabelToHclTerraform(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 = {
ingestion_label_key: {
value: cdktf.stringToHclTerraform(struct.ingestionLabelKey),
isBlock: false,
type: "simple",
storageClassType: "string",
},
ingestion_label_value: {
value: cdktf.stringToHclTerraform(struct.ingestionLabelValue),
isBlock: false,
type: "simple",
storageClassType: "string",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
class ChronicleDataAccessScopeDeniedDataAccessLabelsIngestionLabelOutputReference 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._ingestionLabelKey !== undefined) {
hasAnyValues = true;
internalValueResult.ingestionLabelKey = this._ingestionLabelKey;
}
if (this._ingestionLabelValue !== undefined) {
hasAnyValues = true;
internalValueResult.ingestionLabelValue = this._ingestionLabelValue;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this._ingestionLabelKey = undefined;
this._ingestionLabelValue = undefined;
}
else {
this.isEmptyObject = Object.keys(value).length === 0;
this._ingestionLabelKey = value.ingestionLabelKey;
this._ingestionLabelValue = value.ingestionLabelValue;
}
}
get ingestionLabelKey() {
return this.getStringAttribute('ingestion_label_key');
}
set ingestionLabelKey(value) {
this._ingestionLabelKey = value;
}
// Temporarily expose input value. Use with caution.
get ingestionLabelKeyInput() {
return this._ingestionLabelKey;
}
get ingestionLabelValue() {
return this.getStringAttribute('ingestion_label_value');
}
set ingestionLabelValue(value) {
this._ingestionLabelValue = value;
}
resetIngestionLabelValue() {
this._ingestionLabelValue = undefined;
}
// Temporarily expose input value. Use with caution.
get ingestionLabelValueInput() {
return this._ingestionLabelValue;
}
}
exports.ChronicleDataAccessScopeDeniedDataAccessLabelsIngestionLabelOutputReference = ChronicleDataAccessScopeDeniedDataAccessLabelsIngestionLabelOutputReference;
_d = JSII_RTTI_SYMBOL_1;
ChronicleDataAccessScopeDeniedDataAccessLabelsIngestionLabelOutputReference[_d] = { fqn: "@cdktf/provider-google.chronicleDataAccessScope.ChronicleDataAccessScopeDeniedDataAccessLabelsIngestionLabelOutputReference", version: "16.3.0" };
function chronicleDataAccessScopeDeniedDataAccessLabelsToTerraform(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 {
asset_namespace: cdktf.stringToTerraform(struct.assetNamespace),
data_access_label: cdktf.stringToTerraform(struct.dataAccessLabel),
log_type: cdktf.stringToTerraform(struct.logType),
ingestion_label: chronicleDataAccessScopeDeniedDataAccessLabelsIngestionLabelToTerraform(struct.ingestionLabel),
};
}
function chronicleDataAccessScopeDeniedDataAccessLabelsToHclTerraform(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 = {
asset_namespace: {
value: cdktf.stringToHclTerraform(struct.assetNamespace),
isBlock: false,
type: "simple",
storageClassType: "string",
},
data_access_label: {
value: cdktf.stringToHclTerraform(struct.dataAccessLabel),
isBlock: false,
type: "simple",
storageClassType: "string",
},
log_type: {
value: cdktf.stringToHclTerraform(struct.logType),
isBlock: false,
type: "simple",
storageClassType: "string",
},
ingestion_label: {
value: chronicleDataAccessScopeDeniedDataAccessLabelsIngestionLabelToHclTerraform(struct.ingestionLabel),
isBlock: true,
type: "list",
storageClassType: "ChronicleDataAccessScopeDeniedDataAccessLabelsIngestionLabelList",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
class ChronicleDataAccessScopeDeniedDataAccessLabelsOutputReference extends cdktf.ComplexObject {
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param complexObjectIndex the index of this item in the list
* @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource, terraformAttribute, complexObjectIndex, complexObjectIsFromSet) {
super(terraformResource, terraformAttribute, complexObjectIsFromSet, complexObjectIndex);
this.isEmptyObject = false;
// ingestion_label - computed: false, optional: true, required: false
this._ingestionLabel = new ChronicleDataAccessScopeDeniedDataAccessLabelsIngestionLabelOutputReference(this, "ingestion_label");
}
get internalValue() {
if (this.resolvableValue) {
return this.resolvableValue;
}
let hasAnyValues = this.isEmptyObject;
const internalValueResult = {};
if (this._assetNamespace !== undefined) {
hasAnyValues = true;
internalValueResult.assetNamespace = this._assetNamespace;
}
if (this._dataAccessLabel !== undefined) {
hasAnyValues = true;
internalValueResult.dataAccessLabel = this._dataAccessLabel;
}
if (this._logType !== undefined) {
hasAnyValues = true;
internalValueResult.logType = this._logType;
}
if (this._ingestionLabel?.internalValue !== undefined) {
hasAnyValues = true;
internalValueResult.ingestionLabel = this._ingestionLabel?.internalValue;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this.resolvableValue = undefined;
this._assetNamespace = undefined;
this._dataAccessLabel = undefined;
this._logType = undefined;
this._ingestionLabel.internalValue = 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._assetNamespace = value.assetNamespace;
this._dataAccessLabel = value.dataAccessLabel;
this._logType = value.logType;
this._ingestionLabel.internalValue = value.ingestionLabel;
}
}
get assetNamespace() {
return this.getStringAttribute('asset_namespace');
}
set assetNamespace(value) {
this._assetNamespace = value;
}
resetAssetNamespace() {
this._assetNamespace = undefined;
}
// Temporarily expose input value. Use with caution.
get assetNamespaceInput() {
return this._assetNamespace;
}
get dataAccessLabel() {
return this.getStringAttribute('data_access_label');
}
set dataAccessLabel(value) {
this._dataAccessLabel = value;
}
resetDataAccessLabel() {
this._dataAccessLabel = undefined;
}
// Temporarily expose input value. Use with caution.
get dataAccessLabelInput() {
return this._dataAccessLabel;
}
// display_name - computed: true, optional: false, required: false
get displayName() {
return this.getStringAttribute('display_name');
}
get logType() {
return this.getStringAttribute('log_type');
}
set logType(value) {
this._logType = value;
}
resetLogType() {
this._logType = undefined;
}
// Temporarily expose input value. Use with caution.
get logTypeInput() {
return this._logType;
}
get ingestionLabel() {
return this._ingestionLabel;
}
putIngestionLabel(value) {
this._ingestionLabel.internalValue = value;
}
resetIngestionLabel() {
this._ingestionLabel.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get ingestionLabelInput() {
return this._ingestionLabel.internalValue;
}
}
exports.ChronicleDataAccessScopeDeniedDataAccessLabelsOutputReference = ChronicleDataAccessScopeDeniedDataAccessLabelsOutputReference;
_e = JSII_RTTI_SYMBOL_1;
ChronicleDataAccessScopeDeniedDataAccessLabelsOutputReference[_e] = { fqn: "@cdktf/provider-google.chronicleDataAccessScope.ChronicleDataAccessScopeDeniedDataAccessLabelsOutputReference", version: "16.3.0" };
class ChronicleDataAccessScopeDeniedDataAccessLabelsList extends cdktf.ComplexList {
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource, terraformAttribute, wrapsSet) {
super(terraformResource, terraformAttribute, wrapsSet);
this.terraformResource = terraformResource;
this.terraformAttribute = terraformAttribute;
this.wrapsSet = wrapsSet;
}
/**
* @param index the index of the item to return
*/
get(index) {
return new ChronicleDataAccessScopeDeniedDataAccessLabelsOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet);
}
}
exports.ChronicleDataAccessScopeDeniedDataAccessLabelsList = ChronicleDataAccessScopeDeniedDataAccessLabelsList;
_f = JSII_RTTI_SYMBOL_1;
ChronicleDataAccessScopeDeniedDataAccessLabelsList[_f] = { fqn: "@cdktf/provider-google.chronicleDataAccessScope.ChronicleDataAccessScopeDeniedDataAccessLabelsList", version: "16.3.0" };
function chronicleDataAccessScopeTimeoutsToTerraform(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),
update: cdktf.stringToTerraform(struct.update),
};
}
function chronicleDataAccessScopeTimeoutsToHclTerraform(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",
},
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));
}
class ChronicleDataAccessScopeTimeoutsOutputReference 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._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._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._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 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.ChronicleDataAccessScopeTimeoutsOutputReference = ChronicleDataAccessScopeTimeoutsOutputReference;
_g = JSII_RTTI_SYMBOL_1;
ChronicleDataAccessScopeTimeoutsOutputReference[_g] = { fqn: "@cdktf/provider-google.chronicleDataAccessScope.ChronicleDataAccessScopeTimeoutsOutputReference", version: "16.3.0" };
/**
* Represents a {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/chronicle_data_access_scope google_chronicle_data_access_scope}
*/
class ChronicleDataAccessScope extends cdktf.TerraformResource {
// ==============
// STATIC Methods
// ==============
/**
* Generates CDKTF code for importing a ChronicleDataAccessScope 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 ChronicleDataAccessScope to import
* @param importFromId The id of the existing ChronicleDataAccessScope that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/chronicle_data_access_scope#import import section} in the documentation of this resource for the id to use
* @param provider? Optional instance of the provider where the ChronicleDataAccessScope to import is found
*/
static generateConfigForImport(scope, importToId, importFromId, provider) {
return new cdktf.ImportableResource(scope, importToId, { terraformResourceType: "google_chronicle_data_access_scope", importId: importFromId, provider });
}
// ===========
// INITIALIZER
// ===========
/**
* Create a new {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/chronicle_data_access_scope google_chronicle_data_access_scope} 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 ChronicleDataAccessScopeConfig
*/
constructor(scope, id, config) {
super(scope, id, {
terraformResourceType: 'google_chronicle_data_access_scope',
terraformGeneratorMetadata: {
providerName: 'google',
providerVersion: '6.41.0',
providerVersionConstraint: '~> 6.0'
},
provider: config.provider,
dependsOn: config.dependsOn,
count: config.count,
lifecycle: config.lifecycle,
provisioners: config.provisioners,
connection: config.connection,
forEach: config.forEach
});
// allowed_data_access_labels - computed: false, optional: true, required: false
this._allowedDataAccessLabels = new ChronicleDataAccessScopeAllowedDataAccessLabelsList(this, "allowed_data_access_labels", false);
// denied_data_access_labels - computed: false, optional: true, required: false
this._deniedDataAccessLabels = new ChronicleDataAccessScopeDeniedDataAccessLabelsList(this, "denied_data_access_labels", false);
// timeouts - computed: false, optional: true, required: false
this._timeouts = new ChronicleDataAccessScopeTimeoutsOutputReference(this, "timeouts");
this._allowAll = config.allowAll;
this._dataAccessScopeId = config.dataAccessScopeId;
this._description = config.description;
this._id = config.id;
this._instance = config.instance;
this._location = config.location;
this._project = config.project;
this._allowedDataAccessLabels.internalValue = config.allowedDataAccessLabels;
this._deniedDataAccessLabels.internalValue = config.deniedDataAccessLabels;
this._timeouts.internalValue = config.timeouts;
}
get allowAll() {
return this.getBooleanAttribute('allow_all');
}
set allowAll(value) {
this._allowAll = value;
}
resetAllowAll() {
this._allowAll = undefined;
}
// Temporarily expose input value. Use with caution.
get allowAllInput() {
return this._allowAll;
}
// author - computed: true, optional: false, required: false
get author() {
return this.getStringAttribute('author');
}
// create_time - computed: true, optional: false, required: false
get createTime() {
return this.getStringAttribute('create_time');
}
get dataAccessScopeId() {
return this.getStringAttribute('data_access_scope_id');
}
set dataAccessScopeId(value) {
this._dataAccessScopeId = value;
}
// Temporarily expose input value. Use with caution.
get dataAccessScopeIdInput() {
return this._dataAccessScopeId;
}
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;
}
// display_name - computed: true, optional: false, required: false
get displayName() {
return this.getStringAttribute('display_name');
}
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 instance() {
return this.getStringAttribute('instance');
}
set instance(value) {
this._instance = value;
}
// Temporarily expose input value. Use with caution.
get instanceInput() {
return this._instance;
}
// last_editor - computed: true, optional: false, required: false
get lastEditor() {
return this.getStringAttribute('last_editor');
}
get location() {
return this.getStringAttribute('location');
}
set location(value) {
this._location = value;
}
// Temporarily expose input value. Use with caution.
get locationInput() {
return this._location;
}
// name - computed: true, optional: false, required: false
get name() {
return this.getStringAttribute('name');
}
get project() {
return this.getStringAttribute('project');
}
set project(value) {
this._project = value;
}
resetProject() {
this._project = undefined;
}
// Temporarily expose input value. Use with caution.
get projectInput() {
return this._project;
}
// update_time - computed: true, optional: false, required: false
get updateTime() {
return this.getStringAttribute('update_time');
}
get allowedDataAccessLabels() {
return this._allowedDataAccessLabels;
}
putAllowedDataAccessLabels(value) {
this._allowedDataAccessLabels.internalValue = value;
}
resetAllowedDataAccessLabels() {
this._allowedDataAccessLabels.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get allowedDataAccessLabelsInput() {
return this._allowedDataAccessLabels.internalValue;
}
get deniedDataAccessLabels() {
return this._deniedDataAccessLabels;
}
putDeniedDataAccessLabels(value) {
this._deniedDataAccessLabels.internalValue = value;
}
resetDeniedDataAccessLabels() {
this._deniedDataAccessLabels.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get deniedDataAccessLabelsInput() {
return this._deniedDataAccessLabels.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 {
allow_all: cdktf.booleanToTerraform(this._allowAll),
data_access_scope_id: cdktf.stringToTerraform(this._dataAccessScopeId),
description: cdktf.stringToTerraform(this._description),
id: cdktf.stringToTerraform(this._id),
instance: cdktf.stringToTerraform(this._instance),
location: cdktf.stringToTerraform(this._location),
project: cdktf.stringToTerraform(this._project),
allowed_data_access_labels: cdktf.listMapper(chronicleDataAccessScopeAllowedDataAccessLabelsToTerraform, true)(this._allowedDataAccessLabels.internalValue),
denied_data_access_labels: cdktf.listMapper(chronicleDataAccessScopeDeniedDataAccessLabelsToTerraform, true)(this._deniedDataAccessLabels.internalValue),
timeouts: chronicleDataAccessScopeTimeoutsToTerraform(this._timeouts.internalValue),
};
}
synthesizeHclAttributes() {
const attrs = {
allow_all: {
value: cdktf.booleanToHclTerraform(this._allowAll),
isBlock: false,
type: "simple",
storageClassType: "boolean",
},
data_access_scope_id: {
value: cdktf.stringToHclTerraform(this._dataAccessScopeId),
isBlock: false,
type: "simple",
storageClassType: "string",
},
description: {
value: cdktf.stringToHclTerraform(this._description),
isBlock: false,
type: "simple",
storageClassType: "string",
},
id: {
value: cdktf.stringToHclTerraform(this._id),
isBlock: false,
type: "simple",
storageClassType: "string",
},
instance: {
value: cdktf.stringToHclTerraform(this._instance),
isBlock: false,
type: "simple",
storageClassType: "string",
},
location: {
value: cdktf.stringToHclTerraform(this._location),
isBlock: false,
type: "simple",
storageClassType: "string",
},
project: {
value: cdktf.stringToHclTerraform(this._project),
isBlock: false,
type: "simple",
storageClassType: "string",
},
allowed_data_access_labels: {
value: cdktf.listMapperHcl(chronicleDataAccessScopeAllowedDataAccessLabelsToHclTerraform, true)(this._allowedDataAccessLabels.internalValue),
isBlock: true,
type: "list",
storageClassType: "ChronicleDataAccessScopeAllowedDataAccessLabelsList",
},
denied_data_access_labels: {
value: cdktf.listMapperHcl(chronicleDataAccessScopeDeniedDataAccessLabelsToHclTerraform, true)(this._deniedDataAccessLabels.internalValue),
isBlock: true,
type: "list",
storageClassType: "ChronicleDataAccessScopeDeniedDataAccessLabelsList",
},
timeouts: {
value: chronicleDataAccessScopeTimeoutsToHclTerraform(this._timeouts.internalValue),
isBlock: true,
type: "struct",
storageClassType: "ChronicleDataAccessScopeTimeouts",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
}
exports.ChronicleDataAccessScope = ChronicleDataAccessScope;
_h = JSII_RTTI_SYMBOL_1;
ChronicleDataAccessScope[_h] = { fqn: "@cdktf/provider-google.chronicleDataAccessScope.ChronicleDataAccessScope", version: "16.3.0" };
// =================
// STATIC PROPERTIES
// =================
ChronicleDataAccessScope.tfResourceType = "google_chronicle_data_access_scope";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2hyb25pY2xlLWRhdGEtYWNjZXNzLXNjb3BlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFvR0EsNEpBU0M7QUFHRCxrS0FzQkM7QUFpR0QsZ0lBV0M7QUFHRCxzSUFrQ0M7QUEwS0QsMEpBU0M7QUFHRCxnS0FzQkM7QUFpR0QsOEhBV0M7QUFHRCxvSUFrQ0M7QUF3S0Qsa0dBVUM7QUFHRCx3R0E0QkM7O0FBNXpCRCwrQkFBK0I7QUEyRi9CLFNBQWdCLHdFQUF3RSxDQUFDLE1BQXFKO0lBQzVPLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFBQyxPQUFPLE1BQU0sQ0FBQztJQUFDLENBQUM7SUFDNUYsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLG9IQUFvSCxDQUFDLENBQUM7SUFDeEksQ0FBQztJQUNELE9BQU87UUFDTCxtQkFBbUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTyxDQUFDLGlCQUFpQixDQUFDO1FBQ3ZFLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUFPLENBQUMsbUJBQW1CLENBQUM7S0FDNUUsQ0FBQTtBQUNILENBQUM7QUFHRCxTQUFnQiwyRUFBMkUsQ0FBQyxNQUFxSjtJQUMvTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQUMsT0FBTyxNQUFNLENBQUM7SUFBQyxDQUFDO0lBQzVGLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxvSEFBb0gsQ0FBQyxDQUFDO0lBQ3hJLENBQUM7SUFDRCxNQUFNLEtBQUssR0FBRztRQUNaLG1CQUFtQixFQUFFO1lBQ25CLEtBQUssRUFBRSxLQUFLLENBQUMsb0JBQW9CLENBQUMsTUFBTyxDQUFDLGlCQUFpQixDQUFDO1lBQzVELE9BQU8sRUFBRSxLQUFLO1lBQ2QsSUFBSSxFQUFFLFFBQVE7WUFDZCxnQkFBZ0IsRUFBRSxRQUFRO1NBQzNCO1FBQ0QscUJBQXFCLEVBQUU7WUFDckIsS0FBSyxFQUFFLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxNQUFPLENBQUMsbUJBQW1CLENBQUM7WUFDOUQsT0FBTyxFQUFFLEtBQUs7WUFDZCxJQUFJLEVBQUUsUUFBUTtZQUNkLGdCQUFnQixFQUFFLFFBQVE7U0FDM0I7S0FDRixDQUFDO0lBRUYsOEJBQThCO0lBQzlCLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQztBQUM1SCxDQUFDO0FBRUQsTUFBYSw0RUFBNkUsU0FBUSxLQUFLLENBQUMsYUFBYTtJQUduSDs7O01BR0U7SUFDRixZQUFtQixpQkFBNkMsRUFBRSxrQkFBMEI7UUFDMUYsS0FBSyxDQUFDLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQVBqRCxrQkFBYSxHQUFHLEtBQUssQ0FBQztJQVE5QixDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3RCLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDdEMsTUFBTSxtQkFBbUIsR0FBUSxFQUFFLENBQUM7UUFDcEMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDMUMsWUFBWSxHQUFHLElBQUksQ0FBQztZQUNwQixtQkFBbUIsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFDbEUsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLG9CQUFvQixLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzVDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDcEIsbUJBQW1CLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1FBQ3RFLENBQUM7UUFDRCxPQUFPLFlBQVksQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsSUFBVyxhQUFhLENBQUMsS0FBZ0Y7UUFDdkcsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7WUFDM0IsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFNBQVMsQ0FBQztZQUNwQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsU0FBUyxDQUFDO1FBQ3hDLENBQUM7YUFDSSxDQUFDO1lBQ0osSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7WUFDckQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztZQUNsRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDLG1CQUFtQixDQUFDO1FBQ3hELENBQUM7SUFDSCxDQUFDO0lBSUQsSUFBVyxpQkFBaUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBQ0QsSUFBVyxpQkFBaUIsQ0FBQyxLQUFhO1FBQ3hDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7SUFDbEMsQ0FBQztJQUNELG9EQUFvRDtJQUNwRCxJQUFXLHNCQUFzQjtRQUMvQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBSUQsSUFBVyxtQkFBbUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBQ0QsSUFBVyxtQkFBbUIsQ0FBQyxLQUFhO1FBQzFDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUM7SUFDcEMsQ0FBQztJQUNNLHdCQUF3QjtRQUM3QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsU0FBUyxDQUFDO0lBQ3hDLENBQUM7SUFDRCxvREFBb0Q7SUFDcEQsSUFBVyx3QkFBd0I7UUFDakMsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDbkMsQ0FBQzs7QUFqRUgsb0tBa0VDOzs7QUE2QkQsU0FBZ0IsMERBQTBELENBQUMsTUFBNEU7SUFDckosSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUFDLE9BQU8sTUFBTSxDQUFDO0lBQUMsQ0FBQztJQUM1RixJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsb0hBQW9ILENBQUMsQ0FBQztJQUN4SSxDQUFDO0lBQ0QsT0FBTztRQUNMLGVBQWUsRUFBRSxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTyxDQUFDLGNBQWMsQ0FBQztRQUNoRSxpQkFBaUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTyxDQUFDLGVBQWUsQ0FBQztRQUNuRSxRQUFRLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQU8sQ0FBQyxPQUFPLENBQUM7UUFDbEQsZUFBZSxFQUFFLHdFQUF3RSxDQUFDLE1BQU8sQ0FBQyxjQUFjLENBQUM7S0FDbEgsQ0FBQTtBQUNILENBQUM7QUFHRCxTQUFnQiw2REFBNkQsQ0FBQyxNQUE0RTtJQUN4SixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQUMsT0FBTyxNQUFNLENBQUM7SUFBQyxDQUFDO0lBQzVGLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxvSEFBb0gsQ0FBQyxDQUFDO0lBQ3hJLENBQUM7SUFDRCxNQUFNLEtBQUssR0FBRztRQUNaLGVBQWUsRUFBRTtZQUNmLEtBQUssRUFBRSxLQUFLLENBQUMsb0JBQW9CLENBQUMsTUFBTyxDQUFDLGNBQWMsQ0FBQztZQUN6RCxPQUFPLEVBQUUsS0FBSztZQUNkLElBQUksRUFBRSxRQUFRO1lBQ2QsZ0JBQWdCLEVBQUUsUUFBUTtTQUMzQjtRQUNELGlCQUFpQixFQUFFO1lBQ2pCLEtBQUssRUFBRSxLQUFLLENBQUMsb0JBQW9CLENBQUMsTUFBTyxDQUFDLGVBQWUsQ0FBQztZQUMxRCxPQUFPLEVBQUUsS0FBSztZQUNkLElBQUksRUFBRSxRQUFRO1lBQ2QsZ0JBQWdCLEVBQUUsUUFBUTtTQUMzQjtRQUNELFFBQVEsRUFBRTtZQUNSLEtBQUssRUFBRSxLQUFLLENBQUMsb0JBQW9CLENBQUMsTUFBTyxDQUFDLE9BQU8sQ0FBQztZQUNsRCxPQUFPLEVBQUUsS0FBSztZQUNkLElBQUksRUFBRSxRQUFRO1lBQ2QsZ0JBQWdCLEVBQUUsUUFBUTtTQUMzQjtRQUNELGVBQWUsRUFBRTtZQUNmLEtBQUssRUFBRSwyRUFBMkUsQ0FBQyxNQUFPLENBQUMsY0FBYyxDQUFDO1lBQzFHLE9BQU8sRUFBRSxJQUFJO1lBQ2IsSUFBSSxFQUFFLE1BQU07WUFDWixnQkFBZ0IsRUFBRSxtRUFBbUU7U0FDdEY7S0FDRixDQUFDO0lBRUYsOEJBQThCO0lBQzlCLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQztBQUM1SCxDQUFDO0FBRUQsTUFBYSw4REFBK0QsU0FBUSxLQUFLLENBQUMsYUFBYTtJQUlyRzs7Ozs7TUFLRTtJQUNGLFlBQW1CLGlCQUE2QyxFQUFFLGtCQUEwQixFQUFFLGtCQUEwQixFQUFFLHNCQUErQjtRQUN2SixLQUFLLENBQUMsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQVZuRixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQWtIOUIscUVBQXFFO1FBQzdELG9CQUFlLEdBQUcsSUFBSSw0RUFBNEUsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQXhHcEksQ0FBQztJQUVELElBQVcsYUFB