generated/api/Models/ReplicationConfigurationGcp.cs

// Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.9.4, generator: @autorest/powershell@3.0.415)
// Changes may cause incorrect behavior and will be lost if the code is regenerated.

namespace Commvault.Powershell.Models
{
    using static Commvault.Powershell.Runtime.Extensions;

    /// <summary>Model to store configuration per VM</summary>
    public partial class ReplicationConfigurationGcp :
        Commvault.Powershell.Models.IReplicationConfigurationGcp,
        Commvault.Powershell.Models.IReplicationConfigurationGcpInternal
    {

        /// <summary>Internal Acessors for OverrideReplicationOptionNetwork</summary>
        Commvault.Powershell.Models.INetwork Commvault.Powershell.Models.IReplicationConfigurationGcpInternal.OverrideReplicationOptionNetwork { get => ((Commvault.Powershell.Models.IOverrideReplicationOptionsGcpInternal)OverrideReplicationOptions).Network; set => ((Commvault.Powershell.Models.IOverrideReplicationOptionsGcpInternal)OverrideReplicationOptions).Network = value; }

        /// <summary>Internal Acessors for OverrideReplicationOptionTags</summary>
        Commvault.Powershell.Models.INameValue Commvault.Powershell.Models.IReplicationConfigurationGcpInternal.OverrideReplicationOptionTags { get => ((Commvault.Powershell.Models.IOverrideReplicationOptionsGcpInternal)OverrideReplicationOptions).Tags; set => ((Commvault.Powershell.Models.IOverrideReplicationOptionsGcpInternal)OverrideReplicationOptions).Tags = value; }

        /// <summary>Internal Acessors for OverrideReplicationOptionVMNodeAffinity</summary>
        Commvault.Powershell.Models.INameValue Commvault.Powershell.Models.IReplicationConfigurationGcpInternal.OverrideReplicationOptionVMNodeAffinity { get => ((Commvault.Powershell.Models.IOverrideReplicationOptionsGcpInternal)OverrideReplicationOptions).VMNodeAffinity; set => ((Commvault.Powershell.Models.IOverrideReplicationOptionsGcpInternal)OverrideReplicationOptions).VMNodeAffinity = value; }

        /// <summary>Internal Acessors for OverrideReplicationOptions</summary>
        Commvault.Powershell.Models.IOverrideReplicationOptionsGcp Commvault.Powershell.Models.IReplicationConfigurationGcpInternal.OverrideReplicationOptions { get => (this._overrideReplicationOptions = this._overrideReplicationOptions ?? new Commvault.Powershell.Models.OverrideReplicationOptionsGcp()); set { {_overrideReplicationOptions = value;} } }

        /// <summary>Backing field for <see cref="CreatePublicIP" /> property.</summary>
        private bool? _createPublicIP;

        /// <summary>Public/External IP of the destination VM instance</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? CreatePublicIP { get => this._createPublicIP; set => this._createPublicIP = value; }

        /// <summary>Backing field for <see cref="Datacenter" /> property.</summary>
        private string _datacenter;

        /// <summary>Datacenter of the destination VM instance</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string Datacenter { get => this._datacenter; set => this._datacenter = value; }

        /// <summary>Backing field for <see cref="DestinationVM" /> property.</summary>
        private string _destinationVM;

        /// <summary>Destination VM instance name</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string DestinationVM { get => this._destinationVM; set => this._destinationVM = value; }

        /// <summary>Backing field for <see cref="MachineType" /> property.</summary>
        private string _machineType;

        /// <summary>Destination VM instance machine type</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string MachineType { get => this._machineType; set => this._machineType = value; }

        /// <summary>Network display name</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string NetworkDisplayName { get => ((Commvault.Powershell.Models.IOverrideReplicationOptionsGcpInternal)OverrideReplicationOptions).NetworkDisplayName; set => ((Commvault.Powershell.Models.IOverrideReplicationOptionsGcpInternal)OverrideReplicationOptions).NetworkDisplayName = value ?? null; }

        /// <summary>Name of network</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string NetworkName { get => ((Commvault.Powershell.Models.IOverrideReplicationOptionsGcpInternal)OverrideReplicationOptions).NetworkName; set => ((Commvault.Powershell.Models.IOverrideReplicationOptionsGcpInternal)OverrideReplicationOptions).NetworkName = value ?? null; }

        /// <summary>subnet id of network</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string NetworkSubnetId { get => ((Commvault.Powershell.Models.IOverrideReplicationOptionsGcpInternal)OverrideReplicationOptions).NetworkSubnetId; set => ((Commvault.Powershell.Models.IOverrideReplicationOptionsGcpInternal)OverrideReplicationOptions).NetworkSubnetId = value ?? null; }

        /// <summary>Backing field for <see cref="OverrideReplicationOptions" /> property.</summary>
        private Commvault.Powershell.Models.IOverrideReplicationOptionsGcp _overrideReplicationOptions;

        /// <summary>Extended instance configuration options</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IOverrideReplicationOptionsGcp OverrideReplicationOptions { get => (this._overrideReplicationOptions = this._overrideReplicationOptions ?? new Commvault.Powershell.Models.OverrideReplicationOptionsGcp()); set => this._overrideReplicationOptions = value; }

        /// <summary>Backing field for <see cref="PrimaryZone" /> property.</summary>
        private string _primaryZone;

        /// <summary>Primary zone of the destination VM instance</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string PrimaryZone { get => this._primaryZone; set => this._primaryZone = value; }

        /// <summary>Backing field for <see cref="ProjectId" /> property.</summary>
        private string _projectId;

        /// <summary>Gcp project id</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string ProjectId { get => this._projectId; set => this._projectId = value; }

        /// <summary>Backing field for <see cref="SecondaryZone" /> property.</summary>
        private string _secondaryZone;

        /// <summary>Secondary zone of the destination VM instance</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string SecondaryZone { get => this._secondaryZone; set => this._secondaryZone = value; }

        /// <summary>Backing field for <see cref="SourceVM" /> property.</summary>
        private string _sourceVM;

        /// <summary>Source VM instance name</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string SourceVM { get => this._sourceVM; set => this._sourceVM = value; }

        /// <summary>Backing field for <see cref="SourceVMGuid" /> property.</summary>
        private string _sourceVMGuid;

        /// <summary>Source VM instance guid</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public string SourceVMGuid { get => this._sourceVMGuid; set => this._sourceVMGuid = value; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string TagName { get => ((Commvault.Powershell.Models.IOverrideReplicationOptionsGcpInternal)OverrideReplicationOptions).TagName; set => ((Commvault.Powershell.Models.IOverrideReplicationOptionsGcpInternal)OverrideReplicationOptions).TagName = value ?? null; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string TagValue { get => ((Commvault.Powershell.Models.IOverrideReplicationOptionsGcpInternal)OverrideReplicationOptions).TagValue; set => ((Commvault.Powershell.Models.IOverrideReplicationOptionsGcpInternal)OverrideReplicationOptions).TagValue = value ?? null; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string VMNodeAffinityName { get => ((Commvault.Powershell.Models.IOverrideReplicationOptionsGcpInternal)OverrideReplicationOptions).VMNodeAffinityName; set => ((Commvault.Powershell.Models.IOverrideReplicationOptionsGcpInternal)OverrideReplicationOptions).VMNodeAffinityName = value ?? null; }

        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string VMNodeAffinityValue { get => ((Commvault.Powershell.Models.IOverrideReplicationOptionsGcpInternal)OverrideReplicationOptions).VMNodeAffinityValue; set => ((Commvault.Powershell.Models.IOverrideReplicationOptionsGcpInternal)OverrideReplicationOptions).VMNodeAffinityValue = value ?? null; }

        /// <summary>Creates an new <see cref="ReplicationConfigurationGcp" /> instance.</summary>
        public ReplicationConfigurationGcp()
        {

        }
    }
    /// Model to store configuration per VM
    public partial interface IReplicationConfigurationGcp :
        Commvault.Powershell.Runtime.IJsonSerializable
    {
        /// <summary>Public/External IP of the destination VM instance</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Public/External IP of the destination VM instance",
        SerializedName = @"createPublicIP",
        PossibleTypes = new [] { typeof(bool) })]
        bool? CreatePublicIP { get; set; }
        /// <summary>Datacenter of the destination VM instance</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Datacenter of the destination VM instance",
        SerializedName = @"datacenter",
        PossibleTypes = new [] { typeof(string) })]
        string Datacenter { get; set; }
        /// <summary>Destination VM instance name</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Destination VM instance name",
        SerializedName = @"destinationVM",
        PossibleTypes = new [] { typeof(string) })]
        string DestinationVM { get; set; }
        /// <summary>Destination VM instance machine type</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Destination VM instance machine type",
        SerializedName = @"machineType",
        PossibleTypes = new [] { typeof(string) })]
        string MachineType { get; set; }
        /// <summary>Network display name</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Network display name",
        SerializedName = @"networkDisplayName",
        PossibleTypes = new [] { typeof(string) })]
        string NetworkDisplayName { get; set; }
        /// <summary>Name of network</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Name of network",
        SerializedName = @"networkName",
        PossibleTypes = new [] { typeof(string) })]
        string NetworkName { get; set; }
        /// <summary>subnet id of network</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"subnet id of network",
        SerializedName = @"subnetId",
        PossibleTypes = new [] { typeof(string) })]
        string NetworkSubnetId { get; set; }
        /// <summary>Primary zone of the destination VM instance</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Primary zone of the destination VM instance",
        SerializedName = @"primaryZone",
        PossibleTypes = new [] { typeof(string) })]
        string PrimaryZone { get; set; }
        /// <summary>Gcp project id</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Gcp project id",
        SerializedName = @"projectId",
        PossibleTypes = new [] { typeof(string) })]
        string ProjectId { get; set; }
        /// <summary>Secondary zone of the destination VM instance</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Secondary zone of the destination VM instance",
        SerializedName = @"secondaryZone",
        PossibleTypes = new [] { typeof(string) })]
        string SecondaryZone { get; set; }
        /// <summary>Source VM instance name</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Source VM instance name",
        SerializedName = @"sourceVM",
        PossibleTypes = new [] { typeof(string) })]
        string SourceVM { get; set; }
        /// <summary>Source VM instance guid</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Source VM instance guid",
        SerializedName = @"sourceVMGuid",
        PossibleTypes = new [] { typeof(string) })]
        string SourceVMGuid { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string TagName { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"value",
        PossibleTypes = new [] { typeof(string) })]
        string TagValue { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"name",
        PossibleTypes = new [] { typeof(string) })]
        string VMNodeAffinityName { get; set; }

        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"",
        SerializedName = @"value",
        PossibleTypes = new [] { typeof(string) })]
        string VMNodeAffinityValue { get; set; }

    }
    /// Model to store configuration per VM
    internal partial interface IReplicationConfigurationGcpInternal

    {
        /// <summary>Public/External IP of the destination VM instance</summary>
        bool? CreatePublicIP { get; set; }
        /// <summary>Datacenter of the destination VM instance</summary>
        string Datacenter { get; set; }
        /// <summary>Destination VM instance name</summary>
        string DestinationVM { get; set; }
        /// <summary>Destination VM instance machine type</summary>
        string MachineType { get; set; }
        /// <summary>Network display name</summary>
        string NetworkDisplayName { get; set; }
        /// <summary>Name of network</summary>
        string NetworkName { get; set; }
        /// <summary>subnet id of network</summary>
        string NetworkSubnetId { get; set; }
        /// <summary>Network interface for the destination instances</summary>
        Commvault.Powershell.Models.INetwork OverrideReplicationOptionNetwork { get; set; }
        /// <summary>NameValue</summary>
        Commvault.Powershell.Models.INameValue OverrideReplicationOptionTags { get; set; }
        /// <summary>NameValue</summary>
        Commvault.Powershell.Models.INameValue OverrideReplicationOptionVMNodeAffinity { get; set; }
        /// <summary>Extended instance configuration options</summary>
        Commvault.Powershell.Models.IOverrideReplicationOptionsGcp OverrideReplicationOptions { get; set; }
        /// <summary>Primary zone of the destination VM instance</summary>
        string PrimaryZone { get; set; }
        /// <summary>Gcp project id</summary>
        string ProjectId { get; set; }
        /// <summary>Secondary zone of the destination VM instance</summary>
        string SecondaryZone { get; set; }
        /// <summary>Source VM instance name</summary>
        string SourceVM { get; set; }
        /// <summary>Source VM instance guid</summary>
        string SourceVMGuid { get; set; }

        string TagName { get; set; }

        string TagValue { get; set; }

        string VMNodeAffinityName { get; set; }

        string VMNodeAffinityValue { get; set; }

    }
}