Model/NamespaceManagementSupervisorServicesClusterSupervisorServicesCreateSpec.ps1

#
# NamespaceManagement Paths
# The vcenter namespace_management package provides services for managing Namespaces.
# Contact: powercli@vmware.com
# Generated by OpenAPI Generator: https://openapi-generator.tech
#

<#
.DESCRIPTION
 
The ClusterSupervisorServices.CreateSpec structure provides a specification required to create a Supervisor Service on a vSphere Supervisor.
 
.PARAMETER SupervisorService
Identifier of the Supervisor Service. This Supervisor Service must be in the ACTIVATED state. When clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: com.vmware.vcenter.namespace_management.SupervisorService. When operations return a value of this structure as a result, the field will be an identifier for the resource type: com.vmware.vcenter.namespace_management.SupervisorService.
.PARAMETER Version
Identifier of the Supervisor Service version which contains the service definition. This Supervisor Service version must be in the ACTIVATED state. When clients pass a value of this structure as a parameter, the field must be an identifier for the resource type: com.vmware.vcenter.namespace_management.supervisor_services.Version. When operations return a value of this structure as a result, the field will be an identifier for the resource type: com.vmware.vcenter.namespace_management.supervisor_services.Version.
.PARAMETER ServiceConfig
A generic key-value map for additional configuration parameters required during service creation. As an example, a third party operator might reference a private registry using parameters such as ""registryName"" for the registry name, ""registryUsername"" and ""registryPassword"" for the registry credentials. If unset, no additional configuration parameters will be applied when installing a Supervisor Service in the vSphere Supervisor.
.PARAMETER YamlServiceConfig
A set of additional configuration parameters to be applied during service creation. These parameters should be formatted as a base64 encoded YAML document. Parameters should be set in at most one of ClusterSupervisorServices.CreateSpec.service-config or ClusterSupervisorServices.CreateSpec.yaml-service-config, and not both. The ClusterSupervisorServices.CreateSpec.yaml-service-config supports complex data types and nested properties. If unset, no additional configuration parameters will be applied when installing a Supervisor Service in the vSphere Supervisor.
.OUTPUTS
 
NamespaceManagementSupervisorServicesClusterSupervisorServicesCreateSpec<PSCustomObject>
 
.LINK
 
Online Version: https://developer.vmware.com/docs/vsphere-automation/latest/vcenter/data-structures/NamespaceManagement/SupervisorServices/ClusterSupervisorServices/CreateSpec/
#>


function Initialize-NamespaceManagementSupervisorServicesClusterSupervisorServicesCreateSpec {
    [CmdletBinding(HelpURI = "https://developer.vmware.com/docs/vsphere-automation/latest/vcenter/data-structures/NamespaceManagement/SupervisorServices/ClusterSupervisorServices/CreateSpec/")]
    Param (
        [Parameter(Mandatory = $true)]
        [ValidateScript({ $_ -is [string] })]
        ${SupervisorService},
        [Parameter(Mandatory = $true)]
        [ValidateScript({ $_ -is [string] })]
        ${Version},
        [Parameter(Mandatory = $false)]
        [System.Collections.Hashtable]
        ${ServiceConfig},
        [Parameter(Mandatory = $false)]
        [ValidateScript({ $_ -is [string] })]
        ${YamlServiceConfig}
    )

    Process {
        'Creating PSCustomObject: VMware.Sdk.vSphere.vCenter.NamespaceManagement => vSphereNamespaceManagementSupervisorServicesClusterSupervisorServicesCreateSpec' | Write-Debug


        $PSO = [PSCustomObject]@{
            "PSTypeName" = "NamespaceManagementSupervisorServicesClusterSupervisorServicesCreateSpec"
            "supervisor_service" = ${SupervisorService}
            "version" = ${Version}
            "service_config" = ${ServiceConfig}
            "yaml_service_config" = ${YamlServiceConfig}
        }


        return $PSO
    }
}