v2024/src/PSSailpoint.V2024/Model/DeployResponse.ps1

#
# Identity Security Cloud V2024 API
# Use these APIs to interact with the Identity Security Cloud platform to achieve repeatable, automated processes with greater scalability. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.
# Version: v2024
# Generated by OpenAPI Generator: https://openapi-generator.tech
#

<#
.SYNOPSIS

No summary available.

.DESCRIPTION

No description available.

.PARAMETER JobId
Unique id assigned to this job.
.PARAMETER Status
Status of the job.
.PARAMETER Type
Type of the job, will always be CONFIG_DEPLOY_DRAFT for this type of job.
.PARAMETER Message
Message providing information about the outcome of the deploy process.
.PARAMETER RequesterName
The name of the user that initiated the deploy process.
.PARAMETER FileExists
Whether or not a results file was created and stored for this deploy.
.PARAMETER Created
The time the job was started.
.PARAMETER Modified
The time of the last update to the job.
.PARAMETER Completed
The time the job was completed.
.PARAMETER DraftId
The id of the draft that was used for this deploy.
.PARAMETER DraftName
The name of the draft that was used for this deploy.
.PARAMETER CloudStorageStatus
Whether this deploy results file has been transferred to a customer storage location.
.OUTPUTS

DeployResponse<PSCustomObject>
#>


function Initialize-V2024DeployResponse {
    [CmdletBinding()]
    Param (
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${JobId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [ValidateSet("NOT_STARTED", "IN_PROGRESS", "COMPLETE", "CANCELLED", "FAILED")]
        [String]
        ${Status},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [ValidateSet("CONFIG_DEPLOY_DRAFT")]
        [String]
        ${Type},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${Message},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${RequesterName},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[Boolean]]
        ${FileExists} = $true,
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[System.DateTime]]
        ${Created},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[System.DateTime]]
        ${Modified},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [System.Nullable[System.DateTime]]
        ${Completed},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${DraftId},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [String]
        ${DraftName},
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [ValidateSet("SYNCED", "NOT_SYNCED", "SYNC_FAILED")]
        [String]
        ${CloudStorageStatus}
    )

    Process {
        'Creating PSCustomObject: PSSailpoint.V2024 => V2024DeployResponse' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug


        $PSO = [PSCustomObject]@{
            "jobId" = ${JobId}
            "status" = ${Status}
            "type" = ${Type}
            "message" = ${Message}
            "requesterName" = ${RequesterName}
            "fileExists" = ${FileExists}
            "created" = ${Created}
            "modified" = ${Modified}
            "completed" = ${Completed}
            "draftId" = ${DraftId}
            "draftName" = ${DraftName}
            "cloudStorageStatus" = ${CloudStorageStatus}
        }

        return $PSO
    }
}

<#
.SYNOPSIS

Convert from JSON to DeployResponse<PSCustomObject>

.DESCRIPTION

Convert from JSON to DeployResponse<PSCustomObject>

.PARAMETER Json

Json object

.OUTPUTS

DeployResponse<PSCustomObject>
#>

function ConvertFrom-V2024JsonToDeployResponse {
    Param(
        [AllowEmptyString()]
        [string]$Json
    )

    Process {
        'Converting JSON to PSCustomObject: PSSailpoint.V2024 => V2024DeployResponse' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        $JsonParameters = ConvertFrom-Json -InputObject $Json

        # check if Json contains properties not defined in V2024DeployResponse
        $AllProperties = ("jobId", "status", "type", "message", "requesterName", "fileExists", "created", "modified", "completed", "draftId", "draftName", "cloudStorageStatus")
        foreach ($name in $JsonParameters.PsObject.Properties.Name) {
            if (!($AllProperties.Contains($name))) {
                throw "Error! JSON key '$name' not found in the properties: $($AllProperties)"
            }
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "jobId"))) { #optional property not found
            $JobId = $null
        } else {
            $JobId = $JsonParameters.PSobject.Properties["jobId"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "status"))) { #optional property not found
            $Status = $null
        } else {
            $Status = $JsonParameters.PSobject.Properties["status"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "type"))) { #optional property not found
            $Type = $null
        } else {
            $Type = $JsonParameters.PSobject.Properties["type"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "message"))) { #optional property not found
            $Message = $null
        } else {
            $Message = $JsonParameters.PSobject.Properties["message"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "requesterName"))) { #optional property not found
            $RequesterName = $null
        } else {
            $RequesterName = $JsonParameters.PSobject.Properties["requesterName"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "fileExists"))) { #optional property not found
            $FileExists = $null
        } else {
            $FileExists = $JsonParameters.PSobject.Properties["fileExists"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "created"))) { #optional property not found
            $Created = $null
        } else {
            $Created = $JsonParameters.PSobject.Properties["created"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "modified"))) { #optional property not found
            $Modified = $null
        } else {
            $Modified = $JsonParameters.PSobject.Properties["modified"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "completed"))) { #optional property not found
            $Completed = $null
        } else {
            $Completed = $JsonParameters.PSobject.Properties["completed"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "draftId"))) { #optional property not found
            $DraftId = $null
        } else {
            $DraftId = $JsonParameters.PSobject.Properties["draftId"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "draftName"))) { #optional property not found
            $DraftName = $null
        } else {
            $DraftName = $JsonParameters.PSobject.Properties["draftName"].value
        }

        if (!([bool]($JsonParameters.PSobject.Properties.name -match "cloudStorageStatus"))) { #optional property not found
            $CloudStorageStatus = $null
        } else {
            $CloudStorageStatus = $JsonParameters.PSobject.Properties["cloudStorageStatus"].value
        }

        $PSO = [PSCustomObject]@{
            "jobId" = ${JobId}
            "status" = ${Status}
            "type" = ${Type}
            "message" = ${Message}
            "requesterName" = ${RequesterName}
            "fileExists" = ${FileExists}
            "created" = ${Created}
            "modified" = ${Modified}
            "completed" = ${Completed}
            "draftId" = ${DraftId}
            "draftName" = ${DraftName}
            "cloudStorageStatus" = ${CloudStorageStatus}
        }

        return $PSO
    }

}