@cdktf/provider-google
Version:
Prebuilt google Provider for Terraform CDK (cdktf)
1,037 lines • 148 kB
JavaScript
"use strict";
var _a, _b, _c, _d, _e, _f, _g, _h;
Object.defineProperty(exports, "__esModule", { value: true });
exports.NetappVolumeReplication = exports.NetappVolumeReplicationTimeoutsOutputReference = exports.NetappVolumeReplicationDestinationVolumeParametersOutputReference = exports.NetappVolumeReplicationDestinationVolumeParametersTieringPolicyOutputReference = exports.NetappVolumeReplicationTransferStatsList = exports.NetappVolumeReplicationTransferStatsOutputReference = exports.NetappVolumeReplicationHybridPeeringDetailsList = exports.NetappVolumeReplicationHybridPeeringDetailsOutputReference = void 0;
exports.netappVolumeReplicationHybridPeeringDetailsToTerraform = netappVolumeReplicationHybridPeeringDetailsToTerraform;
exports.netappVolumeReplicationHybridPeeringDetailsToHclTerraform = netappVolumeReplicationHybridPeeringDetailsToHclTerraform;
exports.netappVolumeReplicationTransferStatsToTerraform = netappVolumeReplicationTransferStatsToTerraform;
exports.netappVolumeReplicationTransferStatsToHclTerraform = netappVolumeReplicationTransferStatsToHclTerraform;
exports.netappVolumeReplicationDestinationVolumeParametersTieringPolicyToTerraform = netappVolumeReplicationDestinationVolumeParametersTieringPolicyToTerraform;
exports.netappVolumeReplicationDestinationVolumeParametersTieringPolicyToHclTerraform = netappVolumeReplicationDestinationVolumeParametersTieringPolicyToHclTerraform;
exports.netappVolumeReplicationDestinationVolumeParametersToTerraform = netappVolumeReplicationDestinationVolumeParametersToTerraform;
exports.netappVolumeReplicationDestinationVolumeParametersToHclTerraform = netappVolumeReplicationDestinationVolumeParametersToHclTerraform;
exports.netappVolumeReplicationTimeoutsToTerraform = netappVolumeReplicationTimeoutsToTerraform;
exports.netappVolumeReplicationTimeoutsToHclTerraform = netappVolumeReplicationTimeoutsToHclTerraform;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const cdktf = require("cdktf");
function netappVolumeReplicationHybridPeeringDetailsToTerraform(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 {};
}
function netappVolumeReplicationHybridPeeringDetailsToHclTerraform(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;
}
class NetappVolumeReplicationHybridPeeringDetailsOutputReference 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;
}
}
// command - computed: true, optional: false, required: false
get command() {
return this.getStringAttribute('command');
}
// command_expiry_time - computed: true, optional: false, required: false
get commandExpiryTime() {
return this.getStringAttribute('command_expiry_time');
}
// passphrase - computed: true, optional: false, required: false
get passphrase() {
return this.getStringAttribute('passphrase');
}
// peer_cluster_name - computed: true, optional: false, required: false
get peerClusterName() {
return this.getStringAttribute('peer_cluster_name');
}
// peer_svm_name - computed: true, optional: false, required: false
get peerSvmName() {
return this.getStringAttribute('peer_svm_name');
}
// peer_volume_name - computed: true, optional: false, required: false
get peerVolumeName() {
return this.getStringAttribute('peer_volume_name');
}
// subnet_ip - computed: true, optional: false, required: false
get subnetIp() {
return this.getStringAttribute('subnet_ip');
}
}
exports.NetappVolumeReplicationHybridPeeringDetailsOutputReference = NetappVolumeReplicationHybridPeeringDetailsOutputReference;
_a = JSII_RTTI_SYMBOL_1;
NetappVolumeReplicationHybridPeeringDetailsOutputReference[_a] = { fqn: "@cdktf/provider-google.netappVolumeReplication.NetappVolumeReplicationHybridPeeringDetailsOutputReference", version: "16.3.0" };
class NetappVolumeReplicationHybridPeeringDetailsList 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 NetappVolumeReplicationHybridPeeringDetailsOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet);
}
}
exports.NetappVolumeReplicationHybridPeeringDetailsList = NetappVolumeReplicationHybridPeeringDetailsList;
_b = JSII_RTTI_SYMBOL_1;
NetappVolumeReplicationHybridPeeringDetailsList[_b] = { fqn: "@cdktf/provider-google.netappVolumeReplication.NetappVolumeReplicationHybridPeeringDetailsList", version: "16.3.0" };
function netappVolumeReplicationTransferStatsToTerraform(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 {};
}
function netappVolumeReplicationTransferStatsToHclTerraform(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;
}
class NetappVolumeReplicationTransferStatsOutputReference 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;
}
}
// lag_duration - computed: true, optional: false, required: false
get lagDuration() {
return this.getStringAttribute('lag_duration');
}
// last_transfer_bytes - computed: true, optional: false, required: false
get lastTransferBytes() {
return this.getStringAttribute('last_transfer_bytes');
}
// last_transfer_duration - computed: true, optional: false, required: false
get lastTransferDuration() {
return this.getStringAttribute('last_transfer_duration');
}
// last_transfer_end_time - computed: true, optional: false, required: false
get lastTransferEndTime() {
return this.getStringAttribute('last_transfer_end_time');
}
// last_transfer_error - computed: true, optional: false, required: false
get lastTransferError() {
return this.getStringAttribute('last_transfer_error');
}
// total_transfer_duration - computed: true, optional: false, required: false
get totalTransferDuration() {
return this.getStringAttribute('total_transfer_duration');
}
// transfer_bytes - computed: true, optional: false, required: false
get transferBytes() {
return this.getStringAttribute('transfer_bytes');
}
// update_time - computed: true, optional: false, required: false
get updateTime() {
return this.getStringAttribute('update_time');
}
}
exports.NetappVolumeReplicationTransferStatsOutputReference = NetappVolumeReplicationTransferStatsOutputReference;
_c = JSII_RTTI_SYMBOL_1;
NetappVolumeReplicationTransferStatsOutputReference[_c] = { fqn: "@cdktf/provider-google.netappVolumeReplication.NetappVolumeReplicationTransferStatsOutputReference", version: "16.3.0" };
class NetappVolumeReplicationTransferStatsList 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 NetappVolumeReplicationTransferStatsOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet);
}
}
exports.NetappVolumeReplicationTransferStatsList = NetappVolumeReplicationTransferStatsList;
_d = JSII_RTTI_SYMBOL_1;
NetappVolumeReplicationTransferStatsList[_d] = { fqn: "@cdktf/provider-google.netappVolumeReplication.NetappVolumeReplicationTransferStatsList", version: "16.3.0" };
function netappVolumeReplicationDestinationVolumeParametersTieringPolicyToTerraform(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 {
cooling_threshold_days: cdktf.numberToTerraform(struct.coolingThresholdDays),
tier_action: cdktf.stringToTerraform(struct.tierAction),
};
}
function netappVolumeReplicationDestinationVolumeParametersTieringPolicyToHclTerraform(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 = {
cooling_threshold_days: {
value: cdktf.numberToHclTerraform(struct.coolingThresholdDays),
isBlock: false,
type: "simple",
storageClassType: "number",
},
tier_action: {
value: cdktf.stringToHclTerraform(struct.tierAction),
isBlock: false,
type: "simple",
storageClassType: "string",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
class NetappVolumeReplicationDestinationVolumeParametersTieringPolicyOutputReference 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._coolingThresholdDays !== undefined) {
hasAnyValues = true;
internalValueResult.coolingThresholdDays = this._coolingThresholdDays;
}
if (this._tierAction !== undefined) {
hasAnyValues = true;
internalValueResult.tierAction = this._tierAction;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this._coolingThresholdDays = undefined;
this._tierAction = undefined;
}
else {
this.isEmptyObject = Object.keys(value).length === 0;
this._coolingThresholdDays = value.coolingThresholdDays;
this._tierAction = value.tierAction;
}
}
get coolingThresholdDays() {
return this.getNumberAttribute('cooling_threshold_days');
}
set coolingThresholdDays(value) {
this._coolingThresholdDays = value;
}
resetCoolingThresholdDays() {
this._coolingThresholdDays = undefined;
}
// Temporarily expose input value. Use with caution.
get coolingThresholdDaysInput() {
return this._coolingThresholdDays;
}
get tierAction() {
return this.getStringAttribute('tier_action');
}
set tierAction(value) {
this._tierAction = value;
}
resetTierAction() {
this._tierAction = undefined;
}
// Temporarily expose input value. Use with caution.
get tierActionInput() {
return this._tierAction;
}
}
exports.NetappVolumeReplicationDestinationVolumeParametersTieringPolicyOutputReference = NetappVolumeReplicationDestinationVolumeParametersTieringPolicyOutputReference;
_e = JSII_RTTI_SYMBOL_1;
NetappVolumeReplicationDestinationVolumeParametersTieringPolicyOutputReference[_e] = { fqn: "@cdktf/provider-google.netappVolumeReplication.NetappVolumeReplicationDestinationVolumeParametersTieringPolicyOutputReference", version: "16.3.0" };
function netappVolumeReplicationDestinationVolumeParametersToTerraform(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 {
description: cdktf.stringToTerraform(struct.description),
share_name: cdktf.stringToTerraform(struct.shareName),
storage_pool: cdktf.stringToTerraform(struct.storagePool),
volume_id: cdktf.stringToTerraform(struct.volumeId),
tiering_policy: netappVolumeReplicationDestinationVolumeParametersTieringPolicyToTerraform(struct.tieringPolicy),
};
}
function netappVolumeReplicationDestinationVolumeParametersToHclTerraform(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 = {
description: {
value: cdktf.stringToHclTerraform(struct.description),
isBlock: false,
type: "simple",
storageClassType: "string",
},
share_name: {
value: cdktf.stringToHclTerraform(struct.shareName),
isBlock: false,
type: "simple",
storageClassType: "string",
},
storage_pool: {
value: cdktf.stringToHclTerraform(struct.storagePool),
isBlock: false,
type: "simple",
storageClassType: "string",
},
volume_id: {
value: cdktf.stringToHclTerraform(struct.volumeId),
isBlock: false,
type: "simple",
storageClassType: "string",
},
tiering_policy: {
value: netappVolumeReplicationDestinationVolumeParametersTieringPolicyToHclTerraform(struct.tieringPolicy),
isBlock: true,
type: "list",
storageClassType: "NetappVolumeReplicationDestinationVolumeParametersTieringPolicyList",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
class NetappVolumeReplicationDestinationVolumeParametersOutputReference 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;
// tiering_policy - computed: false, optional: true, required: false
this._tieringPolicy = new NetappVolumeReplicationDestinationVolumeParametersTieringPolicyOutputReference(this, "tiering_policy");
}
get internalValue() {
let hasAnyValues = this.isEmptyObject;
const internalValueResult = {};
if (this._description !== undefined) {
hasAnyValues = true;
internalValueResult.description = this._description;
}
if (this._shareName !== undefined) {
hasAnyValues = true;
internalValueResult.shareName = this._shareName;
}
if (this._storagePool !== undefined) {
hasAnyValues = true;
internalValueResult.storagePool = this._storagePool;
}
if (this._volumeId !== undefined) {
hasAnyValues = true;
internalValueResult.volumeId = this._volumeId;
}
if (this._tieringPolicy?.internalValue !== undefined) {
hasAnyValues = true;
internalValueResult.tieringPolicy = this._tieringPolicy?.internalValue;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this._description = undefined;
this._shareName = undefined;
this._storagePool = undefined;
this._volumeId = undefined;
this._tieringPolicy.internalValue = undefined;
}
else {
this.isEmptyObject = Object.keys(value).length === 0;
this._description = value.description;
this._shareName = value.shareName;
this._storagePool = value.storagePool;
this._volumeId = value.volumeId;
this._tieringPolicy.internalValue = value.tieringPolicy;
}
}
get description() {
return this.getStringAttribute('description');
}
set description(value) {
this._description = value;
}
resetDescription() {
this._description = undefined;
}
// Temporarily expose input value. Use with caution.
get descriptionInput() {
return this._description;
}
get shareName() {
return this.getStringAttribute('share_name');
}
set shareName(value) {
this._shareName = value;
}
resetShareName() {
this._shareName = undefined;
}
// Temporarily expose input value. Use with caution.
get shareNameInput() {
return this._shareName;
}
get storagePool() {
return this.getStringAttribute('storage_pool');
}
set storagePool(value) {
this._storagePool = value;
}
// Temporarily expose input value. Use with caution.
get storagePoolInput() {
return this._storagePool;
}
get volumeId() {
return this.getStringAttribute('volume_id');
}
set volumeId(value) {
this._volumeId = value;
}
resetVolumeId() {
this._volumeId = undefined;
}
// Temporarily expose input value. Use with caution.
get volumeIdInput() {
return this._volumeId;
}
get tieringPolicy() {
return this._tieringPolicy;
}
putTieringPolicy(value) {
this._tieringPolicy.internalValue = value;
}
resetTieringPolicy() {
this._tieringPolicy.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get tieringPolicyInput() {
return this._tieringPolicy.internalValue;
}
}
exports.NetappVolumeReplicationDestinationVolumeParametersOutputReference = NetappVolumeReplicationDestinationVolumeParametersOutputReference;
_f = JSII_RTTI_SYMBOL_1;
NetappVolumeReplicationDestinationVolumeParametersOutputReference[_f] = { fqn: "@cdktf/provider-google.netappVolumeReplication.NetappVolumeReplicationDestinationVolumeParametersOutputReference", version: "16.3.0" };
function netappVolumeReplicationTimeoutsToTerraform(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 netappVolumeReplicationTimeoutsToHclTerraform(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 NetappVolumeReplicationTimeoutsOutputReference 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.NetappVolumeReplicationTimeoutsOutputReference = NetappVolumeReplicationTimeoutsOutputReference;
_g = JSII_RTTI_SYMBOL_1;
NetappVolumeReplicationTimeoutsOutputReference[_g] = { fqn: "@cdktf/provider-google.netappVolumeReplication.NetappVolumeReplicationTimeoutsOutputReference", version: "16.3.0" };
/**
* Represents a {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/netapp_volume_replication google_netapp_volume_replication}
*/
class NetappVolumeReplication extends cdktf.TerraformResource {
// ==============
// STATIC Methods
// ==============
/**
* Generates CDKTF code for importing a NetappVolumeReplication 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 NetappVolumeReplication to import
* @param importFromId The id of the existing NetappVolumeReplication that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/netapp_volume_replication#import import section} in the documentation of this resource for the id to use
* @param provider? Optional instance of the provider where the NetappVolumeReplication to import is found
*/
static generateConfigForImport(scope, importToId, importFromId, provider) {
return new cdktf.ImportableResource(scope, importToId, { terraformResourceType: "google_netapp_volume_replication", importId: importFromId, provider });
}
// ===========
// INITIALIZER
// ===========
/**
* Create a new {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/netapp_volume_replication google_netapp_volume_replication} 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 NetappVolumeReplicationConfig
*/
constructor(scope, id, config) {
super(scope, id, {
terraformResourceType: 'google_netapp_volume_replication',
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
});
// effective_labels - computed: true, optional: false, required: false
this._effectiveLabels = new cdktf.StringMap(this, "effective_labels");
// hybrid_peering_details - computed: true, optional: false, required: false
this._hybridPeeringDetails = new NetappVolumeReplicationHybridPeeringDetailsList(this, "hybrid_peering_details", false);
// terraform_labels - computed: true, optional: false, required: false
this._terraformLabels = new cdktf.StringMap(this, "terraform_labels");
// transfer_stats - computed: true, optional: false, required: false
this._transferStats = new NetappVolumeReplicationTransferStatsList(this, "transfer_stats", false);
// destination_volume_parameters - computed: false, optional: true, required: false
this._destinationVolumeParameters = new NetappVolumeReplicationDestinationVolumeParametersOutputReference(this, "destination_volume_parameters");
// timeouts - computed: false, optional: true, required: false
this._timeouts = new NetappVolumeReplicationTimeoutsOutputReference(this, "timeouts");
this._deleteDestinationVolume = config.deleteDestinationVolume;
this._description = config.description;
this._forceStopping = config.forceStopping;
this._id = config.id;
this._labels = config.labels;
this._location = config.location;
this._name = config.name;
this._project = config.project;
this._replicationEnabled = config.replicationEnabled;
this._replicationSchedule = config.replicationSchedule;
this._volumeName = config.volumeName;
this._waitForMirror = config.waitForMirror;
this._destinationVolumeParameters.internalValue = config.destinationVolumeParameters;
this._timeouts.internalValue = config.timeouts;
}
// ==========
// ATTRIBUTES
// ==========
// create_time - computed: true, optional: false, required: false
get createTime() {
return this.getStringAttribute('create_time');
}
get deleteDestinationVolume() {
return this.getBooleanAttribute('delete_destination_volume');
}
set deleteDestinationVolume(value) {
this._deleteDestinationVolume = value;
}
resetDeleteDestinationVolume() {
this._deleteDestinationVolume = undefined;
}
// Temporarily expose input value. Use with caution.
get deleteDestinationVolumeInput() {
return this._deleteDestinationVolume;
}
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;
}
// destination_volume - computed: true, optional: false, required: false
get destinationVolume() {
return this.getStringAttribute('destination_volume');
}
get effectiveLabels() {
return this._effectiveLabels;
}
get forceStopping() {
return this.getBooleanAttribute('force_stopping');
}
set forceStopping(value) {
this._forceStopping = value;
}
resetForceStopping() {
this._forceStopping = undefined;
}
// Temporarily expose input value. Use with caution.
get forceStoppingInput() {
return this._forceStopping;
}
// healthy - computed: true, optional: false, required: false
get healthy() {
return this.getBooleanAttribute('healthy');
}
get hybridPeeringDetails() {
return this._hybridPeeringDetails;
}
// hybrid_replication_type - computed: true, optional: false, required: false
get hybridReplicationType() {
return this.getStringAttribute('hybrid_replication_type');
}
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 labels() {
return this.getStringMapAttribute('labels');
}
set labels(value) {
this._labels = value;
}
resetLabels() {
this._labels = undefined;
}
// Temporarily expose input value. Use with caution.
get labelsInput() {
return this._labels;
}
get location() {
return this.getStringAttribute('location');
}
set location(value) {
this._location = value;
}
// Temporarily expose input value. Use with caution.
get locationInput() {
return this._location;
}
// mirror_state - computed: true, optional: false, required: false
get mirrorState() {
return this.getStringAttribute('mirror_state');
}
get name() {
return this.getStringAttribute('name');
}
set name(value) {
this._name = value;
}
// Temporarily expose input value. Use with caution.
get nameInput() {
return this._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;
}
get replicationEnabled() {
return this.getBooleanAttribute('replication_enabled');
}
set replicationEnabled(value) {
this._replicationEnabled = value;
}
resetReplicationEnabled() {
this._replicationEnabled = undefined;
}
// Temporarily expose input value. Use with caution.
get replicationEnabledInput() {
return this._replicationEnabled;
}
get replicationSchedule() {
return this.getStringAttribute('replication_schedule');
}
set replicationSchedule(value) {
this._replicationSchedule = value;
}
// Temporarily expose input value. Use with caution.
get replicationScheduleInput() {
return this._replicationSchedule;
}
// role - computed: true, optional: false, required: false
get role() {
return this.getStringAttribute('role');
}
// source_volume - computed: true, optional: false, required: false
get sourceVolume() {
return this.getStringAttribute('source_volume');
}
// state - computed: true, optional: false, required: false
get state() {
return this.getStringAttribute('state');
}
// state_details - computed: true, optional: false, required: false
get stateDetails() {
return this.getStringAttribute('state_details');
}
get terraformLabels() {
return this._terraformLabels;
}
get transferStats() {
return this._transferStats;
}
get volumeName() {
return this.getStringAttribute('volume_name');
}
set volumeName(value) {
this._volumeName = value;
}
// Temporarily expose input value. Use with caution.
get volumeNameInput() {
return this._volumeName;
}
get waitForMirror() {
return this.getBooleanAttribute('wait_for_mirror');
}
set waitForMirror(value) {
this._waitForMirror = value;
}
resetWaitForMirror() {
this._waitForMirror = undefined;
}
// Temporarily expose input value. Use with caution.
get waitForMirrorInput() {
return this._waitForMirror;
}
get destinationVolumeParameters() {
return this._destinationVolumeParameters;
}
putDestinationVolumeParameters(value) {
this._destinationVolumeParameters.internalValue = value;
}
resetDestinationVolumeParameters() {
this._destinationVolumeParameters.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get destinationVolumeParametersInput() {
return this._destinationVolumeParameters.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 {
delete_destination_volume: cdktf.booleanToTerraform(this._deleteDestinationVolume),
description: cdktf.stringToTerraform(this._description),
force_stopping: cdktf.booleanToTerraform(this._forceStopping),
id: cdktf.stringToTerraform(this._id),
labels: cdktf.hashMapper(cdktf.stringToTerraform)(this._labels),
location: cdktf.stringToTerraform(this._location),
name: cdktf.stringToTerraform(this._name),
project: cdktf.stringToTerraform(this._project),
replication_enabled: cdktf.booleanToTerraform(this._replicationEnabled),
replication_schedule: cdktf.stringToTerraform(this._replicationSchedule),
volume_name: cdktf.stringToTerraform(this._volumeName),
wait_for_mirror: cdktf.booleanToTerraform(this._waitForMirror),
destination_volume_parameters: netappVolumeReplicationDestinationVolumeParametersToTerraform(this._destinationVolumeParameters.internalValue),
timeouts: netappVolumeReplicationTimeoutsToTerraform(this._timeouts.internalValue),
};
}
synthesizeHclAttributes() {
const attrs = {
delete_destination_volume: {
value: cdktf.booleanToHclTerraform(this._deleteDestinationVolume),
isBlock: false,
type: "simple",
storageClassType: "boolean",
},
description: {
value: cdktf.stringToHclTerraform(this._description),
isBlock: false,
type: "simple",
storageClassType: "string",
},
force_stopping: {
value: cdktf.booleanToHclTerraform(this._forceStopping),
isBlock: false,
type: "simple",
storageClassType: "boolean",
},
id: {
value: cdktf.stringToHclTerraform(this._id),
isBlock: false,
type: "simple",
storageClassType: "string",
},
labels: {
value: cdktf.hashMapperHcl(cdktf.stringToHclTerraform)(this._labels),
isBlock: false,
type: "map",
storageClassType: "stringMap",
},
location: {
value: cdktf.stringToHclTerraform(this._location),
isBlock: false,
type: "simple",
storageClassType: "string",
},
name: {
value: cdktf.stringToHclTerraform(this._name),
isBlock: false,
type: "simple",
storageClassType: "string",
},
project: {
value: cdktf.stringToHclTerraform(this._project),
isBlock: false,
type: "simple",
storageClassType: "string",
},
replication_enabled: {
value: cdktf.booleanToHclTerraform(this._replicationEnabled),
isBlock: false,
type: "simple",
storageClassType: "boolean",
},
replication_schedule: {
value: cdktf.stringToHclTerraform(this._replicationSchedule),
isBlock: false,
type: "simple",
storageClassType: "string",
},
volume_name: {
value: cdktf.stringToHclTerraform(this._volumeName),
isBlock: false,
type: "simple",
storageClassType: "string",
},
wait_for_mirror: {
value: cdktf.booleanToHclTerraform(this._waitForMirror),
isBlock: false,
type: "simple",
storageClassType: "boolean",
},
destination_volume_parameters: {
value: netappVolumeReplicationDestinationVolumeParametersToHclTerraform(this._destinationVolumeParameters.internalValue),
isBlock: true,
type: "list",
storageClassType: "NetappVolumeReplicationDestinationVolumeParametersList",
},
timeouts: {
value: netappVolumeReplicationTimeoutsToHclTerraform(this._timeouts.internalValue),
isBlock: true,
type: "struct",
storageClassType: "NetappVolumeReplicationTimeouts",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
}
exports.NetappVolumeReplication = NetappVolumeReplication;
_h = JSII_RTTI_SYMBOL_1;
NetappVolumeReplication[_h] = { fqn: "@cdktf/provider-google.netappVolumeReplication.NetappVolumeReplication", version: "16.3.0" };
// =================
// STATIC PROPERTIES
// =================
NetappVolumeReplication.tfResourceType = "google_netapp_volume_replication";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmV0YXBwLXZvbHVtZS1yZXBsaWNhdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBdUhBLHdIQU9DO0FBR0QsOEhBUUM7QUF1RkQsMEdBT0M7QUFHRCxnSEFRQztBQXlHRCxnS0FTQztBQUdELHNLQXNCQztBQXlHRCxzSUFZQztBQUdELDRJQXdDQztBQXNKRCxnR0FVQztBQUdELHNHQTRCQzs7QUFudEJELCtCQUErQjtBQThHL0IsU0FBZ0Isc0RBQXNELENBQUMsTUFBb0Q7SUFDekgsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUFDLE9BQU8sTUFBTSxDQUFDO0lBQUMsQ0FBQztJQUM1RixJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsb0hBQW9ILENBQUMsQ0FBQztJQUN4SSxDQUFDO0lBQ0QsT0FBTyxFQUNOLENBQUE7QUFDSCxDQUFDO0FBR0QsU0FBZ0IseURBQXlELENBQUMsTUFBb0Q7SUFDNUgsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUFDLE9BQU8sTUFBTSxDQUFDO0lBQUMsQ0FBQztJQUM1RixJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsb0hBQW9ILENBQUMsQ0FBQztJQUN4SSxDQUFDO0lBQ0QsTUFBTSxLQUFLLEdBQUcsRUFDYixDQUFDO0lBQ0YsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQsTUFB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