generated/api/Models/DownloadOrCopySoftware.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>Request body for download or copy software</summary>
    public partial class DownloadOrCopySoftware :
        Commvault.Powershell.Models.IDownloadOrCopySoftware,
        Commvault.Powershell.Models.IDownloadOrCopySoftwareInternal
    {

        /// <summary>Internal Acessors for CopyConfiguration</summary>
        Commvault.Powershell.Models.ICopyConfiguration Commvault.Powershell.Models.IDownloadOrCopySoftwareInternal.CopyConfiguration { get => (this._copyConfiguration = this._copyConfiguration ?? new Commvault.Powershell.Models.CopyConfiguration()); set { {_copyConfiguration = value;} } }

        /// <summary>Internal Acessors for DownloadConfiguration</summary>
        Commvault.Powershell.Models.IDownloadConfiguration Commvault.Powershell.Models.IDownloadOrCopySoftwareInternal.DownloadConfiguration { get => (this._downloadConfiguration = this._downloadConfiguration ?? new Commvault.Powershell.Models.DownloadConfiguration()); set { {_downloadConfiguration = value;} } }

        /// <summary>Backing field for <see cref="CopyConfiguration" /> property.</summary>
        private Commvault.Powershell.Models.ICopyConfiguration _copyConfiguration;

        /// <summary>Configurations for software download from the internet</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.ICopyConfiguration CopyConfiguration { get => (this._copyConfiguration = this._copyConfiguration ?? new Commvault.Powershell.Models.CopyConfiguration()); set => this._copyConfiguration = value; }

        /// <summary>Path from where the software has to be downloaded.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string CopyConfigurationDownloadPath { get => ((Commvault.Powershell.Models.ICopyConfigurationInternal)CopyConfiguration).DownloadPath; set => ((Commvault.Powershell.Models.ICopyConfigurationInternal)CopyConfiguration).DownloadPath = value ?? null; }

        /// <summary>Corresponding password of the user</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string CopyConfigurationPassword { get => ((Commvault.Powershell.Models.ICopyConfigurationInternal)CopyConfiguration).Password; set => ((Commvault.Powershell.Models.ICopyConfigurationInternal)CopyConfiguration).Password = value ?? null; }

        /// <summary>If impersonation a user the, give the username of the user.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string CopyConfigurationUsername { get => ((Commvault.Powershell.Models.ICopyConfigurationInternal)CopyConfiguration).Username; set => ((Commvault.Powershell.Models.ICopyConfigurationInternal)CopyConfiguration).Username = value ?? null; }

        /// <summary>Backing field for <see cref="DownloadConfiguration" /> property.</summary>
        private Commvault.Powershell.Models.IDownloadConfiguration _downloadConfiguration;

        /// <summary>Configurations for software download from the internet</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        internal Commvault.Powershell.Models.IDownloadConfiguration DownloadConfiguration { get => (this._downloadConfiguration = this._downloadConfiguration ?? new Commvault.Powershell.Models.DownloadConfiguration()); set => this._downloadConfiguration = value; }

        /// <summary>Which specific feature release to download.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string DownloadConfigurationFeatureRelease { get => ((Commvault.Powershell.Models.IDownloadConfigurationInternal)DownloadConfiguration).FeatureRelease; set => ((Commvault.Powershell.Models.IDownloadConfigurationInternal)DownloadConfiguration).FeatureRelease = value ?? null; }

        /// <summary>Boolean which determines whether to download latest fixews for current release.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? DownloadConfigurationLatestFixesForCurrentRelease { get => ((Commvault.Powershell.Models.IDownloadConfigurationInternal)DownloadConfiguration).LatestFixesForCurrentRelease; set => ((Commvault.Powershell.Models.IDownloadConfigurationInternal)DownloadConfiguration).LatestFixesForCurrentRelease = value ?? default(bool); }

        /// <summary>
        /// gives list of all the target unix and MAC operating systems to download software for.
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string[] DownloadConfigurationUnixDownloadOptions { get => ((Commvault.Powershell.Models.IDownloadConfigurationInternal)DownloadConfiguration).UnixDownloadOptions; set => ((Commvault.Powershell.Models.IDownloadConfigurationInternal)DownloadConfiguration).UnixDownloadOptions = value ?? null /* arrayOf */; }

        /// <summary>Boolean which determines whether to upgrade to latest release.</summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public bool? DownloadConfigurationUpgradeToLatestRelease { get => ((Commvault.Powershell.Models.IDownloadConfigurationInternal)DownloadConfiguration).UpgradeToLatestRelease; set => ((Commvault.Powershell.Models.IDownloadConfigurationInternal)DownloadConfiguration).UpgradeToLatestRelease = value ?? default(bool); }

        /// <summary>
        /// gives list of all the target windows operating systems to download software for.
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Inlined)]
        public string[] DownloadConfigurationWindowsDownloadOptions { get => ((Commvault.Powershell.Models.IDownloadConfigurationInternal)DownloadConfiguration).WindowsDownloadOptions; set => ((Commvault.Powershell.Models.IDownloadConfigurationInternal)DownloadConfiguration).WindowsDownloadOptions = value ?? null /* arrayOf */; }

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

        /// <summary>
        /// Boolean which determines whether to notify when software is downloaded or copied.
        /// </summary>
        [Commvault.Powershell.Origin(Commvault.Powershell.PropertyOrigin.Owned)]
        public bool? NotifyWhenJobCompletes { get => this._notifyWhenJobCompletes; set => this._notifyWhenJobCompletes = value; }

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

        }
    }
    /// Request body for download or copy software
    public partial interface IDownloadOrCopySoftware :
        Commvault.Powershell.Runtime.IJsonSerializable
    {
        /// <summary>Path from where the software has to be downloaded.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Path from where the software has to be downloaded.",
        SerializedName = @"downloadPath",
        PossibleTypes = new [] { typeof(string) })]
        string CopyConfigurationDownloadPath { get; set; }
        /// <summary>Corresponding password of the user</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Corresponding password of the user",
        SerializedName = @"password",
        PossibleTypes = new [] { typeof(string) })]
        string CopyConfigurationPassword { get; set; }
        /// <summary>If impersonation a user the, give the username of the user.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"If impersonation a user the, give the username of the user.",
        SerializedName = @"username",
        PossibleTypes = new [] { typeof(string) })]
        string CopyConfigurationUsername { get; set; }
        /// <summary>Which specific feature release to download.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Which specific feature release to download.",
        SerializedName = @"featureRelease",
        PossibleTypes = new [] { typeof(string) })]
        string DownloadConfigurationFeatureRelease { get; set; }
        /// <summary>Boolean which determines whether to download latest fixews for current release.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Boolean which determines whether to download latest fixews for current release.",
        SerializedName = @"latestFixesForCurrentRelease",
        PossibleTypes = new [] { typeof(bool) })]
        bool? DownloadConfigurationLatestFixesForCurrentRelease { get; set; }
        /// <summary>
        /// gives list of all the target unix and MAC operating systems to download software for.
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"gives list of all the target unix and MAC operating systems to download software for.",
        SerializedName = @"unixDownloadOptions",
        PossibleTypes = new [] { typeof(string) })]
        string[] DownloadConfigurationUnixDownloadOptions { get; set; }
        /// <summary>Boolean which determines whether to upgrade to latest release.</summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Boolean which determines whether to upgrade to latest release.",
        SerializedName = @"upgradeToLatestRelease",
        PossibleTypes = new [] { typeof(bool) })]
        bool? DownloadConfigurationUpgradeToLatestRelease { get; set; }
        /// <summary>
        /// gives list of all the target windows operating systems to download software for.
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"gives list of all the target windows operating systems to download software for.",
        SerializedName = @"windowsDownloadOptions",
        PossibleTypes = new [] { typeof(string) })]
        string[] DownloadConfigurationWindowsDownloadOptions { get; set; }
        /// <summary>
        /// Boolean which determines whether to notify when software is downloaded or copied.
        /// </summary>
        [Commvault.Powershell.Runtime.Info(
        Required = false,
        ReadOnly = false,
        Description = @"Boolean which determines whether to notify when software is downloaded or copied.",
        SerializedName = @"notifyWhenJobCompletes",
        PossibleTypes = new [] { typeof(bool) })]
        bool? NotifyWhenJobCompletes { get; set; }

    }
    /// Request body for download or copy software
    internal partial interface IDownloadOrCopySoftwareInternal

    {
        /// <summary>Configurations for software download from the internet</summary>
        Commvault.Powershell.Models.ICopyConfiguration CopyConfiguration { get; set; }
        /// <summary>Path from where the software has to be downloaded.</summary>
        string CopyConfigurationDownloadPath { get; set; }
        /// <summary>Corresponding password of the user</summary>
        string CopyConfigurationPassword { get; set; }
        /// <summary>If impersonation a user the, give the username of the user.</summary>
        string CopyConfigurationUsername { get; set; }
        /// <summary>Configurations for software download from the internet</summary>
        Commvault.Powershell.Models.IDownloadConfiguration DownloadConfiguration { get; set; }
        /// <summary>Which specific feature release to download.</summary>
        string DownloadConfigurationFeatureRelease { get; set; }
        /// <summary>Boolean which determines whether to download latest fixews for current release.</summary>
        bool? DownloadConfigurationLatestFixesForCurrentRelease { get; set; }
        /// <summary>
        /// gives list of all the target unix and MAC operating systems to download software for.
        /// </summary>
        string[] DownloadConfigurationUnixDownloadOptions { get; set; }
        /// <summary>Boolean which determines whether to upgrade to latest release.</summary>
        bool? DownloadConfigurationUpgradeToLatestRelease { get; set; }
        /// <summary>
        /// gives list of all the target windows operating systems to download software for.
        /// </summary>
        string[] DownloadConfigurationWindowsDownloadOptions { get; set; }
        /// <summary>
        /// Boolean which determines whether to notify when software is downloaded or copied.
        /// </summary>
        bool? NotifyWhenJobCompletes { get; set; }

    }
}