UNPKG

rhizo-co-terraform-provider-oci

Version:

Prebuilt oci Provider for Terraform CDK (cdktf)

1,046 lines 141 kB
"use strict"; var _a, _b, _c, _d, _e, _f, _g, _h, _j; Object.defineProperty(exports, "__esModule", { value: true }); exports.MeteringComputationUsage = exports.MeteringComputationUsageTimeoutsOutputReference = exports.meteringComputationUsageTimeoutsToHclTerraform = exports.meteringComputationUsageTimeoutsToTerraform = exports.MeteringComputationUsageGroupByTagList = exports.MeteringComputationUsageGroupByTagOutputReference = exports.meteringComputationUsageGroupByTagToHclTerraform = exports.meteringComputationUsageGroupByTagToTerraform = exports.MeteringComputationUsageForecastOutputReference = exports.meteringComputationUsageForecastToHclTerraform = exports.meteringComputationUsageForecastToTerraform = exports.MeteringComputationUsageItemsList = exports.MeteringComputationUsageItemsOutputReference = exports.meteringComputationUsageItemsToHclTerraform = exports.meteringComputationUsageItemsToTerraform = exports.MeteringComputationUsageItemsTagsList = exports.MeteringComputationUsageItemsTagsOutputReference = exports.meteringComputationUsageItemsTagsToHclTerraform = exports.meteringComputationUsageItemsTagsToTerraform = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const cdktf = require("cdktf"); function meteringComputationUsageItemsTagsToTerraform(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 {}; } exports.meteringComputationUsageItemsTagsToTerraform = meteringComputationUsageItemsTagsToTerraform; function meteringComputationUsageItemsTagsToHclTerraform(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 = {}; return attrs; } exports.meteringComputationUsageItemsTagsToHclTerraform = meteringComputationUsageItemsTagsToHclTerraform; class MeteringComputationUsageItemsTagsOutputReference 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; } get internalValue() { let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; } else { this.isEmptyObject = Object.keys(value).length === 0; } } // key - computed: true, optional: false, required: false get key() { return this.getStringAttribute('key'); } // namespace - computed: true, optional: false, required: false get namespace() { return this.getStringAttribute('namespace'); } // value - computed: true, optional: false, required: false get value() { return this.getStringAttribute('value'); } } exports.MeteringComputationUsageItemsTagsOutputReference = MeteringComputationUsageItemsTagsOutputReference; _a = JSII_RTTI_SYMBOL_1; MeteringComputationUsageItemsTagsOutputReference[_a] = { fqn: "rhizo-co-terraform-provider-oci.meteringComputationUsage.MeteringComputationUsageItemsTagsOutputReference", version: "1.0.0" }; class MeteringComputationUsageItemsTagsList 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 MeteringComputationUsageItemsTagsOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet); } } exports.MeteringComputationUsageItemsTagsList = MeteringComputationUsageItemsTagsList; _b = JSII_RTTI_SYMBOL_1; MeteringComputationUsageItemsTagsList[_b] = { fqn: "rhizo-co-terraform-provider-oci.meteringComputationUsage.MeteringComputationUsageItemsTagsList", version: "1.0.0" }; function meteringComputationUsageItemsToTerraform(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 {}; } exports.meteringComputationUsageItemsToTerraform = meteringComputationUsageItemsToTerraform; function meteringComputationUsageItemsToHclTerraform(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 = {}; return attrs; } exports.meteringComputationUsageItemsToHclTerraform = meteringComputationUsageItemsToHclTerraform; class MeteringComputationUsageItemsOutputReference 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; // tags - computed: true, optional: false, required: false this._tags = new MeteringComputationUsageItemsTagsList(this, "tags", false); } get internalValue() { let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; } else { this.isEmptyObject = Object.keys(value).length === 0; } } // ad - computed: true, optional: false, required: false get ad() { return this.getStringAttribute('ad'); } // attributed_cost - computed: true, optional: false, required: false get attributedCost() { return this.getStringAttribute('attributed_cost'); } // attributed_usage - computed: true, optional: false, required: false get attributedUsage() { return this.getStringAttribute('attributed_usage'); } // compartment_id - computed: true, optional: false, required: false get compartmentId() { return this.getStringAttribute('compartment_id'); } // compartment_name - computed: true, optional: false, required: false get compartmentName() { return this.getStringAttribute('compartment_name'); } // compartment_path - computed: true, optional: false, required: false get compartmentPath() { return this.getStringAttribute('compartment_path'); } // computed_amount - computed: true, optional: false, required: false get computedAmount() { return this.getNumberAttribute('computed_amount'); } // computed_quantity - computed: true, optional: false, required: false get computedQuantity() { return this.getNumberAttribute('computed_quantity'); } // currency - computed: true, optional: false, required: false get currency() { return this.getStringAttribute('currency'); } // discount - computed: true, optional: false, required: false get discount() { return this.getNumberAttribute('discount'); } // is_forecast - computed: true, optional: false, required: false get isForecast() { return this.getBooleanAttribute('is_forecast'); } // list_rate - computed: true, optional: false, required: false get listRate() { return this.getNumberAttribute('list_rate'); } // overage - computed: true, optional: false, required: false get overage() { return this.getStringAttribute('overage'); } // overages_flag - computed: true, optional: false, required: false get overagesFlag() { return this.getStringAttribute('overages_flag'); } // platform - computed: true, optional: false, required: false get platform() { return this.getStringAttribute('platform'); } // region - computed: true, optional: false, required: false get region() { return this.getStringAttribute('region'); } // resource_id - computed: true, optional: false, required: false get resourceId() { return this.getStringAttribute('resource_id'); } // resource_name - computed: true, optional: false, required: false get resourceName() { return this.getStringAttribute('resource_name'); } // service - computed: true, optional: false, required: false get service() { return this.getStringAttribute('service'); } // shape - computed: true, optional: false, required: false get shape() { return this.getStringAttribute('shape'); } // sku_name - computed: true, optional: false, required: false get skuName() { return this.getStringAttribute('sku_name'); } // sku_part_number - computed: true, optional: false, required: false get skuPartNumber() { return this.getStringAttribute('sku_part_number'); } // subscription_id - computed: true, optional: false, required: false get subscriptionId() { return this.getStringAttribute('subscription_id'); } get tags() { return this._tags; } // tenant_id - computed: true, optional: false, required: false get tenantId() { return this.getStringAttribute('tenant_id'); } // tenant_name - computed: true, optional: false, required: false get tenantName() { return this.getStringAttribute('tenant_name'); } // time_usage_ended - computed: true, optional: false, required: false get timeUsageEnded() { return this.getStringAttribute('time_usage_ended'); } // time_usage_started - computed: true, optional: false, required: false get timeUsageStarted() { return this.getStringAttribute('time_usage_started'); } // unit - computed: true, optional: false, required: false get unit() { return this.getStringAttribute('unit'); } // unit_price - computed: true, optional: false, required: false get unitPrice() { return this.getNumberAttribute('unit_price'); } // weight - computed: true, optional: false, required: false get weight() { return this.getNumberAttribute('weight'); } } exports.MeteringComputationUsageItemsOutputReference = MeteringComputationUsageItemsOutputReference; _c = JSII_RTTI_SYMBOL_1; MeteringComputationUsageItemsOutputReference[_c] = { fqn: "rhizo-co-terraform-provider-oci.meteringComputationUsage.MeteringComputationUsageItemsOutputReference", version: "1.0.0" }; class MeteringComputationUsageItemsList 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 MeteringComputationUsageItemsOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet); } } exports.MeteringComputationUsageItemsList = MeteringComputationUsageItemsList; _d = JSII_RTTI_SYMBOL_1; MeteringComputationUsageItemsList[_d] = { fqn: "rhizo-co-terraform-provider-oci.meteringComputationUsage.MeteringComputationUsageItemsList", version: "1.0.0" }; function meteringComputationUsageForecastToTerraform(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 { forecast_type: cdktf.stringToTerraform(struct.forecastType), time_forecast_ended: cdktf.stringToTerraform(struct.timeForecastEnded), time_forecast_started: cdktf.stringToTerraform(struct.timeForecastStarted), }; } exports.meteringComputationUsageForecastToTerraform = meteringComputationUsageForecastToTerraform; function meteringComputationUsageForecastToHclTerraform(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 = { forecast_type: { value: cdktf.stringToHclTerraform(struct.forecastType), isBlock: false, type: "simple", storageClassType: "string", }, time_forecast_ended: { value: cdktf.stringToHclTerraform(struct.timeForecastEnded), isBlock: false, type: "simple", storageClassType: "string", }, time_forecast_started: { value: cdktf.stringToHclTerraform(struct.timeForecastStarted), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.meteringComputationUsageForecastToHclTerraform = meteringComputationUsageForecastToHclTerraform; class MeteringComputationUsageForecastOutputReference 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._forecastType !== undefined) { hasAnyValues = true; internalValueResult.forecastType = this._forecastType; } if (this._timeForecastEnded !== undefined) { hasAnyValues = true; internalValueResult.timeForecastEnded = this._timeForecastEnded; } if (this._timeForecastStarted !== undefined) { hasAnyValues = true; internalValueResult.timeForecastStarted = this._timeForecastStarted; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._forecastType = undefined; this._timeForecastEnded = undefined; this._timeForecastStarted = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._forecastType = value.forecastType; this._timeForecastEnded = value.timeForecastEnded; this._timeForecastStarted = value.timeForecastStarted; } } get forecastType() { return this.getStringAttribute('forecast_type'); } set forecastType(value) { this._forecastType = value; } resetForecastType() { this._forecastType = undefined; } // Temporarily expose input value. Use with caution. get forecastTypeInput() { return this._forecastType; } get timeForecastEnded() { return this.getStringAttribute('time_forecast_ended'); } set timeForecastEnded(value) { this._timeForecastEnded = value; } // Temporarily expose input value. Use with caution. get timeForecastEndedInput() { return this._timeForecastEnded; } get timeForecastStarted() { return this.getStringAttribute('time_forecast_started'); } set timeForecastStarted(value) { this._timeForecastStarted = value; } resetTimeForecastStarted() { this._timeForecastStarted = undefined; } // Temporarily expose input value. Use with caution. get timeForecastStartedInput() { return this._timeForecastStarted; } } exports.MeteringComputationUsageForecastOutputReference = MeteringComputationUsageForecastOutputReference; _e = JSII_RTTI_SYMBOL_1; MeteringComputationUsageForecastOutputReference[_e] = { fqn: "rhizo-co-terraform-provider-oci.meteringComputationUsage.MeteringComputationUsageForecastOutputReference", version: "1.0.0" }; function meteringComputationUsageGroupByTagToTerraform(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 { key: cdktf.stringToTerraform(struct.key), namespace: cdktf.stringToTerraform(struct.namespace), value: cdktf.stringToTerraform(struct.value), }; } exports.meteringComputationUsageGroupByTagToTerraform = meteringComputationUsageGroupByTagToTerraform; function meteringComputationUsageGroupByTagToHclTerraform(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 = { key: { value: cdktf.stringToHclTerraform(struct.key), isBlock: false, type: "simple", storageClassType: "string", }, namespace: { value: cdktf.stringToHclTerraform(struct.namespace), isBlock: false, type: "simple", storageClassType: "string", }, value: { value: cdktf.stringToHclTerraform(struct.value), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.meteringComputationUsageGroupByTagToHclTerraform = meteringComputationUsageGroupByTagToHclTerraform; class MeteringComputationUsageGroupByTagOutputReference 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; } get internalValue() { if (this.resolvableValue) { return this.resolvableValue; } let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._key !== undefined) { hasAnyValues = true; internalValueResult.key = this._key; } if (this._namespace !== undefined) { hasAnyValues = true; internalValueResult.namespace = this._namespace; } if (this._value !== undefined) { hasAnyValues = true; internalValueResult.value = this._value; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this.resolvableValue = undefined; this._key = undefined; this._namespace = undefined; this._value = 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._key = value.key; this._namespace = value.namespace; this._value = value.value; } } get key() { return this.getStringAttribute('key'); } set key(value) { this._key = value; } resetKey() { this._key = undefined; } // Temporarily expose input value. Use with caution. get keyInput() { return this._key; } get namespace() { return this.getStringAttribute('namespace'); } set namespace(value) { this._namespace = value; } resetNamespace() { this._namespace = undefined; } // Temporarily expose input value. Use with caution. get namespaceInput() { return this._namespace; } get value() { return this.getStringAttribute('value'); } set value(value) { this._value = value; } resetValue() { this._value = undefined; } // Temporarily expose input value. Use with caution. get valueInput() { return this._value; } } exports.MeteringComputationUsageGroupByTagOutputReference = MeteringComputationUsageGroupByTagOutputReference; _f = JSII_RTTI_SYMBOL_1; MeteringComputationUsageGroupByTagOutputReference[_f] = { fqn: "rhizo-co-terraform-provider-oci.meteringComputationUsage.MeteringComputationUsageGroupByTagOutputReference", version: "1.0.0" }; class MeteringComputationUsageGroupByTagList 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 MeteringComputationUsageGroupByTagOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet); } } exports.MeteringComputationUsageGroupByTagList = MeteringComputationUsageGroupByTagList; _g = JSII_RTTI_SYMBOL_1; MeteringComputationUsageGroupByTagList[_g] = { fqn: "rhizo-co-terraform-provider-oci.meteringComputationUsage.MeteringComputationUsageGroupByTagList", version: "1.0.0" }; function meteringComputationUsageTimeoutsToTerraform(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), }; } exports.meteringComputationUsageTimeoutsToTerraform = meteringComputationUsageTimeoutsToTerraform; function meteringComputationUsageTimeoutsToHclTerraform(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)); } exports.meteringComputationUsageTimeoutsToHclTerraform = meteringComputationUsageTimeoutsToHclTerraform; class MeteringComputationUsageTimeoutsOutputReference 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.MeteringComputationUsageTimeoutsOutputReference = MeteringComputationUsageTimeoutsOutputReference; _h = JSII_RTTI_SYMBOL_1; MeteringComputationUsageTimeoutsOutputReference[_h] = { fqn: "rhizo-co-terraform-provider-oci.meteringComputationUsage.MeteringComputationUsageTimeoutsOutputReference", version: "1.0.0" }; /** * Represents a {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/metering_computation_usage oci_metering_computation_usage} */ class MeteringComputationUsage extends cdktf.TerraformResource { // ============== // STATIC Methods // ============== /** * Generates CDKTF code for importing a MeteringComputationUsage 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 MeteringComputationUsage to import * @param importFromId The id of the existing MeteringComputationUsage that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/metering_computation_usage#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the MeteringComputationUsage to import is found */ static generateConfigForImport(scope, importToId, importFromId, provider) { return new cdktf.ImportableResource(scope, importToId, { terraformResourceType: "oci_metering_computation_usage", importId: importFromId, provider }); } // =========== // INITIALIZER // =========== /** * Create a new {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/metering_computation_usage oci_metering_computation_usage} 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 MeteringComputationUsageConfig */ constructor(scope, id, config) { super(scope, id, { terraformResourceType: 'oci_metering_computation_usage', terraformGeneratorMetadata: { providerName: 'oci', providerVersion: '6.18.0', providerVersionConstraint: '~> 6.18.0' }, provider: config.provider, dependsOn: config.dependsOn, count: config.count, lifecycle: config.lifecycle, provisioners: config.provisioners, connection: config.connection, forEach: config.forEach }); // items - computed: true, optional: false, required: false this._items = new MeteringComputationUsageItemsList(this, "items", false); // forecast - computed: false, optional: true, required: false this._forecast = new MeteringComputationUsageForecastOutputReference(this, "forecast"); // group_by_tag - computed: false, optional: true, required: false this._groupByTag = new MeteringComputationUsageGroupByTagList(this, "group_by_tag", false); // timeouts - computed: false, optional: true, required: false this._timeouts = new MeteringComputationUsageTimeoutsOutputReference(this, "timeouts"); this._compartmentDepth = config.compartmentDepth; this._filter = config.filter; this._granularity = config.granularity; this._groupBy = config.groupBy; this._id = config.id; this._isAggregateByTime = config.isAggregateByTime; this._queryType = config.queryType; this._tenantId = config.tenantId; this._timeUsageEnded = config.timeUsageEnded; this._timeUsageStarted = config.timeUsageStarted; this._forecast.internalValue = config.forecast; this._groupByTag.internalValue = config.groupByTag; this._timeouts.internalValue = config.timeouts; } get compartmentDepth() { return this.getNumberAttribute('compartment_depth'); } set compartmentDepth(value) { this._compartmentDepth = value; } resetCompartmentDepth() { this._compartmentDepth = undefined; } // Temporarily expose input value. Use with caution. get compartmentDepthInput() { return this._compartmentDepth; } get filter() { return this.getStringAttribute('filter'); } set filter(value) { this._filter = value; } resetFilter() { this._filter = undefined; } // Temporarily expose input value. Use with caution. get filterInput() { return this._filter; } get granularity() { return this.getStringAttribute('granularity'); } set granularity(value) { this._granularity = value; } // Temporarily expose input value. Use with caution. get granularityInput() { return this._granularity; } get groupBy() { return this.getListAttribute('group_by'); } set groupBy(value) { this._groupBy = value; } resetGroupBy() { this._groupBy = undefined; } // Temporarily expose input value. Use with caution. get groupByInput() { return this._groupBy; } 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 isAggregateByTime() { return this.getBooleanAttribute('is_aggregate_by_time'); } set isAggregateByTime(value) { this._isAggregateByTime = value; } resetIsAggregateByTime() { this._isAggregateByTime = undefined; } // Temporarily expose input value. Use with caution. get isAggregateByTimeInput() { return this._isAggregateByTime; } get items() { return this._items; } get queryType() { return this.getStringAttribute('query_type'); } set queryType(value) { this._queryType = value; } resetQueryType() { this._queryType = undefined; } // Temporarily expose input value. Use with caution. get queryTypeInput() { return this._queryType; } get tenantId() { return this.getStringAttribute('tenant_id'); } set tenantId(value) { this._tenantId = value; } // Temporarily expose input value. Use with caution. get tenantIdInput() { return this._tenantId; } get timeUsageEnded() { return this.getStringAttribute('time_usage_ended'); } set timeUsageEnded(value) { this._timeUsageEnded = value; } // Temporarily expose input value. Use with caution. get timeUsageEndedInput() { return this._timeUsageEnded; } get timeUsageStarted() { return this.getStringAttribute('time_usage_started'); } set timeUsageStarted(value) { this._timeUsageStarted = value; } // Temporarily expose input value. Use with caution. get timeUsageStartedInput() { return this._timeUsageStarted; } get forecast() { return this._forecast; } putForecast(value) { this._forecast.internalValue = value; } resetForecast() { this._forecast.internalValue = undefined; } // Temporarily expose input value. Use with caution. get forecastInput() { return this._forecast.internalValue; } get groupByTag() { return this._groupByTag; } putGroupByTag(value) { this._groupByTag.internalValue = value; } resetGroupByTag() { this._groupByTag.internalValue = undefined; } // Temporarily expose input value. Use with caution. get groupByTagInput() { return this._groupByTag.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 { compartment_depth: cdktf.numberToTerraform(this._compartmentDepth), filter: cdktf.stringToTerraform(this._filter), granularity: cdktf.stringToTerraform(this._granularity), group_by: cdktf.listMapper(cdktf.stringToTerraform, false)(this._groupBy), id: cdktf.stringToTerraform(this._id), is_aggregate_by_time: cdktf.booleanToTerraform(this._isAggregateByTime), query_type: cdktf.stringToTerraform(this._queryType), tenant_id: cdktf.stringToTerraform(this._tenantId), time_usage_ended: cdktf.stringToTerraform(this._timeUsageEnded), time_usage_started: cdktf.stringToTerraform(this._timeUsageStarted), forecast: meteringComputationUsageForecastToTerraform(this._forecast.internalValue), group_by_tag: cdktf.listMapper(meteringComputationUsageGroupByTagToTerraform, true)(this._groupByTag.internalValue), timeouts: meteringComputationUsageTimeoutsToTerraform(this._timeouts.internalValue), }; } synthesizeHclAttributes() { const attrs = { compartment_depth: { value: cdktf.numberToHclTerraform(this._compartmentDepth), isBlock: false, type: "simple", storageClassType: "number", }, filter: { value: cdktf.stringToHclTerraform(this._filter), isBlock: false, type: "simple", storageClassType: "string", }, granularity: { value: cdktf.stringToHclTerraform(this._granularity), isBlock: false, type: "simple", storageClassType: "string", }, group_by: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(this._groupBy), isBlock: false, type: "list", storageClassType: "stringList", }, id: { value: cdktf.stringToHclTerraform(this._id), isBlock: false, type: "simple", storageClassType: "string", }, is_aggregate_by_time: { value: cdktf.booleanToHclTerraform(this._isAggregateByTime), isBlock: false, type: "simple", storageClassType: "boolean", }, query_type: { value: cdktf.stringToHclTerraform(this._queryType), isBlock: false, type: "simple", storageClassType: "string", }, tenant_id: { value: cdktf.stringToHclTerraform(this._tenantId), isBlock: false, type: "simple", storageClassType: "string", }, time_usage_ended: { value: cdktf.stringToHclTerraform(this._timeUsageEnded), isBlock: false, type: "simple", storageClassType: "string", }, time_usage_started: { value: cdktf.stringToHclTerraform(this._timeUsageStarted), isBlock: false, type: "simple", storageClassType: "string", }, forecast: { value: meteringComputationUsageForecastToHclTerraform(this._forecast.internalValue), isBlock: true, type: "list", storageClassType: "MeteringComputationUsageForecastList", }, group_by_tag: { value: cdktf.listMapperHcl(meteringComputationUsageGroupByTagToHclTerraform, true)(this._groupByTag.internalValue), isBlock: true, type: "list", storageClassType: "MeteringComputationUsageGroupByTagList", }, timeouts: { value: meteringComputationUsageTimeoutsToHclTerraform(this._timeouts.internalValue), isBlock: true, type: "struct", storageClassType: "MeteringComputationUsageTimeouts", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } } exports.MeteringComputationUsage = MeteringComputationUsage; _j = JSII_RTTI_SYMBOL_1; MeteringComputationUsage[_j] = { fqn: "rhizo-co-terraform-provider-oci.meteringComputationUsage.MeteringComputationUsage", version: "1.0.0" }; // ================= // STATIC PROPERTIES // ================= MeteringComputationUsage.tfResourceType = "oci_metering_computation_usage"; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWV0ZXJpbmctY29tcHV0YXRpb24tdXNhZ2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFJQSwrQkFBK0I7QUFzRS9CLFNBQWdCLDRDQUE0QyxDQUFDLE1BQTBDO0lBQ3JHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFBQyxPQUFPLE1BQU0sQ0FBQztJQUFDLENBQUM7SUFDNUYsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLG9IQUFvSCxDQUFDLENBQUM7SUFDeEksQ0FBQztJQUNELE9BQU8sRUFDTixDQUFBO0FBQ0gsQ0FBQztBQVBELG9HQU9DO0FBR0QsU0FBZ0IsK0NBQStDLENBQUMsTUFBMEM7SUFDeEcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUFDLE9BQU8sTUFBTSxDQUFDO0lBQUMsQ0FBQztJQUM1RixJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsb0hBQW9ILENBQUMsQ0FBQztJQUN4SSxDQUFDO0lBQ0QsTUFBTSxLQUFLLEdBQUcsRUFDYixDQUFDO0lBQ0YsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBUkQsMEdBUUM7QUFFRCxNQUFhLGdEQUFpRCxTQUFRLEtBQUssQ0FBQyxhQUFhO0lBR3ZGOzs7OztNQUtFO0lBQ0YsWUFBbUIsaUJBQTZDLEVBQUUsa0JBQTBCLEVBQUUsa0JBQTBCLEVBQUUsc0JBQStC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