exports/Edit-CVSnapConfig.ps1


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

<#
.Synopsis
API to edit Snap configs at a Array level
.Description
API to edit Snap configs at a Array level
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Inputs
Commvault.Powershell.Models.ICommvaultPowerShellIdentity
.Inputs
Commvault.Powershell.Models.ISnapConfigOverrideEditReq
.Outputs
Commvault.Powershell.Models.IGenericResp
.Notes
COMPLEX PARAMETER PROPERTIES
 
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
BODY <ISnapConfigOverrideEditReq>: Request Template to edit Snap Config
  [SnapConfigurations <List<ISnapConfigsOverrideEdit>>]:
    Flags <Int64>: Flag regarding placement of config in the CC page
    IsOverridden <Boolean>: whether the config is overridden or not
    MasterConfigId <Int64>: This is the masterConfigId, which is available for each vendors configs
    Name <String>: This is the name of the config which is displayed on the Command Center Console
    Type <Int64>: Type of the config value. type can accept 7 values [1,2,8,10,12,13,14], 1: boolean, 2: integer, 8: text, 10: array[string] are common configs, the rest three are special keys, 12 is for password type key for NetApp E-Series and HPE Nimble, 13 is Private Key for GCP, 14 is a hidden config to select type of Disk for GCP
    [Id <Int64?>]: This is the id of the config which is required during config override
    [IsUpdated <Boolean?>]: Whether the config is updated or not
    [Value <String>]: Value of the config
    [Values <List<IIdName>>]: Holds a single value for types except 10, for 10 it holds one or more values. For HPE 3PAR StoreServ, pass MA Id in name field to configure that MA as remote snap MA.
      [Id <Int64?>]:
      [Name <String>]:
 
INPUTOBJECT <ICommvaultPowerShellIdentity>: Identity Parameter
  [AccessPathId <Int64?>]: Id of the mount path whose access path has to be deleted
  [AgentId <Int64?>]: Id of the agent to be modified
  [AlertRuleId <Int64?>]: Unique Id of the alert custom rule to get details
  [AppGuid <String>]: GUID of the Application to get details
  [AppId <Int64?>]: Commvault exchange app id
  [ApplicationGroupId <Int64?>]: applicationGroupId is the ID of the Kubernetes application group
  [ArrayId <Int64?>]:
  [AssetId <String>]: FQDN of the asset
  [BackupDestinationId <Int64?>]: Id of the backupDestination to be modified
  [BackupDestionationId <Int64?>]:
  [BackupLocationId <Int64?>]: Id of the backup location whose details have to be fetched
  [BlackoutWindowId <Int64?>]: Id of the Blackout Window whose details have to be fetched
  [BucketId <Int64?>]: Id of Bucket
  [ClientId <Int64?>]:
  [CloneId <Int64?>]: ID of the cloned bucket
  [CloudStorageId <Int64?>]: Id of cloud Storage
  [ClusterId <Int64?>]: Id of the cluster whose modifier has to be listed.
  [CompanyId <Int64?>]: Id of the Company whose details have to be fetched
  [CopyId <Int64?>]:
  [CredentialId <String>]:
  [CredentialName <String>]:
  [DomainId <Int64?>]: ID of the AD/LDAP domain
  [DrOperation <String>]: Name of DR operation. Case insensitive
  [DriveId <Int64?>]: Id of the Drive of which the drive details has to be displayed
  [EntityId <Int64?>]: Recovery entity Id
  [EntityType <String>]: Type of the entity
  [FailoverGroupId <Int64?>]: Id of the failover group
  [GlobalSearchEntity <String>]: name of global search entity
  [HfsShareId <Int64?>]: Id of the HFS Share to fetch its status
  [HyperScaleStorageId <Int64?>]: Id of hyperscale storage
  [HypervisorId <Int64?>]: Id of the HYpervisor to get
  [Id <Int64?>]:
  [IndexServerClientId <Int64?>]: Pseudo client id of the index server
  [InstanceId <Int64?>]: Id of the instance to modify
  [InventoryId <Int64?>]: Inventory id
  [JobId <Int64?>]:
  [KmsId <Int64?>]: Id of Key Management Server
  [LibraryId <Int64?>]: Id of the library to view the data
  [MediaAgentId <Int64?>]: Id of the Media Agent whose details have to be fetched
  [MetadataCacheId <Int64?>]: Id of metadata cache
  [ModifierName <String>]: Name of the modifier to be read.
  [Name <String>]:
  [NameSpace <String>]: Name of the namespace to browse for content
  [NodeId <Int64?>]: Id of node
  [PairId <Int64?>]:
  [PlanId <Int64?>]: Id of the object store plan to fetch details
  [RecoveryEntityId <Int64?>]: Recovery entity Id
  [RecoveryGroupId <Int64?>]: Recovery group Id
  [RecoveryTargetId <Int64?>]: id of recovery target
  [RegionId <Int64?>]: Region id to be deleted.
  [RegionList <String>]: List of region names/ids to be deleted. If region ids are passed, set isRegionIdList=true
  [ReplicationGroupId <String>]:
  [ReplicationPairId <Int64?>]: Replication pair id of the Pair
  [RequestId <Int64?>]: Unique identifier for the request
  [RoleId <Int64?>]: Role Id
  [RpsId <String>]:
  [RuleId <Int64?>]: Id of the rule to update in Plan
  [ScheduleId <Int64?>]: ID of the DR operation schedule
  [SchedulePolicyId <Int64?>]:
  [ServerGroupId <Int64?>]: Id of the serverGroupId whose details have to be fetched
  [ServerId <Int64?>]: Id of the server to modify
  [SnapEngineId <Int64?>]: Snap Engine Id
  [SpareGroupId <Int64?>]: Id of the Spare group whose properties need to be fetched. spareGroupId can be fetched from GET V4/Storage/Tape/{libraryId}/MediaType
  [StoragePoolId <Int64?>]: Id of the storage pool whose associated copies have to be fetched
  [SubclientId <Int64?>]: Id of the subclient to modify
  [TagId <Int64?>]: Id of the tag to delete
  [TagValue <String>]: tag value to delete
  [TopologyId <String>]:
  [UserGroupId <Int64?>]: Id of the user-group whose details have to be fetched
  [UserId <Int64?>]: Id of the User whose details have to be fetched
  [VMGroupId <Int64?>]: Id of the VMgroup to update
  [VMGuid <String>]:
  [VMUuid <String>]: The vmUUID can be obtained from GET /virtualMachines UUID property
  [VendorId <Int64?>]:
 
SNAPCONFIGURATIONS <ISnapConfigsOverrideEdit[]>: .
  Flags <Int64>: Flag regarding placement of config in the CC page
  IsOverridden <Boolean>: whether the config is overridden or not
  MasterConfigId <Int64>: This is the masterConfigId, which is available for each vendors configs
  Name <String>: This is the name of the config which is displayed on the Command Center Console
  Type <Int64>: Type of the config value. type can accept 7 values [1,2,8,10,12,13,14], 1: boolean, 2: integer, 8: text, 10: array[string] are common configs, the rest three are special keys, 12 is for password type key for NetApp E-Series and HPE Nimble, 13 is Private Key for GCP, 14 is a hidden config to select type of Disk for GCP
  [Id <Int64?>]: This is the id of the config which is required during config override
  [IsUpdated <Boolean?>]: Whether the config is updated or not
  [Value <String>]: Value of the config
  [Values <List<IIdName>>]: Holds a single value for types except 10, for 10 it holds one or more values. For HPE 3PAR StoreServ, pass MA Id in name field to configure that MA as remote snap MA.
    [Id <Int64?>]:
    [Name <String>]:
.Link
https://learn.microsoft.com/powershell/module/commvaultpowershell/edit-cvsnapconfig
#>

function Edit-CVSnapConfig {
[OutputType([Commvault.Powershell.Models.IGenericResp])]
[CmdletBinding(DefaultParameterSetName='EditExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Edit', Mandatory)]
    [Parameter(ParameterSetName='EditExpanded', Mandatory)]
    [Commvault.Powershell.Category('Path')]
    [System.Int64]
    # .
    ${ArrayId},

    [Parameter(ParameterSetName='EditViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='EditViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Commvault.Powershell.Category('Path')]
    [Commvault.Powershell.Models.ICommvaultPowerShellIdentity]
    # Identity Parameter
    ${InputObject},

    [Parameter(ParameterSetName='Edit', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='EditViaIdentity', Mandatory, ValueFromPipeline)]
    [Commvault.Powershell.Category('Body')]
    [Commvault.Powershell.Models.ISnapConfigOverrideEditReq]
    # Request Template to edit Snap Config
    ${Body},

    [Parameter(ParameterSetName='EditExpanded')]
    [Parameter(ParameterSetName='EditViaIdentityExpanded')]
    [AllowEmptyCollection()]
    [Commvault.Powershell.Category('Body')]
    [Commvault.Powershell.Models.ISnapConfigsOverrideEdit[]]
    # .
    ${SnapConfigurations},

    [Parameter(DontShow)]
    [Commvault.Powershell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Commvault.Powershell.Category('Runtime')]
    [Commvault.Powershell.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be appended to the front of the pipeline
    ${HttpPipelineAppend},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Commvault.Powershell.Category('Runtime')]
    [Commvault.Powershell.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be prepended to the front of the pipeline
    ${HttpPipelinePrepend},

    [Parameter(DontShow)]
    [Commvault.Powershell.Category('Runtime')]
    [System.Uri]
    # The URI for the proxy server to use
    ${Proxy},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [Commvault.Powershell.Category('Runtime')]
    [System.Management.Automation.PSCredential]
    # Credentials for a proxy server to use for the remote call
    ${ProxyCredential},

    [Parameter(DontShow)]
    [Commvault.Powershell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Edit = 'CommvaultPowerShell.private\Edit-CVSnapConfig_Edit';
            EditExpanded = 'CommvaultPowerShell.private\Edit-CVSnapConfig_EditExpanded';
            EditViaIdentity = 'CommvaultPowerShell.private\Edit-CVSnapConfig_EditViaIdentity';
            EditViaIdentityExpanded = 'CommvaultPowerShell.private\Edit-CVSnapConfig_EditViaIdentityExpanded';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [Commvault.Powershell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        [Commvault.Powershell.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}