exports/New-CVPlanRule.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 create plan rules.
Request body will suggest plan against which rule need to be created and type of entities(workloads type, server groups, regions and all) that need to be referenced for applying that rule against a workload.
.Description
Api to create plan rules.
Request body will suggest plan against which rule need to be created and type of entities(workloads type, server groups, regions and all) that need to be referenced for applying that rule against a workload.
.Example
{{ Add code here }}
.Example
{{ Add code here }}
 
.Outputs
Commvault.Powershell.Models.IGenericResp
.Outputs
Commvault.Powershell.Models.IIdName
.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.
 
GLOBALCONFIGINFOCOMMCELLS <IGlobalConfigCommcellInfo[]>: List of Service CommCells where the global configuration should be applied
  [Guid <String>]:
  [Id <Int64?>]:
  [Name <String>]:
 
REGIONS <IIdNameGuid[]>: This will include list of regions that should be evaluated against workload region for plan association.
  [Guid <String>]:
  [Id <Int64?>]:
  [Name <String>]:
 
SERVERGROUPS <IIdNameGuid[]>: This will include list of Server groups that should be evaluated against workload server group for plan association.
  [Guid <String>]:
  [Id <Int64?>]:
  [Name <String>]:
 
SOLUTIONS <IIdName[]>: This will include list of solutions that should be evaluated against workload for plan association
  [Id <Int64?>]:
  [Name <String>]:
 
TAGS <IPlanEntityRuleTag[]>: This will include list of tags that should be evaluated against workload for plan association
  [Guid <String>]: GUID for the tag
  [Id <Int64?>]: Id for the tag
  [Name <String>]: Name for the plan rule tag which need to be matched against tag of the workload.
  [Value <String>]: Possible value that need to matched against value of tag associated to workload.
 
WORKLOADS <IIdName[]>: This will include list of apptypes that should be evaluated against workload apptype for plan association.
  [Id <Int64?>]:
  [Name <String>]:
.Link
https://learn.microsoft.com/powershell/module/commvaultpowershell/new-cvplanrule
#>

function New-CVPlanRule {
[OutputType([Commvault.Powershell.Models.IIdName], [Commvault.Powershell.Models.IGenericResp])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter()]
    [Commvault.Powershell.Category('Body')]
    [System.Int64]
    # .
    ${CompanyId},

    [Parameter()]
    [Commvault.Powershell.Category('Body')]
    [System.String]
    # .
    ${CompanyName},

    [Parameter()]
    [Commvault.Powershell.Category('Body')]
    [System.String]
    # Action that will be taken on the local entity that has the same name as the global entity that needs to be created
    ${GlobalConfigInfoActionOnLocalEntity},

    [Parameter()]
    [Commvault.Powershell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Decides whether the global configuration should be applied to all the Service commcells, including the newly created ones
    ${GlobalConfigInfoApplyOnAllCommCells},

    [Parameter()]
    [AllowEmptyCollection()]
    [Commvault.Powershell.Category('Body')]
    [Commvault.Powershell.Models.IGlobalConfigCommcellInfo[]]
    # List of Service CommCells where the global configuration should be applied
    ${GlobalConfigInfoCommcells},

    [Parameter()]
    [Commvault.Powershell.Category('Body')]
    [System.String]
    # .
    ${GlobalConfigInfoName},

    [Parameter()]
    [Commvault.Powershell.Category('Body')]
    [System.String]
    # The entity level at which the config has to be applied.
    ${GlobalConfigInfoScope},

    [Parameter()]
    [Commvault.Powershell.Category('Body')]
    [System.String]
    # CommCellEntityCache filter query string using for filtering the scope
    ${GlobalConfigInfoScopeFilterQuery},

    [Parameter()]
    [Commvault.Powershell.Category('Body')]
    [System.String]
    # .
    ${PlanGuid},

    [Parameter()]
    [Commvault.Powershell.Category('Body')]
    [System.Int64]
    # .
    ${PlanId},

    [Parameter()]
    [Commvault.Powershell.Category('Body')]
    [System.String]
    # .
    ${PlanName},

    [Parameter()]
    [Commvault.Powershell.Category('Body')]
    [System.Int64]
    # Optional field to suggest priority/rank of the rule.
    # If not present, we will process rule in the same order they are created.
    ${Rank},

    [Parameter()]
    [AllowEmptyCollection()]
    [Commvault.Powershell.Category('Body')]
    [Commvault.Powershell.Models.IIdNameGuid[]]
    # This will include list of regions that should be evaluated against workload region for plan association.
    ${Regions},

    [Parameter()]
    [AllowEmptyCollection()]
    [Commvault.Powershell.Category('Body')]
    [Commvault.Powershell.Models.IIdNameGuid[]]
    # This will include list of Server groups that should be evaluated against workload server group for plan association.
    ${ServerGroups},

    [Parameter()]
    [AllowEmptyCollection()]
    [Commvault.Powershell.Category('Body')]
    [Commvault.Powershell.Models.IIdName[]]
    # This will include list of solutions that should be evaluated against workload for plan association
    ${Solutions},

    [Parameter()]
    [AllowEmptyCollection()]
    [Commvault.Powershell.Category('Body')]
    [Commvault.Powershell.Models.IPlanEntityRuleTag[]]
    # This will include list of tags that should be evaluated against workload for plan association
    ${Tags},

    [Parameter()]
    [AllowEmptyCollection()]
    [Commvault.Powershell.Category('Body')]
    [Commvault.Powershell.Models.IIdName[]]
    # This will include list of apptypes that should be evaluated against workload apptype for plan association.
    ${Workloads},

    [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 = @{
            CreateExpanded = 'CommvaultPowerShell.private\New-CVPlanRule_CreateExpanded';
        }
        $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
    }
} 
}