// Package platform provides primitives to interact with the openapi HTTP API.
//
// Code generated by github.com/deepmap/oapi-codegen/v2 version v2.1.0 DO NOT EDIT.
package platform

import (
	"bytes"
	"context"
	"encoding/json"
	"fmt"
	"io"
	"net/http"
	"net/url"
	"strings"
	"time"

	"github.com/oapi-codegen/runtime"
)

const (
	JWTScopes = "JWT.Scopes"
)

// Defines values for AlertEntityType.
const (
	AlertEntityTypeDEPLOYMENT AlertEntityType = "DEPLOYMENT"
)

// Defines values for AlertSeverity.
const (
	AlertSeverityCRITICAL AlertSeverity = "CRITICAL"
	AlertSeverityINFO     AlertSeverity = "INFO"
	AlertSeverityWARNING  AlertSeverity = "WARNING"
)

// Defines values for AlertType.
const (
	AlertTypeAIRFLOWDBSTORAGEUNUSUALLYHIGH AlertType = "AIRFLOW_DB_STORAGE_UNUSUALLY_HIGH"
	AlertTypeDAGDURATION                   AlertType = "DAG_DURATION"
	AlertTypeDAGFAILURE                    AlertType = "DAG_FAILURE"
	AlertTypeDAGSUCCESS                    AlertType = "DAG_SUCCESS"
	AlertTypeDAGTIMELINESS                 AlertType = "DAG_TIMELINESS"
	AlertTypeDATAPRODUCTPROACTIVEFAILURE   AlertType = "DATA_PRODUCT_PROACTIVE_FAILURE"
	AlertTypeDATAPRODUCTPROACTIVESLA       AlertType = "DATA_PRODUCT_PROACTIVE_SLA"
	AlertTypeDATAPRODUCTSLA                AlertType = "DATA_PRODUCT_SLA"
	AlertTypeDEPRECATEDRUNTIMEVERSION      AlertType = "DEPRECATED_RUNTIME_VERSION"
	AlertTypeJOBSCHEDULINGDISABLED         AlertType = "JOB_SCHEDULING_DISABLED"
	AlertTypeTASKDURATION                  AlertType = "TASK_DURATION"
	AlertTypeTASKFAILURE                   AlertType = "TASK_FAILURE"
	AlertTypeWORKERQUEUEATCAPACITY         AlertType = "WORKER_QUEUE_AT_CAPACITY"
)

// Defines values for AlertNotificationChannelEntityType.
const (
	AlertNotificationChannelEntityTypeDEPLOYMENT   AlertNotificationChannelEntityType = "DEPLOYMENT"
	AlertNotificationChannelEntityTypeORGANIZATION AlertNotificationChannelEntityType = "ORGANIZATION"
	AlertNotificationChannelEntityTypeWORKSPACE    AlertNotificationChannelEntityType = "WORKSPACE"
)

// Defines values for AlertNotificationChannelType.
const (
	AlertNotificationChannelTypeDAGTRIGGER AlertNotificationChannelType = "DAG_TRIGGER"
	AlertNotificationChannelTypeEMAIL      AlertNotificationChannelType = "EMAIL"
	AlertNotificationChannelTypeOPSGENIE   AlertNotificationChannelType = "OPSGENIE"
	AlertNotificationChannelTypePAGERDUTY  AlertNotificationChannelType = "PAGERDUTY"
	AlertNotificationChannelTypeSLACK      AlertNotificationChannelType = "SLACK"
)

// Defines values for BasicSubjectProfileSubjectType.
const (
	SERVICEKEY BasicSubjectProfileSubjectType = "SERVICEKEY"
	USER       BasicSubjectProfileSubjectType = "USER"
)

// Defines values for ClusterCloudProvider.
const (
	ClusterCloudProviderAWS   ClusterCloudProvider = "AWS"
	ClusterCloudProviderAZURE ClusterCloudProvider = "AZURE"
	ClusterCloudProviderGCP   ClusterCloudProvider = "GCP"
)

// Defines values for ClusterStatus.
const (
	ClusterStatusACCESSDENIED   ClusterStatus = "ACCESS_DENIED"
	ClusterStatusCREATED        ClusterStatus = "CREATED"
	ClusterStatusCREATEFAILED   ClusterStatus = "CREATE_FAILED"
	ClusterStatusCREATING       ClusterStatus = "CREATING"
	ClusterStatusUPDATEFAILED   ClusterStatus = "UPDATE_FAILED"
	ClusterStatusUPDATING       ClusterStatus = "UPDATING"
	ClusterStatusUPGRADEPENDING ClusterStatus = "UPGRADE_PENDING"
)

// Defines values for ClusterType.
const (
	ClusterTypeDEDICATED ClusterType = "DEDICATED"
	ClusterTypeHYBRID    ClusterType = "HYBRID"
)

// Defines values for ClusterHealthStatusValue.
const (
	HEALTHY   ClusterHealthStatusValue = "HEALTHY"
	UNHEALTHY ClusterHealthStatusValue = "UNHEALTHY"
	UNKNOWN   ClusterHealthStatusValue = "UNKNOWN"
)

// Defines values for ClusterOptionsProvider.
const (
	ClusterOptionsProviderAWS   ClusterOptionsProvider = "AWS"
	ClusterOptionsProviderAZURE ClusterOptionsProvider = "AZURE"
	ClusterOptionsProviderGCP   ClusterOptionsProvider = "GCP"
)

// Defines values for CreateAwsClusterRequestCloudProvider.
const (
	CreateAwsClusterRequestCloudProviderAWS   CreateAwsClusterRequestCloudProvider = "AWS"
	CreateAwsClusterRequestCloudProviderAZURE CreateAwsClusterRequestCloudProvider = "AZURE"
	CreateAwsClusterRequestCloudProviderGCP   CreateAwsClusterRequestCloudProvider = "GCP"
)

// Defines values for CreateAwsClusterRequestType.
const (
	CreateAwsClusterRequestTypeDEDICATED CreateAwsClusterRequestType = "DEDICATED"
	CreateAwsClusterRequestTypeHYBRID    CreateAwsClusterRequestType = "HYBRID"
)

// Defines values for CreateAzureClusterRequestCloudProvider.
const (
	CreateAzureClusterRequestCloudProviderAWS   CreateAzureClusterRequestCloudProvider = "AWS"
	CreateAzureClusterRequestCloudProviderAZURE CreateAzureClusterRequestCloudProvider = "AZURE"
	CreateAzureClusterRequestCloudProviderGCP   CreateAzureClusterRequestCloudProvider = "GCP"
)

// Defines values for CreateAzureClusterRequestType.
const (
	CreateAzureClusterRequestTypeDEDICATED CreateAzureClusterRequestType = "DEDICATED"
	CreateAzureClusterRequestTypeHYBRID    CreateAzureClusterRequestType = "HYBRID"
)

// Defines values for CreateDagDurationAlertRequestEntityType.
const (
	CreateDagDurationAlertRequestEntityTypeDEPLOYMENT CreateDagDurationAlertRequestEntityType = "DEPLOYMENT"
)

// Defines values for CreateDagDurationAlertRequestSeverity.
const (
	CreateDagDurationAlertRequestSeverityCRITICAL CreateDagDurationAlertRequestSeverity = "CRITICAL"
	CreateDagDurationAlertRequestSeverityINFO     CreateDagDurationAlertRequestSeverity = "INFO"
	CreateDagDurationAlertRequestSeverityWARNING  CreateDagDurationAlertRequestSeverity = "WARNING"
)

// Defines values for CreateDagDurationAlertRequestType.
const (
	CreateDagDurationAlertRequestTypeDAGDURATION   CreateDagDurationAlertRequestType = "DAG_DURATION"
	CreateDagDurationAlertRequestTypeDAGFAILURE    CreateDagDurationAlertRequestType = "DAG_FAILURE"
	CreateDagDurationAlertRequestTypeDAGSUCCESS    CreateDagDurationAlertRequestType = "DAG_SUCCESS"
	CreateDagDurationAlertRequestTypeDAGTIMELINESS CreateDagDurationAlertRequestType = "DAG_TIMELINESS"
	CreateDagDurationAlertRequestTypeTASKDURATION  CreateDagDurationAlertRequestType = "TASK_DURATION"
	CreateDagDurationAlertRequestTypeTASKFAILURE   CreateDagDurationAlertRequestType = "TASK_FAILURE"
)

// Defines values for CreateDagFailureAlertRequestEntityType.
const (
	CreateDagFailureAlertRequestEntityTypeDEPLOYMENT CreateDagFailureAlertRequestEntityType = "DEPLOYMENT"
)

// Defines values for CreateDagFailureAlertRequestSeverity.
const (
	CreateDagFailureAlertRequestSeverityCRITICAL CreateDagFailureAlertRequestSeverity = "CRITICAL"
	CreateDagFailureAlertRequestSeverityINFO     CreateDagFailureAlertRequestSeverity = "INFO"
	CreateDagFailureAlertRequestSeverityWARNING  CreateDagFailureAlertRequestSeverity = "WARNING"
)

// Defines values for CreateDagFailureAlertRequestType.
const (
	CreateDagFailureAlertRequestTypeDAGDURATION   CreateDagFailureAlertRequestType = "DAG_DURATION"
	CreateDagFailureAlertRequestTypeDAGFAILURE    CreateDagFailureAlertRequestType = "DAG_FAILURE"
	CreateDagFailureAlertRequestTypeDAGSUCCESS    CreateDagFailureAlertRequestType = "DAG_SUCCESS"
	CreateDagFailureAlertRequestTypeDAGTIMELINESS CreateDagFailureAlertRequestType = "DAG_TIMELINESS"
	CreateDagFailureAlertRequestTypeTASKDURATION  CreateDagFailureAlertRequestType = "TASK_DURATION"
	CreateDagFailureAlertRequestTypeTASKFAILURE   CreateDagFailureAlertRequestType = "TASK_FAILURE"
)

// Defines values for CreateDagSuccessAlertRequestEntityType.
const (
	CreateDagSuccessAlertRequestEntityTypeDEPLOYMENT CreateDagSuccessAlertRequestEntityType = "DEPLOYMENT"
)

// Defines values for CreateDagSuccessAlertRequestSeverity.
const (
	CreateDagSuccessAlertRequestSeverityCRITICAL CreateDagSuccessAlertRequestSeverity = "CRITICAL"
	CreateDagSuccessAlertRequestSeverityINFO     CreateDagSuccessAlertRequestSeverity = "INFO"
	CreateDagSuccessAlertRequestSeverityWARNING  CreateDagSuccessAlertRequestSeverity = "WARNING"
)

// Defines values for CreateDagSuccessAlertRequestType.
const (
	CreateDagSuccessAlertRequestTypeDAGDURATION   CreateDagSuccessAlertRequestType = "DAG_DURATION"
	CreateDagSuccessAlertRequestTypeDAGFAILURE    CreateDagSuccessAlertRequestType = "DAG_FAILURE"
	CreateDagSuccessAlertRequestTypeDAGSUCCESS    CreateDagSuccessAlertRequestType = "DAG_SUCCESS"
	CreateDagSuccessAlertRequestTypeDAGTIMELINESS CreateDagSuccessAlertRequestType = "DAG_TIMELINESS"
	CreateDagSuccessAlertRequestTypeTASKDURATION  CreateDagSuccessAlertRequestType = "TASK_DURATION"
	CreateDagSuccessAlertRequestTypeTASKFAILURE   CreateDagSuccessAlertRequestType = "TASK_FAILURE"
)

// Defines values for CreateDagTimelinessAlertRequestEntityType.
const (
	CreateDagTimelinessAlertRequestEntityTypeDEPLOYMENT CreateDagTimelinessAlertRequestEntityType = "DEPLOYMENT"
)

// Defines values for CreateDagTimelinessAlertRequestSeverity.
const (
	CreateDagTimelinessAlertRequestSeverityCRITICAL CreateDagTimelinessAlertRequestSeverity = "CRITICAL"
	CreateDagTimelinessAlertRequestSeverityINFO     CreateDagTimelinessAlertRequestSeverity = "INFO"
	CreateDagTimelinessAlertRequestSeverityWARNING  CreateDagTimelinessAlertRequestSeverity = "WARNING"
)

// Defines values for CreateDagTimelinessAlertRequestType.
const (
	CreateDagTimelinessAlertRequestTypeDAGDURATION   CreateDagTimelinessAlertRequestType = "DAG_DURATION"
	CreateDagTimelinessAlertRequestTypeDAGFAILURE    CreateDagTimelinessAlertRequestType = "DAG_FAILURE"
	CreateDagTimelinessAlertRequestTypeDAGSUCCESS    CreateDagTimelinessAlertRequestType = "DAG_SUCCESS"
	CreateDagTimelinessAlertRequestTypeDAGTIMELINESS CreateDagTimelinessAlertRequestType = "DAG_TIMELINESS"
	CreateDagTimelinessAlertRequestTypeTASKDURATION  CreateDagTimelinessAlertRequestType = "TASK_DURATION"
	CreateDagTimelinessAlertRequestTypeTASKFAILURE   CreateDagTimelinessAlertRequestType = "TASK_FAILURE"
)

// Defines values for CreateDagTriggerNotificationChannelRequestEntityType.
const (
	CreateDagTriggerNotificationChannelRequestEntityTypeDEPLOYMENT   CreateDagTriggerNotificationChannelRequestEntityType = "DEPLOYMENT"
	CreateDagTriggerNotificationChannelRequestEntityTypeORGANIZATION CreateDagTriggerNotificationChannelRequestEntityType = "ORGANIZATION"
	CreateDagTriggerNotificationChannelRequestEntityTypeWORKSPACE    CreateDagTriggerNotificationChannelRequestEntityType = "WORKSPACE"
)

// Defines values for CreateDagTriggerNotificationChannelRequestType.
const (
	CreateDagTriggerNotificationChannelRequestTypeDAGTRIGGER CreateDagTriggerNotificationChannelRequestType = "DAG_TRIGGER"
	CreateDagTriggerNotificationChannelRequestTypeEMAIL      CreateDagTriggerNotificationChannelRequestType = "EMAIL"
	CreateDagTriggerNotificationChannelRequestTypeOPSGENIE   CreateDagTriggerNotificationChannelRequestType = "OPSGENIE"
	CreateDagTriggerNotificationChannelRequestTypePAGERDUTY  CreateDagTriggerNotificationChannelRequestType = "PAGERDUTY"
	CreateDagTriggerNotificationChannelRequestTypeSLACK      CreateDagTriggerNotificationChannelRequestType = "SLACK"
)

// Defines values for CreateDedicatedDeploymentRequestExecutor.
const (
	CreateDedicatedDeploymentRequestExecutorASTRO      CreateDedicatedDeploymentRequestExecutor = "ASTRO"
	CreateDedicatedDeploymentRequestExecutorCELERY     CreateDedicatedDeploymentRequestExecutor = "CELERY"
	CreateDedicatedDeploymentRequestExecutorKUBERNETES CreateDedicatedDeploymentRequestExecutor = "KUBERNETES"
)

// Defines values for CreateDedicatedDeploymentRequestSchedulerSize.
const (
	CreateDedicatedDeploymentRequestSchedulerSizeEXTRALARGE CreateDedicatedDeploymentRequestSchedulerSize = "EXTRA_LARGE"
	CreateDedicatedDeploymentRequestSchedulerSizeLARGE      CreateDedicatedDeploymentRequestSchedulerSize = "LARGE"
	CreateDedicatedDeploymentRequestSchedulerSizeMEDIUM     CreateDedicatedDeploymentRequestSchedulerSize = "MEDIUM"
	CreateDedicatedDeploymentRequestSchedulerSizeSMALL      CreateDedicatedDeploymentRequestSchedulerSize = "SMALL"
)

// Defines values for CreateDedicatedDeploymentRequestType.
const (
	CreateDedicatedDeploymentRequestTypeDEDICATED CreateDedicatedDeploymentRequestType = "DEDICATED"
	CreateDedicatedDeploymentRequestTypeHYBRID    CreateDedicatedDeploymentRequestType = "HYBRID"
	CreateDedicatedDeploymentRequestTypeSTANDARD  CreateDedicatedDeploymentRequestType = "STANDARD"
)

// Defines values for CreateEmailNotificationChannelRequestEntityType.
const (
	CreateEmailNotificationChannelRequestEntityTypeDEPLOYMENT   CreateEmailNotificationChannelRequestEntityType = "DEPLOYMENT"
	CreateEmailNotificationChannelRequestEntityTypeORGANIZATION CreateEmailNotificationChannelRequestEntityType = "ORGANIZATION"
	CreateEmailNotificationChannelRequestEntityTypeWORKSPACE    CreateEmailNotificationChannelRequestEntityType = "WORKSPACE"
)

// Defines values for CreateEmailNotificationChannelRequestType.
const (
	CreateEmailNotificationChannelRequestTypeDAGTRIGGER CreateEmailNotificationChannelRequestType = "DAG_TRIGGER"
	CreateEmailNotificationChannelRequestTypeEMAIL      CreateEmailNotificationChannelRequestType = "EMAIL"
	CreateEmailNotificationChannelRequestTypeOPSGENIE   CreateEmailNotificationChannelRequestType = "OPSGENIE"
	CreateEmailNotificationChannelRequestTypePAGERDUTY  CreateEmailNotificationChannelRequestType = "PAGERDUTY"
	CreateEmailNotificationChannelRequestTypeSLACK      CreateEmailNotificationChannelRequestType = "SLACK"
)

// Defines values for CreateEnvironmentObjectLinkRequestScope.
const (
	CreateEnvironmentObjectLinkRequestScopeDEPLOYMENT CreateEnvironmentObjectLinkRequestScope = "DEPLOYMENT"
)

// Defines values for CreateEnvironmentObjectMetricsExportOverridesRequestAuthType.
const (
	CreateEnvironmentObjectMetricsExportOverridesRequestAuthTypeAUTHTOKEN CreateEnvironmentObjectMetricsExportOverridesRequestAuthType = "AUTH_TOKEN"
	CreateEnvironmentObjectMetricsExportOverridesRequestAuthTypeBASIC     CreateEnvironmentObjectMetricsExportOverridesRequestAuthType = "BASIC"
)

// Defines values for CreateEnvironmentObjectMetricsExportOverridesRequestExporterType.
const (
	CreateEnvironmentObjectMetricsExportOverridesRequestExporterTypePROMETHEUS CreateEnvironmentObjectMetricsExportOverridesRequestExporterType = "PROMETHEUS"
)

// Defines values for CreateEnvironmentObjectMetricsExportRequestAuthType.
const (
	CreateEnvironmentObjectMetricsExportRequestAuthTypeAUTHTOKEN CreateEnvironmentObjectMetricsExportRequestAuthType = "AUTH_TOKEN"
	CreateEnvironmentObjectMetricsExportRequestAuthTypeBASIC     CreateEnvironmentObjectMetricsExportRequestAuthType = "BASIC"
)

// Defines values for CreateEnvironmentObjectMetricsExportRequestExporterType.
const (
	CreateEnvironmentObjectMetricsExportRequestExporterTypePROMETHEUS CreateEnvironmentObjectMetricsExportRequestExporterType = "PROMETHEUS"
)

// Defines values for CreateEnvironmentObjectRequestObjectType.
const (
	CreateEnvironmentObjectRequestObjectTypeAIRFLOWVARIABLE CreateEnvironmentObjectRequestObjectType = "AIRFLOW_VARIABLE"
	CreateEnvironmentObjectRequestObjectTypeCONNECTION      CreateEnvironmentObjectRequestObjectType = "CONNECTION"
	CreateEnvironmentObjectRequestObjectTypeMETRICSEXPORT   CreateEnvironmentObjectRequestObjectType = "METRICS_EXPORT"
)

// Defines values for CreateEnvironmentObjectRequestScope.
const (
	CreateEnvironmentObjectRequestScopeDEPLOYMENT CreateEnvironmentObjectRequestScope = "DEPLOYMENT"
	CreateEnvironmentObjectRequestScopeWORKSPACE  CreateEnvironmentObjectRequestScope = "WORKSPACE"
)

// Defines values for CreateGcpClusterRequestCloudProvider.
const (
	CreateGcpClusterRequestCloudProviderAWS   CreateGcpClusterRequestCloudProvider = "AWS"
	CreateGcpClusterRequestCloudProviderAZURE CreateGcpClusterRequestCloudProvider = "AZURE"
	CreateGcpClusterRequestCloudProviderGCP   CreateGcpClusterRequestCloudProvider = "GCP"
)

// Defines values for CreateGcpClusterRequestType.
const (
	CreateGcpClusterRequestTypeDEDICATED CreateGcpClusterRequestType = "DEDICATED"
	CreateGcpClusterRequestTypeHYBRID    CreateGcpClusterRequestType = "HYBRID"
)

// Defines values for CreateHybridDeploymentRequestExecutor.
const (
	CreateHybridDeploymentRequestExecutorCELERY     CreateHybridDeploymentRequestExecutor = "CELERY"
	CreateHybridDeploymentRequestExecutorKUBERNETES CreateHybridDeploymentRequestExecutor = "KUBERNETES"
)

// Defines values for CreateHybridDeploymentRequestType.
const (
	CreateHybridDeploymentRequestTypeDEDICATED CreateHybridDeploymentRequestType = "DEDICATED"
	CreateHybridDeploymentRequestTypeHYBRID    CreateHybridDeploymentRequestType = "HYBRID"
	CreateHybridDeploymentRequestTypeSTANDARD  CreateHybridDeploymentRequestType = "STANDARD"
)

// Defines values for CreateOpsgenieNotificationChannelRequestEntityType.
const (
	CreateOpsgenieNotificationChannelRequestEntityTypeDEPLOYMENT   CreateOpsgenieNotificationChannelRequestEntityType = "DEPLOYMENT"
	CreateOpsgenieNotificationChannelRequestEntityTypeORGANIZATION CreateOpsgenieNotificationChannelRequestEntityType = "ORGANIZATION"
	CreateOpsgenieNotificationChannelRequestEntityTypeWORKSPACE    CreateOpsgenieNotificationChannelRequestEntityType = "WORKSPACE"
)

// Defines values for CreateOpsgenieNotificationChannelRequestType.
const (
	CreateOpsgenieNotificationChannelRequestTypeDAGTRIGGER CreateOpsgenieNotificationChannelRequestType = "DAG_TRIGGER"
	CreateOpsgenieNotificationChannelRequestTypeEMAIL      CreateOpsgenieNotificationChannelRequestType = "EMAIL"
	CreateOpsgenieNotificationChannelRequestTypeOPSGENIE   CreateOpsgenieNotificationChannelRequestType = "OPSGENIE"
	CreateOpsgenieNotificationChannelRequestTypePAGERDUTY  CreateOpsgenieNotificationChannelRequestType = "PAGERDUTY"
	CreateOpsgenieNotificationChannelRequestTypeSLACK      CreateOpsgenieNotificationChannelRequestType = "SLACK"
)

// Defines values for CreatePagerDutyNotificationChannelRequestEntityType.
const (
	CreatePagerDutyNotificationChannelRequestEntityTypeDEPLOYMENT   CreatePagerDutyNotificationChannelRequestEntityType = "DEPLOYMENT"
	CreatePagerDutyNotificationChannelRequestEntityTypeORGANIZATION CreatePagerDutyNotificationChannelRequestEntityType = "ORGANIZATION"
	CreatePagerDutyNotificationChannelRequestEntityTypeWORKSPACE    CreatePagerDutyNotificationChannelRequestEntityType = "WORKSPACE"
)

// Defines values for CreatePagerDutyNotificationChannelRequestType.
const (
	CreatePagerDutyNotificationChannelRequestTypeDAGTRIGGER CreatePagerDutyNotificationChannelRequestType = "DAG_TRIGGER"
	CreatePagerDutyNotificationChannelRequestTypeEMAIL      CreatePagerDutyNotificationChannelRequestType = "EMAIL"
	CreatePagerDutyNotificationChannelRequestTypeOPSGENIE   CreatePagerDutyNotificationChannelRequestType = "OPSGENIE"
	CreatePagerDutyNotificationChannelRequestTypePAGERDUTY  CreatePagerDutyNotificationChannelRequestType = "PAGERDUTY"
	CreatePagerDutyNotificationChannelRequestTypeSLACK      CreatePagerDutyNotificationChannelRequestType = "SLACK"
)

// Defines values for CreateSlackNotificationChannelRequestEntityType.
const (
	CreateSlackNotificationChannelRequestEntityTypeDEPLOYMENT   CreateSlackNotificationChannelRequestEntityType = "DEPLOYMENT"
	CreateSlackNotificationChannelRequestEntityTypeORGANIZATION CreateSlackNotificationChannelRequestEntityType = "ORGANIZATION"
	CreateSlackNotificationChannelRequestEntityTypeWORKSPACE    CreateSlackNotificationChannelRequestEntityType = "WORKSPACE"
)

// Defines values for CreateSlackNotificationChannelRequestType.
const (
	CreateSlackNotificationChannelRequestTypeDAGTRIGGER CreateSlackNotificationChannelRequestType = "DAG_TRIGGER"
	CreateSlackNotificationChannelRequestTypeEMAIL      CreateSlackNotificationChannelRequestType = "EMAIL"
	CreateSlackNotificationChannelRequestTypeOPSGENIE   CreateSlackNotificationChannelRequestType = "OPSGENIE"
	CreateSlackNotificationChannelRequestTypePAGERDUTY  CreateSlackNotificationChannelRequestType = "PAGERDUTY"
	CreateSlackNotificationChannelRequestTypeSLACK      CreateSlackNotificationChannelRequestType = "SLACK"
)

// Defines values for CreateStandardDeploymentRequestCloudProvider.
const (
	CreateStandardDeploymentRequestCloudProviderAWS   CreateStandardDeploymentRequestCloudProvider = "AWS"
	CreateStandardDeploymentRequestCloudProviderAZURE CreateStandardDeploymentRequestCloudProvider = "AZURE"
	CreateStandardDeploymentRequestCloudProviderGCP   CreateStandardDeploymentRequestCloudProvider = "GCP"
)

// Defines values for CreateStandardDeploymentRequestExecutor.
const (
	CreateStandardDeploymentRequestExecutorASTRO      CreateStandardDeploymentRequestExecutor = "ASTRO"
	CreateStandardDeploymentRequestExecutorCELERY     CreateStandardDeploymentRequestExecutor = "CELERY"
	CreateStandardDeploymentRequestExecutorKUBERNETES CreateStandardDeploymentRequestExecutor = "KUBERNETES"
)

// Defines values for CreateStandardDeploymentRequestSchedulerSize.
const (
	CreateStandardDeploymentRequestSchedulerSizeEXTRALARGE CreateStandardDeploymentRequestSchedulerSize = "EXTRA_LARGE"
	CreateStandardDeploymentRequestSchedulerSizeLARGE      CreateStandardDeploymentRequestSchedulerSize = "LARGE"
	CreateStandardDeploymentRequestSchedulerSizeMEDIUM     CreateStandardDeploymentRequestSchedulerSize = "MEDIUM"
	CreateStandardDeploymentRequestSchedulerSizeSMALL      CreateStandardDeploymentRequestSchedulerSize = "SMALL"
)

// Defines values for CreateStandardDeploymentRequestType.
const (
	CreateStandardDeploymentRequestTypeDEDICATED CreateStandardDeploymentRequestType = "DEDICATED"
	CreateStandardDeploymentRequestTypeHYBRID    CreateStandardDeploymentRequestType = "HYBRID"
	CreateStandardDeploymentRequestTypeSTANDARD  CreateStandardDeploymentRequestType = "STANDARD"
)

// Defines values for CreateTaskDurationAlertRequestEntityType.
const (
	CreateTaskDurationAlertRequestEntityTypeDEPLOYMENT CreateTaskDurationAlertRequestEntityType = "DEPLOYMENT"
)

// Defines values for CreateTaskDurationAlertRequestSeverity.
const (
	CreateTaskDurationAlertRequestSeverityCRITICAL CreateTaskDurationAlertRequestSeverity = "CRITICAL"
	CreateTaskDurationAlertRequestSeverityINFO     CreateTaskDurationAlertRequestSeverity = "INFO"
	CreateTaskDurationAlertRequestSeverityWARNING  CreateTaskDurationAlertRequestSeverity = "WARNING"
)

// Defines values for CreateTaskDurationAlertRequestType.
const (
	CreateTaskDurationAlertRequestTypeDAGDURATION   CreateTaskDurationAlertRequestType = "DAG_DURATION"
	CreateTaskDurationAlertRequestTypeDAGFAILURE    CreateTaskDurationAlertRequestType = "DAG_FAILURE"
	CreateTaskDurationAlertRequestTypeDAGSUCCESS    CreateTaskDurationAlertRequestType = "DAG_SUCCESS"
	CreateTaskDurationAlertRequestTypeDAGTIMELINESS CreateTaskDurationAlertRequestType = "DAG_TIMELINESS"
	CreateTaskDurationAlertRequestTypeTASKDURATION  CreateTaskDurationAlertRequestType = "TASK_DURATION"
	CreateTaskDurationAlertRequestTypeTASKFAILURE   CreateTaskDurationAlertRequestType = "TASK_FAILURE"
)

// Defines values for CreateTaskFailureAlertRequestEntityType.
const (
	CreateTaskFailureAlertRequestEntityTypeDEPLOYMENT CreateTaskFailureAlertRequestEntityType = "DEPLOYMENT"
)

// Defines values for CreateTaskFailureAlertRequestSeverity.
const (
	CreateTaskFailureAlertRequestSeverityCRITICAL CreateTaskFailureAlertRequestSeverity = "CRITICAL"
	CreateTaskFailureAlertRequestSeverityINFO     CreateTaskFailureAlertRequestSeverity = "INFO"
	CreateTaskFailureAlertRequestSeverityWARNING  CreateTaskFailureAlertRequestSeverity = "WARNING"
)

// Defines values for CreateTaskFailureAlertRequestType.
const (
	CreateTaskFailureAlertRequestTypeDAGDURATION   CreateTaskFailureAlertRequestType = "DAG_DURATION"
	CreateTaskFailureAlertRequestTypeDAGFAILURE    CreateTaskFailureAlertRequestType = "DAG_FAILURE"
	CreateTaskFailureAlertRequestTypeDAGSUCCESS    CreateTaskFailureAlertRequestType = "DAG_SUCCESS"
	CreateTaskFailureAlertRequestTypeDAGTIMELINESS CreateTaskFailureAlertRequestType = "DAG_TIMELINESS"
	CreateTaskFailureAlertRequestTypeTASKDURATION  CreateTaskFailureAlertRequestType = "TASK_DURATION"
	CreateTaskFailureAlertRequestTypeTASKFAILURE   CreateTaskFailureAlertRequestType = "TASK_FAILURE"
)

// Defines values for DeploymentCloudProvider.
const (
	DeploymentCloudProviderAWS   DeploymentCloudProvider = "AWS"
	DeploymentCloudProviderAZURE DeploymentCloudProvider = "AZURE"
	DeploymentCloudProviderGCP   DeploymentCloudProvider = "GCP"
)

// Defines values for DeploymentExecutor.
const (
	DeploymentExecutorASTRO      DeploymentExecutor = "ASTRO"
	DeploymentExecutorCELERY     DeploymentExecutor = "CELERY"
	DeploymentExecutorKUBERNETES DeploymentExecutor = "KUBERNETES"
)

// Defines values for DeploymentSchedulerSize.
const (
	DeploymentSchedulerSizeEXTRALARGE DeploymentSchedulerSize = "EXTRA_LARGE"
	DeploymentSchedulerSizeLARGE      DeploymentSchedulerSize = "LARGE"
	DeploymentSchedulerSizeMEDIUM     DeploymentSchedulerSize = "MEDIUM"
	DeploymentSchedulerSizeSMALL      DeploymentSchedulerSize = "SMALL"
)

// Defines values for DeploymentStatus.
const (
	DeploymentStatusCREATING    DeploymentStatus = "CREATING"
	DeploymentStatusDEPLOYING   DeploymentStatus = "DEPLOYING"
	DeploymentStatusHEALTHY     DeploymentStatus = "HEALTHY"
	DeploymentStatusHIBERNATING DeploymentStatus = "HIBERNATING"
	DeploymentStatusUNHEALTHY   DeploymentStatus = "UNHEALTHY"
	DeploymentStatusUNKNOWN     DeploymentStatus = "UNKNOWN"
)

// Defines values for DeploymentType.
const (
	DeploymentTypeDEDICATED DeploymentType = "DEDICATED"
	DeploymentTypeHYBRID    DeploymentType = "HYBRID"
	DeploymentTypeSTANDARD  DeploymentType = "STANDARD"
)

// Defines values for DeploymentHibernationStatusNextEventType.
const (
	HIBERNATE DeploymentHibernationStatusNextEventType = "HIBERNATE"
	WAKE      DeploymentHibernationStatusNextEventType = "WAKE"
)

// Defines values for EnvironmentObjectObjectType.
const (
	EnvironmentObjectObjectTypeAIRFLOWVARIABLE EnvironmentObjectObjectType = "AIRFLOW_VARIABLE"
	EnvironmentObjectObjectTypeCONNECTION      EnvironmentObjectObjectType = "CONNECTION"
	EnvironmentObjectObjectTypeMETRICSEXPORT   EnvironmentObjectObjectType = "METRICS_EXPORT"
)

// Defines values for EnvironmentObjectScope.
const (
	EnvironmentObjectScopeDEPLOYMENT EnvironmentObjectScope = "DEPLOYMENT"
	EnvironmentObjectScopeWORKSPACE  EnvironmentObjectScope = "WORKSPACE"
)

// Defines values for EnvironmentObjectSourceScope.
const (
	EnvironmentObjectSourceScopeDEPLOYMENT EnvironmentObjectSourceScope = "DEPLOYMENT"
	EnvironmentObjectSourceScopeWORKSPACE  EnvironmentObjectSourceScope = "WORKSPACE"
)

// Defines values for EnvironmentObjectExcludeLinkScope.
const (
	EnvironmentObjectExcludeLinkScopeDEPLOYMENT EnvironmentObjectExcludeLinkScope = "DEPLOYMENT"
)

// Defines values for EnvironmentObjectLinkScope.
const (
	EnvironmentObjectLinkScopeDEPLOYMENT EnvironmentObjectLinkScope = "DEPLOYMENT"
)

// Defines values for EnvironmentObjectMetricsExportAuthType.
const (
	EnvironmentObjectMetricsExportAuthTypeAUTHTOKEN EnvironmentObjectMetricsExportAuthType = "AUTH_TOKEN"
	EnvironmentObjectMetricsExportAuthTypeBASIC     EnvironmentObjectMetricsExportAuthType = "BASIC"
)

// Defines values for EnvironmentObjectMetricsExportExporterType.
const (
	EnvironmentObjectMetricsExportExporterTypePROMETHEUS EnvironmentObjectMetricsExportExporterType = "PROMETHEUS"
)

// Defines values for EnvironmentObjectMetricsExportOverridesAuthType.
const (
	EnvironmentObjectMetricsExportOverridesAuthTypeAUTHTOKEN EnvironmentObjectMetricsExportOverridesAuthType = "AUTH_TOKEN"
	EnvironmentObjectMetricsExportOverridesAuthTypeBASIC     EnvironmentObjectMetricsExportOverridesAuthType = "BASIC"
)

// Defines values for EnvironmentObjectMetricsExportOverridesExporterType.
const (
	EnvironmentObjectMetricsExportOverridesExporterTypePROMETHEUS EnvironmentObjectMetricsExportOverridesExporterType = "PROMETHEUS"
)

// Defines values for ExcludeLinkEnvironmentObjectRequestScope.
const (
	ExcludeLinkEnvironmentObjectRequestScopeDEPLOYMENT ExcludeLinkEnvironmentObjectRequestScope = "DEPLOYMENT"
)

// Defines values for ManagedDomainStatus.
const (
	PENDING  ManagedDomainStatus = "PENDING"
	VERIFIED ManagedDomainStatus = "VERIFIED"
)

// Defines values for NodePoolCloudProvider.
const (
	NodePoolCloudProviderAWS   NodePoolCloudProvider = "AWS"
	NodePoolCloudProviderAZURE NodePoolCloudProvider = "AZURE"
	NodePoolCloudProviderGCP   NodePoolCloudProvider = "GCP"
)

// Defines values for OrganizationPaymentMethod.
const (
	AWSMARKETPLACE   OrganizationPaymentMethod = "AWS_MARKETPLACE"
	AZUREMARKETPLACE OrganizationPaymentMethod = "AZURE_MARKETPLACE"
	CREDITCARD       OrganizationPaymentMethod = "CREDIT_CARD"
	GCPMARKETPLACE   OrganizationPaymentMethod = "GCP_MARKETPLACE"
	INVOICE          OrganizationPaymentMethod = "INVOICE"
)

// Defines values for OrganizationProduct.
const (
	OrganizationProductHOSTED OrganizationProduct = "HOSTED"
	OrganizationProductHYBRID OrganizationProduct = "HYBRID"
)

// Defines values for OrganizationStatus.
const (
	OrganizationStatusACTIVE    OrganizationStatus = "ACTIVE"
	OrganizationStatusINACTIVE  OrganizationStatus = "INACTIVE"
	OrganizationStatusSUSPENDED OrganizationStatus = "SUSPENDED"
)

// Defines values for OrganizationSupportPlan.
const (
	OrganizationSupportPlanBASIC            OrganizationSupportPlan = "BASIC"
	OrganizationSupportPlanBASICPAYGO       OrganizationSupportPlan = "BASIC_PAYGO"
	OrganizationSupportPlanBUSINESS         OrganizationSupportPlan = "BUSINESS"
	OrganizationSupportPlanBUSINESSCRITICAL OrganizationSupportPlan = "BUSINESS_CRITICAL"
	OrganizationSupportPlanBUSINESSV2       OrganizationSupportPlan = "BUSINESS_V2"
	OrganizationSupportPlanDEVELOPER        OrganizationSupportPlan = "DEVELOPER"
	OrganizationSupportPlanDEVELOPERPAYGO   OrganizationSupportPlan = "DEVELOPER_PAYGO"
	OrganizationSupportPlanENTERPRISE       OrganizationSupportPlan = "ENTERPRISE"
	OrganizationSupportPlanENTERPRISEV2     OrganizationSupportPlan = "ENTERPRISE_V2"
	OrganizationSupportPlanINACTIVE         OrganizationSupportPlan = "INACTIVE"
	OrganizationSupportPlanINTERNAL         OrganizationSupportPlan = "INTERNAL"
	OrganizationSupportPlanPOV              OrganizationSupportPlan = "POV"
	OrganizationSupportPlanPREMIUM          OrganizationSupportPlan = "PREMIUM"
	OrganizationSupportPlanSTANDARD         OrganizationSupportPlan = "STANDARD"
	OrganizationSupportPlanTEAM             OrganizationSupportPlan = "TEAM"
	OrganizationSupportPlanTEAMPAYGO        OrganizationSupportPlan = "TEAM_PAYGO"
	OrganizationSupportPlanTEAMV2           OrganizationSupportPlan = "TEAM_V2"
	OrganizationSupportPlanTRIAL            OrganizationSupportPlan = "TRIAL"
	OrganizationSupportPlanTRIALV2          OrganizationSupportPlan = "TRIAL_V2"
)

// Defines values for OrganizationProductPlanAstronomerProduct.
const (
	ASTROOBSERVE OrganizationProductPlanAstronomerProduct = "ASTRO OBSERVE"
)

// Defines values for PatternMatchEntityType.
const (
	DAGIDTASKID PatternMatchEntityType = "DAG_ID TASK_ID"
)

// Defines values for PatternMatchOperatorType.
const (
	ISISNOTINCLUDESEXCLUDES PatternMatchOperatorType = "IS IS_NOT INCLUDES EXCLUDES"
)

// Defines values for PatternMatchRequestEntityType.
const (
	DAGID  PatternMatchRequestEntityType = "DAG_ID"
	TASKID PatternMatchRequestEntityType = "TASK_ID"
)

// Defines values for PatternMatchRequestOperatorType.
const (
	EXCLUDES PatternMatchRequestOperatorType = "EXCLUDES"
	INCLUDES PatternMatchRequestOperatorType = "INCLUDES"
	IS       PatternMatchRequestOperatorType = "IS"
	ISNOT    PatternMatchRequestOperatorType = "IS_NOT"
)

// Defines values for SchedulerMachineName.
const (
	SchedulerMachineNameEXTRALARGE SchedulerMachineName = "EXTRA_LARGE"
	SchedulerMachineNameLARGE      SchedulerMachineName = "LARGE"
	SchedulerMachineNameMEDIUM     SchedulerMachineName = "MEDIUM"
	SchedulerMachineNameSMALL      SchedulerMachineName = "SMALL"
)

// Defines values for UpdateDagDurationAlertRequestSeverity.
const (
	UpdateDagDurationAlertRequestSeverityCRITICAL UpdateDagDurationAlertRequestSeverity = "CRITICAL"
	UpdateDagDurationAlertRequestSeverityINFO     UpdateDagDurationAlertRequestSeverity = "INFO"
	UpdateDagDurationAlertRequestSeverityWARNING  UpdateDagDurationAlertRequestSeverity = "WARNING"
)

// Defines values for UpdateDagDurationAlertRequestType.
const (
	UpdateDagDurationAlertRequestTypeDAGDURATION   UpdateDagDurationAlertRequestType = "DAG_DURATION"
	UpdateDagDurationAlertRequestTypeDAGFAILURE    UpdateDagDurationAlertRequestType = "DAG_FAILURE"
	UpdateDagDurationAlertRequestTypeDAGSUCCESS    UpdateDagDurationAlertRequestType = "DAG_SUCCESS"
	UpdateDagDurationAlertRequestTypeDAGTIMELINESS UpdateDagDurationAlertRequestType = "DAG_TIMELINESS"
	UpdateDagDurationAlertRequestTypeTASKDURATION  UpdateDagDurationAlertRequestType = "TASK_DURATION"
	UpdateDagDurationAlertRequestTypeTASKFAILURE   UpdateDagDurationAlertRequestType = "TASK_FAILURE"
)

// Defines values for UpdateDagFailureAlertRequestSeverity.
const (
	UpdateDagFailureAlertRequestSeverityCRITICAL UpdateDagFailureAlertRequestSeverity = "CRITICAL"
	UpdateDagFailureAlertRequestSeverityINFO     UpdateDagFailureAlertRequestSeverity = "INFO"
	UpdateDagFailureAlertRequestSeverityWARNING  UpdateDagFailureAlertRequestSeverity = "WARNING"
)

// Defines values for UpdateDagFailureAlertRequestType.
const (
	UpdateDagFailureAlertRequestTypeDAGDURATION   UpdateDagFailureAlertRequestType = "DAG_DURATION"
	UpdateDagFailureAlertRequestTypeDAGFAILURE    UpdateDagFailureAlertRequestType = "DAG_FAILURE"
	UpdateDagFailureAlertRequestTypeDAGSUCCESS    UpdateDagFailureAlertRequestType = "DAG_SUCCESS"
	UpdateDagFailureAlertRequestTypeDAGTIMELINESS UpdateDagFailureAlertRequestType = "DAG_TIMELINESS"
	UpdateDagFailureAlertRequestTypeTASKDURATION  UpdateDagFailureAlertRequestType = "TASK_DURATION"
	UpdateDagFailureAlertRequestTypeTASKFAILURE   UpdateDagFailureAlertRequestType = "TASK_FAILURE"
)

// Defines values for UpdateDagSuccessAlertRequestSeverity.
const (
	UpdateDagSuccessAlertRequestSeverityCRITICAL UpdateDagSuccessAlertRequestSeverity = "CRITICAL"
	UpdateDagSuccessAlertRequestSeverityINFO     UpdateDagSuccessAlertRequestSeverity = "INFO"
	UpdateDagSuccessAlertRequestSeverityWARNING  UpdateDagSuccessAlertRequestSeverity = "WARNING"
)

// Defines values for UpdateDagSuccessAlertRequestType.
const (
	UpdateDagSuccessAlertRequestTypeDAGDURATION   UpdateDagSuccessAlertRequestType = "DAG_DURATION"
	UpdateDagSuccessAlertRequestTypeDAGFAILURE    UpdateDagSuccessAlertRequestType = "DAG_FAILURE"
	UpdateDagSuccessAlertRequestTypeDAGSUCCESS    UpdateDagSuccessAlertRequestType = "DAG_SUCCESS"
	UpdateDagSuccessAlertRequestTypeDAGTIMELINESS UpdateDagSuccessAlertRequestType = "DAG_TIMELINESS"
	UpdateDagSuccessAlertRequestTypeTASKDURATION  UpdateDagSuccessAlertRequestType = "TASK_DURATION"
	UpdateDagSuccessAlertRequestTypeTASKFAILURE   UpdateDagSuccessAlertRequestType = "TASK_FAILURE"
)

// Defines values for UpdateDagTimelinessAlertRequestSeverity.
const (
	UpdateDagTimelinessAlertRequestSeverityCRITICAL UpdateDagTimelinessAlertRequestSeverity = "CRITICAL"
	UpdateDagTimelinessAlertRequestSeverityINFO     UpdateDagTimelinessAlertRequestSeverity = "INFO"
	UpdateDagTimelinessAlertRequestSeverityWARNING  UpdateDagTimelinessAlertRequestSeverity = "WARNING"
)

// Defines values for UpdateDagTimelinessAlertRequestType.
const (
	UpdateDagTimelinessAlertRequestTypeDAGDURATION   UpdateDagTimelinessAlertRequestType = "DAG_DURATION"
	UpdateDagTimelinessAlertRequestTypeDAGFAILURE    UpdateDagTimelinessAlertRequestType = "DAG_FAILURE"
	UpdateDagTimelinessAlertRequestTypeDAGSUCCESS    UpdateDagTimelinessAlertRequestType = "DAG_SUCCESS"
	UpdateDagTimelinessAlertRequestTypeDAGTIMELINESS UpdateDagTimelinessAlertRequestType = "DAG_TIMELINESS"
	UpdateDagTimelinessAlertRequestTypeTASKDURATION  UpdateDagTimelinessAlertRequestType = "TASK_DURATION"
	UpdateDagTimelinessAlertRequestTypeTASKFAILURE   UpdateDagTimelinessAlertRequestType = "TASK_FAILURE"
)

// Defines values for UpdateDagTriggerNotificationChannelRequestType.
const (
	UpdateDagTriggerNotificationChannelRequestTypeDAGTRIGGER UpdateDagTriggerNotificationChannelRequestType = "DAG_TRIGGER"
	UpdateDagTriggerNotificationChannelRequestTypeEMAIL      UpdateDagTriggerNotificationChannelRequestType = "EMAIL"
	UpdateDagTriggerNotificationChannelRequestTypeOPSGENIE   UpdateDagTriggerNotificationChannelRequestType = "OPSGENIE"
	UpdateDagTriggerNotificationChannelRequestTypePAGERDUTY  UpdateDagTriggerNotificationChannelRequestType = "PAGERDUTY"
	UpdateDagTriggerNotificationChannelRequestTypeSLACK      UpdateDagTriggerNotificationChannelRequestType = "SLACK"
)

// Defines values for UpdateDedicatedClusterRequestClusterType.
const (
	UpdateDedicatedClusterRequestClusterTypeDEDICATED UpdateDedicatedClusterRequestClusterType = "DEDICATED"
)

// Defines values for UpdateDedicatedDeploymentRequestExecutor.
const (
	UpdateDedicatedDeploymentRequestExecutorASTRO      UpdateDedicatedDeploymentRequestExecutor = "ASTRO"
	UpdateDedicatedDeploymentRequestExecutorCELERY     UpdateDedicatedDeploymentRequestExecutor = "CELERY"
	UpdateDedicatedDeploymentRequestExecutorKUBERNETES UpdateDedicatedDeploymentRequestExecutor = "KUBERNETES"
)

// Defines values for UpdateDedicatedDeploymentRequestSchedulerSize.
const (
	UpdateDedicatedDeploymentRequestSchedulerSizeEXTRALARGE UpdateDedicatedDeploymentRequestSchedulerSize = "EXTRA_LARGE"
	UpdateDedicatedDeploymentRequestSchedulerSizeLARGE      UpdateDedicatedDeploymentRequestSchedulerSize = "LARGE"
	UpdateDedicatedDeploymentRequestSchedulerSizeMEDIUM     UpdateDedicatedDeploymentRequestSchedulerSize = "MEDIUM"
	UpdateDedicatedDeploymentRequestSchedulerSizeSMALL      UpdateDedicatedDeploymentRequestSchedulerSize = "SMALL"
)

// Defines values for UpdateDedicatedDeploymentRequestType.
const (
	UpdateDedicatedDeploymentRequestTypeDEDICATED UpdateDedicatedDeploymentRequestType = "DEDICATED"
	UpdateDedicatedDeploymentRequestTypeHYBRID    UpdateDedicatedDeploymentRequestType = "HYBRID"
	UpdateDedicatedDeploymentRequestTypeSTANDARD  UpdateDedicatedDeploymentRequestType = "STANDARD"
)

// Defines values for UpdateEmailNotificationChannelRequestType.
const (
	UpdateEmailNotificationChannelRequestTypeDAGTRIGGER UpdateEmailNotificationChannelRequestType = "DAG_TRIGGER"
	UpdateEmailNotificationChannelRequestTypeEMAIL      UpdateEmailNotificationChannelRequestType = "EMAIL"
	UpdateEmailNotificationChannelRequestTypeOPSGENIE   UpdateEmailNotificationChannelRequestType = "OPSGENIE"
	UpdateEmailNotificationChannelRequestTypePAGERDUTY  UpdateEmailNotificationChannelRequestType = "PAGERDUTY"
	UpdateEmailNotificationChannelRequestTypeSLACK      UpdateEmailNotificationChannelRequestType = "SLACK"
)

// Defines values for UpdateEnvironmentObjectLinkRequestScope.
const (
	UpdateEnvironmentObjectLinkRequestScopeDEPLOYMENT UpdateEnvironmentObjectLinkRequestScope = "DEPLOYMENT"
)

// Defines values for UpdateEnvironmentObjectMetricsExportOverridesRequestAuthType.
const (
	UpdateEnvironmentObjectMetricsExportOverridesRequestAuthTypeAUTHTOKEN UpdateEnvironmentObjectMetricsExportOverridesRequestAuthType = "AUTH_TOKEN"
	UpdateEnvironmentObjectMetricsExportOverridesRequestAuthTypeBASIC     UpdateEnvironmentObjectMetricsExportOverridesRequestAuthType = "BASIC"
)

// Defines values for UpdateEnvironmentObjectMetricsExportOverridesRequestExporterType.
const (
	UpdateEnvironmentObjectMetricsExportOverridesRequestExporterTypePROMETHEUS UpdateEnvironmentObjectMetricsExportOverridesRequestExporterType = "PROMETHEUS"
)

// Defines values for UpdateEnvironmentObjectMetricsExportRequestAuthType.
const (
	UpdateEnvironmentObjectMetricsExportRequestAuthTypeAUTHTOKEN UpdateEnvironmentObjectMetricsExportRequestAuthType = "AUTH_TOKEN"
	UpdateEnvironmentObjectMetricsExportRequestAuthTypeBASIC     UpdateEnvironmentObjectMetricsExportRequestAuthType = "BASIC"
)

// Defines values for UpdateEnvironmentObjectMetricsExportRequestExporterType.
const (
	UpdateEnvironmentObjectMetricsExportRequestExporterTypePROMETHEUS UpdateEnvironmentObjectMetricsExportRequestExporterType = "PROMETHEUS"
)

// Defines values for UpdateHybridClusterRequestClusterType.
const (
	UpdateHybridClusterRequestClusterTypeHYBRID UpdateHybridClusterRequestClusterType = "HYBRID"
)

// Defines values for UpdateHybridDeploymentRequestExecutor.
const (
	UpdateHybridDeploymentRequestExecutorCELERY     UpdateHybridDeploymentRequestExecutor = "CELERY"
	UpdateHybridDeploymentRequestExecutorKUBERNETES UpdateHybridDeploymentRequestExecutor = "KUBERNETES"
)

// Defines values for UpdateHybridDeploymentRequestType.
const (
	UpdateHybridDeploymentRequestTypeDEDICATED UpdateHybridDeploymentRequestType = "DEDICATED"
	UpdateHybridDeploymentRequestTypeHYBRID    UpdateHybridDeploymentRequestType = "HYBRID"
	UpdateHybridDeploymentRequestTypeSTANDARD  UpdateHybridDeploymentRequestType = "STANDARD"
)

// Defines values for UpdateOpsgenieNotificationChannelRequestType.
const (
	UpdateOpsgenieNotificationChannelRequestTypeDAGTRIGGER UpdateOpsgenieNotificationChannelRequestType = "DAG_TRIGGER"
	UpdateOpsgenieNotificationChannelRequestTypeEMAIL      UpdateOpsgenieNotificationChannelRequestType = "EMAIL"
	UpdateOpsgenieNotificationChannelRequestTypeOPSGENIE   UpdateOpsgenieNotificationChannelRequestType = "OPSGENIE"
	UpdateOpsgenieNotificationChannelRequestTypePAGERDUTY  UpdateOpsgenieNotificationChannelRequestType = "PAGERDUTY"
	UpdateOpsgenieNotificationChannelRequestTypeSLACK      UpdateOpsgenieNotificationChannelRequestType = "SLACK"
)

// Defines values for UpdatePagerDutyNotificationChannelRequestType.
const (
	UpdatePagerDutyNotificationChannelRequestTypeDAGTRIGGER UpdatePagerDutyNotificationChannelRequestType = "DAG_TRIGGER"
	UpdatePagerDutyNotificationChannelRequestTypeEMAIL      UpdatePagerDutyNotificationChannelRequestType = "EMAIL"
	UpdatePagerDutyNotificationChannelRequestTypeOPSGENIE   UpdatePagerDutyNotificationChannelRequestType = "OPSGENIE"
	UpdatePagerDutyNotificationChannelRequestTypePAGERDUTY  UpdatePagerDutyNotificationChannelRequestType = "PAGERDUTY"
	UpdatePagerDutyNotificationChannelRequestTypeSLACK      UpdatePagerDutyNotificationChannelRequestType = "SLACK"
)

// Defines values for UpdateSlackNotificationChannelRequestType.
const (
	UpdateSlackNotificationChannelRequestTypeDAGTRIGGER UpdateSlackNotificationChannelRequestType = "DAG_TRIGGER"
	UpdateSlackNotificationChannelRequestTypeEMAIL      UpdateSlackNotificationChannelRequestType = "EMAIL"
	UpdateSlackNotificationChannelRequestTypeOPSGENIE   UpdateSlackNotificationChannelRequestType = "OPSGENIE"
	UpdateSlackNotificationChannelRequestTypePAGERDUTY  UpdateSlackNotificationChannelRequestType = "PAGERDUTY"
	UpdateSlackNotificationChannelRequestTypeSLACK      UpdateSlackNotificationChannelRequestType = "SLACK"
)

// Defines values for UpdateStandardDeploymentRequestExecutor.
const (
	UpdateStandardDeploymentRequestExecutorASTRO      UpdateStandardDeploymentRequestExecutor = "ASTRO"
	UpdateStandardDeploymentRequestExecutorCELERY     UpdateStandardDeploymentRequestExecutor = "CELERY"
	UpdateStandardDeploymentRequestExecutorKUBERNETES UpdateStandardDeploymentRequestExecutor = "KUBERNETES"
)

// Defines values for UpdateStandardDeploymentRequestSchedulerSize.
const (
	UpdateStandardDeploymentRequestSchedulerSizeEXTRALARGE UpdateStandardDeploymentRequestSchedulerSize = "EXTRA_LARGE"
	UpdateStandardDeploymentRequestSchedulerSizeLARGE      UpdateStandardDeploymentRequestSchedulerSize = "LARGE"
	UpdateStandardDeploymentRequestSchedulerSizeMEDIUM     UpdateStandardDeploymentRequestSchedulerSize = "MEDIUM"
	UpdateStandardDeploymentRequestSchedulerSizeSMALL      UpdateStandardDeploymentRequestSchedulerSize = "SMALL"
)

// Defines values for UpdateStandardDeploymentRequestType.
const (
	UpdateStandardDeploymentRequestTypeDEDICATED UpdateStandardDeploymentRequestType = "DEDICATED"
	UpdateStandardDeploymentRequestTypeHYBRID    UpdateStandardDeploymentRequestType = "HYBRID"
	UpdateStandardDeploymentRequestTypeSTANDARD  UpdateStandardDeploymentRequestType = "STANDARD"
)

// Defines values for UpdateTaskDurationAlertRequestSeverity.
const (
	UpdateTaskDurationAlertRequestSeverityCRITICAL UpdateTaskDurationAlertRequestSeverity = "CRITICAL"
	UpdateTaskDurationAlertRequestSeverityINFO     UpdateTaskDurationAlertRequestSeverity = "INFO"
	UpdateTaskDurationAlertRequestSeverityWARNING  UpdateTaskDurationAlertRequestSeverity = "WARNING"
)

// Defines values for UpdateTaskDurationAlertRequestType.
const (
	UpdateTaskDurationAlertRequestTypeDAGDURATION   UpdateTaskDurationAlertRequestType = "DAG_DURATION"
	UpdateTaskDurationAlertRequestTypeDAGFAILURE    UpdateTaskDurationAlertRequestType = "DAG_FAILURE"
	UpdateTaskDurationAlertRequestTypeDAGSUCCESS    UpdateTaskDurationAlertRequestType = "DAG_SUCCESS"
	UpdateTaskDurationAlertRequestTypeDAGTIMELINESS UpdateTaskDurationAlertRequestType = "DAG_TIMELINESS"
	UpdateTaskDurationAlertRequestTypeTASKDURATION  UpdateTaskDurationAlertRequestType = "TASK_DURATION"
	UpdateTaskDurationAlertRequestTypeTASKFAILURE   UpdateTaskDurationAlertRequestType = "TASK_FAILURE"
)

// Defines values for UpdateTaskFailureAlertRequestSeverity.
const (
	CRITICAL UpdateTaskFailureAlertRequestSeverity = "CRITICAL"
	INFO     UpdateTaskFailureAlertRequestSeverity = "INFO"
	WARNING  UpdateTaskFailureAlertRequestSeverity = "WARNING"
)

// Defines values for UpdateTaskFailureAlertRequestType.
const (
	UpdateTaskFailureAlertRequestTypeDAGDURATION   UpdateTaskFailureAlertRequestType = "DAG_DURATION"
	UpdateTaskFailureAlertRequestTypeDAGFAILURE    UpdateTaskFailureAlertRequestType = "DAG_FAILURE"
	UpdateTaskFailureAlertRequestTypeDAGSUCCESS    UpdateTaskFailureAlertRequestType = "DAG_SUCCESS"
	UpdateTaskFailureAlertRequestTypeDAGTIMELINESS UpdateTaskFailureAlertRequestType = "DAG_TIMELINESS"
	UpdateTaskFailureAlertRequestTypeTASKDURATION  UpdateTaskFailureAlertRequestType = "TASK_DURATION"
	UpdateTaskFailureAlertRequestTypeTASKFAILURE   UpdateTaskFailureAlertRequestType = "TASK_FAILURE"
)

// Defines values for WorkerMachineName.
const (
	WorkerMachineNameA10  WorkerMachineName = "A10"
	WorkerMachineNameA120 WorkerMachineName = "A120"
	WorkerMachineNameA160 WorkerMachineName = "A160"
	WorkerMachineNameA20  WorkerMachineName = "A20"
	WorkerMachineNameA40  WorkerMachineName = "A40"
	WorkerMachineNameA5   WorkerMachineName = "A5"
	WorkerMachineNameA60  WorkerMachineName = "A60"
)

// Defines values for WorkerQueueRequestAstroMachine.
const (
	WorkerQueueRequestAstroMachineA10  WorkerQueueRequestAstroMachine = "A10"
	WorkerQueueRequestAstroMachineA120 WorkerQueueRequestAstroMachine = "A120"
	WorkerQueueRequestAstroMachineA160 WorkerQueueRequestAstroMachine = "A160"
	WorkerQueueRequestAstroMachineA20  WorkerQueueRequestAstroMachine = "A20"
	WorkerQueueRequestAstroMachineA40  WorkerQueueRequestAstroMachine = "A40"
	WorkerQueueRequestAstroMachineA5   WorkerQueueRequestAstroMachine = "A5"
	WorkerQueueRequestAstroMachineA60  WorkerQueueRequestAstroMachine = "A60"
)

// Defines values for ListOrganizationsParamsSupportPlan.
const (
	ListOrganizationsParamsSupportPlanBASIC            ListOrganizationsParamsSupportPlan = "BASIC"
	ListOrganizationsParamsSupportPlanBUSINESSCRITICAL ListOrganizationsParamsSupportPlan = "BUSINESS_CRITICAL"
	ListOrganizationsParamsSupportPlanPREMIUM          ListOrganizationsParamsSupportPlan = "PREMIUM"
	ListOrganizationsParamsSupportPlanSTANDARD         ListOrganizationsParamsSupportPlan = "STANDARD"
	ListOrganizationsParamsSupportPlanTRIAL            ListOrganizationsParamsSupportPlan = "TRIAL"
)

// Defines values for ListOrganizationsParamsProductPlan.
const (
	ListOrganizationsParamsProductPlanBASIC            ListOrganizationsParamsProductPlan = "BASIC"
	ListOrganizationsParamsProductPlanBUSINESSCRITICAL ListOrganizationsParamsProductPlan = "BUSINESS_CRITICAL"
	ListOrganizationsParamsProductPlanPREMIUM          ListOrganizationsParamsProductPlan = "PREMIUM"
	ListOrganizationsParamsProductPlanSTANDARD         ListOrganizationsParamsProductPlan = "STANDARD"
	ListOrganizationsParamsProductPlanTRIAL            ListOrganizationsParamsProductPlan = "TRIAL"
)

// Defines values for ListOrganizationsParamsAstronomerProduct.
const (
	ListOrganizationsParamsAstronomerProductASTRO   ListOrganizationsParamsAstronomerProduct = "ASTRO"
	ListOrganizationsParamsAstronomerProductOBSERVE ListOrganizationsParamsAstronomerProduct = "OBSERVE"
)

// Defines values for ListOrganizationsParamsProduct.
const (
	ListOrganizationsParamsProductHOSTED ListOrganizationsParamsProduct = "HOSTED"
	ListOrganizationsParamsProductHYBRID ListOrganizationsParamsProduct = "HYBRID"
)

// Defines values for ListOrganizationsParamsSorts.
const (
	ListOrganizationsParamsSortsCreatedAtAsc  ListOrganizationsParamsSorts = "createdAt:asc"
	ListOrganizationsParamsSortsCreatedAtDesc ListOrganizationsParamsSorts = "createdAt:desc"
	ListOrganizationsParamsSortsNameAsc       ListOrganizationsParamsSorts = "name:asc"
	ListOrganizationsParamsSortsNameDesc      ListOrganizationsParamsSorts = "name:desc"
	ListOrganizationsParamsSortsUpdatedAtAsc  ListOrganizationsParamsSorts = "updatedAt:asc"
	ListOrganizationsParamsSortsUpdatedAtDesc ListOrganizationsParamsSorts = "updatedAt:desc"
)

// Defines values for ListAlertsParamsAlertTypes.
const (
	ListAlertsParamsAlertTypesDAGDURATION   ListAlertsParamsAlertTypes = "DAG_DURATION"
	ListAlertsParamsAlertTypesDAGFAILURE    ListAlertsParamsAlertTypes = "DAG_FAILURE"
	ListAlertsParamsAlertTypesDAGSUCCESS    ListAlertsParamsAlertTypes = "DAG_SUCCESS"
	ListAlertsParamsAlertTypesDAGTIMELINESS ListAlertsParamsAlertTypes = "DAG_TIMELINESS"
	ListAlertsParamsAlertTypesTASKDURATION  ListAlertsParamsAlertTypes = "TASK_DURATION"
	ListAlertsParamsAlertTypesTASKFAILURE   ListAlertsParamsAlertTypes = "TASK_FAILURE"
)

// Defines values for ListAlertsParamsEntityType.
const (
	ListAlertsParamsEntityTypeDEPLOYMENT ListAlertsParamsEntityType = "DEPLOYMENT"
)

// Defines values for ListAlertsParamsSorts.
const (
	ListAlertsParamsSortsCreatedAtAsc  ListAlertsParamsSorts = "createdAt:asc"
	ListAlertsParamsSortsCreatedAtDesc ListAlertsParamsSorts = "createdAt:desc"
	ListAlertsParamsSortsNameAsc       ListAlertsParamsSorts = "name:asc"
	ListAlertsParamsSortsNameDesc      ListAlertsParamsSorts = "name:desc"
	ListAlertsParamsSortsUpdatedAtAsc  ListAlertsParamsSorts = "updatedAt:asc"
	ListAlertsParamsSortsUpdatedAtDesc ListAlertsParamsSorts = "updatedAt:desc"
)

// Defines values for GetClusterOptionsParamsProvider.
const (
	GetClusterOptionsParamsProviderAWS   GetClusterOptionsParamsProvider = "AWS"
	GetClusterOptionsParamsProviderAZURE GetClusterOptionsParamsProvider = "AZURE"
	GetClusterOptionsParamsProviderGCP   GetClusterOptionsParamsProvider = "GCP"
)

// Defines values for GetClusterOptionsParamsType.
const (
	GetClusterOptionsParamsTypeDEDICATED GetClusterOptionsParamsType = "DEDICATED"
	GetClusterOptionsParamsTypeHYBRID    GetClusterOptionsParamsType = "HYBRID"
)

// Defines values for ListClustersParamsProvider.
const (
	ListClustersParamsProviderAWS   ListClustersParamsProvider = "AWS"
	ListClustersParamsProviderAZURE ListClustersParamsProvider = "AZURE"
	ListClustersParamsProviderGCP   ListClustersParamsProvider = "GCP"
)

// Defines values for ListClustersParamsSorts.
const (
	ListClustersParamsSortsCreatedAtAsc  ListClustersParamsSorts = "createdAt:asc"
	ListClustersParamsSortsCreatedAtDesc ListClustersParamsSorts = "createdAt:desc"
	ListClustersParamsSortsNameAsc       ListClustersParamsSorts = "name:asc"
	ListClustersParamsSortsNameDesc      ListClustersParamsSorts = "name:desc"
	ListClustersParamsSortsUpdatedAtAsc  ListClustersParamsSorts = "updatedAt:asc"
	ListClustersParamsSortsUpdatedAtDesc ListClustersParamsSorts = "updatedAt:desc"
)

// Defines values for GetDeploymentOptionsParamsDeploymentType.
const (
	DEDICATED GetDeploymentOptionsParamsDeploymentType = "DEDICATED"
	HYBRID    GetDeploymentOptionsParamsDeploymentType = "HYBRID"
	STANDARD  GetDeploymentOptionsParamsDeploymentType = "STANDARD"
)

// Defines values for GetDeploymentOptionsParamsExecutor.
const (
	ASTRO      GetDeploymentOptionsParamsExecutor = "ASTRO"
	CELERY     GetDeploymentOptionsParamsExecutor = "CELERY"
	KUBERNETES GetDeploymentOptionsParamsExecutor = "KUBERNETES"
)

// Defines values for GetDeploymentOptionsParamsCloudProvider.
const (
	AWS   GetDeploymentOptionsParamsCloudProvider = "AWS"
	AZURE GetDeploymentOptionsParamsCloudProvider = "AZURE"
	GCP   GetDeploymentOptionsParamsCloudProvider = "GCP"
)

// Defines values for ListDeploymentsParamsSorts.
const (
	ListDeploymentsParamsSortsCreatedAtAsc  ListDeploymentsParamsSorts = "createdAt:asc"
	ListDeploymentsParamsSortsCreatedAtDesc ListDeploymentsParamsSorts = "createdAt:desc"
	ListDeploymentsParamsSortsNameAsc       ListDeploymentsParamsSorts = "name:asc"
	ListDeploymentsParamsSortsNameDesc      ListDeploymentsParamsSorts = "name:desc"
	ListDeploymentsParamsSortsUpdatedAtAsc  ListDeploymentsParamsSorts = "updatedAt:asc"
	ListDeploymentsParamsSortsUpdatedAtDesc ListDeploymentsParamsSorts = "updatedAt:desc"
)

// Defines values for ListEnvironmentObjectsParamsSorts.
const (
	ListEnvironmentObjectsParamsSortsCreatedAtAsc   ListEnvironmentObjectsParamsSorts = "createdAt:asc"
	ListEnvironmentObjectsParamsSortsCreatedAtDesc  ListEnvironmentObjectsParamsSorts = "createdAt:desc"
	ListEnvironmentObjectsParamsSortsObjectKeyAsc   ListEnvironmentObjectsParamsSorts = "objectKey:asc"
	ListEnvironmentObjectsParamsSortsObjectKeyDesc  ListEnvironmentObjectsParamsSorts = "objectKey:desc"
	ListEnvironmentObjectsParamsSortsObjectTypeAsc  ListEnvironmentObjectsParamsSorts = "objectType:asc"
	ListEnvironmentObjectsParamsSortsObjectTypeDesc ListEnvironmentObjectsParamsSorts = "objectType:desc"
	ListEnvironmentObjectsParamsSortsUpdatedAtAsc   ListEnvironmentObjectsParamsSorts = "updatedAt:asc"
	ListEnvironmentObjectsParamsSortsUpdatedAtDesc  ListEnvironmentObjectsParamsSorts = "updatedAt:desc"
)

// Defines values for ListEnvironmentObjectsParamsObjectType.
const (
	AIRFLOWVARIABLE ListEnvironmentObjectsParamsObjectType = "AIRFLOW_VARIABLE"
	CONNECTION      ListEnvironmentObjectsParamsObjectType = "CONNECTION"
	METRICSEXPORT   ListEnvironmentObjectsParamsObjectType = "METRICS_EXPORT"
)

// Defines values for ListNotificationChannelsParamsChannelTypes.
const (
	ListNotificationChannelsParamsChannelTypesDAGTRIGGER ListNotificationChannelsParamsChannelTypes = "DAG_TRIGGER"
	ListNotificationChannelsParamsChannelTypesEMAIL      ListNotificationChannelsParamsChannelTypes = "EMAIL"
	ListNotificationChannelsParamsChannelTypesOPSGENIE   ListNotificationChannelsParamsChannelTypes = "OPSGENIE"
	ListNotificationChannelsParamsChannelTypesPAGERDUTY  ListNotificationChannelsParamsChannelTypes = "PAGERDUTY"
	ListNotificationChannelsParamsChannelTypesSLACK      ListNotificationChannelsParamsChannelTypes = "SLACK"
)

// Defines values for ListNotificationChannelsParamsEntityType.
const (
	DEPLOYMENT   ListNotificationChannelsParamsEntityType = "DEPLOYMENT"
	ORGANIZATION ListNotificationChannelsParamsEntityType = "ORGANIZATION"
	WORKSPACE    ListNotificationChannelsParamsEntityType = "WORKSPACE"
)

// Defines values for ListNotificationChannelsParamsSorts.
const (
	ListNotificationChannelsParamsSortsCreatedAtAsc  ListNotificationChannelsParamsSorts = "createdAt:asc"
	ListNotificationChannelsParamsSortsCreatedAtDesc ListNotificationChannelsParamsSorts = "createdAt:desc"
	ListNotificationChannelsParamsSortsNameAsc       ListNotificationChannelsParamsSorts = "name:asc"
	ListNotificationChannelsParamsSortsNameDesc      ListNotificationChannelsParamsSorts = "name:desc"
	ListNotificationChannelsParamsSortsUpdatedAtAsc  ListNotificationChannelsParamsSorts = "updatedAt:asc"
	ListNotificationChannelsParamsSortsUpdatedAtDesc ListNotificationChannelsParamsSorts = "updatedAt:desc"
)

// Defines values for ListWorkspacesParamsSorts.
const (
	CreatedAtAsc  ListWorkspacesParamsSorts = "createdAt:asc"
	CreatedAtDesc ListWorkspacesParamsSorts = "createdAt:desc"
	NameAsc       ListWorkspacesParamsSorts = "name:asc"
	NameDesc      ListWorkspacesParamsSorts = "name:desc"
	UpdatedAtAsc  ListWorkspacesParamsSorts = "updatedAt:asc"
	UpdatedAtDesc ListWorkspacesParamsSorts = "updatedAt:desc"
)

// Alert defines model for Alert.
type Alert struct {
	// CreatedAt The time when the alert was created in UTC, formatted as `YYYY-MM-DDTHH:MM:SSZ`.
	CreatedAt time.Time           `json:"createdAt"`
	CreatedBy BasicSubjectProfile `json:"createdBy"`

	// DeploymentId The ID of the deployment the alert is associated with.
	DeploymentId *string `json:"deploymentId,omitempty"`

	// EntityId The ID of the entity the alert is associated with.
	EntityId string `json:"entityId"`

	// EntityName The name of the entity the alert is associated with.
	EntityName *string `json:"entityName,omitempty"`

	// EntityType The type of entity the alert is associated with.
	EntityType AlertEntityType `json:"entityType"`

	// Id The alert's ID.
	Id string `json:"id"`

	// Name The alert's name.
	Name string `json:"name"`

	// NotificationChannels The notification channels to send alerts to.
	NotificationChannels *[]AlertNotificationChannel `json:"notificationChannels,omitempty"`

	// OrganizationId The ID of the organization the alert is associated with.
	OrganizationId string     `json:"organizationId"`
	Rules          AlertRules `json:"rules"`

	// Severity The alert's severity.
	Severity AlertSeverity `json:"severity"`

	// Type The alert's type.
	Type AlertType `json:"type"`

	// UpdatedAt The time when the alert was last updated in UTC, formatted as `YYYY-MM-DDTHH:MM:SSZ`.
	UpdatedAt time.Time           `json:"updatedAt"`
	UpdatedBy BasicSubjectProfile `json:"updatedBy"`

	// WorkspaceId The ID of the workspace the alert is associated with.
	WorkspaceId *string `json:"workspaceId,omitempty"`
}

// AlertEntityType The type of entity the alert is associated with.
type AlertEntityType string

// AlertSeverity The alert's severity.
type AlertSeverity string

// AlertType The alert's type.
type AlertType string

// AlertNotificationChannel defines model for AlertNotificationChannel.
type AlertNotificationChannel struct {
	// CreatedAt The time when the notification channel was created in UTC, formatted as `YYYY-MM-DDTHH:MM:SSZ`.
	CreatedAt string `json:"createdAt"`

	// Definition The definition of the notification.
	Definition interface{} `json:"definition"`

	// DeploymentId The ID of the deployment the notification channel is associated with.
	DeploymentId *string `json:"deploymentId,omitempty"`

	// EntityId The ID of the entity the notification channel is associated with.
	EntityId string `json:"entityId"`

	// EntityType The type of entity the notification channel is associated with.
	EntityType AlertNotificationChannelEntityType `json:"entityType"`

	// Id The ID of the notification channel.
	Id string `json:"id"`

	// Name The name of the notification channel.
	Name string `json:"name"`

	// OrganizationId The ID of the organization the notification channel is associated with.
	OrganizationId string `json:"organizationId"`

	// Type The type of the notification channel.
	Type AlertNotificationChannelType `json:"type"`

	// UpdatedAt The time when the notification channel was last updated in UTC, formatted as `YYYY-MM-DDTHH:MM:SSZ`.
	UpdatedAt string `json:"updatedAt"`

	// WorkspaceId The ID of the workspace the notification channel is associated with.
	WorkspaceId *string `json:"workspaceId,omitempty"`
}

// AlertNotificationChannelEntityType The type of entity the notification channel is associated with.
type AlertNotificationChannelEntityType string

// AlertNotificationChannelType The type of the notification channel.
type AlertNotificationChannelType string

// AlertRules defines model for AlertRules.
type AlertRules struct {
	// PatternMatches The alert's pattern matches to match against.
	PatternMatches *[]PatternMatch `json:"patternMatches,omitempty"`

	// Properties The alert's properties used to define the alert.
	Properties interface{} `json:"properties"`
}

// AlertsPaginated defines model for AlertsPaginated.
type AlertsPaginated struct {
	// Alerts The list of alerts.
	Alerts []Alert `json:"alerts"`

	// Limit The limit for pagination.
	Limit int `json:"limit"`

	// Offset The offset for pagination.
	Offset int `json:"offset"`

	// TotalCount The total count of alerts.
	TotalCount int `json:"totalCount"`
}

// BasicSubjectProfile defines model for BasicSubjectProfile.
type BasicSubjectProfile struct {
	// ApiTokenName The API token's name. Returned only when `SubjectType` is `SERVICEKEY`.
	ApiTokenName *string `json:"apiTokenName,omitempty"`

	// AvatarUrl The URL for the user's profile image. Returned only when `SubjectType` is `USER`.
	AvatarUrl *string `json:"avatarUrl,omitempty"`

	// FullName The subject's full name. Returned only when `SubjectType` is `USER`.
	FullName *string `json:"fullName,omitempty"`

	// Id The subject's ID.
	Id string `json:"id"`

	// SubjectType The subject type.
	SubjectType *BasicSubjectProfileSubjectType `json:"subjectType,omitempty"`

	// Username The subject's username. Returned only when `SubjectType` is `USER`.
	Username *string `json:"username,omitempty"`
}

// BasicSubjectProfileSubjectType The subject type.
type BasicSubjectProfileSubjectType string

// Cluster defines model for Cluster.
type Cluster struct {
	// CloudProvider The name of the cluster's cloud provider.
	CloudProvider ClusterCloudProvider `json:"cloudProvider"`

	// CreatedAt The time when the cluster was created in UTC. formatted as `YYYY-MM-DDTHH:MM:SSZ`.
	CreatedAt time.Time `json:"createdAt"`

	// DbInstanceType The type of database instance that is used for the cluster.
	DbInstanceType string               `json:"dbInstanceType"`
	HealthStatus   *ClusterHealthStatus `json:"healthStatus,omitempty"`

	// Id The cluster's ID.
	Id string `json:"id"`

	// IsLimited Whether the cluster is limited.
	IsLimited *bool            `json:"isLimited,omitempty"`
	Metadata  *ClusterMetadata `json:"metadata,omitempty"`

	// Name The cluster's name.
	Name string `json:"name"`

	// NodePools The list of node pools that are created in the cluster.
	NodePools *[]NodePool `json:"nodePools,omitempty"`

	// OrganizationId The ID of the Organization that the cluster belongs to.
	OrganizationId string `json:"organizationId"`

	// PodSubnetRange The subnet range for Pods. For GCP clusters only.
	PodSubnetRange *string `json:"podSubnetRange,omitempty"`

	// ProviderAccount The provider account ID. For GCP clusters only.
	ProviderAccount *string `json:"providerAccount,omitempty"`

	// Region The region in which the cluster is created.
	Region string `json:"region"`

	// ServicePeeringRange The service peering range. For GCP clusters only.
	ServicePeeringRange *string `json:"servicePeeringRange,omitempty"`

	// ServiceSubnetRange The service subnet range. For GCP clusters only.
	ServiceSubnetRange *string `json:"serviceSubnetRange,omitempty"`

	// Status The status of the cluster.
	Status ClusterStatus `json:"status"`

	// Tags The Kubernetes tags in the cluster. For AWS Hybrid clusters only.
	Tags *[]ClusterK8sTag `json:"tags,omitempty"`

	// TenantId The tenant ID. For Azure clusters only.
	TenantId *string `json:"tenantId,omitempty"`

	// Type The type of the cluster.
	Type ClusterType `json:"type"`

	// UpdatedAt The time when the cluster was last updated in UTC. formatted as `YYYY-MM-DDTHH:MM:SSZ`.
	UpdatedAt time.Time `json:"updatedAt"`

	// VpcSubnetRange The VPC subnet range.
	VpcSubnetRange string `json:"vpcSubnetRange"`

	// WorkspaceIds The list of Workspaces that are authorized to the cluster.
	WorkspaceIds *[]string `json:"workspaceIds,omitempty"`
}

// ClusterCloudProvider The name of the cluster's cloud provider.
type ClusterCloudProvider string

// ClusterStatus The status of the cluster.
type ClusterStatus string

// ClusterType The type of the cluster.
type ClusterType string

// ClusterHealthStatus defines model for ClusterHealthStatus.
type ClusterHealthStatus struct {
	// Details List of details supporting health assessment.
	Details *[]ClusterHealthStatusDetail `json:"details,omitempty"`

	// Value Overall health state (HEALTHY or UNHEALTHY).
	Value ClusterHealthStatusValue `json:"value"`
}

// ClusterHealthStatusValue Overall health state (HEALTHY or UNHEALTHY).
type ClusterHealthStatusValue string

// ClusterHealthStatusDetail defines model for ClusterHealthStatusDetail.
type ClusterHealthStatusDetail struct {
	// Code The health status for a specific component.
	Code      string  `json:"code"`
	Component *string `json:"component,omitempty"`

	// Description A description of the component that was assessed.
	Description string `json:"description"`

	// Severity The weight this component is given in overall cluster health assessment.
	Severity string `json:"severity"`
}

// ClusterK8sTag defines model for ClusterK8sTag.
type ClusterK8sTag struct {
	// Key The tag's key.
	Key *string `json:"key,omitempty"`

	// Value The tag's value.
	Value *string `json:"value,omitempty"`
}

// ClusterMetadata defines model for ClusterMetadata.
type ClusterMetadata struct {
	// ExternalIPs External IPs of the cluster.
	ExternalIPs *[]string `json:"externalIPs,omitempty"`

	// KubeDnsIp The IP address of the kube-dns service.
	KubeDnsIp *string `json:"kubeDnsIp,omitempty"`

	// OidcIssuerUrl OIDC issuer URL for the cluster
	OidcIssuerUrl *string `json:"oidcIssuerUrl,omitempty"`
}

// ClusterOptions defines model for ClusterOptions.
type ClusterOptions struct {
	// DatabaseInstances The available database instances.
	DatabaseInstances       []ProviderInstanceType `json:"databaseInstances"`
	DefaultDatabaseInstance ProviderInstanceType   `json:"defaultDatabaseInstance"`
	DefaultNodeInstance     ProviderInstanceType   `json:"defaultNodeInstance"`

	// DefaultPodSubnetRange The default pod subnet range.
	DefaultPodSubnetRange *string        `json:"defaultPodSubnetRange,omitempty"`
	DefaultRegion         ProviderRegion `json:"defaultRegion"`

	// DefaultServicePeeringRange The default service peering range.
	DefaultServicePeeringRange *string `json:"defaultServicePeeringRange,omitempty"`

	// DefaultServiceSubnetRange The default service subnet range.
	DefaultServiceSubnetRange *string `json:"defaultServiceSubnetRange,omitempty"`

	// DefaultVpcSubnetRange The default VPC subnet range.
	DefaultVpcSubnetRange string `json:"defaultVpcSubnetRange"`

	// NodeCountDefault The default number of nodes.
	NodeCountDefault int `json:"nodeCountDefault"`

	// NodeCountMax The maximum number of nodes.
	NodeCountMax int `json:"nodeCountMax"`

	// NodeCountMin The minimum number of nodes.
	NodeCountMin int `json:"nodeCountMin"`

	// NodeInstances The available node instances.
	NodeInstances []ProviderInstanceType `json:"nodeInstances"`

	// Provider The cloud provider.
	Provider ClusterOptionsProvider `json:"provider"`

	// Regions The available regions.
	Regions []ProviderRegion `json:"regions"`
}

// ClusterOptionsProvider The cloud provider.
type ClusterOptionsProvider string

// ClustersPaginated defines model for ClustersPaginated.
type ClustersPaginated struct {
	// Clusters The list of clusters in the current page.
	Clusters []Cluster `json:"clusters"`

	// Limit The maximum number of clusters in one page.
	Limit int `json:"limit"`

	// Offset The offset of the current page of clusters.
	Offset int `json:"offset"`

	// TotalCount The total number of clusters.
	TotalCount int `json:"totalCount"`
}

// ConnectionAuthType defines model for ConnectionAuthType.
type ConnectionAuthType struct {
	// AirflowType The type of connection in Airflow
	AirflowType string `json:"airflowType"`

	// AuthMethodName The name of the auth method used in the connection
	AuthMethodName string `json:"authMethodName"`

	// Description A description of the connection auth type
	Description string `json:"description"`

	// GuidePath The URL to the guide for the connection auth type
	GuidePath *string `json:"guidePath,omitempty"`

	// Id The ID of the connection auth type
	Id string `json:"id"`

	// Name The name of the connection auth type
	Name string `json:"name"`

	// Parameters The parameters for the connection auth type
	Parameters []ConnectionAuthTypeParameter `json:"parameters"`

	// ProviderLogo The URL of the provider logo
	ProviderLogo *string `json:"providerLogo,omitempty"`

	// ProviderPackageName The name of the provider package
	ProviderPackageName string `json:"providerPackageName"`
}

// ConnectionAuthTypeParameter defines model for ConnectionAuthTypeParameter.
type ConnectionAuthTypeParameter struct {
	// AirflowParamName The name of the parameter in Airflow
	AirflowParamName string `json:"airflowParamName"`

	// DataType The data type of the parameter
	DataType string `json:"dataType"`

	// Description A description of the parameter
	Description string `json:"description"`

	// Example An example value for the parameter
	Example *string `json:"example,omitempty"`

	// FriendlyName The UI-friendly name for the parameter
	FriendlyName string `json:"friendlyName"`

	// IsInExtra Whether or not the parameter is included in the "extra" field
	IsInExtra bool `json:"isInExtra"`

	// IsRequired Whether the parameter is required
	IsRequired bool `json:"isRequired"`

	// IsSecret Whether the parameter is a secret
	IsSecret bool `json:"isSecret"`
}

// CreateAlertRequest defines model for CreateAlertRequest.
type CreateAlertRequest struct {
	union json.RawMessage
}

// CreateAwsClusterRequest defines model for CreateAwsClusterRequest.
type CreateAwsClusterRequest struct {
	// CloudProvider The cluster's cloud provider.
	CloudProvider CreateAwsClusterRequestCloudProvider `json:"cloudProvider"`

	// DbInstanceType The type of database instance that is used for the cluster. Required for Hybrid clusters.
	DbInstanceType *string `json:"dbInstanceType,omitempty"`

	// K8sTags The Kubernetes tags in the cluster.
	K8sTags *[]ClusterK8sTag `json:"k8sTags,omitempty"`

	// Name The cluster's name.
	Name string `json:"name"`

	// NodePools The list of node pools to create in the cluster.
	NodePools *[]CreateNodePoolRequest `json:"nodePools,omitempty"`

	// ProviderAccount The provider account ID. Required for Hybrid clusters.
	ProviderAccount *string `json:"providerAccount,omitempty"`

	// Region The cluster's region.
	Region string `json:"region"`

	// Type The cluster's type.
	Type CreateAwsClusterRequestType `json:"type"`

	// VpcSubnetRange The VPC subnet range.
	VpcSubnetRange string `json:"vpcSubnetRange"`

	// WorkspaceIds The list of Workspaces that are authorized to the cluster.
	WorkspaceIds *[]string `json:"workspaceIds,omitempty"`
}

// CreateAwsClusterRequestCloudProvider The cluster's cloud provider.
type CreateAwsClusterRequestCloudProvider string

// CreateAwsClusterRequestType The cluster's type.
type CreateAwsClusterRequestType string

// CreateAzureClusterRequest defines model for CreateAzureClusterRequest.
type CreateAzureClusterRequest struct {
	// CloudProvider The cluster's cloud provider.
	CloudProvider CreateAzureClusterRequestCloudProvider `json:"cloudProvider"`

	// DbInstanceType The type of database instance that is used for the cluster. Required for Hybrid clusters.
	DbInstanceType *string `json:"dbInstanceType,omitempty"`

	// K8sTags The Kubernetes tags in the cluster.
	K8sTags *[]ClusterK8sTag `json:"k8sTags,omitempty"`

	// Name The cluster's name.
	Name string `json:"name"`

	// NodePools The list of node pools to create in the cluster.
	NodePools *[]CreateNodePoolRequest `json:"nodePools,omitempty"`

	// ProviderAccount The provider account ID. Required for Hybrid clusters.
	ProviderAccount *string `json:"providerAccount,omitempty"`

	// Region The cluster's region.
	Region string `json:"region"`

	// TenantId The tenant ID. For Azure clusters only.
	TenantId *string `json:"tenantId,omitempty"`

	// Type The cluster's type.
	Type CreateAzureClusterRequestType `json:"type"`

	// VpcSubnetRange The VPC subnet range.
	VpcSubnetRange string `json:"vpcSubnetRange"`

	// WorkspaceIds The list of Workspaces that are authorized to the cluster.
	WorkspaceIds *[]string `json:"workspaceIds,omitempty"`
}

// CreateAzureClusterRequestCloudProvider The cluster's cloud provider.
type CreateAzureClusterRequestCloudProvider string

// CreateAzureClusterRequestType The cluster's type.
type CreateAzureClusterRequestType string

// CreateClusterRequest defines model for CreateClusterRequest.
type CreateClusterRequest struct {
	union json.RawMessage
}

// CreateDagDurationAlertProperties defines model for CreateDagDurationAlertProperties.
type CreateDagDurationAlertProperties struct {
	// DagDurationSeconds The duration of the DAG in seconds.
	DagDurationSeconds int `json:"dagDurationSeconds"`

	// DeploymentId The ID of the deployment to which the alert is scoped.
	DeploymentId string `json:"deploymentId"`
}

// CreateDagDurationAlertRequest defines model for CreateDagDurationAlertRequest.
type CreateDagDurationAlertRequest struct {
	// EntityId The entity ID the alert is associated with.
	EntityId string `json:"entityId"`

	// EntityType The ID of the Deployment to which the alert is scoped.
	EntityType CreateDagDurationAlertRequestEntityType `json:"entityType"`

	// Name The alert's name.
	Name string `json:"name"`

	// NotificationChannelIds The notification channels to send alerts to.
	NotificationChannelIds []string                    `json:"notificationChannelIds"`
	Rules                  CreateDagDurationAlertRules `json:"rules"`

	// Severity The alert's severity.
	Severity CreateDagDurationAlertRequestSeverity `json:"severity"`

	// Type The alert's type.
	Type CreateDagDurationAlertRequestType `json:"type"`
}

// CreateDagDurationAlertRequestEntityType The ID of the Deployment to which the alert is scoped.
type CreateDagDurationAlertRequestEntityType string

// CreateDagDurationAlertRequestSeverity The alert's severity.
type CreateDagDurationAlertRequestSeverity string

// CreateDagDurationAlertRequestType The alert's type.
type CreateDagDurationAlertRequestType string

// CreateDagDurationAlertRules defines model for CreateDagDurationAlertRules.
type CreateDagDurationAlertRules struct {
	// PatternMatches The alert's pattern matches to match against.
	PatternMatches []PatternMatchRequest            `json:"patternMatches"`
	Properties     CreateDagDurationAlertProperties `json:"properties"`
}

// CreateDagFailureAlertProperties defines model for CreateDagFailureAlertProperties.
type CreateDagFailureAlertProperties struct {
	// DeploymentId The ID of the deployment to which the alert is scoped.
	DeploymentId string `json:"deploymentId"`
}

// CreateDagFailureAlertRequest defines model for CreateDagFailureAlertRequest.
type CreateDagFailureAlertRequest struct {
	// EntityId The entity ID the alert is associated with.
	EntityId string `json:"entityId"`

	// EntityType The ID of the Deployment to which the alert is scoped.
	EntityType CreateDagFailureAlertRequestEntityType `json:"entityType"`

	// Name The alert's name.
	Name string `json:"name"`

	// NotificationChannelIds The notification channels to send alerts to.
	NotificationChannelIds []string                   `json:"notificationChannelIds"`
	Rules                  CreateDagFailureAlertRules `json:"rules"`

	// Severity The alert's severity.
	Severity CreateDagFailureAlertRequestSeverity `json:"severity"`

	// Type The alert's type.
	Type CreateDagFailureAlertRequestType `json:"type"`
}

// CreateDagFailureAlertRequestEntityType The ID of the Deployment to which the alert is scoped.
type CreateDagFailureAlertRequestEntityType string

// CreateDagFailureAlertRequestSeverity The alert's severity.
type CreateDagFailureAlertRequestSeverity string

// CreateDagFailureAlertRequestType The alert's type.
type CreateDagFailureAlertRequestType string

// CreateDagFailureAlertRules defines model for CreateDagFailureAlertRules.
type CreateDagFailureAlertRules struct {
	// PatternMatches The alert's pattern matches to match against.
	PatternMatches []PatternMatchRequest           `json:"patternMatches"`
	Properties     CreateDagFailureAlertProperties `json:"properties"`
}

// CreateDagSuccessAlertProperties defines model for CreateDagSuccessAlertProperties.
type CreateDagSuccessAlertProperties struct {
	// DeploymentId The ID of the deployment to which the alert is scoped.
	DeploymentId string `json:"deploymentId"`
}

// CreateDagSuccessAlertRequest defines model for CreateDagSuccessAlertRequest.
type CreateDagSuccessAlertRequest struct {
	// EntityId The entity ID the alert is associated with.
	EntityId string `json:"entityId"`

	// EntityType The ID of the Deployment to which the alert is scoped.
	EntityType CreateDagSuccessAlertRequestEntityType `json:"entityType"`

	// Name The alert's name.
	Name string `json:"name"`

	// NotificationChannelIds The notification channels to send alerts to.
	NotificationChannelIds []string                   `json:"notificationChannelIds"`
	Rules                  CreateDagSuccessAlertRules `json:"rules"`

	// Severity The alert's severity.
	Severity CreateDagSuccessAlertRequestSeverity `json:"severity"`

	// Type The alert's type.
	Type CreateDagSuccessAlertRequestType `json:"type"`
}

// CreateDagSuccessAlertRequestEntityType The ID of the Deployment to which the alert is scoped.
type CreateDagSuccessAlertRequestEntityType string

// CreateDagSuccessAlertRequestSeverity The alert's severity.
type CreateDagSuccessAlertRequestSeverity string

// CreateDagSuccessAlertRequestType The alert's type.
type CreateDagSuccessAlertRequestType string

// CreateDagSuccessAlertRules defines model for CreateDagSuccessAlertRules.
type CreateDagSuccessAlertRules struct {
	// PatternMatches The alert's pattern matches to match against.
	PatternMatches []PatternMatchRequest           `json:"patternMatches"`
	Properties     CreateDagSuccessAlertProperties `json:"properties"`
}

// CreateDagTimelinessAlertProperties defines model for CreateDagTimelinessAlertProperties.
type CreateDagTimelinessAlertProperties struct {
	// DagDeadline The deadline for the DAG in HH:MM 24-hour format, in UTC time.
	DagDeadline string `json:"dagDeadline"`

	// DaysOfWeek The days of the week for the alert.
	DaysOfWeek []string `json:"daysOfWeek"`

	// DeploymentId The ID of the deployment to which the alert is scoped.
	DeploymentId string `json:"deploymentId"`

	// LookBackPeriodSeconds The look-back period in seconds.
	LookBackPeriodSeconds int `json:"lookBackPeriodSeconds"`
}

// CreateDagTimelinessAlertRequest defines model for CreateDagTimelinessAlertRequest.
type CreateDagTimelinessAlertRequest struct {
	// EntityId The entity ID the alert is associated with.
	EntityId string `json:"entityId"`

	// EntityType The ID of the Deployment to which the alert is scoped.
	EntityType CreateDagTimelinessAlertRequestEntityType `json:"entityType"`

	// Name The alert's name.
	Name string `json:"name"`

	// NotificationChannelIds The notification channels to send alerts to.
	NotificationChannelIds []string                      `json:"notificationChannelIds"`
	Rules                  CreateDagTimelinessAlertRules `json:"rules"`

	// Severity The alert's severity.
	Severity CreateDagTimelinessAlertRequestSeverity `json:"severity"`

	// Type The alert's type.
	Type CreateDagTimelinessAlertRequestType `json:"type"`
}

// CreateDagTimelinessAlertRequestEntityType The ID of the Deployment to which the alert is scoped.
type CreateDagTimelinessAlertRequestEntityType string

// CreateDagTimelinessAlertRequestSeverity The alert's severity.
type CreateDagTimelinessAlertRequestSeverity string

// CreateDagTimelinessAlertRequestType The alert's type.
type CreateDagTimelinessAlertRequestType string

// CreateDagTimelinessAlertRules defines model for CreateDagTimelinessAlertRules.
type CreateDagTimelinessAlertRules struct {
	// PatternMatches The alert's pattern matches to match against.
	PatternMatches []PatternMatchRequest              `json:"patternMatches"`
	Properties     CreateDagTimelinessAlertProperties `json:"properties"`
}

// CreateDagTriggerNotificationChannelRequest defines model for CreateDagTriggerNotificationChannelRequest.
type CreateDagTriggerNotificationChannelRequest struct {
	Definition DagTriggerNotificationChannelDefinition `json:"definition"`

	// EntityId The entity ID the notification channel is scoped to.
	EntityId string `json:"entityId"`

	// EntityType The type of entity the notification channel is scoped to.
	EntityType CreateDagTriggerNotificationChannelRequestEntityType `json:"entityType"`

	// IsShared When entity type is scoped to ORGANIZATION or WORKSPACE, this determines if child entities can access this notification channel.
	IsShared *bool `json:"isShared,omitempty"`

	// Name The notification channel's name.
	Name string `json:"name"`

	// Type The notification channel's type.
	Type CreateDagTriggerNotificationChannelRequestType `json:"type"`
}

// CreateDagTriggerNotificationChannelRequestEntityType The type of entity the notification channel is scoped to.
type CreateDagTriggerNotificationChannelRequestEntityType string

// CreateDagTriggerNotificationChannelRequestType The notification channel's type.
type CreateDagTriggerNotificationChannelRequestType string

// CreateDedicatedDeploymentRequest defines model for CreateDedicatedDeploymentRequest.
type CreateDedicatedDeploymentRequest struct {
	// AstroRuntimeVersion Deployment's Astro Runtime version.
	AstroRuntimeVersion string `json:"astroRuntimeVersion"`

	// ClusterId The ID of the cluster where the Deployment will be created.
	ClusterId string `json:"clusterId"`

	// ContactEmails A list of contact emails for the Deployment.
	ContactEmails *[]string `json:"contactEmails,omitempty"`

	// DefaultTaskPodCpu The default CPU resource usage for a worker Pod when running the Kubernetes executor or KubernetesPodOperator. Units are in number of CPU cores. Required if Remote Execution is disabled.
	DefaultTaskPodCpu *string `json:"defaultTaskPodCpu,omitempty"`

	// DefaultTaskPodMemory The default memory resource usage for a worker Pod when running the Kubernetes executor or KubernetesPodOperator. Units are in `Gi` and must be explicitly included. This value must always be twice the value of `DefaultTaskPodCpu`. Required if Remote Execution is disabled.
	DefaultTaskPodMemory *string `json:"defaultTaskPodMemory,omitempty"`

	// Description The Deployment's description.
	Description *string `json:"description,omitempty"`

	// EnvironmentVariables List of environment variables to add to the Deployment.
	EnvironmentVariables *[]DeploymentEnvironmentVariableRequest `json:"environmentVariables,omitempty"`

	// Executor The Deployment's executor type.
	Executor CreateDedicatedDeploymentRequestExecutor `json:"executor"`

	// IsCicdEnforced Whether the Deployment requires that all deploys are made through CI/CD.
	IsCicdEnforced bool `json:"isCicdEnforced"`

	// IsDagDeployEnabled Whether the Deployment has DAG deploys enabled.
	IsDagDeployEnabled bool `json:"isDagDeployEnabled"`

	// IsDevelopmentMode If true, deployment will be able to use development-only features, such as hibernation, but will not have guaranteed uptime SLAs
	IsDevelopmentMode *bool `json:"isDevelopmentMode,omitempty"`

	// IsHighAvailability Whether the Deployment is configured for high availability. If `true`, multiple scheduler pods will be online.
	IsHighAvailability bool `json:"isHighAvailability"`

	// Name The Deployment's name.
	Name            string                            `json:"name"`
	RemoteExecution *DeploymentRemoteExecutionRequest `json:"remoteExecution,omitempty"`

	// ResourceQuotaCpu The CPU quota for worker Pods when running the Kubernetes executor or KubernetesPodOperator. If current CPU usage across all workers exceeds the quota, no new worker Pods can be scheduled. Units are in number of CPU cores. Required if Remote Execution is disabled.
	ResourceQuotaCpu *string `json:"resourceQuotaCpu,omitempty"`

	// ResourceQuotaMemory The memory quota for worker Pods when running the Kubernetes executor or KubernetesPodOperator. If current memory usage across all workers exceeds the quota, no new worker Pods can be scheduled. Units are in `Gi` and must be explicitly included. This value must always be twice the value of `ResourceQuotaCpu`. Required if Remote Execution is disabled.
	ResourceQuotaMemory *string                       `json:"resourceQuotaMemory,omitempty"`
	ScalingSpec         *DeploymentScalingSpecRequest `json:"scalingSpec,omitempty"`

	// SchedulerSize The size of the scheduler Pod.
	SchedulerSize CreateDedicatedDeploymentRequestSchedulerSize `json:"schedulerSize"`

	// Type The type of the Deployment.
	Type CreateDedicatedDeploymentRequestType `json:"type"`

	// WorkerQueues A list of the Deployment's worker queues. Applies only when `Executor` is `CELERY` or if Remote Execution is disabled and executor is `ASTRO`. All these Deployments need at least 1 worker queue called `default`.
	WorkerQueues *[]WorkerQueueRequest `json:"workerQueues,omitempty"`

	// WorkloadIdentity The Deployment's workload identity.
	WorkloadIdentity *string `json:"workloadIdentity,omitempty"`

	// WorkspaceId The ID of the Workspace to which the Deployment belongs.
	WorkspaceId string `json:"workspaceId"`
}

// CreateDedicatedDeploymentRequestExecutor The Deployment's executor type.
type CreateDedicatedDeploymentRequestExecutor string

// CreateDedicatedDeploymentRequestSchedulerSize The size of the scheduler Pod.
type CreateDedicatedDeploymentRequestSchedulerSize string

// CreateDedicatedDeploymentRequestType The type of the Deployment.
type CreateDedicatedDeploymentRequestType string

// CreateDeploymentRequest defines model for CreateDeploymentRequest.
type CreateDeploymentRequest struct {
	union json.RawMessage
}

// CreateEmailNotificationChannelRequest defines model for CreateEmailNotificationChannelRequest.
type CreateEmailNotificationChannelRequest struct {
	Definition EmailNotificationChannelDefinition `json:"definition"`

	// EntityId The entity ID the notification channel is scoped to.
	EntityId string `json:"entityId"`

	// EntityType The type of entity the notification channel is scoped to.
	EntityType CreateEmailNotificationChannelRequestEntityType `json:"entityType"`

	// IsShared When entity type is scoped to ORGANIZATION or WORKSPACE, this determines if child entities can access this notification channel.
	IsShared *bool `json:"isShared,omitempty"`

	// Name The notification channel's name.
	Name string `json:"name"`

	// Type The notification channel's type.
	Type CreateEmailNotificationChannelRequestType `json:"type"`
}

// CreateEmailNotificationChannelRequestEntityType The type of entity the notification channel is scoped to.
type CreateEmailNotificationChannelRequestEntityType string

// CreateEmailNotificationChannelRequestType The notification channel's type.
type CreateEmailNotificationChannelRequestType string

// CreateEnvironmentObject defines model for CreateEnvironmentObject.
type CreateEnvironmentObject struct {
	// Id The ID of the environment object
	Id string `json:"id"`
}

// CreateEnvironmentObjectAirflowVariableOverridesRequest defines model for CreateEnvironmentObjectAirflowVariableOverridesRequest.
type CreateEnvironmentObjectAirflowVariableOverridesRequest struct {
	// Value The value of the Airflow variable
	Value *string `json:"value,omitempty"`
}

// CreateEnvironmentObjectAirflowVariableRequest defines model for CreateEnvironmentObjectAirflowVariableRequest.
type CreateEnvironmentObjectAirflowVariableRequest struct {
	// IsSecret Whether the value is a secret or not
	IsSecret *bool `json:"isSecret,omitempty"`

	// Value The value of the Airflow variable
	Value *string `json:"value,omitempty"`
}

// CreateEnvironmentObjectConnectionOverridesRequest defines model for CreateEnvironmentObjectConnectionOverridesRequest.
type CreateEnvironmentObjectConnectionOverridesRequest struct {
	// Extra Extra connection details, if any
	Extra *map[string]interface{} `json:"extra,omitempty"`

	// Host The host address for the connection
	Host *string `json:"host,omitempty"`

	// Login The username used for the connection
	Login *string `json:"login,omitempty"`

	// Password The password used for the connection
	Password *string `json:"password,omitempty"`

	// Port The port for the connection
	Port *int `json:"port,omitempty"`

	// Schema The schema for the connection
	Schema *string `json:"schema,omitempty"`

	// Type The type of connection
	Type *string `json:"type,omitempty"`
}

// CreateEnvironmentObjectConnectionRequest defines model for CreateEnvironmentObjectConnectionRequest.
type CreateEnvironmentObjectConnectionRequest struct {
	// AuthTypeId The ID for the connection auth type
	AuthTypeId *string `json:"authTypeId,omitempty"`

	// Extra Extra connection details, if any
	Extra *map[string]interface{} `json:"extra,omitempty"`

	// Host The host address for the connection
	Host *string `json:"host,omitempty"`

	// Login The username used for the connection
	Login *string `json:"login,omitempty"`

	// Password The password used for the connection
	Password *string `json:"password,omitempty"`

	// Port The port for the connection
	Port *int `json:"port,omitempty"`

	// Schema The schema for the connection
	Schema *string `json:"schema,omitempty"`

	// Type The type of connection
	Type string `json:"type"`
}

// CreateEnvironmentObjectLinkRequest defines model for CreateEnvironmentObjectLinkRequest.
type CreateEnvironmentObjectLinkRequest struct {
	Overrides *CreateEnvironmentObjectOverridesRequest `json:"overrides,omitempty"`

	// Scope Scope to link the environment object
	Scope CreateEnvironmentObjectLinkRequestScope `json:"scope"`

	// ScopeEntityId Entity ID of the scope to link the environment object
	ScopeEntityId string `json:"scopeEntityId"`
}

// CreateEnvironmentObjectLinkRequestScope Scope to link the environment object
type CreateEnvironmentObjectLinkRequestScope string

// CreateEnvironmentObjectMetricsExportOverridesRequest defines model for CreateEnvironmentObjectMetricsExportOverridesRequest.
type CreateEnvironmentObjectMetricsExportOverridesRequest struct {
	// AuthType The type of authentication to use when connecting to the remote endpoint
	AuthType *CreateEnvironmentObjectMetricsExportOverridesRequestAuthType `json:"authType,omitempty"`

	// BasicToken The bearer token to connect to the remote endpoint
	BasicToken *string `json:"basicToken,omitempty"`

	// Endpoint The Prometheus endpoint where the metrics are exported
	Endpoint *string `json:"endpoint,omitempty"`

	// ExporterType The type of exporter
	ExporterType *CreateEnvironmentObjectMetricsExportOverridesRequestExporterType `json:"exporterType,omitempty"`

	// Headers Add key-value pairs to the HTTP request headers made by Astro when connecting to the remote endpoint
	Headers *map[string]string `json:"headers,omitempty"`

	// Labels Any key-value pair metrics labels for your export. You can use these to filter your metrics in downstream applications.
	Labels *map[string]string `json:"labels,omitempty"`

	// Password The password to connect to the remote endpoint
	Password *string `json:"password,omitempty"`

	// Username The username to connect to the remote endpoint
	Username *string `json:"username,omitempty"`
}

// CreateEnvironmentObjectMetricsExportOverridesRequestAuthType The type of authentication to use when connecting to the remote endpoint
type CreateEnvironmentObjectMetricsExportOverridesRequestAuthType string

// CreateEnvironmentObjectMetricsExportOverridesRequestExporterType The type of exporter
type CreateEnvironmentObjectMetricsExportOverridesRequestExporterType string

// CreateEnvironmentObjectMetricsExportRequest defines model for CreateEnvironmentObjectMetricsExportRequest.
type CreateEnvironmentObjectMetricsExportRequest struct {
	// AuthType The type of authentication to use when connecting to the remote endpoint
	AuthType *CreateEnvironmentObjectMetricsExportRequestAuthType `json:"authType,omitempty"`

	// BasicToken The bearer token to connect to the remote endpoint
	BasicToken *string `json:"basicToken,omitempty"`

	// Endpoint The Prometheus endpoint where the metrics are exported
	Endpoint string `json:"endpoint"`

	// ExporterType The type of exporter
	ExporterType CreateEnvironmentObjectMetricsExportRequestExporterType `json:"exporterType"`

	// Headers Add key-value pairs to the HTTP request headers made by Astro when connecting to the remote endpoint
	Headers *map[string]string `json:"headers,omitempty"`

	// Labels Any key-value pair metrics labels for your export. You can use these to filter your metrics in downstream applications.
	Labels *map[string]string `json:"labels,omitempty"`

	// Password The password to connect to the remote endpoint
	Password *string `json:"password,omitempty"`

	// Username The username to connect to the remote endpoint
	Username *string `json:"username,omitempty"`
}

// CreateEnvironmentObjectMetricsExportRequestAuthType The type of authentication to use when connecting to the remote endpoint
type CreateEnvironmentObjectMetricsExportRequestAuthType string

// CreateEnvironmentObjectMetricsExportRequestExporterType The type of exporter
type CreateEnvironmentObjectMetricsExportRequestExporterType string

// CreateEnvironmentObjectOverridesRequest defines model for CreateEnvironmentObjectOverridesRequest.
type CreateEnvironmentObjectOverridesRequest struct {
	AirflowVariable *CreateEnvironmentObjectAirflowVariableOverridesRequest `json:"airflowVariable,omitempty"`
	Connection      *CreateEnvironmentObjectConnectionOverridesRequest      `json:"connection,omitempty"`
	MetricsExport   *CreateEnvironmentObjectMetricsExportOverridesRequest   `json:"metricsExport,omitempty"`
}

// CreateEnvironmentObjectRequest defines model for CreateEnvironmentObjectRequest.
type CreateEnvironmentObjectRequest struct {
	AirflowVariable *CreateEnvironmentObjectAirflowVariableRequest `json:"airflowVariable,omitempty"`

	// AutoLinkDeployments Whether or not to automatically link Deployments to the environment object. Only applicable for WORKSPACE scope
	AutoLinkDeployments *bool                                     `json:"autoLinkDeployments,omitempty"`
	Connection          *CreateEnvironmentObjectConnectionRequest `json:"connection,omitempty"`

	// ExcludeLinks The links to exclude from the environment object. Only applicable for WORKSPACE scope
	ExcludeLinks *[]ExcludeLinkEnvironmentObjectRequest `json:"excludeLinks,omitempty"`

	// Links The Deployments that Astro links to the environment object. Only applicable for WORKSPACE scope
	Links         *[]CreateEnvironmentObjectLinkRequest        `json:"links,omitempty"`
	MetricsExport *CreateEnvironmentObjectMetricsExportRequest `json:"metricsExport,omitempty"`

	// ObjectKey The key for the environment object
	ObjectKey string `json:"objectKey"`

	// ObjectType The type of environment object
	ObjectType CreateEnvironmentObjectRequestObjectType `json:"objectType"`

	// Scope The scope of the environment object
	Scope CreateEnvironmentObjectRequestScope `json:"scope"`

	// ScopeEntityId The ID of the scope entity where the environment object is created
	ScopeEntityId string `json:"scopeEntityId"`
}

// CreateEnvironmentObjectRequestObjectType The type of environment object
type CreateEnvironmentObjectRequestObjectType string

// CreateEnvironmentObjectRequestScope The scope of the environment object
type CreateEnvironmentObjectRequestScope string

// CreateGcpClusterRequest defines model for CreateGcpClusterRequest.
type CreateGcpClusterRequest struct {
	// CloudProvider The cluster's cloud provider.
	CloudProvider CreateGcpClusterRequestCloudProvider `json:"cloudProvider"`

	// DbInstanceType The type of database instance that is used for the cluster. Required for Hybrid clusters.
	DbInstanceType *string `json:"dbInstanceType,omitempty"`

	// K8sTags The Kubernetes tags in the cluster.
	K8sTags *[]ClusterK8sTag `json:"k8sTags,omitempty"`

	// Name The cluster's name.
	Name string `json:"name"`

	// NodePools The list of node pools to create in the cluster.
	NodePools *[]CreateNodePoolRequest `json:"nodePools,omitempty"`

	// PodSubnetRange The subnet range for Pods. For GCP clusters only.
	PodSubnetRange string `json:"podSubnetRange"`

	// ProviderAccount The provider account ID. Required for Hybrid clusters.
	ProviderAccount *string `json:"providerAccount,omitempty"`

	// Region The cluster's region.
	Region string `json:"region"`

	// ServicePeeringRange The service subnet range. For GCP clusters only.
	ServicePeeringRange string `json:"servicePeeringRange"`

	// ServiceSubnetRange The service peering range. For GCP clusters only.
	ServiceSubnetRange string `json:"serviceSubnetRange"`

	// Type The cluster's type.
	Type CreateGcpClusterRequestType `json:"type"`

	// VpcSubnetRange The VPC subnet range.
	VpcSubnetRange string `json:"vpcSubnetRange"`

	// WorkspaceIds The list of Workspaces that are authorized to the cluster.
	WorkspaceIds *[]string `json:"workspaceIds,omitempty"`
}

// CreateGcpClusterRequestCloudProvider The cluster's cloud provider.
type CreateGcpClusterRequestCloudProvider string

// CreateGcpClusterRequestType The cluster's type.
type CreateGcpClusterRequestType string

// CreateHybridDeploymentRequest defines model for CreateHybridDeploymentRequest.
type CreateHybridDeploymentRequest struct {
	// AstroRuntimeVersion Deployment's Astro Runtime version.
	AstroRuntimeVersion string `json:"astroRuntimeVersion"`

	// ClusterId The ID of the cluster where the Deployment will be created.
	ClusterId string `json:"clusterId"`

	// ContactEmails A list of contact emails for the Deployment.
	ContactEmails *[]string `json:"contactEmails,omitempty"`

	// Description The Deployment's description.
	Description *string `json:"description,omitempty"`

	// EnvironmentVariables List of environment variables to add to the Deployment.
	EnvironmentVariables *[]DeploymentEnvironmentVariableRequest `json:"environmentVariables,omitempty"`

	// Executor The Deployment's executor type.
	Executor CreateHybridDeploymentRequestExecutor `json:"executor"`

	// IsCicdEnforced Whether the Deployment requires that all deploys are made through CI/CD.
	IsCicdEnforced bool `json:"isCicdEnforced"`

	// IsDagDeployEnabled Whether the Deployment has DAG deploys enabled.
	IsDagDeployEnabled bool `json:"isDagDeployEnabled"`

	// Name The Deployment's name.
	Name      string                        `json:"name"`
	Scheduler DeploymentInstanceSpecRequest `json:"scheduler"`

	// TaskPodNodePoolId The node pool ID for the task pods. For `KUBERNETES` executor only.
	TaskPodNodePoolId *string `json:"taskPodNodePoolId,omitempty"`

	// Type The type of the Deployment.
	Type CreateHybridDeploymentRequestType `json:"type"`

	// WorkerQueues The list of worker queues configured for the Deployment. Applies only when `Executor` is `CELERY`. At least 1 worker queue is needed. All Deployments need at least 1 worker queue called `default`.
	WorkerQueues *[]HybridWorkerQueueRequest `json:"workerQueues,omitempty"`

	// WorkloadIdentity The Deployment's workload identity.
	WorkloadIdentity *string `json:"workloadIdentity,omitempty"`

	// WorkspaceId The ID of the Workspace to which the Deployment belongs.
	WorkspaceId string `json:"workspaceId"`
}

// CreateHybridDeploymentRequestExecutor The Deployment's executor type.
type CreateHybridDeploymentRequestExecutor string

// CreateHybridDeploymentRequestType The type of the Deployment.
type CreateHybridDeploymentRequestType string

// CreateNodePoolRequest defines model for CreateNodePoolRequest.
type CreateNodePoolRequest struct {
	// IsDefault Whether the node pool is the default node pool of the cluster.
	IsDefault *bool `json:"isDefault,omitempty"`

	// MaxNodeCount The maximum number of nodes that can be created in the node pool.
	MaxNodeCount int `json:"maxNodeCount"`

	// Name The name of the node pool.
	Name string `json:"name"`

	// NodeInstanceType The type of node instance that is used for the node pool.
	NodeInstanceType string `json:"nodeInstanceType"`
}

// CreateNotificationChannelRequest defines model for CreateNotificationChannelRequest.
type CreateNotificationChannelRequest struct {
	union json.RawMessage
}

// CreateOpsgenieNotificationChannelRequest defines model for CreateOpsgenieNotificationChannelRequest.
type CreateOpsgenieNotificationChannelRequest struct {
	Definition OpsgenieNotificationChannelDefinition `json:"definition"`

	// EntityId The entity ID the notification channel is scoped to.
	EntityId string `json:"entityId"`

	// EntityType The type of entity the notification channel is scoped to.
	EntityType CreateOpsgenieNotificationChannelRequestEntityType `json:"entityType"`

	// IsShared When entity type is scoped to ORGANIZATION or WORKSPACE, this determines if child entities can access this notification channel.
	IsShared *bool `json:"isShared,omitempty"`

	// Name The notification channel's name.
	Name string `json:"name"`

	// Type The notification channel's type.
	Type CreateOpsgenieNotificationChannelRequestType `json:"type"`
}

// CreateOpsgenieNotificationChannelRequestEntityType The type of entity the notification channel is scoped to.
type CreateOpsgenieNotificationChannelRequestEntityType string

// CreateOpsgenieNotificationChannelRequestType The notification channel's type.
type CreateOpsgenieNotificationChannelRequestType string

// CreatePagerDutyNotificationChannelRequest defines model for CreatePagerDutyNotificationChannelRequest.
type CreatePagerDutyNotificationChannelRequest struct {
	Definition PagerDutyNotificationChannelDefinition `json:"definition"`

	// EntityId The entity ID the notification channel is scoped to.
	EntityId string `json:"entityId"`

	// EntityType The type of entity the notification channel is scoped to.
	EntityType CreatePagerDutyNotificationChannelRequestEntityType `json:"entityType"`

	// IsShared When entity type is scoped to ORGANIZATION or WORKSPACE, this determines if child entities can access this notification channel.
	IsShared *bool `json:"isShared,omitempty"`

	// Name The notification channel's name.
	Name string `json:"name"`

	// Type The notification channel's type.
	Type CreatePagerDutyNotificationChannelRequestType `json:"type"`
}

// CreatePagerDutyNotificationChannelRequestEntityType The type of entity the notification channel is scoped to.
type CreatePagerDutyNotificationChannelRequestEntityType string

// CreatePagerDutyNotificationChannelRequestType The notification channel's type.
type CreatePagerDutyNotificationChannelRequestType string

// CreateSlackNotificationChannelRequest defines model for CreateSlackNotificationChannelRequest.
type CreateSlackNotificationChannelRequest struct {
	Definition SlackNotificationChannelDefinition `json:"definition"`

	// EntityId The entity ID the notification channel is scoped to.
	EntityId string `json:"entityId"`

	// EntityType The type of entity the notification channel is scoped to.
	EntityType CreateSlackNotificationChannelRequestEntityType `json:"entityType"`

	// IsShared When entity type is scoped to ORGANIZATION or WORKSPACE, this determines if child entities can access this notification channel.
	IsShared *bool `json:"isShared,omitempty"`

	// Name The notification channel's name.
	Name string `json:"name"`

	// Type The notification channel's type.
	Type CreateSlackNotificationChannelRequestType `json:"type"`
}

// CreateSlackNotificationChannelRequestEntityType The type of entity the notification channel is scoped to.
type CreateSlackNotificationChannelRequestEntityType string

// CreateSlackNotificationChannelRequestType The notification channel's type.
type CreateSlackNotificationChannelRequestType string

// CreateStandardDeploymentRequest defines model for CreateStandardDeploymentRequest.
type CreateStandardDeploymentRequest struct {
	// AstroRuntimeVersion Deployment's Astro Runtime version.
	AstroRuntimeVersion string `json:"astroRuntimeVersion"`

	// CloudProvider The cloud provider for the Deployment's cluster. Optional if `ClusterId` is specified.
	CloudProvider *CreateStandardDeploymentRequestCloudProvider `json:"cloudProvider,omitempty"`

	// ClusterId The ID of the cluster to which the Deployment will be created in. Optional if cloud provider and region is specified.
	ClusterId *string `json:"clusterId,omitempty"`

	// ContactEmails A list of contact emails for the Deployment.
	ContactEmails *[]string `json:"contactEmails,omitempty"`

	// DefaultTaskPodCpu The default CPU resource usage for a worker Pod when running the Kubernetes executor or KubernetesPodOperator. Units are in number of CPU cores. Required if Remote Execution is disabled.
	DefaultTaskPodCpu *string `json:"defaultTaskPodCpu,omitempty"`

	// DefaultTaskPodMemory The default memory resource usage for a worker Pod when running the Kubernetes executor or KubernetesPodOperator. Units are in `Gi` and must be explicitly included. This value must always be twice the value of `DefaultTaskPodCpu`. Required if Remote Execution is disabled.
	DefaultTaskPodMemory *string `json:"defaultTaskPodMemory,omitempty"`

	// Description The Deployment's description.
	Description *string `json:"description,omitempty"`

	// EnvironmentVariables List of environment variables to add to the Deployment.
	EnvironmentVariables *[]DeploymentEnvironmentVariableRequest `json:"environmentVariables,omitempty"`

	// Executor The Deployment's executor type.
	Executor CreateStandardDeploymentRequestExecutor `json:"executor"`

	// IsCicdEnforced Whether the Deployment requires that all deploys are made through CI/CD.
	IsCicdEnforced bool `json:"isCicdEnforced"`

	// IsDagDeployEnabled Whether the Deployment has DAG deploys enabled.
	IsDagDeployEnabled bool `json:"isDagDeployEnabled"`

	// IsDevelopmentMode If true, deployment will be able to use development-only features, such as hibernation, but will not have guaranteed uptime SLAs
	IsDevelopmentMode *bool `json:"isDevelopmentMode,omitempty"`

	// IsHighAvailability Whether the Deployment is configured for high availability. If `true`, multiple scheduler pods will be online.
	IsHighAvailability bool `json:"isHighAvailability"`

	// Name The Deployment's name.
	Name string `json:"name"`

	// Region The region to host the Deployment in. Optional if `ClusterId` is specified.
	Region          *string                           `json:"region,omitempty"`
	RemoteExecution *DeploymentRemoteExecutionRequest `json:"remoteExecution,omitempty"`

	// ResourceQuotaCpu The CPU quota for worker Pods when running the Kubernetes executor or KubernetesPodOperator. If current CPU usage across all workers exceeds the quota, no new worker Pods can be scheduled. Units are in number of CPU cores. Required if Remote Execution is disabled.
	ResourceQuotaCpu *string `json:"resourceQuotaCpu,omitempty"`

	// ResourceQuotaMemory The memory quota for worker Pods when running the Kubernetes executor or KubernetesPodOperator. If current memory usage across all workers exceeds the quota, no new worker Pods can be scheduled. Units are in `Gi` and must be explicitly included. This value must always be twice the value of `ResourceQuotaCpu`. Required if Remote Execution is disabled.
	ResourceQuotaMemory *string                       `json:"resourceQuotaMemory,omitempty"`
	ScalingSpec         *DeploymentScalingSpecRequest `json:"scalingSpec,omitempty"`

	// SchedulerSize The size of the scheduler Pod.
	SchedulerSize CreateStandardDeploymentRequestSchedulerSize `json:"schedulerSize"`

	// Type The type of the Deployment.
	Type CreateStandardDeploymentRequestType `json:"type"`

	// WorkerQueues A list of the Deployment's worker queues. Applies only when `Executor` is `CELERY` or if Remote Execution is disabled and executor is `ASTRO`. All these Deployments need at least 1 worker queue called `default`.
	WorkerQueues *[]WorkerQueueRequest `json:"workerQueues,omitempty"`

	// WorkloadIdentity The Deployment's workload identity.
	WorkloadIdentity *string `json:"workloadIdentity,omitempty"`

	// WorkspaceId The ID of the Workspace to which the Deployment belongs.
	WorkspaceId string `json:"workspaceId"`
}

// CreateStandardDeploymentRequestCloudProvider The cloud provider for the Deployment's cluster. Optional if `ClusterId` is specified.
type CreateStandardDeploymentRequestCloudProvider string

// CreateStandardDeploymentRequestExecutor The Deployment's executor type.
type CreateStandardDeploymentRequestExecutor string

// CreateStandardDeploymentRequestSchedulerSize The size of the scheduler Pod.
type CreateStandardDeploymentRequestSchedulerSize string

// CreateStandardDeploymentRequestType The type of the Deployment.
type CreateStandardDeploymentRequestType string

// CreateTaskDurationAlertProperties defines model for CreateTaskDurationAlertProperties.
type CreateTaskDurationAlertProperties struct {
	// DeploymentId The ID of the deployment to which the alert is scoped.
	DeploymentId string `json:"deploymentId"`

	// TaskDurationSeconds The duration of the Task in seconds.
	TaskDurationSeconds int `json:"taskDurationSeconds"`
}

// CreateTaskDurationAlertRequest defines model for CreateTaskDurationAlertRequest.
type CreateTaskDurationAlertRequest struct {
	// EntityId The entity ID the alert is associated with.
	EntityId string `json:"entityId"`

	// EntityType The ID of the Deployment to which the alert is scoped.
	EntityType CreateTaskDurationAlertRequestEntityType `json:"entityType"`

	// Name The alert's name.
	Name string `json:"name"`

	// NotificationChannelIds The notification channels to send alerts to.
	NotificationChannelIds []string                     `json:"notificationChannelIds"`
	Rules                  CreateTaskDurationAlertRules `json:"rules"`

	// Severity The alert's severity.
	Severity CreateTaskDurationAlertRequestSeverity `json:"severity"`

	// Type The alert's type.
	Type CreateTaskDurationAlertRequestType `json:"type"`
}

// CreateTaskDurationAlertRequestEntityType The ID of the Deployment to which the alert is scoped.
type CreateTaskDurationAlertRequestEntityType string

// CreateTaskDurationAlertRequestSeverity The alert's severity.
type CreateTaskDurationAlertRequestSeverity string

// CreateTaskDurationAlertRequestType The alert's type.
type CreateTaskDurationAlertRequestType string

// CreateTaskDurationAlertRules defines model for CreateTaskDurationAlertRules.
type CreateTaskDurationAlertRules struct {
	// PatternMatches The alert's pattern matches to match against.
	PatternMatches []PatternMatchRequest             `json:"patternMatches"`
	Properties     CreateTaskDurationAlertProperties `json:"properties"`
}

// CreateTaskFailureAlertProperties defines model for CreateTaskFailureAlertProperties.
type CreateTaskFailureAlertProperties struct {
	// DeploymentId The ID of the deployment to which the alert is scoped.
	DeploymentId string `json:"deploymentId"`
}

// CreateTaskFailureAlertRequest defines model for CreateTaskFailureAlertRequest.
type CreateTaskFailureAlertRequest struct {
	// EntityId The entity ID the alert is associated with.
	EntityId string `json:"entityId"`

	// EntityType The ID of the Deployment to which the alert is scoped.
	EntityType CreateTaskFailureAlertRequestEntityType `json:"entityType"`

	// Name The alert's name.
	Name string `json:"name"`

	// NotificationChannelIds The notification channels to send alerts to.
	NotificationChannelIds []string                    `json:"notificationChannelIds"`
	Rules                  CreateTaskFailureAlertRules `json:"rules"`

	// Severity The alert's severity.
	Severity CreateTaskFailureAlertRequestSeverity `json:"severity"`

	// Type The alert's type.
	Type CreateTaskFailureAlertRequestType `json:"type"`
}

// CreateTaskFailureAlertRequestEntityType The ID of the Deployment to which the alert is scoped.
type CreateTaskFailureAlertRequestEntityType string

// CreateTaskFailureAlertRequestSeverity The alert's severity.
type CreateTaskFailureAlertRequestSeverity string

// CreateTaskFailureAlertRequestType The alert's type.
type CreateTaskFailureAlertRequestType string

// CreateTaskFailureAlertRules defines model for CreateTaskFailureAlertRules.
type CreateTaskFailureAlertRules struct {
	// PatternMatches The alert's pattern matches to match against.
	PatternMatches []PatternMatchRequest            `json:"patternMatches"`
	Properties     CreateTaskFailureAlertProperties `json:"properties"`
}

// CreateWorkspaceRequest defines model for CreateWorkspaceRequest.
type CreateWorkspaceRequest struct {
	// CicdEnforcedDefault Whether new Deployments enforce CI/CD deploys by default.
	CicdEnforcedDefault *bool `json:"cicdEnforcedDefault,omitempty"`

	// Description The Workspace's description.
	Description *string `json:"description,omitempty"`

	// Name The Workspace's name.
	Name string `json:"name"`
}

// DagTriggerNotificationChannelDefinition defines model for DagTriggerNotificationChannelDefinition.
type DagTriggerNotificationChannelDefinition struct {
	// DagId The DAG ID.
	DagId string `json:"dagId"`

	// DeploymentApiToken The Deployment API token.
	DeploymentApiToken string `json:"deploymentApiToken"`

	// DeploymentId The DAG's deployment ID.
	DeploymentId string `json:"deploymentId"`
}

// Deployment defines model for Deployment.
type Deployment struct {
	// AirflowVersion The Deployment's Airflow version.
	AirflowVersion string `json:"airflowVersion"`

	// AstroRuntimeVersion The Deployment's Astro Runtime version.
	AstroRuntimeVersion string `json:"astroRuntimeVersion"`

	// CloudProvider The cloud provider of the cluster. Only for Standard Deployment.
	CloudProvider *DeploymentCloudProvider `json:"cloudProvider,omitempty"`

	// ClusterId The ID of the cluster where the Deployment is hosted.
	ClusterId *string `json:"clusterId,omitempty"`

	// ClusterName The name of the cluster where the Deployment is hosted. Only for Dedicated and Hybrid Deployments.
	ClusterName *string `json:"clusterName,omitempty"`

	// ContactEmails The list of contact emails for the Deployment.
	ContactEmails *[]string `json:"contactEmails,omitempty"`

	// CreatedAt The time when the Deployment was created in UTC, formatted as `YYYY-MM-DDTHH:MM:SSZ`.
	CreatedAt time.Time           `json:"createdAt"`
	CreatedBy BasicSubjectProfile `json:"createdBy"`

	// DagTarballVersion The Deployment's current DAG tarball version, also known as the Bundle Version in the Astro UI. If no deploys are currently processing, this value should be the same as DesiredDagTarballVersion.
	DagTarballVersion *string `json:"dagTarballVersion,omitempty"`

	// DefaultTaskPodCpu The default CPU resource usage for a worker Pod when running the Kubernetes executor or KubernetesPodOperator. Units are in number of CPU cores.
	DefaultTaskPodCpu *string `json:"defaultTaskPodCpu,omitempty"`

	// DefaultTaskPodMemory The default memory resource usage for a worker Pod when running the Kubernetes executor or KubernetesPodOperator. Units are in `Gi`. This value must always be twice the value of `DefaultTaskPodCpu`.
	DefaultTaskPodMemory *string `json:"defaultTaskPodMemory,omitempty"`

	// Description The Deployment's description.
	Description *string `json:"description,omitempty"`

	// DesiredDagTarballVersion The Deployment's expected DAG tarball version after a currently processing deploy completes. This value is updated when a user triggers a DAG-only deploy to indicate that the Deployment is expecting a new DAG tarball version. If no deploys are currently processing, this value should be the same as DagTarballVersion.
	DesiredDagTarballVersion *string `json:"desiredDagTarballVersion,omitempty"`

	// EnvironmentVariables The Deployment's environment variables. Secret values will be omitted from response.
	EnvironmentVariables *[]DeploymentEnvironmentVariable `json:"environmentVariables,omitempty"`

	// Executor The Deployment's executor type.
	Executor *DeploymentExecutor `json:"executor,omitempty"`

	// ExternalIPs A list of the Deployment's external IPs.
	ExternalIPs *[]string `json:"externalIPs,omitempty"`

	// Id The Deployment's ID.
	Id string `json:"id"`

	// ImageRepository The URL of the Deployment's image repository.
	ImageRepository string `json:"imageRepository"`

	// ImageTag The Deployment's custom image tag. Appears only if specified in the most recent deploy.
	ImageTag string `json:"imageTag"`

	// ImageVersion A tag that Astronomer applies to the Deployment's Astro Runtime image during a deploy. It includes the date and time of the deploy.
	ImageVersion *string `json:"imageVersion,omitempty"`

	// IsCicdEnforced Whether the Deployment requires that all deploys are made through CI/CD.
	IsCicdEnforced bool `json:"isCicdEnforced"`

	// IsDagDeployEnabled Whether the Deployment has DAG deploys enabled.
	IsDagDeployEnabled bool `json:"isDagDeployEnabled"`

	// IsDevelopmentMode If true, deployment will be able to use development-only features, such as hibernation, but will not have guaranteed uptime SLAs
	IsDevelopmentMode *bool `json:"isDevelopmentMode,omitempty"`

	// IsHighAvailability Whether the Deployment has high availability (HA) enabled. If `true`, multiple scheduler Pods will run at once.
	IsHighAvailability *bool `json:"isHighAvailability,omitempty"`

	// Name The Deployment's name.
	Name string `json:"name"`

	// Namespace The Deployment's namespace name in the Kubernetes cluster.
	Namespace string `json:"namespace"`

	// OidcIssuerUrl OIDC issuer URL of the deployment's cluster
	OidcIssuerUrl *string `json:"oidcIssuerUrl,omitempty"`

	// OrganizationId The ID of the Organization to which the Deployment belongs.
	OrganizationId string `json:"organizationId"`

	// Region The region of the cluster. Only for Dedicated and Hybrid Deployments.
	Region          *string                    `json:"region,omitempty"`
	RemoteExecution *DeploymentRemoteExecution `json:"remoteExecution,omitempty"`

	// ResourceQuotaCpu The CPU quota for worker Pods when running the Kubernetes executor or KubernetesPodOperator. If current CPU usage across all workers exceeds the quota, no new worker Pods can be scheduled. Units are in number of CPU cores.
	ResourceQuotaCpu *string `json:"resourceQuotaCpu,omitempty"`

	// ResourceQuotaMemory The memory quota for worker Pods when running the Kubernetes executor or KubernetesPodOperator. If current memory usage across all workers exceeds the quota, no new worker Pods can be scheduled. Units are in `Gi`. This value must always be twice the value of `ResourceQuotaCpu`.
	ResourceQuotaMemory *string `json:"resourceQuotaMemory,omitempty"`

	// RuntimeVersion Deprecated: runtimeVersion has been replaced with astroRuntimeVersion
	RuntimeVersion string                   `json:"runtimeVersion"`
	ScalingSpec    *DeploymentScalingSpec   `json:"scalingSpec,omitempty"`
	ScalingStatus  *DeploymentScalingStatus `json:"scalingStatus,omitempty"`

	// SchedulerAu The number of Astronomer units (AU) for the Deployment's scheduler. Applies only to Deployments hosted on Hybrid clusters.
	SchedulerAu *int `json:"schedulerAu,omitempty"`

	// SchedulerCpu The CPU limit for the Deployment's scheduler. Specified in number of CPU cores.
	SchedulerCpu string `json:"schedulerCpu"`

	// SchedulerMemory The memory limit for the Deployment's scheduler. Units in Gibibytes or `Gi`.
	SchedulerMemory string `json:"schedulerMemory"`

	// SchedulerReplicas The number of schedulers to use in the Deployment.
	SchedulerReplicas int `json:"schedulerReplicas"`

	// SchedulerSize The Deployment's scheduler size.
	SchedulerSize *DeploymentSchedulerSize `json:"schedulerSize,omitempty"`

	// Status The status of the Deployment.
	Status DeploymentStatus `json:"status"`

	// StatusReason A message that provides context for the Deployment's status.
	StatusReason *string `json:"statusReason,omitempty"`

	// TaskPodNodePoolId The node pool ID for the task pod.
	TaskPodNodePoolId *string `json:"taskPodNodePoolId,omitempty"`

	// Type The type of cluster that the Deployment runs on.
	Type *DeploymentType `json:"type,omitempty"`

	// UpdatedAt The time when the Deployment was last updated in UTC, formatted as `YYYY-MM-DDTHH:MM:SSZ`.
	UpdatedAt time.Time           `json:"updatedAt"`
	UpdatedBy BasicSubjectProfile `json:"updatedBy"`

	// WebServerAirflowApiUrl The Deployment's webserver's base url to directly access the Airflow api.
	WebServerAirflowApiUrl string `json:"webServerAirflowApiUrl"`

	// WebServerCpu The CPU limit for the Deployment's webserver. Units are in number of CPU cores.
	WebServerCpu string `json:"webServerCpu"`

	// WebServerIngressHostname The Deployment's webserver's ingress hostname.
	WebServerIngressHostname string `json:"webServerIngressHostname"`

	// WebServerMemory The memory limit for the Deployment's webserver. Units in Gibibytes or `Gi`.
	WebServerMemory string `json:"webServerMemory"`

	// WebServerReplicas The number of webserver replicas.
	WebServerReplicas *int `json:"webServerReplicas,omitempty"`

	// WebServerUrl The Deployment's webserver's url.
	WebServerUrl string `json:"webServerUrl"`

	// WorkerQueues A list of the Deployment's worker queues.
	WorkerQueues *[]WorkerQueue `json:"workerQueues,omitempty"`

	// WorkloadIdentity The Deployment's workload identity.
	WorkloadIdentity *string `json:"workloadIdentity,omitempty"`

	// WorkspaceId The ID of the Workspace to which the Deployment belongs.
	WorkspaceId string `json:"workspaceId"`

	// WorkspaceName The name of the Workspace to which the Deployment belongs.
	WorkspaceName *string `json:"workspaceName,omitempty"`
}

// DeploymentCloudProvider The cloud provider of the cluster. Only for Standard Deployment.
type DeploymentCloudProvider string

// DeploymentExecutor The Deployment's executor type.
type DeploymentExecutor string

// DeploymentSchedulerSize The Deployment's scheduler size.
type DeploymentSchedulerSize string

// DeploymentStatus The status of the Deployment.
type DeploymentStatus string

// DeploymentType The type of cluster that the Deployment runs on.
type DeploymentType string

// DeploymentEnvironmentVariable defines model for DeploymentEnvironmentVariable.
type DeploymentEnvironmentVariable struct {
	// IsSecret Whether the environment variable is a secret.
	IsSecret bool `json:"isSecret"`

	// Key The environment variable key, used to call the value in code.
	Key string `json:"key"`

	// UpdatedAt The time when the environment variable was last updated in UTC, formatted as `YYYY-MM-DDTHH:MM:SSZ`.
	UpdatedAt string `json:"updatedAt"`

	// Value The environment variable value.
	Value *string `json:"value,omitempty"`
}

// DeploymentEnvironmentVariableRequest defines model for DeploymentEnvironmentVariableRequest.
type DeploymentEnvironmentVariableRequest struct {
	// IsSecret Whether the environment variable is a secret.
	IsSecret bool `json:"isSecret"`

	// Key The environment variable key, used to call the value in code.
	Key string `json:"key"`

	// Value The environment variable value.
	Value *string `json:"value,omitempty"`
}

// DeploymentHibernationOverride defines model for DeploymentHibernationOverride.
type DeploymentHibernationOverride struct {
	// IsActive Whether the override is currently active or not
	IsActive *bool `json:"isActive,omitempty"`

	// IsHibernating Whether to go into hibernation or not via the override rule
	IsHibernating *bool `json:"isHibernating,omitempty"`

	// OverrideUntil Timestamp till the override on the hibernation schedule is in effect
	OverrideUntil *time.Time `json:"overrideUntil,omitempty"`
}

// DeploymentHibernationOverrideRequest defines model for DeploymentHibernationOverrideRequest.
type DeploymentHibernationOverrideRequest struct {
	// IsHibernating Whether to go into hibernation or not via the override rule
	IsHibernating *bool `json:"isHibernating,omitempty"`

	// OverrideUntil Timestamp till the override on the hibernation schedule is in effect
	OverrideUntil *string `json:"overrideUntil,omitempty"`
}

// DeploymentHibernationSchedule defines model for DeploymentHibernationSchedule.
type DeploymentHibernationSchedule struct {
	// Description A brief description of the schedule
	Description *string `json:"description,omitempty"`

	// HibernateAtCron A 5-part cron expression defining the times at which the deployment should hibernate
	HibernateAtCron string `json:"hibernateAtCron"`

	// IsEnabled Toggle this schedule on or off. If set to false, this schedule will have no effect on hibernation.
	IsEnabled bool `json:"isEnabled"`

	// WakeAtCron A 5-part cron expression definingh the times at which the deployment should wake from hibernation
	WakeAtCron string `json:"wakeAtCron"`
}

// DeploymentHibernationSpec defines model for DeploymentHibernationSpec.
type DeploymentHibernationSpec struct {
	Override *DeploymentHibernationOverride `json:"override,omitempty"`

	// Schedules The list of schedules for deployment hibernation
	Schedules *[]DeploymentHibernationSchedule `json:"schedules,omitempty"`
}

// DeploymentHibernationSpecRequest defines model for DeploymentHibernationSpecRequest.
type DeploymentHibernationSpecRequest struct {
	Override *DeploymentHibernationOverrideRequest `json:"override,omitempty"`

	// Schedules The list of schedules for deployment hibernation
	Schedules *[]DeploymentHibernationSchedule `json:"schedules,omitempty"`
}

// DeploymentHibernationStatus defines model for DeploymentHibernationStatus.
type DeploymentHibernationStatus struct {
	// IsHibernating If the deployment is currently in hibernating state or not
	IsHibernating bool `json:"isHibernating"`

	// NextEventAt Timestamp of the next scheduled hibernation event for the deployment
	NextEventAt *string `json:"nextEventAt,omitempty"`

	// NextEventType The type of the next scheduled event for the deployment. Either HIBERNATE or WAKE
	NextEventType *DeploymentHibernationStatusNextEventType `json:"nextEventType,omitempty"`

	// Reason Reason for the current hibernation state of the deployment
	Reason *string `json:"reason,omitempty"`
}

// DeploymentHibernationStatusNextEventType The type of the next scheduled event for the deployment. Either HIBERNATE or WAKE
type DeploymentHibernationStatusNextEventType string

// DeploymentInstanceSpecRequest defines model for DeploymentInstanceSpecRequest.
type DeploymentInstanceSpecRequest struct {
	// Au The number of Astro unit allocated to the Deployment pod. Minimum `5`, Maximum `24`.
	Au int `json:"au"`

	// Replicas The number of replicas the pod should have. Minimum `1`, Maximum `4`.
	Replicas int `json:"replicas"`
}

// DeploymentOptions defines model for DeploymentOptions.
type DeploymentOptions struct {
	// Executors The available executors.
	Executors      []string             `json:"executors"`
	ResourceQuotas ResourceQuotaOptions `json:"resourceQuotas"`

	// RuntimeReleases The available Astro Runtime versions.
	RuntimeReleases []RuntimeRelease `json:"runtimeReleases"`

	// SchedulerMachines The available scheduler sizes.
	SchedulerMachines []SchedulerMachine `json:"schedulerMachines"`

	// WorkerMachines The available worker machine types.
	WorkerMachines []WorkerMachine    `json:"workerMachines"`
	WorkerQueues   WorkerQueueOptions `json:"workerQueues"`

	// WorkloadIdentityOptions The available workload identity options.
	WorkloadIdentityOptions *[]WorkloadIdentityOption `json:"workloadIdentityOptions,omitempty"`
}

// DeploymentRemoteExecution defines model for DeploymentRemoteExecution.
type DeploymentRemoteExecution struct {
	AllowedIpAddressRanges []string `json:"allowedIpAddressRanges"`
	Enabled                bool     `json:"enabled"`
	RemoteApiUrl           string   `json:"remoteApiUrl"`
	TaskLogBucket          *string  `json:"taskLogBucket,omitempty"`
	TaskLogUrlPattern      *string  `json:"taskLogUrlPattern,omitempty"`
}

// DeploymentRemoteExecutionRequest defines model for DeploymentRemoteExecutionRequest.
type DeploymentRemoteExecutionRequest struct {
	AllowedIpAddressRanges *[]string `json:"allowedIpAddressRanges,omitempty"`
	Enabled                bool      `json:"enabled"`
	TaskLogBucket          *string   `json:"taskLogBucket,omitempty"`
	TaskLogUrlPattern      *string   `json:"taskLogUrlPattern,omitempty"`
}

// DeploymentScalingSpec defines model for DeploymentScalingSpec.
type DeploymentScalingSpec struct {
	HibernationSpec *DeploymentHibernationSpec `json:"hibernationSpec,omitempty"`
}

// DeploymentScalingSpecRequest defines model for DeploymentScalingSpecRequest.
type DeploymentScalingSpecRequest struct {
	HibernationSpec *DeploymentHibernationSpecRequest `json:"hibernationSpec,omitempty"`
}

// DeploymentScalingStatus defines model for DeploymentScalingStatus.
type DeploymentScalingStatus struct {
	HibernationStatus *DeploymentHibernationStatus `json:"hibernationStatus,omitempty"`
}

// DeploymentsPaginated defines model for DeploymentsPaginated.
type DeploymentsPaginated struct {
	// Deployments A list of Deployments in the current page.
	Deployments []Deployment `json:"deployments"`

	// Limit The maximum number of Deployments in one page.
	Limit int `json:"limit"`

	// Offset The offset of the current page of Deployments.
	Offset int `json:"offset"`

	// TotalCount The total number of Deployments.
	TotalCount int `json:"totalCount"`
}

// EmailNotificationChannelDefinition defines model for EmailNotificationChannelDefinition.
type EmailNotificationChannelDefinition struct {
	// Recipients The email addresses of the recipients.
	Recipients []string `json:"recipients"`
}

// EnvironmentObject defines model for EnvironmentObject.
type EnvironmentObject struct {
	AirflowVariable *EnvironmentObjectAirflowVariable `json:"airflowVariable,omitempty"`

	// AutoLinkDeployments Whether or not to automatically link Deployments to the environment object
	AutoLinkDeployments *bool                        `json:"autoLinkDeployments,omitempty"`
	Connection          *EnvironmentObjectConnection `json:"connection,omitempty"`

	// CreatedAt The time when the environment object was created in UTC, formatted as `YYYY-MM-DDTHH:MM:SSZ`
	CreatedAt *string              `json:"createdAt,omitempty"`
	CreatedBy *BasicSubjectProfile `json:"createdBy,omitempty"`

	// ExcludeLinks The excluded links for the environment object
	ExcludeLinks *[]EnvironmentObjectExcludeLink `json:"excludeLinks,omitempty"`

	// Id The ID of the environment object
	Id *string `json:"id,omitempty"`

	// Links The Deployments linked to the environment object
	Links         *[]EnvironmentObjectLink        `json:"links,omitempty"`
	MetricsExport *EnvironmentObjectMetricsExport `json:"metricsExport,omitempty"`

	// ObjectKey The key for the environment object
	ObjectKey string `json:"objectKey"`

	// ObjectType The type of environment object
	ObjectType EnvironmentObjectObjectType `json:"objectType"`

	// Scope The scope of the environment object
	Scope EnvironmentObjectScope `json:"scope"`

	// ScopeEntityId The ID of the scope entity where the environment object is created
	ScopeEntityId string `json:"scopeEntityId"`

	// SourceScope The source scope of the environment object, if it is resolved from a link
	SourceScope *EnvironmentObjectSourceScope `json:"sourceScope,omitempty"`

	// SourceScopeEntityId The source scope entity ID of the environment object, if it is resolved from a link
	SourceScopeEntityId *string `json:"sourceScopeEntityId,omitempty"`

	// UpdatedAt The time when the environment object was updated in UTC, formatted as `YYYY-MM-DDTHH:MM:SSZ`
	UpdatedAt *string              `json:"updatedAt,omitempty"`
	UpdatedBy *BasicSubjectProfile `json:"updatedBy,omitempty"`
}

// EnvironmentObjectObjectType The type of environment object
type EnvironmentObjectObjectType string

// EnvironmentObjectScope The scope of the environment object
type EnvironmentObjectScope string

// EnvironmentObjectSourceScope The source scope of the environment object, if it is resolved from a link
type EnvironmentObjectSourceScope string

// EnvironmentObjectAirflowVariable defines model for EnvironmentObjectAirflowVariable.
type EnvironmentObjectAirflowVariable struct {
	// IsSecret Whether the value is a secret or not
	IsSecret bool `json:"isSecret"`

	// Value The value of the Airflow variable. If the value is a secret, the value returned is empty
	Value string `json:"value"`
}

// EnvironmentObjectAirflowVariableOverrides defines model for EnvironmentObjectAirflowVariableOverrides.
type EnvironmentObjectAirflowVariableOverrides struct {
	// Value The value of the Airflow variable
	Value string `json:"value"`
}

// EnvironmentObjectConnection defines model for EnvironmentObjectConnection.
type EnvironmentObjectConnection struct {
	ConnectionAuthType *ConnectionAuthType `json:"connectionAuthType,omitempty"`

	// Extra Extra connection details, if any
	Extra *map[string]interface{} `json:"extra,omitempty"`

	// Host The host address for the connection
	Host *string `json:"host,omitempty"`

	// Login The username used for the connection
	Login *string `json:"login,omitempty"`

	// Password The password used for the connection
	Password *string `json:"password,omitempty"`

	// Port The port for the connection
	Port *int `json:"port,omitempty"`

	// Schema The schema for the connection
	Schema *string `json:"schema,omitempty"`

	// Type The type of connection
	Type string `json:"type"`
}

// EnvironmentObjectConnectionOverrides defines model for EnvironmentObjectConnectionOverrides.
type EnvironmentObjectConnectionOverrides struct {
	// Extra Extra connection details, if any
	Extra *map[string]interface{} `json:"extra,omitempty"`

	// Host The host address for the connection
	Host *string `json:"host,omitempty"`

	// Login The username used for the connection
	Login *string `json:"login,omitempty"`

	// Password The password used for the connection
	Password *string `json:"password,omitempty"`

	// Port The port for the connection
	Port *int `json:"port,omitempty"`

	// Schema The schema for the connection
	Schema *string `json:"schema,omitempty"`

	// Type The type of connection
	Type *string `json:"type,omitempty"`
}

// EnvironmentObjectExcludeLink defines model for EnvironmentObjectExcludeLink.
type EnvironmentObjectExcludeLink struct {
	// Scope Scope of the excluded entity for environment object
	Scope EnvironmentObjectExcludeLinkScope `json:"scope"`

	// ScopeEntityId ID for the excluded entity for the environment object
	ScopeEntityId string `json:"scopeEntityId"`
}

// EnvironmentObjectExcludeLinkScope Scope of the excluded entity for environment object
type EnvironmentObjectExcludeLinkScope string

// EnvironmentObjectLink defines model for EnvironmentObjectLink.
type EnvironmentObjectLink struct {
	AirflowVariableOverrides *EnvironmentObjectAirflowVariableOverrides `json:"airflowVariableOverrides,omitempty"`
	ConnectionOverrides      *EnvironmentObjectConnectionOverrides      `json:"connectionOverrides,omitempty"`
	MetricsExportOverrides   *EnvironmentObjectMetricsExportOverrides   `json:"metricsExportOverrides,omitempty"`

	// Scope Scope of the linked entity for the environment object
	Scope EnvironmentObjectLinkScope `json:"scope"`

	// ScopeEntityId Linked entity ID the environment object
	ScopeEntityId string `json:"scopeEntityId"`
}

// EnvironmentObjectLinkScope Scope of the linked entity for the environment object
type EnvironmentObjectLinkScope string

// EnvironmentObjectMetricsExport defines model for EnvironmentObjectMetricsExport.
type EnvironmentObjectMetricsExport struct {
	// AuthType The type of authentication to use when connecting to the remote endpoint
	AuthType *EnvironmentObjectMetricsExportAuthType `json:"authType,omitempty"`

	// BasicToken The bearer token to connect to the remote endpoint
	BasicToken *string `json:"basicToken,omitempty"`

	// Endpoint The Prometheus endpoint where the metrics are exported
	Endpoint string `json:"endpoint"`

	// ExporterType The type of exporter
	ExporterType EnvironmentObjectMetricsExportExporterType `json:"exporterType"`

	// Headers Add key-value pairs to the HTTP request headers made by Astro when connecting to the remote endpoint
	Headers *map[string]string `json:"headers,omitempty"`

	// Labels Any key-value pair metrics labels for your export. You can use these to filter your metrics in downstream applications.
	Labels *map[string]string `json:"labels,omitempty"`

	// Password The password to connect to the remote endpoint
	Password *string `json:"password,omitempty"`

	// Username The username to connect to the remote endpoint
	Username *string `json:"username,omitempty"`
}

// EnvironmentObjectMetricsExportAuthType The type of authentication to use when connecting to the remote endpoint
type EnvironmentObjectMetricsExportAuthType string

// EnvironmentObjectMetricsExportExporterType The type of exporter
type EnvironmentObjectMetricsExportExporterType string

// EnvironmentObjectMetricsExportOverrides defines model for EnvironmentObjectMetricsExportOverrides.
type EnvironmentObjectMetricsExportOverrides struct {
	// AuthType The type of authentication to use when connecting to the remote endpoint
	AuthType *EnvironmentObjectMetricsExportOverridesAuthType `json:"authType,omitempty"`

	// BasicToken The bearer token to connect to the remote endpoint
	BasicToken *string `json:"basicToken,omitempty"`

	// Endpoint The Prometheus endpoint where the metrics are exported
	Endpoint *string `json:"endpoint,omitempty"`

	// ExporterType The type of exporter
	ExporterType *EnvironmentObjectMetricsExportOverridesExporterType `json:"exporterType,omitempty"`

	// Headers Add key-value pairs to the HTTP request headers made by Astro when connecting to the remote endpoint
	Headers *map[string]string `json:"headers,omitempty"`

	// Labels Any key-value pair metrics labels for your export. You can use these to filter your metrics in downstream applications.
	Labels *map[string]string `json:"labels,omitempty"`

	// Password The password to connect to the remote endpoint
	Password *string `json:"password,omitempty"`

	// Username The username to connect to the remote endpoint
	Username *string `json:"username,omitempty"`
}

// EnvironmentObjectMetricsExportOverridesAuthType The type of authentication to use when connecting to the remote endpoint
type EnvironmentObjectMetricsExportOverridesAuthType string

// EnvironmentObjectMetricsExportOverridesExporterType The type of exporter
type EnvironmentObjectMetricsExportOverridesExporterType string

// EnvironmentObjectsPaginated defines model for EnvironmentObjectsPaginated.
type EnvironmentObjectsPaginated struct {
	// EnvironmentObjects The list of environment objects
	EnvironmentObjects []EnvironmentObject `json:"environmentObjects"`

	// Limit The maximum number of environment objects in current page
	Limit int `json:"limit"`

	// Offset The offset of the current page of environment objects
	Offset int `json:"offset"`

	// TotalCount The total number of environment objects
	TotalCount int `json:"totalCount"`
}

// Error defines model for Error.
type Error struct {
	Message    string `json:"message"`
	RequestId  string `json:"requestId"`
	StatusCode int    `json:"statusCode"`
}

// ExcludeLinkEnvironmentObjectRequest defines model for ExcludeLinkEnvironmentObjectRequest.
type ExcludeLinkEnvironmentObjectRequest struct {
	// Scope Scope of the entity to exclude for environment object
	Scope ExcludeLinkEnvironmentObjectRequestScope `json:"scope"`

	// ScopeEntityId Entity ID to exclude for the environment object
	ScopeEntityId string `json:"scopeEntityId"`
}

// ExcludeLinkEnvironmentObjectRequestScope Scope of the entity to exclude for environment object
type ExcludeLinkEnvironmentObjectRequestScope string

// HybridWorkerQueueRequest defines model for HybridWorkerQueueRequest.
type HybridWorkerQueueRequest struct {
	// Id The worker queue's ID. If not provided, a new worker queue will be created.
	Id *string `json:"id,omitempty"`

	// IsDefault Whether the worker queue is the default worker queue on the Deployment.
	IsDefault bool `json:"isDefault"`

	// MaxWorkerCount The maximum number of workers that can run at once.
	MaxWorkerCount int `json:"maxWorkerCount"`

	// MinWorkerCount The minimum number of workers running at once.
	MinWorkerCount int `json:"minWorkerCount"`

	// Name The worker queue's name.
	Name string `json:"name"`

	// NodePoolId The node pool ID associated with the worker queue.
	NodePoolId string `json:"nodePoolId"`

	// WorkerConcurrency The maximum number of concurrent tasks that a worker Pod can run at a time.
	WorkerConcurrency int `json:"workerConcurrency"`
}

// MachineSpec defines model for MachineSpec.
type MachineSpec struct {
	// Concurrency The maximum number of tasks that a given machine instance can run at once.
	Concurrency *float32 `json:"concurrency,omitempty"`

	// Cpu The CPU quantity. Units are in number of CPU cores.
	Cpu string `json:"cpu"`

	// EphemeralStorage The ephemeral storage quantity. Units in Gibibytes or `Gi`.
	EphemeralStorage *string `json:"ephemeralStorage,omitempty"`

	// Memory The memory quantity. Units in Gibibytes or `Gi`.
	Memory string `json:"memory"`
}

// ManagedDomain defines model for ManagedDomain.
type ManagedDomain struct {
	// CreatedAt The time when the domain was created in UTC, formatted as `YYYY-MM-DDTHH:MM:SSZ`.
	CreatedAt time.Time `json:"createdAt"`

	// EnforcedLogins A list of login types that are enforced for users belonging to the domain.
	EnforcedLogins *[]string `json:"enforcedLogins,omitempty"`

	// Id The managed domain's ID.
	Id string `json:"id"`

	// Name The managed domain's name/ URL.
	Name string `json:"name"`

	// OrganizationId The ID of the Organization to which the managed domain belongs.
	OrganizationId string `json:"organizationId"`

	// Status Whether the managed domain has completed the verification process.
	Status ManagedDomainStatus `json:"status"`

	// UpdatedAt The time when the domain was last updated in UTC, formatted as `YYYY-MM-DDTHH:MM:SSZ`.
	UpdatedAt time.Time `json:"updatedAt"`
}

// ManagedDomainStatus Whether the managed domain has completed the verification process.
type ManagedDomainStatus string

// NodePool defines model for NodePool.
type NodePool struct {
	// CloudProvider The name of the cloud provider.
	CloudProvider NodePoolCloudProvider `json:"cloudProvider"`

	// ClusterId The ID of the cluster that the node pool belongs to.
	ClusterId string `json:"clusterId"`

	// CreatedAt The time when the node pool was created in UTC, formatted as `YYYY-MM-DDTHH:MM:SSZ`.
	CreatedAt time.Time `json:"createdAt"`

	// Id The node pool's ID.
	Id string `json:"id"`

	// IsDefault Whether the node pool is the default node pool of the cluster.
	IsDefault bool `json:"isDefault"`

	// MaxNodeCount The maximum number of nodes that can be created in the node pool.
	MaxNodeCount int `json:"maxNodeCount"`

	// Name The name of the node pool.
	Name string `json:"name"`

	// NodeInstanceType The type of node instance that is used for the node pool.
	NodeInstanceType string `json:"nodeInstanceType"`

	// SupportedAstroMachines The list of supported Astro machines for the node pool. Returned only for Hosted dedicated clusters.
	SupportedAstroMachines *[]string `json:"supportedAstroMachines,omitempty"`

	// UpdatedAt The time when the node pool was last updated in UTC, formatted as `YYYY-MM-DDTHH:MM:SSZ`.
	UpdatedAt time.Time `json:"updatedAt"`
}

// NodePoolCloudProvider The name of the cloud provider.
type NodePoolCloudProvider string

// NotificationChannel defines model for NotificationChannel.
type NotificationChannel struct {
	// CreatedAt The time when the alert was created in UTC, formatted as `YYYY-MM-DDTHH:MM:SSZ`.
	CreatedAt string              `json:"createdAt"`
	CreatedBy BasicSubjectProfile `json:"createdBy"`

	// Definition The notification channel's definition.
	Definition interface{} `json:"definition"`

	// DeploymentId The deployment ID the notification channel is scoped to.
	DeploymentId *string `json:"deploymentId,omitempty"`

	// EntityId The entity ID the notification channel is scoped to.
	EntityId string `json:"entityId"`

	// EntityName The name of the entity the notification channel is scoped to.
	EntityName *string `json:"entityName,omitempty"`

	// EntityType The type of entity the notification channel is scoped to.
	EntityType string `json:"entityType"`

	// Id The notification channel's ID.
	Id string `json:"id"`

	// IsShared When entity type is scoped to ORGANIZATION or WORKSPACE, this determines if child entities can access this notification channel.
	IsShared bool `json:"isShared"`

	// Name The notification channel's name.
	Name string `json:"name"`

	// OrganizationId The organization ID the notification channel is scoped to.
	OrganizationId string `json:"organizationId"`

	// Type The notification channel's type.
	Type string `json:"type"`

	// UpdatedAt The time when the alert was updated in UTC, formatted as `YYYY-MM-DDTHH:MM:SSZ`.
	UpdatedAt string              `json:"updatedAt"`
	UpdatedBy BasicSubjectProfile `json:"updatedBy"`

	// WorkspaceId The workspace ID the notification channel is scoped to.
	WorkspaceId *string `json:"workspaceId,omitempty"`
}

// NotificationChannelsPaginated defines model for NotificationChannelsPaginated.
type NotificationChannelsPaginated struct {
	// Limit The maximum number of notification channels to return.
	Limit int `json:"limit"`

	// NotificationChannels The notification channels.
	NotificationChannels []NotificationChannel `json:"notificationChannels"`

	// Offset The offset of the first notification channel in the list.
	Offset int `json:"offset"`

	// TotalCount The total number of notification channels.
	TotalCount int `json:"totalCount"`
}

// OpsgenieNotificationChannelDefinition defines model for OpsgenieNotificationChannelDefinition.
type OpsgenieNotificationChannelDefinition struct {
	// ApiKey The Opsgenie API key.
	ApiKey string `json:"apiKey"`
}

// Organization defines model for Organization.
type Organization struct {
	// AllowEnhancedSupportAccess Whether the organization allows CRE to have view access to their entities
	AllowEnhancedSupportAccess bool `json:"allowEnhancedSupportAccess"`

	// BillingEmail The Organization's billing email.
	BillingEmail *string `json:"billingEmail,omitempty"`

	// CreatedAt The time when the Organization was created in UTC, formatted as `YYYY-MM-DDTHH:MM:SSZ`.
	CreatedAt time.Time           `json:"createdAt"`
	CreatedBy BasicSubjectProfile `json:"createdBy"`

	// Id The Organization's ID.
	Id string `json:"id"`

	// IsScimEnabled Whether SCIM is enabled for the Organization.
	IsScimEnabled bool `json:"isScimEnabled"`

	// ManagedDomains The list of managed domains configured in the Organization.
	ManagedDomains *[]ManagedDomain `json:"managedDomains,omitempty"`

	// Name The Organization's name.
	Name string `json:"name"`

	// PaymentMethod The Organization's payment method.
	PaymentMethod *OrganizationPaymentMethod `json:"paymentMethod,omitempty"`

	// Product The Organization's product type.
	Product      *OrganizationProduct       `json:"product,omitempty"`
	ProductPlans *[]OrganizationProductPlan `json:"productPlans,omitempty"`

	// Status The Organization's status.
	Status *OrganizationStatus `json:"status,omitempty"`

	// SupportPlan The Organization's support plan.
	SupportPlan OrganizationSupportPlan `json:"supportPlan"`

	// TrialExpiresAt The time when the Organization's trial expires in UTC, formatted as `YYYY-MM-DDTHH:MM:SSZ`. Organizations that are no longer in Trial will not have a expiry date.
	TrialExpiresAt *time.Time `json:"trialExpiresAt,omitempty"`

	// UpdatedAt The time when the Organization was last updated in UTC, formatted as `YYYY-MM-DDTHH:MM:SSZ`.
	UpdatedAt time.Time           `json:"updatedAt"`
	UpdatedBy BasicSubjectProfile `json:"updatedBy"`
}

// OrganizationPaymentMethod The Organization's payment method.
type OrganizationPaymentMethod string

// OrganizationProduct The Organization's product type.
type OrganizationProduct string

// OrganizationStatus The Organization's status.
type OrganizationStatus string

// OrganizationSupportPlan The Organization's support plan.
type OrganizationSupportPlan string

// OrganizationProductPlan defines model for OrganizationProductPlan.
type OrganizationProductPlan struct {
	AstronomerProduct OrganizationProductPlanAstronomerProduct `json:"astronomerProduct"`
	OrganizationId    string                                   `json:"organizationId"`
	ProductPlanId     string                                   `json:"productPlanId"`
	ProductPlanName   string                                   `json:"productPlanName"`
}

// OrganizationProductPlanAstronomerProduct defines model for OrganizationProductPlan.AstronomerProduct.
type OrganizationProductPlanAstronomerProduct string

// OrganizationsPaginated defines model for OrganizationsPaginated.
type OrganizationsPaginated struct {
	// Limit The maximum number of Organizations in the page.
	Limit int `json:"limit"`

	// Offset The offset of the Organizations in the page.
	Offset int `json:"offset"`

	// Organizations The list of Organizations in the page.
	Organizations []Organization `json:"organizations"`

	// TotalCount The total number of Organizations.
	TotalCount int `json:"totalCount"`
}

// OverrideDeploymentHibernationBody defines model for OverrideDeploymentHibernationBody.
type OverrideDeploymentHibernationBody struct {
	// IsHibernating The type of override to perform. Set this value to 'true' to have the Deployment hibernate regardless of its hibernation schedule. Set the value to 'false' to have the Deployment wake up regardless of its hibernation schedule. Use 'OverrideUntil' to define the length of the override.
	IsHibernating bool `json:"isHibernating"`

	// OverrideUntil The end of the override time in UTC, formatted as 'YYYY-MM-DDTHH:MM:SSZ'. If this value isn't specified, the override persists until you end it through the Astro UI or another API call.
	OverrideUntil *time.Time `json:"overrideUntil,omitempty"`
}

// PagerDutyNotificationChannelDefinition defines model for PagerDutyNotificationChannelDefinition.
type PagerDutyNotificationChannelDefinition struct {
	// IntegrationKey The Pager Duty integration key.
	IntegrationKey string `json:"integrationKey"`
}

// PatternMatch defines model for PatternMatch.
type PatternMatch struct {
	// EntityType The type of entity to match against.
	EntityType PatternMatchEntityType `json:"entityType"`

	// OperatorType The type of operator to use for the pattern match.
	OperatorType PatternMatchOperatorType `json:"operatorType"`

	// Values The values to match against.
	Values []string `json:"values"`
}

// PatternMatchEntityType The type of entity to match against.
type PatternMatchEntityType string

// PatternMatchOperatorType The type of operator to use for the pattern match.
type PatternMatchOperatorType string

// PatternMatchRequest defines model for PatternMatchRequest.
type PatternMatchRequest struct {
	// EntityType The type of entity to match against.
	EntityType PatternMatchRequestEntityType `json:"entityType"`

	// OperatorType The type of operator to use for the pattern match.
	OperatorType PatternMatchRequestOperatorType `json:"operatorType"`

	// Values The values to match against.
	Values []string `json:"values"`
}

// PatternMatchRequestEntityType The type of entity to match against.
type PatternMatchRequestEntityType string

// PatternMatchRequestOperatorType The type of operator to use for the pattern match.
type PatternMatchRequestOperatorType string

// ProviderInstanceType defines model for ProviderInstanceType.
type ProviderInstanceType struct {
	// Cpu The number of CPUs. Units are in number of CPU cores.
	Cpu int `json:"cpu"`

	// Memory The amount of memory. Units in Gibibytes or `Gi`.
	Memory string `json:"memory"`

	// Name The name of the instance type.
	Name string `json:"name"`
}

// ProviderRegion defines model for ProviderRegion.
type ProviderRegion struct {
	// BannedInstances The banned instances in the region.
	BannedInstances *[]string `json:"bannedInstances,omitempty"`

	// Limited Whether the region is limited.
	Limited *bool `json:"limited,omitempty"`

	// Name The name of the region.
	Name string `json:"name"`
}

// Range defines model for Range.
type Range struct {
	// Ceiling The maximum value.
	Ceiling float32 `json:"ceiling"`

	// Default The default value.
	Default float32 `json:"default"`

	// Floor The minimum value.
	Floor float32 `json:"floor"`
}

// ResourceOption defines model for ResourceOption.
type ResourceOption struct {
	Cpu    ResourceRange `json:"cpu"`
	Memory ResourceRange `json:"memory"`
}

// ResourceQuotaOptions defines model for ResourceQuotaOptions.
type ResourceQuotaOptions struct {
	DefaultPodSize ResourceOption `json:"defaultPodSize"`
	ResourceQuota  ResourceOption `json:"resourceQuota"`
}

// ResourceRange defines model for ResourceRange.
type ResourceRange struct {
	// Ceiling The maximum value.
	Ceiling string `json:"ceiling"`

	// Default The default value.
	Default string `json:"default"`

	// Floor The minimum value.
	Floor string `json:"floor"`
}

// RuntimeRelease defines model for RuntimeRelease.
type RuntimeRelease struct {
	// AirflowDatabaseMigration Whether the release requires an Airflow database migration.
	AirflowDatabaseMigration bool `json:"airflowDatabaseMigration"`

	// AirflowVersion The Airflow version that the Runtime image is based on.
	AirflowVersion string `json:"airflowVersion"`

	// Channel The release channel.
	Channel string `json:"channel"`

	// ReleaseDate The time when the version is released in UTC, formatted as `YYYY-MM-DDTHH:MM:SSZ`.
	ReleaseDate time.Time `json:"releaseDate"`

	// StellarDatabaseMigration Whether the release requires a Stellar database migration.
	StellarDatabaseMigration bool `json:"stellarDatabaseMigration"`

	// Version The Astro Runtime version.
	Version string `json:"version"`
}

// SchedulerMachine defines model for SchedulerMachine.
type SchedulerMachine struct {
	// Name The machine's name.
	Name SchedulerMachineName `json:"name"`
	Spec MachineSpec          `json:"spec"`
}

// SchedulerMachineName The machine's name.
type SchedulerMachineName string

// SlackNotificationChannelDefinition defines model for SlackNotificationChannelDefinition.
type SlackNotificationChannelDefinition struct {
	// WebhookUrl The Slack webhook URL.
	WebhookUrl string `json:"webhookUrl"`
}

// UpdateAlertRequest defines model for UpdateAlertRequest.
type UpdateAlertRequest struct {
	union json.RawMessage
}

// UpdateClusterRequest defines model for UpdateClusterRequest.
type UpdateClusterRequest struct {
	union json.RawMessage
}

// UpdateDagDurationAlertProperties defines model for UpdateDagDurationAlertProperties.
type UpdateDagDurationAlertProperties struct {
	// DagDurationSeconds The duration of the DAG in seconds.
	DagDurationSeconds *int `json:"dagDurationSeconds,omitempty"`
}

// UpdateDagDurationAlertRequest defines model for UpdateDagDurationAlertRequest.
type UpdateDagDurationAlertRequest struct {
	// Name The alert's name.
	Name *string `json:"name,omitempty"`

	// NotificationChannelIds The notification channels to send alerts to.
	NotificationChannelIds *[]string                    `json:"notificationChannelIds,omitempty"`
	Rules                  *UpdateDagDurationAlertRules `json:"rules,omitempty"`

	// Severity The alert's severity.
	Severity *UpdateDagDurationAlertRequestSeverity `json:"severity,omitempty"`

	// Type The alert's type.
	Type *UpdateDagDurationAlertRequestType `json:"type,omitempty"`
}

// UpdateDagDurationAlertRequestSeverity The alert's severity.
type UpdateDagDurationAlertRequestSeverity string

// UpdateDagDurationAlertRequestType The alert's type.
type UpdateDagDurationAlertRequestType string

// UpdateDagDurationAlertRules defines model for UpdateDagDurationAlertRules.
type UpdateDagDurationAlertRules struct {
	// PatternMatches The alert's pattern matches to match against.
	PatternMatches *[]PatternMatchRequest            `json:"patternMatches,omitempty"`
	Properties     *UpdateDagDurationAlertProperties `json:"properties,omitempty"`
}

// UpdateDagFailureAlertRequest defines model for UpdateDagFailureAlertRequest.
type UpdateDagFailureAlertRequest struct {
	// Name The alert's name.
	Name *string `json:"name,omitempty"`

	// NotificationChannelIds The notification channels to send alerts to.
	NotificationChannelIds *[]string                   `json:"notificationChannelIds,omitempty"`
	Rules                  *UpdateDagFailureAlertRules `json:"rules,omitempty"`

	// Severity The alert's severity.
	Severity *UpdateDagFailureAlertRequestSeverity `json:"severity,omitempty"`

	// Type The alert's type.
	Type *UpdateDagFailureAlertRequestType `json:"type,omitempty"`
}

// UpdateDagFailureAlertRequestSeverity The alert's severity.
type UpdateDagFailureAlertRequestSeverity string

// UpdateDagFailureAlertRequestType The alert's type.
type UpdateDagFailureAlertRequestType string

// UpdateDagFailureAlertRules defines model for UpdateDagFailureAlertRules.
type UpdateDagFailureAlertRules struct {
	// PatternMatches The alert's pattern matches to match against.
	PatternMatches *[]PatternMatchRequest `json:"patternMatches,omitempty"`
}

// UpdateDagSuccessAlertRequest defines model for UpdateDagSuccessAlertRequest.
type UpdateDagSuccessAlertRequest struct {
	// Name The alert's name.
	Name *string `json:"name,omitempty"`

	// NotificationChannelIds The notification channels to send alerts to.
	NotificationChannelIds *[]string                   `json:"notificationChannelIds,omitempty"`
	Rules                  *UpdateDagSuccessAlertRules `json:"rules,omitempty"`

	// Severity The alert's severity.
	Severity *UpdateDagSuccessAlertRequestSeverity `json:"severity,omitempty"`

	// Type The alert's type.
	Type *UpdateDagSuccessAlertRequestType `json:"type,omitempty"`
}

// UpdateDagSuccessAlertRequestSeverity The alert's severity.
type UpdateDagSuccessAlertRequestSeverity string

// UpdateDagSuccessAlertRequestType The alert's type.
type UpdateDagSuccessAlertRequestType string

// UpdateDagSuccessAlertRules defines model for UpdateDagSuccessAlertRules.
type UpdateDagSuccessAlertRules struct {
	// PatternMatches The alert's pattern matches to match against.
	PatternMatches *[]PatternMatchRequest `json:"patternMatches,omitempty"`
}

// UpdateDagTimelinessAlertProperties defines model for UpdateDagTimelinessAlertProperties.
type UpdateDagTimelinessAlertProperties struct {
	// DagDeadline The deadline for the DAG in HH:MM 24-hour format, in UTC time.
	DagDeadline *string `json:"dagDeadline,omitempty"`

	// DaysOfWeek The days of the week for the alert.
	DaysOfWeek *[]string `json:"daysOfWeek,omitempty"`

	// LookBackPeriodSeconds The look-back period in seconds.
	LookBackPeriodSeconds *int `json:"lookBackPeriodSeconds,omitempty"`
}

// UpdateDagTimelinessAlertRequest defines model for UpdateDagTimelinessAlertRequest.
type UpdateDagTimelinessAlertRequest struct {
	// Name The alert's name.
	Name *string `json:"name,omitempty"`

	// NotificationChannelIds The notification channels to send alerts to.
	NotificationChannelIds *[]string                      `json:"notificationChannelIds,omitempty"`
	Rules                  *UpdateDagTimelinessAlertRules `json:"rules,omitempty"`

	// Severity The alert's severity.
	Severity *UpdateDagTimelinessAlertRequestSeverity `json:"severity,omitempty"`

	// Type The alert's type.
	Type *UpdateDagTimelinessAlertRequestType `json:"type,omitempty"`
}

// UpdateDagTimelinessAlertRequestSeverity The alert's severity.
type UpdateDagTimelinessAlertRequestSeverity string

// UpdateDagTimelinessAlertRequestType The alert's type.
type UpdateDagTimelinessAlertRequestType string

// UpdateDagTimelinessAlertRules defines model for UpdateDagTimelinessAlertRules.
type UpdateDagTimelinessAlertRules struct {
	// PatternMatches The alert's pattern matches to match against.
	PatternMatches *[]PatternMatchRequest              `json:"patternMatches,omitempty"`
	Properties     *UpdateDagTimelinessAlertProperties `json:"properties,omitempty"`
}

// UpdateDagTriggerNotificationChannelRequest defines model for UpdateDagTriggerNotificationChannelRequest.
type UpdateDagTriggerNotificationChannelRequest struct {
	Definition *DagTriggerNotificationChannelDefinition `json:"definition,omitempty"`

	// IsShared When entity type is scoped to ORGANIZATION or WORKSPACE, this determines if child entities can access this notification channel.
	IsShared *bool `json:"isShared,omitempty"`

	// Name The notification channel's name.
	Name *string `json:"name,omitempty"`

	// Type The notification channel's type.
	Type *UpdateDagTriggerNotificationChannelRequestType `json:"type,omitempty"`
}

// UpdateDagTriggerNotificationChannelRequestType The notification channel's type.
type UpdateDagTriggerNotificationChannelRequestType string

// UpdateDedicatedClusterRequest defines model for UpdateDedicatedClusterRequest.
type UpdateDedicatedClusterRequest struct {
	// ClusterType The cluster's type.
	ClusterType *UpdateDedicatedClusterRequestClusterType `json:"clusterType,omitempty"`

	// DbInstanceType The cluster's database instance type. Required for Hybrid clusters.
	DbInstanceType *string `json:"dbInstanceType,omitempty"`

	// K8sTags A list of Kubernetes tags to add to the cluster.
	K8sTags []ClusterK8sTag `json:"k8sTags"`

	// Name The cluster's name.
	Name string `json:"name"`

	// NodePools A list of node pools to add to the cluster. For Hybrid clusters only.
	NodePools *[]UpdateNodePoolRequest `json:"nodePools,omitempty"`

	// WorkspaceIds The list of Workspaces that are authorized to the cluster. If this value is not provided, the existing list of Workspaces remains. If this value is '[]' then all workspace cluster mappings are removed.
	WorkspaceIds *[]string `json:"workspaceIds,omitempty"`
}

// UpdateDedicatedClusterRequestClusterType The cluster's type.
type UpdateDedicatedClusterRequestClusterType string

// UpdateDedicatedDeploymentRequest defines model for UpdateDedicatedDeploymentRequest.
type UpdateDedicatedDeploymentRequest struct {
	// ContactEmails A list of contact emails for the Deployment.
	ContactEmails *[]string `json:"contactEmails,omitempty"`

	// DefaultTaskPodCpu The default CPU resource usage for a worker Pod when running the Kubernetes executor or KubernetesPodOperator. Units are in number of CPU cores. Required if Remote Execution is disabled.
	DefaultTaskPodCpu *string `json:"defaultTaskPodCpu,omitempty"`

	// DefaultTaskPodMemory The default memory resource usage for a worker Pod when running the Kubernetes executor or KubernetesPodOperator. Units are in `Gi` and must be explicitly included. This value must always be twice the value of `DefaultTaskPodCpu`. Required if Remote Execution is disabled.
	DefaultTaskPodMemory *string `json:"defaultTaskPodMemory,omitempty"`

	// Description The Deployment's description.
	Description *string `json:"description,omitempty"`

	// EnvironmentVariables List of environment variables to add to the Deployment.
	EnvironmentVariables []DeploymentEnvironmentVariableRequest `json:"environmentVariables"`

	// Executor The Deployment's executor type.
	Executor UpdateDedicatedDeploymentRequestExecutor `json:"executor"`

	// IsCicdEnforced Whether the Deployment requires that all deploys are made through CI/CD.
	IsCicdEnforced bool `json:"isCicdEnforced"`

	// IsDagDeployEnabled Whether the Deployment has DAG deploys enabled.
	IsDagDeployEnabled bool `json:"isDagDeployEnabled"`

	// IsDevelopmentMode Whether the Deployment is for development only. If `false`, the Deployment can be considered production for the purposes of support case priority, but development-only features such as hibernation will not be available. You can't update this value to `true` for existing non-development Deployments.
	IsDevelopmentMode *bool `json:"isDevelopmentMode,omitempty"`

	// IsHighAvailability Whether the Deployment is configured for high availability. If `true`, multiple scheduler pods will be online.
	IsHighAvailability bool `json:"isHighAvailability"`

	// Name The Deployment's name.
	Name            string                            `json:"name"`
	RemoteExecution *DeploymentRemoteExecutionRequest `json:"remoteExecution,omitempty"`

	// ResourceQuotaCpu The CPU quota for worker Pods when running the Kubernetes executor or KubernetesPodOperator. If current CPU usage across all workers exceeds the quota, no new worker Pods can be scheduled. Units are in number of CPU cores. Required if Remote Execution is disabled.
	ResourceQuotaCpu *string `json:"resourceQuotaCpu,omitempty"`

	// ResourceQuotaMemory The memory quota for worker Pods when running the Kubernetes executor or KubernetesPodOperator. If current memory usage across all workers exceeds the quota, no new worker Pods can be scheduled. Units are in `Gi` and must be explicitly included. This value must always be twice the value of `ResourceQuotaCpu`. Required if Remote Execution is disabled.
	ResourceQuotaMemory *string                       `json:"resourceQuotaMemory,omitempty"`
	ScalingSpec         *DeploymentScalingSpecRequest `json:"scalingSpec,omitempty"`

	// SchedulerSize The size of the scheduler Pod.
	SchedulerSize UpdateDedicatedDeploymentRequestSchedulerSize `json:"schedulerSize"`

	// Type The type of the Deployment.
	Type UpdateDedicatedDeploymentRequestType `json:"type"`

	// WorkerQueues A list of the Deployment's worker queues. Applies only when `Executor` is `CELERY` or if Remote Execution is disabled and executor is `ASTRO`. All these Deployments need at least 1 worker queue called `default`.
	WorkerQueues *[]WorkerQueueRequest `json:"workerQueues,omitempty"`

	// WorkloadIdentity The Deployment's workload identity.
	WorkloadIdentity *string `json:"workloadIdentity,omitempty"`

	// WorkspaceId The ID of the Workspace to which the Deployment belongs.
	WorkspaceId string `json:"workspaceId"`
}

// UpdateDedicatedDeploymentRequestExecutor The Deployment's executor type.
type UpdateDedicatedDeploymentRequestExecutor string

// UpdateDedicatedDeploymentRequestSchedulerSize The size of the scheduler Pod.
type UpdateDedicatedDeploymentRequestSchedulerSize string

// UpdateDedicatedDeploymentRequestType The type of the Deployment.
type UpdateDedicatedDeploymentRequestType string

// UpdateDeploymentRequest defines model for UpdateDeploymentRequest.
type UpdateDeploymentRequest struct {
	union json.RawMessage
}

// UpdateEmailNotificationChannelRequest defines model for UpdateEmailNotificationChannelRequest.
type UpdateEmailNotificationChannelRequest struct {
	Definition *EmailNotificationChannelDefinition `json:"definition,omitempty"`

	// IsShared When entity type is scoped to ORGANIZATION or WORKSPACE, this determines if child entities can access this notification channel.
	IsShared *bool `json:"isShared,omitempty"`

	// Name The notification channel's name.
	Name *string `json:"name,omitempty"`

	// Type The notification channel's type.
	Type *UpdateEmailNotificationChannelRequestType `json:"type,omitempty"`
}

// UpdateEmailNotificationChannelRequestType The notification channel's type.
type UpdateEmailNotificationChannelRequestType string

// UpdateEnvironmentObjectAirflowVariableOverridesRequest defines model for UpdateEnvironmentObjectAirflowVariableOverridesRequest.
type UpdateEnvironmentObjectAirflowVariableOverridesRequest struct {
	// Value The value of the Airflow variable
	Value *string `json:"value,omitempty"`
}

// UpdateEnvironmentObjectAirflowVariableRequest defines model for UpdateEnvironmentObjectAirflowVariableRequest.
type UpdateEnvironmentObjectAirflowVariableRequest struct {
	// Value The value of the Airflow variable
	Value *string `json:"value,omitempty"`
}

// UpdateEnvironmentObjectConnectionOverridesRequest defines model for UpdateEnvironmentObjectConnectionOverridesRequest.
type UpdateEnvironmentObjectConnectionOverridesRequest struct {
	// Extra Extra connection details, if any
	Extra *map[string]interface{} `json:"extra,omitempty"`

	// Host The host address for the connection
	Host *string `json:"host,omitempty"`

	// Login The username used for the connection
	Login *string `json:"login,omitempty"`

	// Password The password used for the connection
	Password *string `json:"password,omitempty"`

	// Port The port for the connection
	Port *int `json:"port,omitempty"`

	// Schema The schema for the connection
	Schema *string `json:"schema,omitempty"`

	// Type The type of connection
	Type *string `json:"type,omitempty"`
}

// UpdateEnvironmentObjectConnectionRequest defines model for UpdateEnvironmentObjectConnectionRequest.
type UpdateEnvironmentObjectConnectionRequest struct {
	// AuthTypeId The ID for the connection auth type
	AuthTypeId *string `json:"authTypeId,omitempty"`

	// Extra Extra connection details, if any
	Extra *map[string]interface{} `json:"extra,omitempty"`

	// Host The host address for the connection
	Host *string `json:"host,omitempty"`

	// Login The username used for the connection
	Login *string `json:"login,omitempty"`

	// Password The password used for the connection
	Password *string `json:"password,omitempty"`

	// Port The port for the connection
	Port *int `json:"port,omitempty"`

	// Schema The schema for the connection
	Schema *string `json:"schema,omitempty"`

	// Type The type of connection
	Type string `json:"type"`
}

// UpdateEnvironmentObjectLinkRequest defines model for UpdateEnvironmentObjectLinkRequest.
type UpdateEnvironmentObjectLinkRequest struct {
	Overrides *UpdateEnvironmentObjectOverridesRequest `json:"overrides,omitempty"`

	// Scope Scope of the entity to link the environment object
	Scope UpdateEnvironmentObjectLinkRequestScope `json:"scope"`

	// ScopeEntityId Entity ID to link the environment object
	ScopeEntityId string `json:"scopeEntityId"`
}

// UpdateEnvironmentObjectLinkRequestScope Scope of the entity to link the environment object
type UpdateEnvironmentObjectLinkRequestScope string

// UpdateEnvironmentObjectMetricsExportOverridesRequest defines model for UpdateEnvironmentObjectMetricsExportOverridesRequest.
type UpdateEnvironmentObjectMetricsExportOverridesRequest struct {
	// AuthType The type of authentication to use when connecting to the remote endpoint
	AuthType *UpdateEnvironmentObjectMetricsExportOverridesRequestAuthType `json:"authType,omitempty"`

	// BasicToken The bearer token to connect to the remote endpoint
	BasicToken *string `json:"basicToken,omitempty"`

	// Endpoint The Prometheus endpoint where the metrics are exported
	Endpoint *string `json:"endpoint,omitempty"`

	// ExporterType The type of exporter
	ExporterType *UpdateEnvironmentObjectMetricsExportOverridesRequestExporterType `json:"exporterType,omitempty"`

	// Headers Add key-value pairs to the HTTP request headers made by Astro when connecting to the remote endpoint
	Headers *map[string]string `json:"headers,omitempty"`

	// Labels Any key-value pair metrics labels for your export. You can use these to filter your metrics in downstream applications.
	Labels *map[string]string `json:"labels,omitempty"`

	// Password The password to connect to the remote endpoint
	Password *string `json:"password,omitempty"`

	// Username The username to connect to the remote endpoint
	Username *string `json:"username,omitempty"`
}

// UpdateEnvironmentObjectMetricsExportOverridesRequestAuthType The type of authentication to use when connecting to the remote endpoint
type UpdateEnvironmentObjectMetricsExportOverridesRequestAuthType string

// UpdateEnvironmentObjectMetricsExportOverridesRequestExporterType The type of exporter
type UpdateEnvironmentObjectMetricsExportOverridesRequestExporterType string

// UpdateEnvironmentObjectMetricsExportRequest defines model for UpdateEnvironmentObjectMetricsExportRequest.
type UpdateEnvironmentObjectMetricsExportRequest struct {
	// AuthType The type of authentication to use when connecting to the remote endpoint
	AuthType *UpdateEnvironmentObjectMetricsExportRequestAuthType `json:"authType,omitempty"`

	// BasicToken The bearer token to connect to the remote endpoint
	BasicToken *string `json:"basicToken,omitempty"`

	// Endpoint The Prometheus endpoint where the metrics are exported
	Endpoint *string `json:"endpoint,omitempty"`

	// ExporterType The type of exporter
	ExporterType *UpdateEnvironmentObjectMetricsExportRequestExporterType `json:"exporterType,omitempty"`

	// Headers Add key-value pairs to the HTTP request headers made by Astro when connecting to the remote endpoint
	Headers *map[string]string `json:"headers,omitempty"`

	// Labels Any key-value pair metrics labels for your export. You can use these to filter your metrics in downstream applications.
	Labels *map[string]string `json:"labels,omitempty"`

	// Password The password to connect to the remote endpoint
	Password *string `json:"password,omitempty"`

	// Username The username to connect to the remote endpoint
	Username *string `json:"username,omitempty"`
}

// UpdateEnvironmentObjectMetricsExportRequestAuthType The type of authentication to use when connecting to the remote endpoint
type UpdateEnvironmentObjectMetricsExportRequestAuthType string

// UpdateEnvironmentObjectMetricsExportRequestExporterType The type of exporter
type UpdateEnvironmentObjectMetricsExportRequestExporterType string

// UpdateEnvironmentObjectOverridesRequest defines model for UpdateEnvironmentObjectOverridesRequest.
type UpdateEnvironmentObjectOverridesRequest struct {
	AirflowVariable *UpdateEnvironmentObjectAirflowVariableOverridesRequest `json:"airflowVariable,omitempty"`
	Connection      *UpdateEnvironmentObjectConnectionOverridesRequest      `json:"connection,omitempty"`
	MetricsExport   *UpdateEnvironmentObjectMetricsExportOverridesRequest   `json:"metricsExport,omitempty"`
}

// UpdateEnvironmentObjectRequest defines model for UpdateEnvironmentObjectRequest.
type UpdateEnvironmentObjectRequest struct {
	AirflowVariable *UpdateEnvironmentObjectAirflowVariableRequest `json:"airflowVariable,omitempty"`

	// AutoLinkDeployments Whether or not to automatically link Deployments to the environment object. Only applicable for WORKSPACE scope
	AutoLinkDeployments *bool                                     `json:"autoLinkDeployments,omitempty"`
	Connection          *UpdateEnvironmentObjectConnectionRequest `json:"connection,omitempty"`

	// ExcludeLinks The links to exclude from the environment object. Only applicable for WORKSPACE scope
	ExcludeLinks *[]ExcludeLinkEnvironmentObjectRequest `json:"excludeLinks,omitempty"`

	// Links The Deployments that Astro links to the environment object. Only applicable for WORKSPACE scope
	Links         *[]UpdateEnvironmentObjectLinkRequest        `json:"links,omitempty"`
	MetricsExport *UpdateEnvironmentObjectMetricsExportRequest `json:"metricsExport,omitempty"`
}

// UpdateHybridClusterRequest defines model for UpdateHybridClusterRequest.
type UpdateHybridClusterRequest struct {
	// ClusterType The cluster's type.
	ClusterType UpdateHybridClusterRequestClusterType `json:"clusterType"`

	// WorkspaceIds The list of Workspaces that are authorized to the cluster. If this value is not provided, the existing list of Workspaces remains. If this value is '[]' then all workspace cluster mappings are removed.
	WorkspaceIds *[]string `json:"workspaceIds,omitempty"`
}

// UpdateHybridClusterRequestClusterType The cluster's type.
type UpdateHybridClusterRequestClusterType string

// UpdateHybridDeploymentRequest defines model for UpdateHybridDeploymentRequest.
type UpdateHybridDeploymentRequest struct {
	// ContactEmails A list of contact emails for the Deployment.
	ContactEmails *[]string `json:"contactEmails,omitempty"`

	// Description The Deployment's description.
	Description *string `json:"description,omitempty"`

	// EnvironmentVariables List of environment variables to add to the Deployment.
	EnvironmentVariables []DeploymentEnvironmentVariableRequest `json:"environmentVariables"`

	// Executor The Deployment's executor type.
	Executor UpdateHybridDeploymentRequestExecutor `json:"executor"`

	// IsCicdEnforced Whether the Deployment requires that all deploys are made through CI/CD.
	IsCicdEnforced bool `json:"isCicdEnforced"`

	// IsDagDeployEnabled Whether the Deployment has DAG deploys enabled.
	IsDagDeployEnabled bool `json:"isDagDeployEnabled"`

	// Name The Deployment's name.
	Name      string                        `json:"name"`
	Scheduler DeploymentInstanceSpecRequest `json:"scheduler"`

	// TaskPodNodePoolId The node pool ID for worker Pods. Applies only when `Executor` is `KUBERNETES`.
	TaskPodNodePoolId *string `json:"taskPodNodePoolId,omitempty"`

	// Type The type of the Deployment.
	Type UpdateHybridDeploymentRequestType `json:"type"`

	// WorkerQueues The list of worker queues configured for the Deployment. Applies only when `Executor` is `CELERY`. All Deployments need at least 1 worker queue called `default`.
	WorkerQueues *[]HybridWorkerQueueRequest `json:"workerQueues,omitempty"`

	// WorkloadIdentity The Deployment's workload identity.
	WorkloadIdentity *string `json:"workloadIdentity,omitempty"`

	// WorkspaceId The ID of the Workspace to which the Deployment belongs.
	WorkspaceId string `json:"workspaceId"`
}

// UpdateHybridDeploymentRequestExecutor The Deployment's executor type.
type UpdateHybridDeploymentRequestExecutor string

// UpdateHybridDeploymentRequestType The type of the Deployment.
type UpdateHybridDeploymentRequestType string

// UpdateNodePoolRequest defines model for UpdateNodePoolRequest.
type UpdateNodePoolRequest struct {
	// Id The node pool's ID.
	Id *string `json:"id,omitempty"`

	// IsDefault Whether the node pool is the default node pool of the cluster.
	IsDefault *bool `json:"isDefault,omitempty"`

	// MaxNodeCount The maximum number of nodes that can be created in the node pool.
	MaxNodeCount int `json:"maxNodeCount"`

	// Name The name of the node pool.
	Name string `json:"name"`

	// NodeInstanceType The type of node instance that is used for the node pool.
	NodeInstanceType string `json:"nodeInstanceType"`
}

// UpdateNotificationChannelRequest defines model for UpdateNotificationChannelRequest.
type UpdateNotificationChannelRequest struct {
	union json.RawMessage
}

// UpdateOpsgenieNotificationChannelRequest defines model for UpdateOpsgenieNotificationChannelRequest.
type UpdateOpsgenieNotificationChannelRequest struct {
	Definition *OpsgenieNotificationChannelDefinition `json:"definition,omitempty"`

	// IsShared When entity type is scoped to ORGANIZATION or WORKSPACE, this determines if child entities can access this notification channel.
	IsShared *bool `json:"isShared,omitempty"`

	// Name The notification channel's name.
	Name *string `json:"name,omitempty"`

	// Type The notification channel's type.
	Type *UpdateOpsgenieNotificationChannelRequestType `json:"type,omitempty"`
}

// UpdateOpsgenieNotificationChannelRequestType The notification channel's type.
type UpdateOpsgenieNotificationChannelRequestType string

// UpdateOrganizationRequest defines model for UpdateOrganizationRequest.
type UpdateOrganizationRequest struct {
	AllowEnhancedSupportAccess *bool `json:"allowEnhancedSupportAccess,omitempty"`

	// BillingEmail The Organization's billing email.
	BillingEmail string `json:"billingEmail"`

	// IsScimEnabled Whether SCIM is enabled for the Organization.
	IsScimEnabled bool `json:"isScimEnabled"`

	// Name The name of the Organization.
	Name string `json:"name"`
}

// UpdatePagerDutyNotificationChannelRequest defines model for UpdatePagerDutyNotificationChannelRequest.
type UpdatePagerDutyNotificationChannelRequest struct {
	Definition *PagerDutyNotificationChannelDefinition `json:"definition,omitempty"`

	// IsShared When entity type is scoped to ORGANIZATION or WORKSPACE, this determines if child entities can access this notification channel.
	IsShared *bool `json:"isShared,omitempty"`

	// Name The notification channel's name.
	Name *string `json:"name,omitempty"`

	// Type The notification channel's type.
	Type *UpdatePagerDutyNotificationChannelRequestType `json:"type,omitempty"`
}

// UpdatePagerDutyNotificationChannelRequestType The notification channel's type.
type UpdatePagerDutyNotificationChannelRequestType string

// UpdateSlackNotificationChannelRequest defines model for UpdateSlackNotificationChannelRequest.
type UpdateSlackNotificationChannelRequest struct {
	Definition *SlackNotificationChannelDefinition `json:"definition,omitempty"`

	// IsShared When entity type is scoped to ORGANIZATION or WORKSPACE, this determines if child entities can access this notification channel.
	IsShared *bool `json:"isShared,omitempty"`

	// Name The notification channel's name.
	Name *string `json:"name,omitempty"`

	// Type The notification channel's type.
	Type *UpdateSlackNotificationChannelRequestType `json:"type,omitempty"`
}

// UpdateSlackNotificationChannelRequestType The notification channel's type.
type UpdateSlackNotificationChannelRequestType string

// UpdateStandardDeploymentRequest defines model for UpdateStandardDeploymentRequest.
type UpdateStandardDeploymentRequest struct {
	// ContactEmails A list of contact emails for the Deployment.
	ContactEmails *[]string `json:"contactEmails,omitempty"`

	// DefaultTaskPodCpu The default CPU resource usage for a worker Pod when running the Kubernetes executor or KubernetesPodOperator. Units are in number of CPU cores. Required if Remote Execution is disabled.
	DefaultTaskPodCpu *string `json:"defaultTaskPodCpu,omitempty"`

	// DefaultTaskPodMemory The default memory resource usage for a worker Pod when running the Kubernetes executor or KubernetesPodOperator. Units are in `Gi` and must be explicitly included. This value must always be twice the value of `DefaultTaskPodCpu`. Required if Remote Execution is disabled.
	DefaultTaskPodMemory *string `json:"defaultTaskPodMemory,omitempty"`

	// Description The Deployment's description.
	Description *string `json:"description,omitempty"`

	// EnvironmentVariables List of environment variables to add to the Deployment.
	EnvironmentVariables []DeploymentEnvironmentVariableRequest `json:"environmentVariables"`

	// Executor The Deployment's executor type.
	Executor UpdateStandardDeploymentRequestExecutor `json:"executor"`

	// IsCicdEnforced Whether the Deployment requires that all deploys are made through CI/CD.
	IsCicdEnforced bool `json:"isCicdEnforced"`

	// IsDagDeployEnabled Whether the Deployment has DAG deploys enabled.
	IsDagDeployEnabled bool `json:"isDagDeployEnabled"`

	// IsDevelopmentMode Whether the Deployment is for development only. If `false`, the Deployment can be considered production for the purposes of support case priority, but development-only features such as hibernation will not be available. You can't update this value to `true` for existing non-development Deployments.
	IsDevelopmentMode *bool `json:"isDevelopmentMode,omitempty"`

	// IsHighAvailability Whether the Deployment is configured for high availability. If `true`, multiple scheduler pods will be online.
	IsHighAvailability bool `json:"isHighAvailability"`

	// Name The Deployment's name.
	Name            string                            `json:"name"`
	RemoteExecution *DeploymentRemoteExecutionRequest `json:"remoteExecution,omitempty"`

	// ResourceQuotaCpu The CPU quota for worker Pods when running the Kubernetes executor or KubernetesPodOperator. If current CPU usage across all workers exceeds the quota, no new worker Pods can be scheduled. Units are in number of CPU cores. Required if Remote Execution is disabled.
	ResourceQuotaCpu *string `json:"resourceQuotaCpu,omitempty"`

	// ResourceQuotaMemory The memory quota for worker Pods when running the Kubernetes executor or KubernetesPodOperator. If current memory usage across all workers exceeds the quota, no new worker Pods can be scheduled. Units are in `Gi` and must be explicitly included. This value must always be twice the value of `ResourceQuotaCpu`. Required if Remote Execution is disabled.
	ResourceQuotaMemory *string                       `json:"resourceQuotaMemory,omitempty"`
	ScalingSpec         *DeploymentScalingSpecRequest `json:"scalingSpec,omitempty"`

	// SchedulerSize The size of the scheduler Pod.
	SchedulerSize UpdateStandardDeploymentRequestSchedulerSize `json:"schedulerSize"`

	// Type The type of the Deployment.
	Type UpdateStandardDeploymentRequestType `json:"type"`

	// WorkerQueues A list of the Deployment's worker queues. Applies only when `Executor` is `CELERY` or if Remote Execution is disabled and executor is `ASTRO`. All these Deployments need at least 1 worker queue called `default`.
	WorkerQueues *[]WorkerQueueRequest `json:"workerQueues,omitempty"`

	// WorkloadIdentity The Deployment's workload identity.
	WorkloadIdentity *string `json:"workloadIdentity,omitempty"`

	// WorkspaceId The ID of the Workspace to which the Deployment belongs.
	WorkspaceId string `json:"workspaceId"`
}

// UpdateStandardDeploymentRequestExecutor The Deployment's executor type.
type UpdateStandardDeploymentRequestExecutor string

// UpdateStandardDeploymentRequestSchedulerSize The size of the scheduler Pod.
type UpdateStandardDeploymentRequestSchedulerSize string

// UpdateStandardDeploymentRequestType The type of the Deployment.
type UpdateStandardDeploymentRequestType string

// UpdateTaskDurationAlertProperties defines model for UpdateTaskDurationAlertProperties.
type UpdateTaskDurationAlertProperties struct {
	// TaskDurationSeconds The duration of the Task in seconds.
	TaskDurationSeconds *int `json:"taskDurationSeconds,omitempty"`
}

// UpdateTaskDurationAlertRequest defines model for UpdateTaskDurationAlertRequest.
type UpdateTaskDurationAlertRequest struct {
	// Name The alert's name.
	Name *string `json:"name,omitempty"`

	// NotificationChannelIds The notification channels to send alerts to.
	NotificationChannelIds *[]string                     `json:"notificationChannelIds,omitempty"`
	Rules                  *UpdateTaskDurationAlertRules `json:"rules,omitempty"`

	// Severity The alert's severity.
	Severity *UpdateTaskDurationAlertRequestSeverity `json:"severity,omitempty"`

	// Type The alert's type.
	Type *UpdateTaskDurationAlertRequestType `json:"type,omitempty"`
}

// UpdateTaskDurationAlertRequestSeverity The alert's severity.
type UpdateTaskDurationAlertRequestSeverity string

// UpdateTaskDurationAlertRequestType The alert's type.
type UpdateTaskDurationAlertRequestType string

// UpdateTaskDurationAlertRules defines model for UpdateTaskDurationAlertRules.
type UpdateTaskDurationAlertRules struct {
	// PatternMatches The alert's pattern matches to match against.
	PatternMatches *[]PatternMatchRequest             `json:"patternMatches,omitempty"`
	Properties     *UpdateTaskDurationAlertProperties `json:"properties,omitempty"`
}

// UpdateTaskFailureAlertRequest defines model for UpdateTaskFailureAlertRequest.
type UpdateTaskFailureAlertRequest struct {
	// Name The alert's name.
	Name *string `json:"name,omitempty"`

	// NotificationChannelIds The notification channels to send alerts to.
	NotificationChannelIds *[]string                    `json:"notificationChannelIds,omitempty"`
	Rules                  *UpdateTaskFailureAlertRules `json:"rules,omitempty"`

	// Severity The alert's severity.
	Severity *UpdateTaskFailureAlertRequestSeverity `json:"severity,omitempty"`

	// Type The alert's type.
	Type *UpdateTaskFailureAlertRequestType `json:"type,omitempty"`
}

// UpdateTaskFailureAlertRequestSeverity The alert's severity.
type UpdateTaskFailureAlertRequestSeverity string

// UpdateTaskFailureAlertRequestType The alert's type.
type UpdateTaskFailureAlertRequestType string

// UpdateTaskFailureAlertRules defines model for UpdateTaskFailureAlertRules.
type UpdateTaskFailureAlertRules struct {
	// PatternMatches The alert's pattern matches to match against.
	PatternMatches *[]PatternMatchRequest `json:"patternMatches,omitempty"`
}

// UpdateWorkspaceRequest defines model for UpdateWorkspaceRequest.
type UpdateWorkspaceRequest struct {
	// CicdEnforcedDefault Whether new Deployments enforce CI/CD deploys by default.
	CicdEnforcedDefault bool `json:"cicdEnforcedDefault"`

	// Description The Workspace's description.
	Description string `json:"description"`

	// Name The Workspace's name.
	Name string `json:"name"`
}

// WorkerMachine defines model for WorkerMachine.
type WorkerMachine struct {
	Concurrency Range `json:"concurrency"`

	// Name The machine's name.
	Name WorkerMachineName `json:"name"`
	Spec MachineSpec       `json:"spec"`
}

// WorkerMachineName The machine's name.
type WorkerMachineName string

// WorkerQueue defines model for WorkerQueue.
type WorkerQueue struct {
	// AstroMachine The Astro machine size for each worker node in the queue. For Astro Hosted only.
	AstroMachine *string `json:"astroMachine,omitempty"`

	// Id The worker queue's ID.
	Id string `json:"id"`

	// IsDefault Whether the worker queue is the default worker queue in the Deployment.
	IsDefault bool `json:"isDefault"`

	// MaxWorkerCount The maximum number of workers that can run at once.
	MaxWorkerCount int `json:"maxWorkerCount"`

	// MinWorkerCount The minimum number of workers running at once.
	MinWorkerCount int `json:"minWorkerCount"`

	// Name The worker queue's name.
	Name string `json:"name"`

	// NodePoolId The node pool ID associated with the worker queue.
	NodePoolId *string `json:"nodePoolId,omitempty"`

	// PodCpu The maximum number of CPU units available for a worker node. Units are in number of CPU cores.
	PodCpu string `json:"podCpu"`

	// PodMemory The maximum amount of memory available for a worker node. Units are in Gibibytes or `Gi`.
	PodMemory string `json:"podMemory"`

	// WorkerConcurrency The maximum number of concurrent tasks that a worker Pod can run at a time.
	WorkerConcurrency int `json:"workerConcurrency"`
}

// WorkerQueueOptions defines model for WorkerQueueOptions.
type WorkerQueueOptions struct {
	MaxWorkers        Range `json:"maxWorkers"`
	MinWorkers        Range `json:"minWorkers"`
	WorkerConcurrency Range `json:"workerConcurrency"`
}

// WorkerQueueRequest defines model for WorkerQueueRequest.
type WorkerQueueRequest struct {
	// AstroMachine The Astro machine for each worker in the queue. For Astro Hosted only.
	AstroMachine WorkerQueueRequestAstroMachine `json:"astroMachine"`

	// Id The worker queue's ID. If not provided, a new worker queue will be created.
	Id *string `json:"id,omitempty"`

	// IsDefault Whether the worker queue is the default worker queue on the Deployment.
	IsDefault bool `json:"isDefault"`

	// MaxWorkerCount The maximum number of workers that can run at once.
	MaxWorkerCount int `json:"maxWorkerCount"`

	// MinWorkerCount The minimum number of workers running at once.
	MinWorkerCount int `json:"minWorkerCount"`

	// Name The worker queue's name.
	Name string `json:"name"`

	// WorkerConcurrency The maximum number of concurrent tasks that a worker Pod can run at a time.
	WorkerConcurrency int `json:"workerConcurrency"`
}

// WorkerQueueRequestAstroMachine The Astro machine for each worker in the queue. For Astro Hosted only.
type WorkerQueueRequestAstroMachine string

// WorkloadIdentityOption defines model for WorkloadIdentityOption.
type WorkloadIdentityOption struct {
	// Label The workload identity label.
	Label string `json:"label"`

	// Role The workload identity role.
	Role string `json:"role"`
}

// Workspace defines model for Workspace.
type Workspace struct {
	// CicdEnforcedDefault Whether CI/CD deploys are enforced by default.
	CicdEnforcedDefault bool `json:"cicdEnforcedDefault"`

	// CreatedAt The time when the Workspace was created in UTC, formatted as `YYYY-MM-DDTHH:MM:SSZ`
	CreatedAt time.Time            `json:"createdAt"`
	CreatedBy *BasicSubjectProfile `json:"createdBy,omitempty"`

	// Description The Workspace's description.
	Description *string `json:"description,omitempty"`

	// Id The Workspace's ID.
	Id string `json:"id"`

	// Name The Workspace's name.
	Name string `json:"name"`

	// OrganizationId The ID of the organization to which the workspace belongs.
	OrganizationId string `json:"organizationId"`

	// OrganizationName The name of the Organization to which the Workspace belongs.
	OrganizationName *string `json:"organizationName,omitempty"`

	// UpdatedAt The time when the Workspace was updated in UTC, formatted as `YYYY-MM-DDTHH:MM:SSZ`
	UpdatedAt time.Time            `json:"updatedAt"`
	UpdatedBy *BasicSubjectProfile `json:"updatedBy,omitempty"`
}

// WorkspacesPaginated defines model for WorkspacesPaginated.
type WorkspacesPaginated struct {
	// Limit The maximum number of workspaces that can be retrieved per page.
	Limit int `json:"limit"`

	// Offset The offset for the current page of workspaces in the complete result.
	Offset int `json:"offset"`

	// TotalCount The total number of Workspaces in the paginated result.
	TotalCount int `json:"totalCount"`

	// Workspaces An array of Workspace objects representing a list of workspaces.
	Workspaces []Workspace `json:"workspaces"`
}

// ListOrganizationsParams defines parameters for ListOrganizations.
type ListOrganizationsParams struct {
	// SupportPlan Filters the Organization list by support plan.
	SupportPlan *ListOrganizationsParamsSupportPlan `form:"supportPlan,omitempty" json:"supportPlan,omitempty"`

	// ProductPlan Filters the Organization list by product plan.
	ProductPlan *ListOrganizationsParamsProductPlan `form:"productPlan,omitempty" json:"productPlan,omitempty"`

	// AstronomerProduct filter by astronomer product, should be one of ASTRO or OBSERVE
	AstronomerProduct *ListOrganizationsParamsAstronomerProduct `form:"astronomerProduct,omitempty" json:"astronomerProduct,omitempty"`

	// Product Filters the Organization list by product.
	Product *ListOrganizationsParamsProduct `form:"product,omitempty" json:"product,omitempty"`

	// Offset The number of results to skip before returning values.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Limit The maximum number of results to return.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Sorts A list of field names to sort by, and whether to show results as ascending or descending. Formatted as `<fieldName>:asc` or `<fieldName>:desc`.
	Sorts *[]ListOrganizationsParamsSorts `form:"sorts,omitempty" json:"sorts,omitempty"`
}

// ListOrganizationsParamsSupportPlan defines parameters for ListOrganizations.
type ListOrganizationsParamsSupportPlan string

// ListOrganizationsParamsProductPlan defines parameters for ListOrganizations.
type ListOrganizationsParamsProductPlan string

// ListOrganizationsParamsAstronomerProduct defines parameters for ListOrganizations.
type ListOrganizationsParamsAstronomerProduct string

// ListOrganizationsParamsProduct defines parameters for ListOrganizations.
type ListOrganizationsParamsProduct string

// ListOrganizationsParamsSorts defines parameters for ListOrganizations.
type ListOrganizationsParamsSorts string

// GetOrganizationParams defines parameters for GetOrganization.
type GetOrganizationParams struct {
	// IsLookUpOnly Whether to show only Organization metadata.
	IsLookUpOnly *bool `form:"isLookUpOnly,omitempty" json:"isLookUpOnly,omitempty"`
}

// ListAlertsParams defines parameters for ListAlerts.
type ListAlertsParams struct {
	// AlertIds A list of IDs for specific alerts to list. The API returns details for all alerts which have been specified in this list.
	AlertIds *[]string `form:"alertIds,omitempty" json:"alertIds,omitempty"`

	// DeploymentIds A list of deployment IDs the alerts belong to. The API returns details for all alerts belonging only to the specified Deployments.
	DeploymentIds *[]string `form:"deploymentIds,omitempty" json:"deploymentIds,omitempty"`

	// WorkspaceIds A list of workspace IDs the alerts belong to. The API returns details for all alerts belonging only to the specified Workspaces.
	WorkspaceIds *[]string `form:"workspaceIds,omitempty" json:"workspaceIds,omitempty"`

	// AlertTypes A list of types for specific alerts to filter by. The API returns details for all alerts belonging only to the specified alert types.
	AlertTypes *[]ListAlertsParamsAlertTypes `form:"alertTypes,omitempty" json:"alertTypes,omitempty"`

	// EntityType The type of the entity the alerts belong to.
	EntityType *ListAlertsParamsEntityType `form:"entityType,omitempty" json:"entityType,omitempty"`

	// Offset The number of results to skip before returning values.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Limit The maximum number of results to return.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Sorts A list of field names to sort by, and whether to show results as ascending or descending. Formatted as `<fieldName>:asc` or `<fieldName>:desc`.
	Sorts *[]ListAlertsParamsSorts `form:"sorts,omitempty" json:"sorts,omitempty"`
}

// ListAlertsParamsAlertTypes defines parameters for ListAlerts.
type ListAlertsParamsAlertTypes string

// ListAlertsParamsEntityType defines parameters for ListAlerts.
type ListAlertsParamsEntityType string

// ListAlertsParamsSorts defines parameters for ListAlerts.
type ListAlertsParamsSorts string

// GetOrganizationAuditLogsParams defines parameters for GetOrganizationAuditLogs.
type GetOrganizationAuditLogsParams struct {
	// StartDate The start date of the logs.
	StartDate *time.Time `form:"startDate,omitempty" json:"startDate,omitempty"`

	// EndDate The end date of the logs.
	EndDate *time.Time `form:"endDate,omitempty" json:"endDate,omitempty"`
}

// GetClusterOptionsParams defines parameters for GetClusterOptions.
type GetClusterOptionsParams struct {
	// Provider The cluster's cloud provider.
	Provider *GetClusterOptionsParamsProvider `form:"provider,omitempty" json:"provider,omitempty"`

	// Type The cluster type.
	Type GetClusterOptionsParamsType `form:"type" json:"type"`
}

// GetClusterOptionsParamsProvider defines parameters for GetClusterOptions.
type GetClusterOptionsParamsProvider string

// GetClusterOptionsParamsType defines parameters for GetClusterOptions.
type GetClusterOptionsParamsType string

// ListClustersParams defines parameters for ListClusters.
type ListClustersParams struct {
	// Names A list of names for Clusters to filter by. The API returns details only for the specified Clusters.
	Names *[]string `form:"names,omitempty" json:"names,omitempty"`

	// Provider The cloud provider to list clusters for. Clusters from other providers will be filtered out of the results.
	Provider *ListClustersParamsProvider `form:"provider,omitempty" json:"provider,omitempty"`

	// Offset The number of results to skip before returning values.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Limit The maximum number of results to return.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Sorts A list of field names to sort by, and whether to show results as ascending or descending. Formatted as `<fieldName>:asc` or `<fieldName>:desc`.
	Sorts *[]ListClustersParamsSorts `form:"sorts,omitempty" json:"sorts,omitempty"`
}

// ListClustersParamsProvider defines parameters for ListClusters.
type ListClustersParamsProvider string

// ListClustersParamsSorts defines parameters for ListClusters.
type ListClustersParamsSorts string

// GetDeploymentOptionsParams defines parameters for GetDeploymentOptions.
type GetDeploymentOptionsParams struct {
	// DeploymentId The ID of a Deployment to retrieve options for.
	DeploymentId *string `form:"deploymentId,omitempty" json:"deploymentId,omitempty"`

	// DeploymentType The runtime type of the deployment.
	DeploymentType *GetDeploymentOptionsParamsDeploymentType `form:"deploymentType,omitempty" json:"deploymentType,omitempty"`

	// Executor The executor of the deployment.
	Executor *GetDeploymentOptionsParamsExecutor `form:"executor,omitempty" json:"executor,omitempty"`

	// CloudProvider The cloud provider of the cluster for the deployment.
	CloudProvider *GetDeploymentOptionsParamsCloudProvider `form:"cloudProvider,omitempty" json:"cloudProvider,omitempty"`
}

// GetDeploymentOptionsParamsDeploymentType defines parameters for GetDeploymentOptions.
type GetDeploymentOptionsParamsDeploymentType string

// GetDeploymentOptionsParamsExecutor defines parameters for GetDeploymentOptions.
type GetDeploymentOptionsParamsExecutor string

// GetDeploymentOptionsParamsCloudProvider defines parameters for GetDeploymentOptions.
type GetDeploymentOptionsParamsCloudProvider string

// ListDeploymentsParams defines parameters for ListDeployments.
type ListDeploymentsParams struct {
	// DeploymentIds A list of IDs for Deployments to show. The API returns details only for the specified Deployments.
	DeploymentIds *[]string `form:"deploymentIds,omitempty" json:"deploymentIds,omitempty"`

	// Names A list of names for Deployments to filter by. The API returns details only for the specified Deployments.
	Names *[]string `form:"names,omitempty" json:"names,omitempty"`

	// WorkspaceIds A list of IDs for Workspaces to filter on. The API returns details for all Deployments belonging only to the specified Workspaces.
	WorkspaceIds *[]string `form:"workspaceIds,omitempty" json:"workspaceIds,omitempty"`

	// Offset The number of results to skip before returning values.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Limit The maximum number of results to return.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Sorts A list of field names to sort by, and whether to show results as ascending or descending. Formatted as `<fieldName>:asc` or `<fieldName>:desc`.
	Sorts *[]ListDeploymentsParamsSorts `form:"sorts,omitempty" json:"sorts,omitempty"`
}

// ListDeploymentsParamsSorts defines parameters for ListDeployments.
type ListDeploymentsParamsSorts string

// ListEnvironmentObjectsParams defines parameters for ListEnvironmentObjects.
type ListEnvironmentObjectsParams struct {
	// Offset The number of results to skip before returning values.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Limit The maximum number of results to return.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Sorts A list of field names to sort by, and whether to show results as ascending or descending. Formatted as `<fieldName>:asc` or `<fieldName>:desc`.
	Sorts *[]ListEnvironmentObjectsParamsSorts `form:"sorts,omitempty" json:"sorts,omitempty"`

	// WorkspaceId The Workspace ID to filter for. The API returns details for all environment objects belonging only to this specified Workspace.
	WorkspaceId *string `form:"workspaceId,omitempty" json:"workspaceId,omitempty"`

	// DeploymentId The Deployment ID to filter for. The API returns details for all environment objects belonging only to this specified Deployment.
	DeploymentId *string `form:"deploymentId,omitempty" json:"deploymentId,omitempty"`

	// ObjectType The environment object type to filter for. The API returns details for all environment objects belonging only to this specified object type.
	ObjectType *ListEnvironmentObjectsParamsObjectType `form:"objectType,omitempty" json:"objectType,omitempty"`

	// ObjectKey The environment object key to filter for. The API returns details for all environment objects belonging only to the specified object key.
	ObjectKey *string `form:"objectKey,omitempty" json:"objectKey,omitempty"`

	// ShowSecrets If true, returns the actual values of fields of type secret in the API response.
	ShowSecrets *bool `form:"showSecrets,omitempty" json:"showSecrets,omitempty"`

	// ResolveLinked Resolve and return the environment objects linked to the specified Deployment or Workspace in the API response.
	ResolveLinked *bool `form:"resolveLinked,omitempty" json:"resolveLinked,omitempty"`
}

// ListEnvironmentObjectsParamsSorts defines parameters for ListEnvironmentObjects.
type ListEnvironmentObjectsParamsSorts string

// ListEnvironmentObjectsParamsObjectType defines parameters for ListEnvironmentObjects.
type ListEnvironmentObjectsParamsObjectType string

// ListNotificationChannelsParams defines parameters for ListNotificationChannels.
type ListNotificationChannelsParams struct {
	// NotificationChannelIds A list of IDs of specific Notification Channels to list. The API will list information only for Notification Channels which have been specified in this list.
	NotificationChannelIds *[]string `form:"notificationChannelIds,omitempty" json:"notificationChannelIds,omitempty"`

	// DeploymentIds A list of Deployment IDs to filter by, not allowed if Workspace IDs are provided. Returns Notification Channels scoped to these Deployments, plus any shared Organization or Workspace Notification Channels accessible to them.
	DeploymentIds *[]string `form:"deploymentIds,omitempty" json:"deploymentIds,omitempty"`

	// WorkspaceIds A list of Workspace IDs to filter by, not allowed if Deployment IDs are provided. Returns Notification Channels scoped to these Workspaces, plus any shared Organization or Deployment Notification Channels accessible to them.
	WorkspaceIds *[]string `form:"workspaceIds,omitempty" json:"workspaceIds,omitempty"`

	// ChannelTypes A list of Notification Channel types to filter by.
	ChannelTypes *[]ListNotificationChannelsParamsChannelTypes `form:"channelTypes,omitempty" json:"channelTypes,omitempty"`

	// EntityType The type of entity the Notification Channels belong to.
	EntityType *ListNotificationChannelsParamsEntityType `form:"entityType,omitempty" json:"entityType,omitempty"`

	// Offset The number of results to skip before returning values.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Limit The maximum number of results to return.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Sorts A list of field names to sort by, and whether to show results as ascending or descending. Formatted as `<fieldName>:asc` or `<fieldName>:desc`.
	Sorts *[]ListNotificationChannelsParamsSorts `form:"sorts,omitempty" json:"sorts,omitempty"`
}

// ListNotificationChannelsParamsChannelTypes defines parameters for ListNotificationChannels.
type ListNotificationChannelsParamsChannelTypes string

// ListNotificationChannelsParamsEntityType defines parameters for ListNotificationChannels.
type ListNotificationChannelsParamsEntityType string

// ListNotificationChannelsParamsSorts defines parameters for ListNotificationChannels.
type ListNotificationChannelsParamsSorts string

// ListWorkspacesParams defines parameters for ListWorkspaces.
type ListWorkspacesParams struct {
	// WorkspaceIds A list of IDs for specific Workspaces to list. The API will list information only for Workspaces which have been specified in this list.
	WorkspaceIds *[]string `form:"workspaceIds,omitempty" json:"workspaceIds,omitempty"`

	// Names A list of names for specific Workspaces to filter by. The API will list information only for Workspaces which have been specified in this list.
	Names *[]string `form:"names,omitempty" json:"names,omitempty"`

	// Offset The number of results to skip before returning values.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Limit The maximum number of results to return.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Sorts A list of field names to sort by, and whether to show results as ascending or descending. Formatted as `<fieldName>:asc` or `<fieldName>:desc`.
	Sorts *[]ListWorkspacesParamsSorts `form:"sorts,omitempty" json:"sorts,omitempty"`
}

// ListWorkspacesParamsSorts defines parameters for ListWorkspaces.
type ListWorkspacesParamsSorts string

// UpdateOrganizationJSONRequestBody defines body for UpdateOrganization for application/json ContentType.
type UpdateOrganizationJSONRequestBody = UpdateOrganizationRequest

// CreateAlertJSONRequestBody defines body for CreateAlert for application/json ContentType.
type CreateAlertJSONRequestBody = CreateAlertRequest

// UpdateAlertJSONRequestBody defines body for UpdateAlert for application/json ContentType.
type UpdateAlertJSONRequestBody = UpdateAlertRequest

// CreateClusterJSONRequestBody defines body for CreateCluster for application/json ContentType.
type CreateClusterJSONRequestBody = CreateClusterRequest

// UpdateClusterJSONRequestBody defines body for UpdateCluster for application/json ContentType.
type UpdateClusterJSONRequestBody = UpdateClusterRequest

// CreateDeploymentJSONRequestBody defines body for CreateDeployment for application/json ContentType.
type CreateDeploymentJSONRequestBody = CreateDeploymentRequest

// UpdateDeploymentJSONRequestBody defines body for UpdateDeployment for application/json ContentType.
type UpdateDeploymentJSONRequestBody = UpdateDeploymentRequest

// UpdateDeploymentHibernationOverrideJSONRequestBody defines body for UpdateDeploymentHibernationOverride for application/json ContentType.
type UpdateDeploymentHibernationOverrideJSONRequestBody = OverrideDeploymentHibernationBody

// CreateEnvironmentObjectJSONRequestBody defines body for CreateEnvironmentObject for application/json ContentType.
type CreateEnvironmentObjectJSONRequestBody = CreateEnvironmentObjectRequest

// UpdateEnvironmentObjectJSONRequestBody defines body for UpdateEnvironmentObject for application/json ContentType.
type UpdateEnvironmentObjectJSONRequestBody = UpdateEnvironmentObjectRequest

// ExcludeLinkingEnvironmentObjectJSONRequestBody defines body for ExcludeLinkingEnvironmentObject for application/json ContentType.
type ExcludeLinkingEnvironmentObjectJSONRequestBody = ExcludeLinkEnvironmentObjectRequest

// CreateNotificationChannelJSONRequestBody defines body for CreateNotificationChannel for application/json ContentType.
type CreateNotificationChannelJSONRequestBody = CreateNotificationChannelRequest

// UpdateNotificationChannelJSONRequestBody defines body for UpdateNotificationChannel for application/json ContentType.
type UpdateNotificationChannelJSONRequestBody = UpdateNotificationChannelRequest

// CreateWorkspaceJSONRequestBody defines body for CreateWorkspace for application/json ContentType.
type CreateWorkspaceJSONRequestBody = CreateWorkspaceRequest

// UpdateWorkspaceJSONRequestBody defines body for UpdateWorkspace for application/json ContentType.
type UpdateWorkspaceJSONRequestBody = UpdateWorkspaceRequest

// AsCreateDagDurationAlertRequest returns the union data inside the CreateAlertRequest as a CreateDagDurationAlertRequest
func (t CreateAlertRequest) AsCreateDagDurationAlertRequest() (CreateDagDurationAlertRequest, error) {
	var body CreateDagDurationAlertRequest
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromCreateDagDurationAlertRequest overwrites any union data inside the CreateAlertRequest as the provided CreateDagDurationAlertRequest
func (t *CreateAlertRequest) FromCreateDagDurationAlertRequest(v CreateDagDurationAlertRequest) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeCreateDagDurationAlertRequest performs a merge with any union data inside the CreateAlertRequest, using the provided CreateDagDurationAlertRequest
func (t *CreateAlertRequest) MergeCreateDagDurationAlertRequest(v CreateDagDurationAlertRequest) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JSONMerge(t.union, b)
	t.union = merged
	return err
}

// AsCreateDagFailureAlertRequest returns the union data inside the CreateAlertRequest as a CreateDagFailureAlertRequest
func (t CreateAlertRequest) AsCreateDagFailureAlertRequest() (CreateDagFailureAlertRequest, error) {
	var body CreateDagFailureAlertRequest
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromCreateDagFailureAlertRequest overwrites any union data inside the CreateAlertRequest as the provided CreateDagFailureAlertRequest
func (t *CreateAlertRequest) FromCreateDagFailureAlertRequest(v CreateDagFailureAlertRequest) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeCreateDagFailureAlertRequest performs a merge with any union data inside the CreateAlertRequest, using the provided CreateDagFailureAlertRequest
func (t *CreateAlertRequest) MergeCreateDagFailureAlertRequest(v CreateDagFailureAlertRequest) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JSONMerge(t.union, b)
	t.union = merged
	return err
}

// AsCreateDagSuccessAlertRequest returns the union data inside the CreateAlertRequest as a CreateDagSuccessAlertRequest
func (t CreateAlertRequest) AsCreateDagSuccessAlertRequest() (CreateDagSuccessAlertRequest, error) {
	var body CreateDagSuccessAlertRequest
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromCreateDagSuccessAlertRequest overwrites any union data inside the CreateAlertRequest as the provided CreateDagSuccessAlertRequest
func (t *CreateAlertRequest) FromCreateDagSuccessAlertRequest(v CreateDagSuccessAlertRequest) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeCreateDagSuccessAlertRequest performs a merge with any union data inside the CreateAlertRequest, using the provided CreateDagSuccessAlertRequest
func (t *CreateAlertRequest) MergeCreateDagSuccessAlertRequest(v CreateDagSuccessAlertRequest) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JSONMerge(t.union, b)
	t.union = merged
	return err
}

// AsCreateDagTimelinessAlertRequest returns the union data inside the CreateAlertRequest as a CreateDagTimelinessAlertRequest
func (t CreateAlertRequest) AsCreateDagTimelinessAlertRequest() (CreateDagTimelinessAlertRequest, error) {
	var body CreateDagTimelinessAlertRequest
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromCreateDagTimelinessAlertRequest overwrites any union data inside the CreateAlertRequest as the provided CreateDagTimelinessAlertRequest
func (t *CreateAlertRequest) FromCreateDagTimelinessAlertRequest(v CreateDagTimelinessAlertRequest) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeCreateDagTimelinessAlertRequest performs a merge with any union data inside the CreateAlertRequest, using the provided CreateDagTimelinessAlertRequest
func (t *CreateAlertRequest) MergeCreateDagTimelinessAlertRequest(v CreateDagTimelinessAlertRequest) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JSONMerge(t.union, b)
	t.union = merged
	return err
}

// AsCreateTaskDurationAlertRequest returns the union data inside the CreateAlertRequest as a CreateTaskDurationAlertRequest
func (t CreateAlertRequest) AsCreateTaskDurationAlertRequest() (CreateTaskDurationAlertRequest, error) {
	var body CreateTaskDurationAlertRequest
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromCreateTaskDurationAlertRequest overwrites any union data inside the CreateAlertRequest as the provided CreateTaskDurationAlertRequest
func (t *CreateAlertRequest) FromCreateTaskDurationAlertRequest(v CreateTaskDurationAlertRequest) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeCreateTaskDurationAlertRequest performs a merge with any union data inside the CreateAlertRequest, using the provided CreateTaskDurationAlertRequest
func (t *CreateAlertRequest) MergeCreateTaskDurationAlertRequest(v CreateTaskDurationAlertRequest) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JSONMerge(t.union, b)
	t.union = merged
	return err
}

// AsCreateTaskFailureAlertRequest returns the union data inside the CreateAlertRequest as a CreateTaskFailureAlertRequest
func (t CreateAlertRequest) AsCreateTaskFailureAlertRequest() (CreateTaskFailureAlertRequest, error) {
	var body CreateTaskFailureAlertRequest
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromCreateTaskFailureAlertRequest overwrites any union data inside the CreateAlertRequest as the provided CreateTaskFailureAlertRequest
func (t *CreateAlertRequest) FromCreateTaskFailureAlertRequest(v CreateTaskFailureAlertRequest) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeCreateTaskFailureAlertRequest performs a merge with any union data inside the CreateAlertRequest, using the provided CreateTaskFailureAlertRequest
func (t *CreateAlertRequest) MergeCreateTaskFailureAlertRequest(v CreateTaskFailureAlertRequest) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JSONMerge(t.union, b)
	t.union = merged
	return err
}

func (t CreateAlertRequest) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *CreateAlertRequest) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsCreateAwsClusterRequest returns the union data inside the CreateClusterRequest as a CreateAwsClusterRequest
func (t CreateClusterRequest) AsCreateAwsClusterRequest() (CreateAwsClusterRequest, error) {
	var body CreateAwsClusterRequest
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromCreateAwsClusterRequest overwrites any union data inside the CreateClusterRequest as the provided CreateAwsClusterRequest
func (t *CreateClusterRequest) FromCreateAwsClusterRequest(v CreateAwsClusterRequest) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeCreateAwsClusterRequest performs a merge with any union data inside the CreateClusterRequest, using the provided CreateAwsClusterRequest
func (t *CreateClusterRequest) MergeCreateAwsClusterRequest(v CreateAwsClusterRequest) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JSONMerge(t.union, b)
	t.union = merged
	return err
}

// AsCreateAzureClusterRequest returns the union data inside the CreateClusterRequest as a CreateAzureClusterRequest
func (t CreateClusterRequest) AsCreateAzureClusterRequest() (CreateAzureClusterRequest, error) {
	var body CreateAzureClusterRequest
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromCreateAzureClusterRequest overwrites any union data inside the CreateClusterRequest as the provided CreateAzureClusterRequest
func (t *CreateClusterRequest) FromCreateAzureClusterRequest(v CreateAzureClusterRequest) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeCreateAzureClusterRequest performs a merge with any union data inside the CreateClusterRequest, using the provided CreateAzureClusterRequest
func (t *CreateClusterRequest) MergeCreateAzureClusterRequest(v CreateAzureClusterRequest) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JSONMerge(t.union, b)
	t.union = merged
	return err
}

// AsCreateGcpClusterRequest returns the union data inside the CreateClusterRequest as a CreateGcpClusterRequest
func (t CreateClusterRequest) AsCreateGcpClusterRequest() (CreateGcpClusterRequest, error) {
	var body CreateGcpClusterRequest
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromCreateGcpClusterRequest overwrites any union data inside the CreateClusterRequest as the provided CreateGcpClusterRequest
func (t *CreateClusterRequest) FromCreateGcpClusterRequest(v CreateGcpClusterRequest) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeCreateGcpClusterRequest performs a merge with any union data inside the CreateClusterRequest, using the provided CreateGcpClusterRequest
func (t *CreateClusterRequest) MergeCreateGcpClusterRequest(v CreateGcpClusterRequest) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JSONMerge(t.union, b)
	t.union = merged
	return err
}

func (t CreateClusterRequest) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *CreateClusterRequest) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsCreateDedicatedDeploymentRequest returns the union data inside the CreateDeploymentRequest as a CreateDedicatedDeploymentRequest
func (t CreateDeploymentRequest) AsCreateDedicatedDeploymentRequest() (CreateDedicatedDeploymentRequest, error) {
	var body CreateDedicatedDeploymentRequest
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromCreateDedicatedDeploymentRequest overwrites any union data inside the CreateDeploymentRequest as the provided CreateDedicatedDeploymentRequest
func (t *CreateDeploymentRequest) FromCreateDedicatedDeploymentRequest(v CreateDedicatedDeploymentRequest) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeCreateDedicatedDeploymentRequest performs a merge with any union data inside the CreateDeploymentRequest, using the provided CreateDedicatedDeploymentRequest
func (t *CreateDeploymentRequest) MergeCreateDedicatedDeploymentRequest(v CreateDedicatedDeploymentRequest) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JSONMerge(t.union, b)
	t.union = merged
	return err
}

// AsCreateHybridDeploymentRequest returns the union data inside the CreateDeploymentRequest as a CreateHybridDeploymentRequest
func (t CreateDeploymentRequest) AsCreateHybridDeploymentRequest() (CreateHybridDeploymentRequest, error) {
	var body CreateHybridDeploymentRequest
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromCreateHybridDeploymentRequest overwrites any union data inside the CreateDeploymentRequest as the provided CreateHybridDeploymentRequest
func (t *CreateDeploymentRequest) FromCreateHybridDeploymentRequest(v CreateHybridDeploymentRequest) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeCreateHybridDeploymentRequest performs a merge with any union data inside the CreateDeploymentRequest, using the provided CreateHybridDeploymentRequest
func (t *CreateDeploymentRequest) MergeCreateHybridDeploymentRequest(v CreateHybridDeploymentRequest) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JSONMerge(t.union, b)
	t.union = merged
	return err
}

// AsCreateStandardDeploymentRequest returns the union data inside the CreateDeploymentRequest as a CreateStandardDeploymentRequest
func (t CreateDeploymentRequest) AsCreateStandardDeploymentRequest() (CreateStandardDeploymentRequest, error) {
	var body CreateStandardDeploymentRequest
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromCreateStandardDeploymentRequest overwrites any union data inside the CreateDeploymentRequest as the provided CreateStandardDeploymentRequest
func (t *CreateDeploymentRequest) FromCreateStandardDeploymentRequest(v CreateStandardDeploymentRequest) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeCreateStandardDeploymentRequest performs a merge with any union data inside the CreateDeploymentRequest, using the provided CreateStandardDeploymentRequest
func (t *CreateDeploymentRequest) MergeCreateStandardDeploymentRequest(v CreateStandardDeploymentRequest) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JSONMerge(t.union, b)
	t.union = merged
	return err
}

func (t CreateDeploymentRequest) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *CreateDeploymentRequest) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsCreateDagTriggerNotificationChannelRequest returns the union data inside the CreateNotificationChannelRequest as a CreateDagTriggerNotificationChannelRequest
func (t CreateNotificationChannelRequest) AsCreateDagTriggerNotificationChannelRequest() (CreateDagTriggerNotificationChannelRequest, error) {
	var body CreateDagTriggerNotificationChannelRequest
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromCreateDagTriggerNotificationChannelRequest overwrites any union data inside the CreateNotificationChannelRequest as the provided CreateDagTriggerNotificationChannelRequest
func (t *CreateNotificationChannelRequest) FromCreateDagTriggerNotificationChannelRequest(v CreateDagTriggerNotificationChannelRequest) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeCreateDagTriggerNotificationChannelRequest performs a merge with any union data inside the CreateNotificationChannelRequest, using the provided CreateDagTriggerNotificationChannelRequest
func (t *CreateNotificationChannelRequest) MergeCreateDagTriggerNotificationChannelRequest(v CreateDagTriggerNotificationChannelRequest) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JSONMerge(t.union, b)
	t.union = merged
	return err
}

// AsCreateEmailNotificationChannelRequest returns the union data inside the CreateNotificationChannelRequest as a CreateEmailNotificationChannelRequest
func (t CreateNotificationChannelRequest) AsCreateEmailNotificationChannelRequest() (CreateEmailNotificationChannelRequest, error) {
	var body CreateEmailNotificationChannelRequest
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromCreateEmailNotificationChannelRequest overwrites any union data inside the CreateNotificationChannelRequest as the provided CreateEmailNotificationChannelRequest
func (t *CreateNotificationChannelRequest) FromCreateEmailNotificationChannelRequest(v CreateEmailNotificationChannelRequest) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeCreateEmailNotificationChannelRequest performs a merge with any union data inside the CreateNotificationChannelRequest, using the provided CreateEmailNotificationChannelRequest
func (t *CreateNotificationChannelRequest) MergeCreateEmailNotificationChannelRequest(v CreateEmailNotificationChannelRequest) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JSONMerge(t.union, b)
	t.union = merged
	return err
}

// AsCreateOpsgenieNotificationChannelRequest returns the union data inside the CreateNotificationChannelRequest as a CreateOpsgenieNotificationChannelRequest
func (t CreateNotificationChannelRequest) AsCreateOpsgenieNotificationChannelRequest() (CreateOpsgenieNotificationChannelRequest, error) {
	var body CreateOpsgenieNotificationChannelRequest
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromCreateOpsgenieNotificationChannelRequest overwrites any union data inside the CreateNotificationChannelRequest as the provided CreateOpsgenieNotificationChannelRequest
func (t *CreateNotificationChannelRequest) FromCreateOpsgenieNotificationChannelRequest(v CreateOpsgenieNotificationChannelRequest) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeCreateOpsgenieNotificationChannelRequest performs a merge with any union data inside the CreateNotificationChannelRequest, using the provided CreateOpsgenieNotificationChannelRequest
func (t *CreateNotificationChannelRequest) MergeCreateOpsgenieNotificationChannelRequest(v CreateOpsgenieNotificationChannelRequest) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JSONMerge(t.union, b)
	t.union = merged
	return err
}

// AsCreatePagerDutyNotificationChannelRequest returns the union data inside the CreateNotificationChannelRequest as a CreatePagerDutyNotificationChannelRequest
func (t CreateNotificationChannelRequest) AsCreatePagerDutyNotificationChannelRequest() (CreatePagerDutyNotificationChannelRequest, error) {
	var body CreatePagerDutyNotificationChannelRequest
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromCreatePagerDutyNotificationChannelRequest overwrites any union data inside the CreateNotificationChannelRequest as the provided CreatePagerDutyNotificationChannelRequest
func (t *CreateNotificationChannelRequest) FromCreatePagerDutyNotificationChannelRequest(v CreatePagerDutyNotificationChannelRequest) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeCreatePagerDutyNotificationChannelRequest performs a merge with any union data inside the CreateNotificationChannelRequest, using the provided CreatePagerDutyNotificationChannelRequest
func (t *CreateNotificationChannelRequest) MergeCreatePagerDutyNotificationChannelRequest(v CreatePagerDutyNotificationChannelRequest) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JSONMerge(t.union, b)
	t.union = merged
	return err
}

// AsCreateSlackNotificationChannelRequest returns the union data inside the CreateNotificationChannelRequest as a CreateSlackNotificationChannelRequest
func (t CreateNotificationChannelRequest) AsCreateSlackNotificationChannelRequest() (CreateSlackNotificationChannelRequest, error) {
	var body CreateSlackNotificationChannelRequest
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromCreateSlackNotificationChannelRequest overwrites any union data inside the CreateNotificationChannelRequest as the provided CreateSlackNotificationChannelRequest
func (t *CreateNotificationChannelRequest) FromCreateSlackNotificationChannelRequest(v CreateSlackNotificationChannelRequest) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeCreateSlackNotificationChannelRequest performs a merge with any union data inside the CreateNotificationChannelRequest, using the provided CreateSlackNotificationChannelRequest
func (t *CreateNotificationChannelRequest) MergeCreateSlackNotificationChannelRequest(v CreateSlackNotificationChannelRequest) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JSONMerge(t.union, b)
	t.union = merged
	return err
}

func (t CreateNotificationChannelRequest) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *CreateNotificationChannelRequest) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsUpdateDagDurationAlertRequest returns the union data inside the UpdateAlertRequest as a UpdateDagDurationAlertRequest
func (t UpdateAlertRequest) AsUpdateDagDurationAlertRequest() (UpdateDagDurationAlertRequest, error) {
	var body UpdateDagDurationAlertRequest
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromUpdateDagDurationAlertRequest overwrites any union data inside the UpdateAlertRequest as the provided UpdateDagDurationAlertRequest
func (t *UpdateAlertRequest) FromUpdateDagDurationAlertRequest(v UpdateDagDurationAlertRequest) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeUpdateDagDurationAlertRequest performs a merge with any union data inside the UpdateAlertRequest, using the provided UpdateDagDurationAlertRequest
func (t *UpdateAlertRequest) MergeUpdateDagDurationAlertRequest(v UpdateDagDurationAlertRequest) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JSONMerge(t.union, b)
	t.union = merged
	return err
}

// AsUpdateDagFailureAlertRequest returns the union data inside the UpdateAlertRequest as a UpdateDagFailureAlertRequest
func (t UpdateAlertRequest) AsUpdateDagFailureAlertRequest() (UpdateDagFailureAlertRequest, error) {
	var body UpdateDagFailureAlertRequest
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromUpdateDagFailureAlertRequest overwrites any union data inside the UpdateAlertRequest as the provided UpdateDagFailureAlertRequest
func (t *UpdateAlertRequest) FromUpdateDagFailureAlertRequest(v UpdateDagFailureAlertRequest) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeUpdateDagFailureAlertRequest performs a merge with any union data inside the UpdateAlertRequest, using the provided UpdateDagFailureAlertRequest
func (t *UpdateAlertRequest) MergeUpdateDagFailureAlertRequest(v UpdateDagFailureAlertRequest) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JSONMerge(t.union, b)
	t.union = merged
	return err
}

// AsUpdateDagSuccessAlertRequest returns the union data inside the UpdateAlertRequest as a UpdateDagSuccessAlertRequest
func (t UpdateAlertRequest) AsUpdateDagSuccessAlertRequest() (UpdateDagSuccessAlertRequest, error) {
	var body UpdateDagSuccessAlertRequest
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromUpdateDagSuccessAlertRequest overwrites any union data inside the UpdateAlertRequest as the provided UpdateDagSuccessAlertRequest
func (t *UpdateAlertRequest) FromUpdateDagSuccessAlertRequest(v UpdateDagSuccessAlertRequest) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeUpdateDagSuccessAlertRequest performs a merge with any union data inside the UpdateAlertRequest, using the provided UpdateDagSuccessAlertRequest
func (t *UpdateAlertRequest) MergeUpdateDagSuccessAlertRequest(v UpdateDagSuccessAlertRequest) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JSONMerge(t.union, b)
	t.union = merged
	return err
}

// AsUpdateDagTimelinessAlertRequest returns the union data inside the UpdateAlertRequest as a UpdateDagTimelinessAlertRequest
func (t UpdateAlertRequest) AsUpdateDagTimelinessAlertRequest() (UpdateDagTimelinessAlertRequest, error) {
	var body UpdateDagTimelinessAlertRequest
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromUpdateDagTimelinessAlertRequest overwrites any union data inside the UpdateAlertRequest as the provided UpdateDagTimelinessAlertRequest
func (t *UpdateAlertRequest) FromUpdateDagTimelinessAlertRequest(v UpdateDagTimelinessAlertRequest) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeUpdateDagTimelinessAlertRequest performs a merge with any union data inside the UpdateAlertRequest, using the provided UpdateDagTimelinessAlertRequest
func (t *UpdateAlertRequest) MergeUpdateDagTimelinessAlertRequest(v UpdateDagTimelinessAlertRequest) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JSONMerge(t.union, b)
	t.union = merged
	return err
}

// AsUpdateTaskDurationAlertRequest returns the union data inside the UpdateAlertRequest as a UpdateTaskDurationAlertRequest
func (t UpdateAlertRequest) AsUpdateTaskDurationAlertRequest() (UpdateTaskDurationAlertRequest, error) {
	var body UpdateTaskDurationAlertRequest
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromUpdateTaskDurationAlertRequest overwrites any union data inside the UpdateAlertRequest as the provided UpdateTaskDurationAlertRequest
func (t *UpdateAlertRequest) FromUpdateTaskDurationAlertRequest(v UpdateTaskDurationAlertRequest) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeUpdateTaskDurationAlertRequest performs a merge with any union data inside the UpdateAlertRequest, using the provided UpdateTaskDurationAlertRequest
func (t *UpdateAlertRequest) MergeUpdateTaskDurationAlertRequest(v UpdateTaskDurationAlertRequest) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JSONMerge(t.union, b)
	t.union = merged
	return err
}

// AsUpdateTaskFailureAlertRequest returns the union data inside the UpdateAlertRequest as a UpdateTaskFailureAlertRequest
func (t UpdateAlertRequest) AsUpdateTaskFailureAlertRequest() (UpdateTaskFailureAlertRequest, error) {
	var body UpdateTaskFailureAlertRequest
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromUpdateTaskFailureAlertRequest overwrites any union data inside the UpdateAlertRequest as the provided UpdateTaskFailureAlertRequest
func (t *UpdateAlertRequest) FromUpdateTaskFailureAlertRequest(v UpdateTaskFailureAlertRequest) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeUpdateTaskFailureAlertRequest performs a merge with any union data inside the UpdateAlertRequest, using the provided UpdateTaskFailureAlertRequest
func (t *UpdateAlertRequest) MergeUpdateTaskFailureAlertRequest(v UpdateTaskFailureAlertRequest) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JSONMerge(t.union, b)
	t.union = merged
	return err
}

func (t UpdateAlertRequest) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *UpdateAlertRequest) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsUpdateDedicatedClusterRequest returns the union data inside the UpdateClusterRequest as a UpdateDedicatedClusterRequest
func (t UpdateClusterRequest) AsUpdateDedicatedClusterRequest() (UpdateDedicatedClusterRequest, error) {
	var body UpdateDedicatedClusterRequest
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromUpdateDedicatedClusterRequest overwrites any union data inside the UpdateClusterRequest as the provided UpdateDedicatedClusterRequest
func (t *UpdateClusterRequest) FromUpdateDedicatedClusterRequest(v UpdateDedicatedClusterRequest) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeUpdateDedicatedClusterRequest performs a merge with any union data inside the UpdateClusterRequest, using the provided UpdateDedicatedClusterRequest
func (t *UpdateClusterRequest) MergeUpdateDedicatedClusterRequest(v UpdateDedicatedClusterRequest) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JSONMerge(t.union, b)
	t.union = merged
	return err
}

// AsUpdateHybridClusterRequest returns the union data inside the UpdateClusterRequest as a UpdateHybridClusterRequest
func (t UpdateClusterRequest) AsUpdateHybridClusterRequest() (UpdateHybridClusterRequest, error) {
	var body UpdateHybridClusterRequest
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromUpdateHybridClusterRequest overwrites any union data inside the UpdateClusterRequest as the provided UpdateHybridClusterRequest
func (t *UpdateClusterRequest) FromUpdateHybridClusterRequest(v UpdateHybridClusterRequest) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeUpdateHybridClusterRequest performs a merge with any union data inside the UpdateClusterRequest, using the provided UpdateHybridClusterRequest
func (t *UpdateClusterRequest) MergeUpdateHybridClusterRequest(v UpdateHybridClusterRequest) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JSONMerge(t.union, b)
	t.union = merged
	return err
}

func (t UpdateClusterRequest) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *UpdateClusterRequest) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsUpdateDedicatedDeploymentRequest returns the union data inside the UpdateDeploymentRequest as a UpdateDedicatedDeploymentRequest
func (t UpdateDeploymentRequest) AsUpdateDedicatedDeploymentRequest() (UpdateDedicatedDeploymentRequest, error) {
	var body UpdateDedicatedDeploymentRequest
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromUpdateDedicatedDeploymentRequest overwrites any union data inside the UpdateDeploymentRequest as the provided UpdateDedicatedDeploymentRequest
func (t *UpdateDeploymentRequest) FromUpdateDedicatedDeploymentRequest(v UpdateDedicatedDeploymentRequest) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeUpdateDedicatedDeploymentRequest performs a merge with any union data inside the UpdateDeploymentRequest, using the provided UpdateDedicatedDeploymentRequest
func (t *UpdateDeploymentRequest) MergeUpdateDedicatedDeploymentRequest(v UpdateDedicatedDeploymentRequest) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JSONMerge(t.union, b)
	t.union = merged
	return err
}

// AsUpdateHybridDeploymentRequest returns the union data inside the UpdateDeploymentRequest as a UpdateHybridDeploymentRequest
func (t UpdateDeploymentRequest) AsUpdateHybridDeploymentRequest() (UpdateHybridDeploymentRequest, error) {
	var body UpdateHybridDeploymentRequest
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromUpdateHybridDeploymentRequest overwrites any union data inside the UpdateDeploymentRequest as the provided UpdateHybridDeploymentRequest
func (t *UpdateDeploymentRequest) FromUpdateHybridDeploymentRequest(v UpdateHybridDeploymentRequest) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeUpdateHybridDeploymentRequest performs a merge with any union data inside the UpdateDeploymentRequest, using the provided UpdateHybridDeploymentRequest
func (t *UpdateDeploymentRequest) MergeUpdateHybridDeploymentRequest(v UpdateHybridDeploymentRequest) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JSONMerge(t.union, b)
	t.union = merged
	return err
}

// AsUpdateStandardDeploymentRequest returns the union data inside the UpdateDeploymentRequest as a UpdateStandardDeploymentRequest
func (t UpdateDeploymentRequest) AsUpdateStandardDeploymentRequest() (UpdateStandardDeploymentRequest, error) {
	var body UpdateStandardDeploymentRequest
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromUpdateStandardDeploymentRequest overwrites any union data inside the UpdateDeploymentRequest as the provided UpdateStandardDeploymentRequest
func (t *UpdateDeploymentRequest) FromUpdateStandardDeploymentRequest(v UpdateStandardDeploymentRequest) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeUpdateStandardDeploymentRequest performs a merge with any union data inside the UpdateDeploymentRequest, using the provided UpdateStandardDeploymentRequest
func (t *UpdateDeploymentRequest) MergeUpdateStandardDeploymentRequest(v UpdateStandardDeploymentRequest) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JSONMerge(t.union, b)
	t.union = merged
	return err
}

func (t UpdateDeploymentRequest) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *UpdateDeploymentRequest) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsUpdateDagTriggerNotificationChannelRequest returns the union data inside the UpdateNotificationChannelRequest as a UpdateDagTriggerNotificationChannelRequest
func (t UpdateNotificationChannelRequest) AsUpdateDagTriggerNotificationChannelRequest() (UpdateDagTriggerNotificationChannelRequest, error) {
	var body UpdateDagTriggerNotificationChannelRequest
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromUpdateDagTriggerNotificationChannelRequest overwrites any union data inside the UpdateNotificationChannelRequest as the provided UpdateDagTriggerNotificationChannelRequest
func (t *UpdateNotificationChannelRequest) FromUpdateDagTriggerNotificationChannelRequest(v UpdateDagTriggerNotificationChannelRequest) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeUpdateDagTriggerNotificationChannelRequest performs a merge with any union data inside the UpdateNotificationChannelRequest, using the provided UpdateDagTriggerNotificationChannelRequest
func (t *UpdateNotificationChannelRequest) MergeUpdateDagTriggerNotificationChannelRequest(v UpdateDagTriggerNotificationChannelRequest) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JSONMerge(t.union, b)
	t.union = merged
	return err
}

// AsUpdateEmailNotificationChannelRequest returns the union data inside the UpdateNotificationChannelRequest as a UpdateEmailNotificationChannelRequest
func (t UpdateNotificationChannelRequest) AsUpdateEmailNotificationChannelRequest() (UpdateEmailNotificationChannelRequest, error) {
	var body UpdateEmailNotificationChannelRequest
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromUpdateEmailNotificationChannelRequest overwrites any union data inside the UpdateNotificationChannelRequest as the provided UpdateEmailNotificationChannelRequest
func (t *UpdateNotificationChannelRequest) FromUpdateEmailNotificationChannelRequest(v UpdateEmailNotificationChannelRequest) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeUpdateEmailNotificationChannelRequest performs a merge with any union data inside the UpdateNotificationChannelRequest, using the provided UpdateEmailNotificationChannelRequest
func (t *UpdateNotificationChannelRequest) MergeUpdateEmailNotificationChannelRequest(v UpdateEmailNotificationChannelRequest) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JSONMerge(t.union, b)
	t.union = merged
	return err
}

// AsUpdateOpsgenieNotificationChannelRequest returns the union data inside the UpdateNotificationChannelRequest as a UpdateOpsgenieNotificationChannelRequest
func (t UpdateNotificationChannelRequest) AsUpdateOpsgenieNotificationChannelRequest() (UpdateOpsgenieNotificationChannelRequest, error) {
	var body UpdateOpsgenieNotificationChannelRequest
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromUpdateOpsgenieNotificationChannelRequest overwrites any union data inside the UpdateNotificationChannelRequest as the provided UpdateOpsgenieNotificationChannelRequest
func (t *UpdateNotificationChannelRequest) FromUpdateOpsgenieNotificationChannelRequest(v UpdateOpsgenieNotificationChannelRequest) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeUpdateOpsgenieNotificationChannelRequest performs a merge with any union data inside the UpdateNotificationChannelRequest, using the provided UpdateOpsgenieNotificationChannelRequest
func (t *UpdateNotificationChannelRequest) MergeUpdateOpsgenieNotificationChannelRequest(v UpdateOpsgenieNotificationChannelRequest) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JSONMerge(t.union, b)
	t.union = merged
	return err
}

// AsUpdatePagerDutyNotificationChannelRequest returns the union data inside the UpdateNotificationChannelRequest as a UpdatePagerDutyNotificationChannelRequest
func (t UpdateNotificationChannelRequest) AsUpdatePagerDutyNotificationChannelRequest() (UpdatePagerDutyNotificationChannelRequest, error) {
	var body UpdatePagerDutyNotificationChannelRequest
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromUpdatePagerDutyNotificationChannelRequest overwrites any union data inside the UpdateNotificationChannelRequest as the provided UpdatePagerDutyNotificationChannelRequest
func (t *UpdateNotificationChannelRequest) FromUpdatePagerDutyNotificationChannelRequest(v UpdatePagerDutyNotificationChannelRequest) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeUpdatePagerDutyNotificationChannelRequest performs a merge with any union data inside the UpdateNotificationChannelRequest, using the provided UpdatePagerDutyNotificationChannelRequest
func (t *UpdateNotificationChannelRequest) MergeUpdatePagerDutyNotificationChannelRequest(v UpdatePagerDutyNotificationChannelRequest) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JSONMerge(t.union, b)
	t.union = merged
	return err
}

// AsUpdateSlackNotificationChannelRequest returns the union data inside the UpdateNotificationChannelRequest as a UpdateSlackNotificationChannelRequest
func (t UpdateNotificationChannelRequest) AsUpdateSlackNotificationChannelRequest() (UpdateSlackNotificationChannelRequest, error) {
	var body UpdateSlackNotificationChannelRequest
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromUpdateSlackNotificationChannelRequest overwrites any union data inside the UpdateNotificationChannelRequest as the provided UpdateSlackNotificationChannelRequest
func (t *UpdateNotificationChannelRequest) FromUpdateSlackNotificationChannelRequest(v UpdateSlackNotificationChannelRequest) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeUpdateSlackNotificationChannelRequest performs a merge with any union data inside the UpdateNotificationChannelRequest, using the provided UpdateSlackNotificationChannelRequest
func (t *UpdateNotificationChannelRequest) MergeUpdateSlackNotificationChannelRequest(v UpdateSlackNotificationChannelRequest) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JSONMerge(t.union, b)
	t.union = merged
	return err
}

func (t UpdateNotificationChannelRequest) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *UpdateNotificationChannelRequest) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// RequestEditorFn  is the function signature for the RequestEditor callback function
type RequestEditorFn func(ctx context.Context, req *http.Request) error

// Doer performs HTTP requests.
//
// The standard http.Client implements this interface.
type HttpRequestDoer interface {
	Do(req *http.Request) (*http.Response, error)
}

// Client which conforms to the OpenAPI3 specification for this service.
type Client struct {
	// The endpoint of the server conforming to this interface, with scheme,
	// https://api.deepmap.com for example. This can contain a path relative
	// to the server, such as https://api.deepmap.com/dev-test, and all the
	// paths in the swagger spec will be appended to the server.
	Server string

	// Doer for performing requests, typically a *http.Client with any
	// customized settings, such as certificate chains.
	Client HttpRequestDoer

	// A list of callbacks for modifying requests which are generated before sending over
	// the network.
	RequestEditors []RequestEditorFn
}

// ClientOption allows setting custom parameters during construction
type ClientOption func(*Client) error

// Creates a new Client, with reasonable defaults
func NewClient(server string, opts ...ClientOption) (*Client, error) {
	// create a client with sane default values
	client := Client{
		Server: server,
	}
	// mutate client and add all optional params
	for _, o := range opts {
		if err := o(&client); err != nil {
			return nil, err
		}
	}
	// ensure the server URL always has a trailing slash
	if !strings.HasSuffix(client.Server, "/") {
		client.Server += "/"
	}
	// create httpClient, if not already present
	if client.Client == nil {
		client.Client = &http.Client{}
	}
	return &client, nil
}

// WithHTTPClient allows overriding the default Doer, which is
// automatically created using http.Client. This is useful for tests.
func WithHTTPClient(doer HttpRequestDoer) ClientOption {
	return func(c *Client) error {
		c.Client = doer
		return nil
	}
}

// WithRequestEditorFn allows setting up a callback function, which will be
// called right before sending the request. This can be used to mutate the request.
func WithRequestEditorFn(fn RequestEditorFn) ClientOption {
	return func(c *Client) error {
		c.RequestEditors = append(c.RequestEditors, fn)
		return nil
	}
}

// The interface specification for the client above.
type ClientInterface interface {
	// ListOrganizations request
	ListOrganizations(ctx context.Context, params *ListOrganizationsParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetOrganization request
	GetOrganization(ctx context.Context, organizationId string, params *GetOrganizationParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// UpdateOrganizationWithBody request with any body
	UpdateOrganizationWithBody(ctx context.Context, organizationId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	UpdateOrganization(ctx context.Context, organizationId string, body UpdateOrganizationJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListAlerts request
	ListAlerts(ctx context.Context, organizationId string, params *ListAlertsParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// CreateAlertWithBody request with any body
	CreateAlertWithBody(ctx context.Context, organizationId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	CreateAlert(ctx context.Context, organizationId string, body CreateAlertJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// DeleteAlert request
	DeleteAlert(ctx context.Context, organizationId string, alertId string, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetAlert request
	GetAlert(ctx context.Context, organizationId string, alertId string, reqEditors ...RequestEditorFn) (*http.Response, error)

	// UpdateAlertWithBody request with any body
	UpdateAlertWithBody(ctx context.Context, organizationId string, alertId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	UpdateAlert(ctx context.Context, organizationId string, alertId string, body UpdateAlertJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetOrganizationAuditLogs request
	GetOrganizationAuditLogs(ctx context.Context, organizationId string, params *GetOrganizationAuditLogsParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetClusterOptions request
	GetClusterOptions(ctx context.Context, organizationId string, params *GetClusterOptionsParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListClusters request
	ListClusters(ctx context.Context, organizationId string, params *ListClustersParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// CreateClusterWithBody request with any body
	CreateClusterWithBody(ctx context.Context, organizationId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	CreateCluster(ctx context.Context, organizationId string, body CreateClusterJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// DeleteCluster request
	DeleteCluster(ctx context.Context, organizationId string, clusterId string, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetCluster request
	GetCluster(ctx context.Context, organizationId string, clusterId string, reqEditors ...RequestEditorFn) (*http.Response, error)

	// UpdateClusterWithBody request with any body
	UpdateClusterWithBody(ctx context.Context, organizationId string, clusterId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	UpdateCluster(ctx context.Context, organizationId string, clusterId string, body UpdateClusterJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetDeploymentOptions request
	GetDeploymentOptions(ctx context.Context, organizationId string, params *GetDeploymentOptionsParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListDeployments request
	ListDeployments(ctx context.Context, organizationId string, params *ListDeploymentsParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// CreateDeploymentWithBody request with any body
	CreateDeploymentWithBody(ctx context.Context, organizationId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	CreateDeployment(ctx context.Context, organizationId string, body CreateDeploymentJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// DeleteDeployment request
	DeleteDeployment(ctx context.Context, organizationId string, deploymentId string, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetDeployment request
	GetDeployment(ctx context.Context, organizationId string, deploymentId string, reqEditors ...RequestEditorFn) (*http.Response, error)

	// UpdateDeploymentWithBody request with any body
	UpdateDeploymentWithBody(ctx context.Context, organizationId string, deploymentId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	UpdateDeployment(ctx context.Context, organizationId string, deploymentId string, body UpdateDeploymentJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// DeleteDeploymentHibernationOverride request
	DeleteDeploymentHibernationOverride(ctx context.Context, organizationId string, deploymentId string, reqEditors ...RequestEditorFn) (*http.Response, error)

	// UpdateDeploymentHibernationOverrideWithBody request with any body
	UpdateDeploymentHibernationOverrideWithBody(ctx context.Context, organizationId string, deploymentId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	UpdateDeploymentHibernationOverride(ctx context.Context, organizationId string, deploymentId string, body UpdateDeploymentHibernationOverrideJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListEnvironmentObjects request
	ListEnvironmentObjects(ctx context.Context, organizationId string, params *ListEnvironmentObjectsParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// CreateEnvironmentObjectWithBody request with any body
	CreateEnvironmentObjectWithBody(ctx context.Context, organizationId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	CreateEnvironmentObject(ctx context.Context, organizationId string, body CreateEnvironmentObjectJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// DeleteEnvironmentObject request
	DeleteEnvironmentObject(ctx context.Context, organizationId string, environmentObjectId string, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetEnvironmentObject request
	GetEnvironmentObject(ctx context.Context, organizationId string, environmentObjectId string, reqEditors ...RequestEditorFn) (*http.Response, error)

	// UpdateEnvironmentObjectWithBody request with any body
	UpdateEnvironmentObjectWithBody(ctx context.Context, organizationId string, environmentObjectId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	UpdateEnvironmentObject(ctx context.Context, organizationId string, environmentObjectId string, body UpdateEnvironmentObjectJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ExcludeLinkingEnvironmentObjectWithBody request with any body
	ExcludeLinkingEnvironmentObjectWithBody(ctx context.Context, organizationId string, environmentObjectId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	ExcludeLinkingEnvironmentObject(ctx context.Context, organizationId string, environmentObjectId string, body ExcludeLinkingEnvironmentObjectJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListNotificationChannels request
	ListNotificationChannels(ctx context.Context, organizationId string, params *ListNotificationChannelsParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// CreateNotificationChannelWithBody request with any body
	CreateNotificationChannelWithBody(ctx context.Context, organizationId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	CreateNotificationChannel(ctx context.Context, organizationId string, body CreateNotificationChannelJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// DeleteNotificationChannel request
	DeleteNotificationChannel(ctx context.Context, organizationId string, notificationChannelId string, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetNotificationChannel request
	GetNotificationChannel(ctx context.Context, organizationId string, notificationChannelId string, reqEditors ...RequestEditorFn) (*http.Response, error)

	// UpdateNotificationChannelWithBody request with any body
	UpdateNotificationChannelWithBody(ctx context.Context, organizationId string, notificationChannelId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	UpdateNotificationChannel(ctx context.Context, organizationId string, notificationChannelId string, body UpdateNotificationChannelJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListWorkspaces request
	ListWorkspaces(ctx context.Context, organizationId string, params *ListWorkspacesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// CreateWorkspaceWithBody request with any body
	CreateWorkspaceWithBody(ctx context.Context, organizationId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	CreateWorkspace(ctx context.Context, organizationId string, body CreateWorkspaceJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// DeleteWorkspace request
	DeleteWorkspace(ctx context.Context, organizationId string, workspaceId string, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetWorkspace request
	GetWorkspace(ctx context.Context, organizationId string, workspaceId string, reqEditors ...RequestEditorFn) (*http.Response, error)

	// UpdateWorkspaceWithBody request with any body
	UpdateWorkspaceWithBody(ctx context.Context, organizationId string, workspaceId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	UpdateWorkspace(ctx context.Context, organizationId string, workspaceId string, body UpdateWorkspaceJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)
}

func (c *Client) ListOrganizations(ctx context.Context, params *ListOrganizationsParams, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewListOrganizationsRequest(c.Server, params)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) GetOrganization(ctx context.Context, organizationId string, params *GetOrganizationParams, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewGetOrganizationRequest(c.Server, organizationId, params)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) UpdateOrganizationWithBody(ctx context.Context, organizationId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewUpdateOrganizationRequestWithBody(c.Server, organizationId, contentType, body)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) UpdateOrganization(ctx context.Context, organizationId string, body UpdateOrganizationJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewUpdateOrganizationRequest(c.Server, organizationId, body)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) ListAlerts(ctx context.Context, organizationId string, params *ListAlertsParams, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewListAlertsRequest(c.Server, organizationId, params)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) CreateAlertWithBody(ctx context.Context, organizationId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewCreateAlertRequestWithBody(c.Server, organizationId, contentType, body)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) CreateAlert(ctx context.Context, organizationId string, body CreateAlertJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewCreateAlertRequest(c.Server, organizationId, body)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) DeleteAlert(ctx context.Context, organizationId string, alertId string, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewDeleteAlertRequest(c.Server, organizationId, alertId)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) GetAlert(ctx context.Context, organizationId string, alertId string, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewGetAlertRequest(c.Server, organizationId, alertId)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) UpdateAlertWithBody(ctx context.Context, organizationId string, alertId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewUpdateAlertRequestWithBody(c.Server, organizationId, alertId, contentType, body)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) UpdateAlert(ctx context.Context, organizationId string, alertId string, body UpdateAlertJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewUpdateAlertRequest(c.Server, organizationId, alertId, body)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) GetOrganizationAuditLogs(ctx context.Context, organizationId string, params *GetOrganizationAuditLogsParams, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewGetOrganizationAuditLogsRequest(c.Server, organizationId, params)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) GetClusterOptions(ctx context.Context, organizationId string, params *GetClusterOptionsParams, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewGetClusterOptionsRequest(c.Server, organizationId, params)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) ListClusters(ctx context.Context, organizationId string, params *ListClustersParams, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewListClustersRequest(c.Server, organizationId, params)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) CreateClusterWithBody(ctx context.Context, organizationId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewCreateClusterRequestWithBody(c.Server, organizationId, contentType, body)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) CreateCluster(ctx context.Context, organizationId string, body CreateClusterJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewCreateClusterRequest(c.Server, organizationId, body)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) DeleteCluster(ctx context.Context, organizationId string, clusterId string, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewDeleteClusterRequest(c.Server, organizationId, clusterId)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) GetCluster(ctx context.Context, organizationId string, clusterId string, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewGetClusterRequest(c.Server, organizationId, clusterId)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) UpdateClusterWithBody(ctx context.Context, organizationId string, clusterId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewUpdateClusterRequestWithBody(c.Server, organizationId, clusterId, contentType, body)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) UpdateCluster(ctx context.Context, organizationId string, clusterId string, body UpdateClusterJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewUpdateClusterRequest(c.Server, organizationId, clusterId, body)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) GetDeploymentOptions(ctx context.Context, organizationId string, params *GetDeploymentOptionsParams, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewGetDeploymentOptionsRequest(c.Server, organizationId, params)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) ListDeployments(ctx context.Context, organizationId string, params *ListDeploymentsParams, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewListDeploymentsRequest(c.Server, organizationId, params)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) CreateDeploymentWithBody(ctx context.Context, organizationId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewCreateDeploymentRequestWithBody(c.Server, organizationId, contentType, body)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) CreateDeployment(ctx context.Context, organizationId string, body CreateDeploymentJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewCreateDeploymentRequest(c.Server, organizationId, body)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) DeleteDeployment(ctx context.Context, organizationId string, deploymentId string, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewDeleteDeploymentRequest(c.Server, organizationId, deploymentId)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) GetDeployment(ctx context.Context, organizationId string, deploymentId string, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewGetDeploymentRequest(c.Server, organizationId, deploymentId)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) UpdateDeploymentWithBody(ctx context.Context, organizationId string, deploymentId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewUpdateDeploymentRequestWithBody(c.Server, organizationId, deploymentId, contentType, body)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) UpdateDeployment(ctx context.Context, organizationId string, deploymentId string, body UpdateDeploymentJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewUpdateDeploymentRequest(c.Server, organizationId, deploymentId, body)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) DeleteDeploymentHibernationOverride(ctx context.Context, organizationId string, deploymentId string, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewDeleteDeploymentHibernationOverrideRequest(c.Server, organizationId, deploymentId)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) UpdateDeploymentHibernationOverrideWithBody(ctx context.Context, organizationId string, deploymentId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewUpdateDeploymentHibernationOverrideRequestWithBody(c.Server, organizationId, deploymentId, contentType, body)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) UpdateDeploymentHibernationOverride(ctx context.Context, organizationId string, deploymentId string, body UpdateDeploymentHibernationOverrideJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewUpdateDeploymentHibernationOverrideRequest(c.Server, organizationId, deploymentId, body)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) ListEnvironmentObjects(ctx context.Context, organizationId string, params *ListEnvironmentObjectsParams, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewListEnvironmentObjectsRequest(c.Server, organizationId, params)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) CreateEnvironmentObjectWithBody(ctx context.Context, organizationId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewCreateEnvironmentObjectRequestWithBody(c.Server, organizationId, contentType, body)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) CreateEnvironmentObject(ctx context.Context, organizationId string, body CreateEnvironmentObjectJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewCreateEnvironmentObjectRequest(c.Server, organizationId, body)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) DeleteEnvironmentObject(ctx context.Context, organizationId string, environmentObjectId string, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewDeleteEnvironmentObjectRequest(c.Server, organizationId, environmentObjectId)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) GetEnvironmentObject(ctx context.Context, organizationId string, environmentObjectId string, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewGetEnvironmentObjectRequest(c.Server, organizationId, environmentObjectId)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) UpdateEnvironmentObjectWithBody(ctx context.Context, organizationId string, environmentObjectId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewUpdateEnvironmentObjectRequestWithBody(c.Server, organizationId, environmentObjectId, contentType, body)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) UpdateEnvironmentObject(ctx context.Context, organizationId string, environmentObjectId string, body UpdateEnvironmentObjectJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewUpdateEnvironmentObjectRequest(c.Server, organizationId, environmentObjectId, body)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) ExcludeLinkingEnvironmentObjectWithBody(ctx context.Context, organizationId string, environmentObjectId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewExcludeLinkingEnvironmentObjectRequestWithBody(c.Server, organizationId, environmentObjectId, contentType, body)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) ExcludeLinkingEnvironmentObject(ctx context.Context, organizationId string, environmentObjectId string, body ExcludeLinkingEnvironmentObjectJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewExcludeLinkingEnvironmentObjectRequest(c.Server, organizationId, environmentObjectId, body)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) ListNotificationChannels(ctx context.Context, organizationId string, params *ListNotificationChannelsParams, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewListNotificationChannelsRequest(c.Server, organizationId, params)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) CreateNotificationChannelWithBody(ctx context.Context, organizationId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewCreateNotificationChannelRequestWithBody(c.Server, organizationId, contentType, body)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) CreateNotificationChannel(ctx context.Context, organizationId string, body CreateNotificationChannelJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewCreateNotificationChannelRequest(c.Server, organizationId, body)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) DeleteNotificationChannel(ctx context.Context, organizationId string, notificationChannelId string, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewDeleteNotificationChannelRequest(c.Server, organizationId, notificationChannelId)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) GetNotificationChannel(ctx context.Context, organizationId string, notificationChannelId string, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewGetNotificationChannelRequest(c.Server, organizationId, notificationChannelId)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) UpdateNotificationChannelWithBody(ctx context.Context, organizationId string, notificationChannelId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewUpdateNotificationChannelRequestWithBody(c.Server, organizationId, notificationChannelId, contentType, body)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) UpdateNotificationChannel(ctx context.Context, organizationId string, notificationChannelId string, body UpdateNotificationChannelJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewUpdateNotificationChannelRequest(c.Server, organizationId, notificationChannelId, body)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) ListWorkspaces(ctx context.Context, organizationId string, params *ListWorkspacesParams, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewListWorkspacesRequest(c.Server, organizationId, params)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) CreateWorkspaceWithBody(ctx context.Context, organizationId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewCreateWorkspaceRequestWithBody(c.Server, organizationId, contentType, body)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) CreateWorkspace(ctx context.Context, organizationId string, body CreateWorkspaceJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewCreateWorkspaceRequest(c.Server, organizationId, body)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) DeleteWorkspace(ctx context.Context, organizationId string, workspaceId string, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewDeleteWorkspaceRequest(c.Server, organizationId, workspaceId)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) GetWorkspace(ctx context.Context, organizationId string, workspaceId string, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewGetWorkspaceRequest(c.Server, organizationId, workspaceId)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) UpdateWorkspaceWithBody(ctx context.Context, organizationId string, workspaceId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewUpdateWorkspaceRequestWithBody(c.Server, organizationId, workspaceId, contentType, body)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) UpdateWorkspace(ctx context.Context, organizationId string, workspaceId string, body UpdateWorkspaceJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewUpdateWorkspaceRequest(c.Server, organizationId, workspaceId, body)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

// NewListOrganizationsRequest generates requests for ListOrganizations
func NewListOrganizationsRequest(server string, params *ListOrganizationsParams) (*http.Request, error) {
	var err error

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations")
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	if params != nil {
		queryValues := queryURL.Query()

		if params.SupportPlan != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "supportPlan", runtime.ParamLocationQuery, *params.SupportPlan); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.ProductPlan != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "productPlan", runtime.ParamLocationQuery, *params.ProductPlan); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.AstronomerProduct != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "astronomerProduct", runtime.ParamLocationQuery, *params.AstronomerProduct); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Product != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "product", runtime.ParamLocationQuery, *params.Product); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Offset != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "offset", runtime.ParamLocationQuery, *params.Offset); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Limit != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "limit", runtime.ParamLocationQuery, *params.Limit); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Sorts != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "sorts", runtime.ParamLocationQuery, *params.Sorts); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		queryURL.RawQuery = queryValues.Encode()
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewGetOrganizationRequest generates requests for GetOrganization
func NewGetOrganizationRequest(server string, organizationId string, params *GetOrganizationParams) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s", pathParam0)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	if params != nil {
		queryValues := queryURL.Query()

		if params.IsLookUpOnly != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "isLookUpOnly", runtime.ParamLocationQuery, *params.IsLookUpOnly); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		queryURL.RawQuery = queryValues.Encode()
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewUpdateOrganizationRequest calls the generic UpdateOrganization builder with application/json body
func NewUpdateOrganizationRequest(server string, organizationId string, body UpdateOrganizationJSONRequestBody) (*http.Request, error) {
	var bodyReader io.Reader
	buf, err := json.Marshal(body)
	if err != nil {
		return nil, err
	}
	bodyReader = bytes.NewReader(buf)
	return NewUpdateOrganizationRequestWithBody(server, organizationId, "application/json", bodyReader)
}

// NewUpdateOrganizationRequestWithBody generates requests for UpdateOrganization with any type of body
func NewUpdateOrganizationRequestWithBody(server string, organizationId string, contentType string, body io.Reader) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s", pathParam0)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("POST", queryURL.String(), body)
	if err != nil {
		return nil, err
	}

	req.Header.Add("Content-Type", contentType)

	return req, nil
}

// NewListAlertsRequest generates requests for ListAlerts
func NewListAlertsRequest(server string, organizationId string, params *ListAlertsParams) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/alerts", pathParam0)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	if params != nil {
		queryValues := queryURL.Query()

		if params.AlertIds != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "alertIds", runtime.ParamLocationQuery, *params.AlertIds); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.DeploymentIds != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "deploymentIds", runtime.ParamLocationQuery, *params.DeploymentIds); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.WorkspaceIds != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "workspaceIds", runtime.ParamLocationQuery, *params.WorkspaceIds); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.AlertTypes != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "alertTypes", runtime.ParamLocationQuery, *params.AlertTypes); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.EntityType != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "entityType", runtime.ParamLocationQuery, *params.EntityType); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Offset != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "offset", runtime.ParamLocationQuery, *params.Offset); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Limit != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "limit", runtime.ParamLocationQuery, *params.Limit); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Sorts != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "sorts", runtime.ParamLocationQuery, *params.Sorts); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		queryURL.RawQuery = queryValues.Encode()
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewCreateAlertRequest calls the generic CreateAlert builder with application/json body
func NewCreateAlertRequest(server string, organizationId string, body CreateAlertJSONRequestBody) (*http.Request, error) {
	var bodyReader io.Reader
	buf, err := json.Marshal(body)
	if err != nil {
		return nil, err
	}
	bodyReader = bytes.NewReader(buf)
	return NewCreateAlertRequestWithBody(server, organizationId, "application/json", bodyReader)
}

// NewCreateAlertRequestWithBody generates requests for CreateAlert with any type of body
func NewCreateAlertRequestWithBody(server string, organizationId string, contentType string, body io.Reader) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/alerts", pathParam0)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("POST", queryURL.String(), body)
	if err != nil {
		return nil, err
	}

	req.Header.Add("Content-Type", contentType)

	return req, nil
}

// NewDeleteAlertRequest generates requests for DeleteAlert
func NewDeleteAlertRequest(server string, organizationId string, alertId string) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	var pathParam1 string

	pathParam1, err = runtime.StyleParamWithLocation("simple", false, "alertId", runtime.ParamLocationPath, alertId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/alerts/%s", pathParam0, pathParam1)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("DELETE", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewGetAlertRequest generates requests for GetAlert
func NewGetAlertRequest(server string, organizationId string, alertId string) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	var pathParam1 string

	pathParam1, err = runtime.StyleParamWithLocation("simple", false, "alertId", runtime.ParamLocationPath, alertId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/alerts/%s", pathParam0, pathParam1)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewUpdateAlertRequest calls the generic UpdateAlert builder with application/json body
func NewUpdateAlertRequest(server string, organizationId string, alertId string, body UpdateAlertJSONRequestBody) (*http.Request, error) {
	var bodyReader io.Reader
	buf, err := json.Marshal(body)
	if err != nil {
		return nil, err
	}
	bodyReader = bytes.NewReader(buf)
	return NewUpdateAlertRequestWithBody(server, organizationId, alertId, "application/json", bodyReader)
}

// NewUpdateAlertRequestWithBody generates requests for UpdateAlert with any type of body
func NewUpdateAlertRequestWithBody(server string, organizationId string, alertId string, contentType string, body io.Reader) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	var pathParam1 string

	pathParam1, err = runtime.StyleParamWithLocation("simple", false, "alertId", runtime.ParamLocationPath, alertId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/alerts/%s", pathParam0, pathParam1)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("POST", queryURL.String(), body)
	if err != nil {
		return nil, err
	}

	req.Header.Add("Content-Type", contentType)

	return req, nil
}

// NewGetOrganizationAuditLogsRequest generates requests for GetOrganizationAuditLogs
func NewGetOrganizationAuditLogsRequest(server string, organizationId string, params *GetOrganizationAuditLogsParams) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/audit-logs", pathParam0)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	if params != nil {
		queryValues := queryURL.Query()

		if params.StartDate != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "startDate", runtime.ParamLocationQuery, *params.StartDate); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.EndDate != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "endDate", runtime.ParamLocationQuery, *params.EndDate); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		queryURL.RawQuery = queryValues.Encode()
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewGetClusterOptionsRequest generates requests for GetClusterOptions
func NewGetClusterOptionsRequest(server string, organizationId string, params *GetClusterOptionsParams) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/cluster-options", pathParam0)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	if params != nil {
		queryValues := queryURL.Query()

		if params.Provider != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "provider", runtime.ParamLocationQuery, *params.Provider); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if queryFrag, err := runtime.StyleParamWithLocation("form", true, "type", runtime.ParamLocationQuery, params.Type); err != nil {
			return nil, err
		} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
			return nil, err
		} else {
			for k, v := range parsed {
				for _, v2 := range v {
					queryValues.Add(k, v2)
				}
			}
		}

		queryURL.RawQuery = queryValues.Encode()
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewListClustersRequest generates requests for ListClusters
func NewListClustersRequest(server string, organizationId string, params *ListClustersParams) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/clusters", pathParam0)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	if params != nil {
		queryValues := queryURL.Query()

		if params.Names != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "names", runtime.ParamLocationQuery, *params.Names); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Provider != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "provider", runtime.ParamLocationQuery, *params.Provider); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Offset != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "offset", runtime.ParamLocationQuery, *params.Offset); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Limit != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "limit", runtime.ParamLocationQuery, *params.Limit); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Sorts != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "sorts", runtime.ParamLocationQuery, *params.Sorts); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		queryURL.RawQuery = queryValues.Encode()
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewCreateClusterRequest calls the generic CreateCluster builder with application/json body
func NewCreateClusterRequest(server string, organizationId string, body CreateClusterJSONRequestBody) (*http.Request, error) {
	var bodyReader io.Reader
	buf, err := json.Marshal(body)
	if err != nil {
		return nil, err
	}
	bodyReader = bytes.NewReader(buf)
	return NewCreateClusterRequestWithBody(server, organizationId, "application/json", bodyReader)
}

// NewCreateClusterRequestWithBody generates requests for CreateCluster with any type of body
func NewCreateClusterRequestWithBody(server string, organizationId string, contentType string, body io.Reader) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/clusters", pathParam0)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("POST", queryURL.String(), body)
	if err != nil {
		return nil, err
	}

	req.Header.Add("Content-Type", contentType)

	return req, nil
}

// NewDeleteClusterRequest generates requests for DeleteCluster
func NewDeleteClusterRequest(server string, organizationId string, clusterId string) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	var pathParam1 string

	pathParam1, err = runtime.StyleParamWithLocation("simple", false, "clusterId", runtime.ParamLocationPath, clusterId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/clusters/%s", pathParam0, pathParam1)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("DELETE", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewGetClusterRequest generates requests for GetCluster
func NewGetClusterRequest(server string, organizationId string, clusterId string) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	var pathParam1 string

	pathParam1, err = runtime.StyleParamWithLocation("simple", false, "clusterId", runtime.ParamLocationPath, clusterId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/clusters/%s", pathParam0, pathParam1)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewUpdateClusterRequest calls the generic UpdateCluster builder with application/json body
func NewUpdateClusterRequest(server string, organizationId string, clusterId string, body UpdateClusterJSONRequestBody) (*http.Request, error) {
	var bodyReader io.Reader
	buf, err := json.Marshal(body)
	if err != nil {
		return nil, err
	}
	bodyReader = bytes.NewReader(buf)
	return NewUpdateClusterRequestWithBody(server, organizationId, clusterId, "application/json", bodyReader)
}

// NewUpdateClusterRequestWithBody generates requests for UpdateCluster with any type of body
func NewUpdateClusterRequestWithBody(server string, organizationId string, clusterId string, contentType string, body io.Reader) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	var pathParam1 string

	pathParam1, err = runtime.StyleParamWithLocation("simple", false, "clusterId", runtime.ParamLocationPath, clusterId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/clusters/%s", pathParam0, pathParam1)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("POST", queryURL.String(), body)
	if err != nil {
		return nil, err
	}

	req.Header.Add("Content-Type", contentType)

	return req, nil
}

// NewGetDeploymentOptionsRequest generates requests for GetDeploymentOptions
func NewGetDeploymentOptionsRequest(server string, organizationId string, params *GetDeploymentOptionsParams) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/deployment-options", pathParam0)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	if params != nil {
		queryValues := queryURL.Query()

		if params.DeploymentId != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "deploymentId", runtime.ParamLocationQuery, *params.DeploymentId); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.DeploymentType != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "deploymentType", runtime.ParamLocationQuery, *params.DeploymentType); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Executor != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "executor", runtime.ParamLocationQuery, *params.Executor); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.CloudProvider != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "cloudProvider", runtime.ParamLocationQuery, *params.CloudProvider); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		queryURL.RawQuery = queryValues.Encode()
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewListDeploymentsRequest generates requests for ListDeployments
func NewListDeploymentsRequest(server string, organizationId string, params *ListDeploymentsParams) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/deployments", pathParam0)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	if params != nil {
		queryValues := queryURL.Query()

		if params.DeploymentIds != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "deploymentIds", runtime.ParamLocationQuery, *params.DeploymentIds); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Names != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "names", runtime.ParamLocationQuery, *params.Names); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.WorkspaceIds != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "workspaceIds", runtime.ParamLocationQuery, *params.WorkspaceIds); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Offset != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "offset", runtime.ParamLocationQuery, *params.Offset); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Limit != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "limit", runtime.ParamLocationQuery, *params.Limit); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Sorts != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "sorts", runtime.ParamLocationQuery, *params.Sorts); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		queryURL.RawQuery = queryValues.Encode()
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewCreateDeploymentRequest calls the generic CreateDeployment builder with application/json body
func NewCreateDeploymentRequest(server string, organizationId string, body CreateDeploymentJSONRequestBody) (*http.Request, error) {
	var bodyReader io.Reader
	buf, err := json.Marshal(body)
	if err != nil {
		return nil, err
	}
	bodyReader = bytes.NewReader(buf)
	return NewCreateDeploymentRequestWithBody(server, organizationId, "application/json", bodyReader)
}

// NewCreateDeploymentRequestWithBody generates requests for CreateDeployment with any type of body
func NewCreateDeploymentRequestWithBody(server string, organizationId string, contentType string, body io.Reader) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/deployments", pathParam0)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("POST", queryURL.String(), body)
	if err != nil {
		return nil, err
	}

	req.Header.Add("Content-Type", contentType)

	return req, nil
}

// NewDeleteDeploymentRequest generates requests for DeleteDeployment
func NewDeleteDeploymentRequest(server string, organizationId string, deploymentId string) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	var pathParam1 string

	pathParam1, err = runtime.StyleParamWithLocation("simple", false, "deploymentId", runtime.ParamLocationPath, deploymentId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/deployments/%s", pathParam0, pathParam1)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("DELETE", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewGetDeploymentRequest generates requests for GetDeployment
func NewGetDeploymentRequest(server string, organizationId string, deploymentId string) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	var pathParam1 string

	pathParam1, err = runtime.StyleParamWithLocation("simple", false, "deploymentId", runtime.ParamLocationPath, deploymentId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/deployments/%s", pathParam0, pathParam1)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewUpdateDeploymentRequest calls the generic UpdateDeployment builder with application/json body
func NewUpdateDeploymentRequest(server string, organizationId string, deploymentId string, body UpdateDeploymentJSONRequestBody) (*http.Request, error) {
	var bodyReader io.Reader
	buf, err := json.Marshal(body)
	if err != nil {
		return nil, err
	}
	bodyReader = bytes.NewReader(buf)
	return NewUpdateDeploymentRequestWithBody(server, organizationId, deploymentId, "application/json", bodyReader)
}

// NewUpdateDeploymentRequestWithBody generates requests for UpdateDeployment with any type of body
func NewUpdateDeploymentRequestWithBody(server string, organizationId string, deploymentId string, contentType string, body io.Reader) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	var pathParam1 string

	pathParam1, err = runtime.StyleParamWithLocation("simple", false, "deploymentId", runtime.ParamLocationPath, deploymentId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/deployments/%s", pathParam0, pathParam1)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("POST", queryURL.String(), body)
	if err != nil {
		return nil, err
	}

	req.Header.Add("Content-Type", contentType)

	return req, nil
}

// NewDeleteDeploymentHibernationOverrideRequest generates requests for DeleteDeploymentHibernationOverride
func NewDeleteDeploymentHibernationOverrideRequest(server string, organizationId string, deploymentId string) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	var pathParam1 string

	pathParam1, err = runtime.StyleParamWithLocation("simple", false, "deploymentId", runtime.ParamLocationPath, deploymentId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/deployments/%s/hibernation-override", pathParam0, pathParam1)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("DELETE", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewUpdateDeploymentHibernationOverrideRequest calls the generic UpdateDeploymentHibernationOverride builder with application/json body
func NewUpdateDeploymentHibernationOverrideRequest(server string, organizationId string, deploymentId string, body UpdateDeploymentHibernationOverrideJSONRequestBody) (*http.Request, error) {
	var bodyReader io.Reader
	buf, err := json.Marshal(body)
	if err != nil {
		return nil, err
	}
	bodyReader = bytes.NewReader(buf)
	return NewUpdateDeploymentHibernationOverrideRequestWithBody(server, organizationId, deploymentId, "application/json", bodyReader)
}

// NewUpdateDeploymentHibernationOverrideRequestWithBody generates requests for UpdateDeploymentHibernationOverride with any type of body
func NewUpdateDeploymentHibernationOverrideRequestWithBody(server string, organizationId string, deploymentId string, contentType string, body io.Reader) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	var pathParam1 string

	pathParam1, err = runtime.StyleParamWithLocation("simple", false, "deploymentId", runtime.ParamLocationPath, deploymentId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/deployments/%s/hibernation-override", pathParam0, pathParam1)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("POST", queryURL.String(), body)
	if err != nil {
		return nil, err
	}

	req.Header.Add("Content-Type", contentType)

	return req, nil
}

// NewListEnvironmentObjectsRequest generates requests for ListEnvironmentObjects
func NewListEnvironmentObjectsRequest(server string, organizationId string, params *ListEnvironmentObjectsParams) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/environment-objects", pathParam0)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	if params != nil {
		queryValues := queryURL.Query()

		if params.Offset != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "offset", runtime.ParamLocationQuery, *params.Offset); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Limit != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "limit", runtime.ParamLocationQuery, *params.Limit); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Sorts != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "sorts", runtime.ParamLocationQuery, *params.Sorts); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.WorkspaceId != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "workspaceId", runtime.ParamLocationQuery, *params.WorkspaceId); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.DeploymentId != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "deploymentId", runtime.ParamLocationQuery, *params.DeploymentId); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.ObjectType != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "objectType", runtime.ParamLocationQuery, *params.ObjectType); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.ObjectKey != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "objectKey", runtime.ParamLocationQuery, *params.ObjectKey); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.ShowSecrets != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "showSecrets", runtime.ParamLocationQuery, *params.ShowSecrets); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.ResolveLinked != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "resolveLinked", runtime.ParamLocationQuery, *params.ResolveLinked); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		queryURL.RawQuery = queryValues.Encode()
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewCreateEnvironmentObjectRequest calls the generic CreateEnvironmentObject builder with application/json body
func NewCreateEnvironmentObjectRequest(server string, organizationId string, body CreateEnvironmentObjectJSONRequestBody) (*http.Request, error) {
	var bodyReader io.Reader
	buf, err := json.Marshal(body)
	if err != nil {
		return nil, err
	}
	bodyReader = bytes.NewReader(buf)
	return NewCreateEnvironmentObjectRequestWithBody(server, organizationId, "application/json", bodyReader)
}

// NewCreateEnvironmentObjectRequestWithBody generates requests for CreateEnvironmentObject with any type of body
func NewCreateEnvironmentObjectRequestWithBody(server string, organizationId string, contentType string, body io.Reader) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/environment-objects", pathParam0)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("POST", queryURL.String(), body)
	if err != nil {
		return nil, err
	}

	req.Header.Add("Content-Type", contentType)

	return req, nil
}

// NewDeleteEnvironmentObjectRequest generates requests for DeleteEnvironmentObject
func NewDeleteEnvironmentObjectRequest(server string, organizationId string, environmentObjectId string) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	var pathParam1 string

	pathParam1, err = runtime.StyleParamWithLocation("simple", false, "environmentObjectId", runtime.ParamLocationPath, environmentObjectId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/environment-objects/%s", pathParam0, pathParam1)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("DELETE", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewGetEnvironmentObjectRequest generates requests for GetEnvironmentObject
func NewGetEnvironmentObjectRequest(server string, organizationId string, environmentObjectId string) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	var pathParam1 string

	pathParam1, err = runtime.StyleParamWithLocation("simple", false, "environmentObjectId", runtime.ParamLocationPath, environmentObjectId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/environment-objects/%s", pathParam0, pathParam1)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewUpdateEnvironmentObjectRequest calls the generic UpdateEnvironmentObject builder with application/json body
func NewUpdateEnvironmentObjectRequest(server string, organizationId string, environmentObjectId string, body UpdateEnvironmentObjectJSONRequestBody) (*http.Request, error) {
	var bodyReader io.Reader
	buf, err := json.Marshal(body)
	if err != nil {
		return nil, err
	}
	bodyReader = bytes.NewReader(buf)
	return NewUpdateEnvironmentObjectRequestWithBody(server, organizationId, environmentObjectId, "application/json", bodyReader)
}

// NewUpdateEnvironmentObjectRequestWithBody generates requests for UpdateEnvironmentObject with any type of body
func NewUpdateEnvironmentObjectRequestWithBody(server string, organizationId string, environmentObjectId string, contentType string, body io.Reader) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	var pathParam1 string

	pathParam1, err = runtime.StyleParamWithLocation("simple", false, "environmentObjectId", runtime.ParamLocationPath, environmentObjectId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/environment-objects/%s", pathParam0, pathParam1)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("POST", queryURL.String(), body)
	if err != nil {
		return nil, err
	}

	req.Header.Add("Content-Type", contentType)

	return req, nil
}

// NewExcludeLinkingEnvironmentObjectRequest calls the generic ExcludeLinkingEnvironmentObject builder with application/json body
func NewExcludeLinkingEnvironmentObjectRequest(server string, organizationId string, environmentObjectId string, body ExcludeLinkingEnvironmentObjectJSONRequestBody) (*http.Request, error) {
	var bodyReader io.Reader
	buf, err := json.Marshal(body)
	if err != nil {
		return nil, err
	}
	bodyReader = bytes.NewReader(buf)
	return NewExcludeLinkingEnvironmentObjectRequestWithBody(server, organizationId, environmentObjectId, "application/json", bodyReader)
}

// NewExcludeLinkingEnvironmentObjectRequestWithBody generates requests for ExcludeLinkingEnvironmentObject with any type of body
func NewExcludeLinkingEnvironmentObjectRequestWithBody(server string, organizationId string, environmentObjectId string, contentType string, body io.Reader) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	var pathParam1 string

	pathParam1, err = runtime.StyleParamWithLocation("simple", false, "environmentObjectId", runtime.ParamLocationPath, environmentObjectId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/environment-objects/%s/exclude-linking", pathParam0, pathParam1)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("POST", queryURL.String(), body)
	if err != nil {
		return nil, err
	}

	req.Header.Add("Content-Type", contentType)

	return req, nil
}

// NewListNotificationChannelsRequest generates requests for ListNotificationChannels
func NewListNotificationChannelsRequest(server string, organizationId string, params *ListNotificationChannelsParams) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/notification-channels", pathParam0)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	if params != nil {
		queryValues := queryURL.Query()

		if params.NotificationChannelIds != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "notificationChannelIds", runtime.ParamLocationQuery, *params.NotificationChannelIds); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.DeploymentIds != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "deploymentIds", runtime.ParamLocationQuery, *params.DeploymentIds); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.WorkspaceIds != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "workspaceIds", runtime.ParamLocationQuery, *params.WorkspaceIds); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.ChannelTypes != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "channelTypes", runtime.ParamLocationQuery, *params.ChannelTypes); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.EntityType != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "entityType", runtime.ParamLocationQuery, *params.EntityType); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Offset != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "offset", runtime.ParamLocationQuery, *params.Offset); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Limit != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "limit", runtime.ParamLocationQuery, *params.Limit); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Sorts != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "sorts", runtime.ParamLocationQuery, *params.Sorts); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		queryURL.RawQuery = queryValues.Encode()
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewCreateNotificationChannelRequest calls the generic CreateNotificationChannel builder with application/json body
func NewCreateNotificationChannelRequest(server string, organizationId string, body CreateNotificationChannelJSONRequestBody) (*http.Request, error) {
	var bodyReader io.Reader
	buf, err := json.Marshal(body)
	if err != nil {
		return nil, err
	}
	bodyReader = bytes.NewReader(buf)
	return NewCreateNotificationChannelRequestWithBody(server, organizationId, "application/json", bodyReader)
}

// NewCreateNotificationChannelRequestWithBody generates requests for CreateNotificationChannel with any type of body
func NewCreateNotificationChannelRequestWithBody(server string, organizationId string, contentType string, body io.Reader) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/notification-channels", pathParam0)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("POST", queryURL.String(), body)
	if err != nil {
		return nil, err
	}

	req.Header.Add("Content-Type", contentType)

	return req, nil
}

// NewDeleteNotificationChannelRequest generates requests for DeleteNotificationChannel
func NewDeleteNotificationChannelRequest(server string, organizationId string, notificationChannelId string) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	var pathParam1 string

	pathParam1, err = runtime.StyleParamWithLocation("simple", false, "notificationChannelId", runtime.ParamLocationPath, notificationChannelId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/notification-channels/%s", pathParam0, pathParam1)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("DELETE", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewGetNotificationChannelRequest generates requests for GetNotificationChannel
func NewGetNotificationChannelRequest(server string, organizationId string, notificationChannelId string) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	var pathParam1 string

	pathParam1, err = runtime.StyleParamWithLocation("simple", false, "notificationChannelId", runtime.ParamLocationPath, notificationChannelId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/notification-channels/%s", pathParam0, pathParam1)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewUpdateNotificationChannelRequest calls the generic UpdateNotificationChannel builder with application/json body
func NewUpdateNotificationChannelRequest(server string, organizationId string, notificationChannelId string, body UpdateNotificationChannelJSONRequestBody) (*http.Request, error) {
	var bodyReader io.Reader
	buf, err := json.Marshal(body)
	if err != nil {
		return nil, err
	}
	bodyReader = bytes.NewReader(buf)
	return NewUpdateNotificationChannelRequestWithBody(server, organizationId, notificationChannelId, "application/json", bodyReader)
}

// NewUpdateNotificationChannelRequestWithBody generates requests for UpdateNotificationChannel with any type of body
func NewUpdateNotificationChannelRequestWithBody(server string, organizationId string, notificationChannelId string, contentType string, body io.Reader) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	var pathParam1 string

	pathParam1, err = runtime.StyleParamWithLocation("simple", false, "notificationChannelId", runtime.ParamLocationPath, notificationChannelId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/notification-channels/%s", pathParam0, pathParam1)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("POST", queryURL.String(), body)
	if err != nil {
		return nil, err
	}

	req.Header.Add("Content-Type", contentType)

	return req, nil
}

// NewListWorkspacesRequest generates requests for ListWorkspaces
func NewListWorkspacesRequest(server string, organizationId string, params *ListWorkspacesParams) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/workspaces", pathParam0)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	if params != nil {
		queryValues := queryURL.Query()

		if params.WorkspaceIds != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "workspaceIds", runtime.ParamLocationQuery, *params.WorkspaceIds); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Names != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "names", runtime.ParamLocationQuery, *params.Names); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Offset != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "offset", runtime.ParamLocationQuery, *params.Offset); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Limit != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "limit", runtime.ParamLocationQuery, *params.Limit); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Sorts != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "sorts", runtime.ParamLocationQuery, *params.Sorts); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		queryURL.RawQuery = queryValues.Encode()
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewCreateWorkspaceRequest calls the generic CreateWorkspace builder with application/json body
func NewCreateWorkspaceRequest(server string, organizationId string, body CreateWorkspaceJSONRequestBody) (*http.Request, error) {
	var bodyReader io.Reader
	buf, err := json.Marshal(body)
	if err != nil {
		return nil, err
	}
	bodyReader = bytes.NewReader(buf)
	return NewCreateWorkspaceRequestWithBody(server, organizationId, "application/json", bodyReader)
}

// NewCreateWorkspaceRequestWithBody generates requests for CreateWorkspace with any type of body
func NewCreateWorkspaceRequestWithBody(server string, organizationId string, contentType string, body io.Reader) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/workspaces", pathParam0)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("POST", queryURL.String(), body)
	if err != nil {
		return nil, err
	}

	req.Header.Add("Content-Type", contentType)

	return req, nil
}

// NewDeleteWorkspaceRequest generates requests for DeleteWorkspace
func NewDeleteWorkspaceRequest(server string, organizationId string, workspaceId string) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	var pathParam1 string

	pathParam1, err = runtime.StyleParamWithLocation("simple", false, "workspaceId", runtime.ParamLocationPath, workspaceId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/workspaces/%s", pathParam0, pathParam1)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("DELETE", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewGetWorkspaceRequest generates requests for GetWorkspace
func NewGetWorkspaceRequest(server string, organizationId string, workspaceId string) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	var pathParam1 string

	pathParam1, err = runtime.StyleParamWithLocation("simple", false, "workspaceId", runtime.ParamLocationPath, workspaceId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/workspaces/%s", pathParam0, pathParam1)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewUpdateWorkspaceRequest calls the generic UpdateWorkspace builder with application/json body
func NewUpdateWorkspaceRequest(server string, organizationId string, workspaceId string, body UpdateWorkspaceJSONRequestBody) (*http.Request, error) {
	var bodyReader io.Reader
	buf, err := json.Marshal(body)
	if err != nil {
		return nil, err
	}
	bodyReader = bytes.NewReader(buf)
	return NewUpdateWorkspaceRequestWithBody(server, organizationId, workspaceId, "application/json", bodyReader)
}

// NewUpdateWorkspaceRequestWithBody generates requests for UpdateWorkspace with any type of body
func NewUpdateWorkspaceRequestWithBody(server string, organizationId string, workspaceId string, contentType string, body io.Reader) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "organizationId", runtime.ParamLocationPath, organizationId)
	if err != nil {
		return nil, err
	}

	var pathParam1 string

	pathParam1, err = runtime.StyleParamWithLocation("simple", false, "workspaceId", runtime.ParamLocationPath, workspaceId)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/organizations/%s/workspaces/%s", pathParam0, pathParam1)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("POST", queryURL.String(), body)
	if err != nil {
		return nil, err
	}

	req.Header.Add("Content-Type", contentType)

	return req, nil
}

func (c *Client) applyEditors(ctx context.Context, req *http.Request, additionalEditors []RequestEditorFn) error {
	for _, r := range c.RequestEditors {
		if err := r(ctx, req); err != nil {
			return err
		}
	}
	for _, r := range additionalEditors {
		if err := r(ctx, req); err != nil {
			return err
		}
	}
	return nil
}

// ClientWithResponses builds on ClientInterface to offer response payloads
type ClientWithResponses struct {
	ClientInterface
}

// NewClientWithResponses creates a new ClientWithResponses, which wraps
// Client with return type handling
func NewClientWithResponses(server string, opts ...ClientOption) (*ClientWithResponses, error) {
	client, err := NewClient(server, opts...)
	if err != nil {
		return nil, err
	}
	return &ClientWithResponses{client}, nil
}

// WithBaseURL overrides the baseURL.
func WithBaseURL(baseURL string) ClientOption {
	return func(c *Client) error {
		newBaseURL, err := url.Parse(baseURL)
		if err != nil {
			return err
		}
		c.Server = newBaseURL.String()
		return nil
	}
}

// ClientWithResponsesInterface is the interface specification for the client with responses above.
type ClientWithResponsesInterface interface {
	// ListOrganizationsWithResponse request
	ListOrganizationsWithResponse(ctx context.Context, params *ListOrganizationsParams, reqEditors ...RequestEditorFn) (*ListOrganizationsResponse, error)

	// GetOrganizationWithResponse request
	GetOrganizationWithResponse(ctx context.Context, organizationId string, params *GetOrganizationParams, reqEditors ...RequestEditorFn) (*GetOrganizationResponse, error)

	// UpdateOrganizationWithBodyWithResponse request with any body
	UpdateOrganizationWithBodyWithResponse(ctx context.Context, organizationId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateOrganizationResponse, error)

	UpdateOrganizationWithResponse(ctx context.Context, organizationId string, body UpdateOrganizationJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateOrganizationResponse, error)

	// ListAlertsWithResponse request
	ListAlertsWithResponse(ctx context.Context, organizationId string, params *ListAlertsParams, reqEditors ...RequestEditorFn) (*ListAlertsResponse, error)

	// CreateAlertWithBodyWithResponse request with any body
	CreateAlertWithBodyWithResponse(ctx context.Context, organizationId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateAlertResponse, error)

	CreateAlertWithResponse(ctx context.Context, organizationId string, body CreateAlertJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateAlertResponse, error)

	// DeleteAlertWithResponse request
	DeleteAlertWithResponse(ctx context.Context, organizationId string, alertId string, reqEditors ...RequestEditorFn) (*DeleteAlertResponse, error)

	// GetAlertWithResponse request
	GetAlertWithResponse(ctx context.Context, organizationId string, alertId string, reqEditors ...RequestEditorFn) (*GetAlertResponse, error)

	// UpdateAlertWithBodyWithResponse request with any body
	UpdateAlertWithBodyWithResponse(ctx context.Context, organizationId string, alertId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateAlertResponse, error)

	UpdateAlertWithResponse(ctx context.Context, organizationId string, alertId string, body UpdateAlertJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateAlertResponse, error)

	// GetOrganizationAuditLogsWithResponse request
	GetOrganizationAuditLogsWithResponse(ctx context.Context, organizationId string, params *GetOrganizationAuditLogsParams, reqEditors ...RequestEditorFn) (*GetOrganizationAuditLogsResponse, error)

	// GetClusterOptionsWithResponse request
	GetClusterOptionsWithResponse(ctx context.Context, organizationId string, params *GetClusterOptionsParams, reqEditors ...RequestEditorFn) (*GetClusterOptionsResponse, error)

	// ListClustersWithResponse request
	ListClustersWithResponse(ctx context.Context, organizationId string, params *ListClustersParams, reqEditors ...RequestEditorFn) (*ListClustersResponse, error)

	// CreateClusterWithBodyWithResponse request with any body
	CreateClusterWithBodyWithResponse(ctx context.Context, organizationId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateClusterResponse, error)

	CreateClusterWithResponse(ctx context.Context, organizationId string, body CreateClusterJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateClusterResponse, error)

	// DeleteClusterWithResponse request
	DeleteClusterWithResponse(ctx context.Context, organizationId string, clusterId string, reqEditors ...RequestEditorFn) (*DeleteClusterResponse, error)

	// GetClusterWithResponse request
	GetClusterWithResponse(ctx context.Context, organizationId string, clusterId string, reqEditors ...RequestEditorFn) (*GetClusterResponse, error)

	// UpdateClusterWithBodyWithResponse request with any body
	UpdateClusterWithBodyWithResponse(ctx context.Context, organizationId string, clusterId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateClusterResponse, error)

	UpdateClusterWithResponse(ctx context.Context, organizationId string, clusterId string, body UpdateClusterJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateClusterResponse, error)

	// GetDeploymentOptionsWithResponse request
	GetDeploymentOptionsWithResponse(ctx context.Context, organizationId string, params *GetDeploymentOptionsParams, reqEditors ...RequestEditorFn) (*GetDeploymentOptionsResponse, error)

	// ListDeploymentsWithResponse request
	ListDeploymentsWithResponse(ctx context.Context, organizationId string, params *ListDeploymentsParams, reqEditors ...RequestEditorFn) (*ListDeploymentsResponse, error)

	// CreateDeploymentWithBodyWithResponse request with any body
	CreateDeploymentWithBodyWithResponse(ctx context.Context, organizationId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateDeploymentResponse, error)

	CreateDeploymentWithResponse(ctx context.Context, organizationId string, body CreateDeploymentJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateDeploymentResponse, error)

	// DeleteDeploymentWithResponse request
	DeleteDeploymentWithResponse(ctx context.Context, organizationId string, deploymentId string, reqEditors ...RequestEditorFn) (*DeleteDeploymentResponse, error)

	// GetDeploymentWithResponse request
	GetDeploymentWithResponse(ctx context.Context, organizationId string, deploymentId string, reqEditors ...RequestEditorFn) (*GetDeploymentResponse, error)

	// UpdateDeploymentWithBodyWithResponse request with any body
	UpdateDeploymentWithBodyWithResponse(ctx context.Context, organizationId string, deploymentId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateDeploymentResponse, error)

	UpdateDeploymentWithResponse(ctx context.Context, organizationId string, deploymentId string, body UpdateDeploymentJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateDeploymentResponse, error)

	// DeleteDeploymentHibernationOverrideWithResponse request
	DeleteDeploymentHibernationOverrideWithResponse(ctx context.Context, organizationId string, deploymentId string, reqEditors ...RequestEditorFn) (*DeleteDeploymentHibernationOverrideResponse, error)

	// UpdateDeploymentHibernationOverrideWithBodyWithResponse request with any body
	UpdateDeploymentHibernationOverrideWithBodyWithResponse(ctx context.Context, organizationId string, deploymentId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateDeploymentHibernationOverrideResponse, error)

	UpdateDeploymentHibernationOverrideWithResponse(ctx context.Context, organizationId string, deploymentId string, body UpdateDeploymentHibernationOverrideJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateDeploymentHibernationOverrideResponse, error)

	// ListEnvironmentObjectsWithResponse request
	ListEnvironmentObjectsWithResponse(ctx context.Context, organizationId string, params *ListEnvironmentObjectsParams, reqEditors ...RequestEditorFn) (*ListEnvironmentObjectsResponse, error)

	// CreateEnvironmentObjectWithBodyWithResponse request with any body
	CreateEnvironmentObjectWithBodyWithResponse(ctx context.Context, organizationId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateEnvironmentObjectResponse, error)

	CreateEnvironmentObjectWithResponse(ctx context.Context, organizationId string, body CreateEnvironmentObjectJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateEnvironmentObjectResponse, error)

	// DeleteEnvironmentObjectWithResponse request
	DeleteEnvironmentObjectWithResponse(ctx context.Context, organizationId string, environmentObjectId string, reqEditors ...RequestEditorFn) (*DeleteEnvironmentObjectResponse, error)

	// GetEnvironmentObjectWithResponse request
	GetEnvironmentObjectWithResponse(ctx context.Context, organizationId string, environmentObjectId string, reqEditors ...RequestEditorFn) (*GetEnvironmentObjectResponse, error)

	// UpdateEnvironmentObjectWithBodyWithResponse request with any body
	UpdateEnvironmentObjectWithBodyWithResponse(ctx context.Context, organizationId string, environmentObjectId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateEnvironmentObjectResponse, error)

	UpdateEnvironmentObjectWithResponse(ctx context.Context, organizationId string, environmentObjectId string, body UpdateEnvironmentObjectJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateEnvironmentObjectResponse, error)

	// ExcludeLinkingEnvironmentObjectWithBodyWithResponse request with any body
	ExcludeLinkingEnvironmentObjectWithBodyWithResponse(ctx context.Context, organizationId string, environmentObjectId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*ExcludeLinkingEnvironmentObjectResponse, error)

	ExcludeLinkingEnvironmentObjectWithResponse(ctx context.Context, organizationId string, environmentObjectId string, body ExcludeLinkingEnvironmentObjectJSONRequestBody, reqEditors ...RequestEditorFn) (*ExcludeLinkingEnvironmentObjectResponse, error)

	// ListNotificationChannelsWithResponse request
	ListNotificationChannelsWithResponse(ctx context.Context, organizationId string, params *ListNotificationChannelsParams, reqEditors ...RequestEditorFn) (*ListNotificationChannelsResponse, error)

	// CreateNotificationChannelWithBodyWithResponse request with any body
	CreateNotificationChannelWithBodyWithResponse(ctx context.Context, organizationId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateNotificationChannelResponse, error)

	CreateNotificationChannelWithResponse(ctx context.Context, organizationId string, body CreateNotificationChannelJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateNotificationChannelResponse, error)

	// DeleteNotificationChannelWithResponse request
	DeleteNotificationChannelWithResponse(ctx context.Context, organizationId string, notificationChannelId string, reqEditors ...RequestEditorFn) (*DeleteNotificationChannelResponse, error)

	// GetNotificationChannelWithResponse request
	GetNotificationChannelWithResponse(ctx context.Context, organizationId string, notificationChannelId string, reqEditors ...RequestEditorFn) (*GetNotificationChannelResponse, error)

	// UpdateNotificationChannelWithBodyWithResponse request with any body
	UpdateNotificationChannelWithBodyWithResponse(ctx context.Context, organizationId string, notificationChannelId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateNotificationChannelResponse, error)

	UpdateNotificationChannelWithResponse(ctx context.Context, organizationId string, notificationChannelId string, body UpdateNotificationChannelJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateNotificationChannelResponse, error)

	// ListWorkspacesWithResponse request
	ListWorkspacesWithResponse(ctx context.Context, organizationId string, params *ListWorkspacesParams, reqEditors ...RequestEditorFn) (*ListWorkspacesResponse, error)

	// CreateWorkspaceWithBodyWithResponse request with any body
	CreateWorkspaceWithBodyWithResponse(ctx context.Context, organizationId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateWorkspaceResponse, error)

	CreateWorkspaceWithResponse(ctx context.Context, organizationId string, body CreateWorkspaceJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateWorkspaceResponse, error)

	// DeleteWorkspaceWithResponse request
	DeleteWorkspaceWithResponse(ctx context.Context, organizationId string, workspaceId string, reqEditors ...RequestEditorFn) (*DeleteWorkspaceResponse, error)

	// GetWorkspaceWithResponse request
	GetWorkspaceWithResponse(ctx context.Context, organizationId string, workspaceId string, reqEditors ...RequestEditorFn) (*GetWorkspaceResponse, error)

	// UpdateWorkspaceWithBodyWithResponse request with any body
	UpdateWorkspaceWithBodyWithResponse(ctx context.Context, organizationId string, workspaceId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateWorkspaceResponse, error)

	UpdateWorkspaceWithResponse(ctx context.Context, organizationId string, workspaceId string, body UpdateWorkspaceJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateWorkspaceResponse, error)
}

type ListOrganizationsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *OrganizationsPaginated
	JSON400      *Error
	JSON401      *Error
	JSON403      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r ListOrganizationsResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r ListOrganizationsResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type GetOrganizationResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *Organization
	JSON400      *Error
	JSON401      *Error
	JSON403      *Error
	JSON404      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r GetOrganizationResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r GetOrganizationResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type UpdateOrganizationResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *Organization
	JSON400      *Error
	JSON401      *Error
	JSON403      *Error
	JSON404      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r UpdateOrganizationResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r UpdateOrganizationResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type ListAlertsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *AlertsPaginated
	JSON400      *Error
	JSON401      *Error
	JSON403      *Error
	JSON404      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r ListAlertsResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r ListAlertsResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type CreateAlertResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *Alert
	JSON400      *Error
	JSON401      *Error
	JSON403      *Error
	JSON404      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r CreateAlertResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r CreateAlertResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type DeleteAlertResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON400      *Error
	JSON401      *Error
	JSON403      *Error
	JSON404      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r DeleteAlertResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r DeleteAlertResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type GetAlertResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *Alert
	JSON400      *Error
	JSON401      *Error
	JSON403      *Error
	JSON404      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r GetAlertResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r GetAlertResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type UpdateAlertResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *Alert
	JSON400      *Error
	JSON401      *Error
	JSON403      *Error
	JSON404      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r UpdateAlertResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r UpdateAlertResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type GetOrganizationAuditLogsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
}

// Status returns HTTPResponse.Status
func (r GetOrganizationAuditLogsResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r GetOrganizationAuditLogsResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type GetClusterOptionsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *[]ClusterOptions
	JSON400      *Error
	JSON401      *Error
	JSON403      *Error
	JSON404      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r GetClusterOptionsResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r GetClusterOptionsResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type ListClustersResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *ClustersPaginated
	JSON400      *Error
	JSON401      *Error
	JSON403      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r ListClustersResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r ListClustersResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type CreateClusterResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *Cluster
	JSON400      *Error
	JSON401      *Error
	JSON403      *Error
	JSON404      *Error
	JSON412      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r CreateClusterResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r CreateClusterResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type DeleteClusterResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON400      *Error
	JSON401      *Error
	JSON403      *Error
	JSON404      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r DeleteClusterResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r DeleteClusterResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type GetClusterResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *Cluster
	JSON400      *Error
	JSON401      *Error
	JSON403      *Error
	JSON404      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r GetClusterResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r GetClusterResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type UpdateClusterResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *Cluster
	JSON400      *Error
	JSON401      *Error
	JSON403      *Error
	JSON404      *Error
	JSON412      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r UpdateClusterResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r UpdateClusterResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type GetDeploymentOptionsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *DeploymentOptions
	JSON400      *Error
	JSON401      *Error
	JSON403      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r GetDeploymentOptionsResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r GetDeploymentOptionsResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type ListDeploymentsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *DeploymentsPaginated
	JSON400      *Error
	JSON401      *Error
	JSON403      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r ListDeploymentsResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r ListDeploymentsResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type CreateDeploymentResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *Deployment
	JSON400      *Error
	JSON401      *Error
	JSON403      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r CreateDeploymentResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r CreateDeploymentResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type DeleteDeploymentResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON400      *Error
	JSON401      *Error
	JSON403      *Error
	JSON404      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r DeleteDeploymentResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r DeleteDeploymentResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type GetDeploymentResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *Deployment
	JSON400      *Error
	JSON401      *Error
	JSON403      *Error
	JSON404      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r GetDeploymentResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r GetDeploymentResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type UpdateDeploymentResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *Deployment
	JSON400      *Error
	JSON401      *Error
	JSON403      *Error
	JSON404      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r UpdateDeploymentResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r UpdateDeploymentResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type DeleteDeploymentHibernationOverrideResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON4XX      *Error
	JSON5XX      *Error
}

// Status returns HTTPResponse.Status
func (r DeleteDeploymentHibernationOverrideResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r DeleteDeploymentHibernationOverrideResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type UpdateDeploymentHibernationOverrideResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *DeploymentHibernationOverride
	JSON4XX      *Error
	JSON5XX      *Error
}

// Status returns HTTPResponse.Status
func (r UpdateDeploymentHibernationOverrideResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r UpdateDeploymentHibernationOverrideResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type ListEnvironmentObjectsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *EnvironmentObjectsPaginated
	JSON401      *Error
	JSON403      *Error
	JSON404      *Error
	JSON405      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r ListEnvironmentObjectsResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r ListEnvironmentObjectsResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type CreateEnvironmentObjectResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *CreateEnvironmentObject
	JSON401      *Error
	JSON403      *Error
	JSON404      *Error
	JSON405      *Error
	JSON409      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r CreateEnvironmentObjectResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r CreateEnvironmentObjectResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type DeleteEnvironmentObjectResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON401      *Error
	JSON403      *Error
	JSON404      *Error
	JSON405      *Error
	JSON409      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r DeleteEnvironmentObjectResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r DeleteEnvironmentObjectResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type GetEnvironmentObjectResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *EnvironmentObject
	JSON401      *Error
	JSON403      *Error
	JSON404      *Error
	JSON405      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r GetEnvironmentObjectResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r GetEnvironmentObjectResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type UpdateEnvironmentObjectResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *EnvironmentObject
	JSON401      *Error
	JSON403      *Error
	JSON404      *Error
	JSON405      *Error
	JSON409      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r UpdateEnvironmentObjectResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r UpdateEnvironmentObjectResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type ExcludeLinkingEnvironmentObjectResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON401      *Error
	JSON403      *Error
	JSON404      *Error
	JSON405      *Error
	JSON409      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r ExcludeLinkingEnvironmentObjectResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r ExcludeLinkingEnvironmentObjectResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type ListNotificationChannelsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *NotificationChannelsPaginated
	JSON400      *Error
	JSON401      *Error
	JSON403      *Error
	JSON404      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r ListNotificationChannelsResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r ListNotificationChannelsResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type CreateNotificationChannelResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *NotificationChannel
	JSON400      *Error
	JSON401      *Error
	JSON403      *Error
	JSON404      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r CreateNotificationChannelResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r CreateNotificationChannelResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type DeleteNotificationChannelResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON400      *Error
	JSON401      *Error
	JSON403      *Error
	JSON404      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r DeleteNotificationChannelResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r DeleteNotificationChannelResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type GetNotificationChannelResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *NotificationChannel
	JSON400      *Error
	JSON401      *Error
	JSON403      *Error
	JSON404      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r GetNotificationChannelResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r GetNotificationChannelResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type UpdateNotificationChannelResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *NotificationChannel
	JSON400      *Error
	JSON401      *Error
	JSON403      *Error
	JSON404      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r UpdateNotificationChannelResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r UpdateNotificationChannelResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type ListWorkspacesResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *WorkspacesPaginated
	JSON400      *Error
	JSON401      *Error
	JSON403      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r ListWorkspacesResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r ListWorkspacesResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type CreateWorkspaceResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *Workspace
	JSON400      *Error
	JSON401      *Error
	JSON403      *Error
	JSON404      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r CreateWorkspaceResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r CreateWorkspaceResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type DeleteWorkspaceResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON400      *Error
	JSON401      *Error
	JSON403      *Error
	JSON404      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r DeleteWorkspaceResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r DeleteWorkspaceResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type GetWorkspaceResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *Workspace
	JSON400      *Error
	JSON401      *Error
	JSON403      *Error
	JSON404      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r GetWorkspaceResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r GetWorkspaceResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type UpdateWorkspaceResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *Workspace
	JSON400      *Error
	JSON401      *Error
	JSON403      *Error
	JSON404      *Error
	JSON500      *Error
}

// Status returns HTTPResponse.Status
func (r UpdateWorkspaceResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r UpdateWorkspaceResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

// ListOrganizationsWithResponse request returning *ListOrganizationsResponse
func (c *ClientWithResponses) ListOrganizationsWithResponse(ctx context.Context, params *ListOrganizationsParams, reqEditors ...RequestEditorFn) (*ListOrganizationsResponse, error) {
	rsp, err := c.ListOrganizations(ctx, params, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseListOrganizationsResponse(rsp)
}

// GetOrganizationWithResponse request returning *GetOrganizationResponse
func (c *ClientWithResponses) GetOrganizationWithResponse(ctx context.Context, organizationId string, params *GetOrganizationParams, reqEditors ...RequestEditorFn) (*GetOrganizationResponse, error) {
	rsp, err := c.GetOrganization(ctx, organizationId, params, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseGetOrganizationResponse(rsp)
}

// UpdateOrganizationWithBodyWithResponse request with arbitrary body returning *UpdateOrganizationResponse
func (c *ClientWithResponses) UpdateOrganizationWithBodyWithResponse(ctx context.Context, organizationId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateOrganizationResponse, error) {
	rsp, err := c.UpdateOrganizationWithBody(ctx, organizationId, contentType, body, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseUpdateOrganizationResponse(rsp)
}

func (c *ClientWithResponses) UpdateOrganizationWithResponse(ctx context.Context, organizationId string, body UpdateOrganizationJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateOrganizationResponse, error) {
	rsp, err := c.UpdateOrganization(ctx, organizationId, body, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseUpdateOrganizationResponse(rsp)
}

// ListAlertsWithResponse request returning *ListAlertsResponse
func (c *ClientWithResponses) ListAlertsWithResponse(ctx context.Context, organizationId string, params *ListAlertsParams, reqEditors ...RequestEditorFn) (*ListAlertsResponse, error) {
	rsp, err := c.ListAlerts(ctx, organizationId, params, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseListAlertsResponse(rsp)
}

// CreateAlertWithBodyWithResponse request with arbitrary body returning *CreateAlertResponse
func (c *ClientWithResponses) CreateAlertWithBodyWithResponse(ctx context.Context, organizationId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateAlertResponse, error) {
	rsp, err := c.CreateAlertWithBody(ctx, organizationId, contentType, body, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseCreateAlertResponse(rsp)
}

func (c *ClientWithResponses) CreateAlertWithResponse(ctx context.Context, organizationId string, body CreateAlertJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateAlertResponse, error) {
	rsp, err := c.CreateAlert(ctx, organizationId, body, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseCreateAlertResponse(rsp)
}

// DeleteAlertWithResponse request returning *DeleteAlertResponse
func (c *ClientWithResponses) DeleteAlertWithResponse(ctx context.Context, organizationId string, alertId string, reqEditors ...RequestEditorFn) (*DeleteAlertResponse, error) {
	rsp, err := c.DeleteAlert(ctx, organizationId, alertId, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseDeleteAlertResponse(rsp)
}

// GetAlertWithResponse request returning *GetAlertResponse
func (c *ClientWithResponses) GetAlertWithResponse(ctx context.Context, organizationId string, alertId string, reqEditors ...RequestEditorFn) (*GetAlertResponse, error) {
	rsp, err := c.GetAlert(ctx, organizationId, alertId, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseGetAlertResponse(rsp)
}

// UpdateAlertWithBodyWithResponse request with arbitrary body returning *UpdateAlertResponse
func (c *ClientWithResponses) UpdateAlertWithBodyWithResponse(ctx context.Context, organizationId string, alertId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateAlertResponse, error) {
	rsp, err := c.UpdateAlertWithBody(ctx, organizationId, alertId, contentType, body, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseUpdateAlertResponse(rsp)
}

func (c *ClientWithResponses) UpdateAlertWithResponse(ctx context.Context, organizationId string, alertId string, body UpdateAlertJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateAlertResponse, error) {
	rsp, err := c.UpdateAlert(ctx, organizationId, alertId, body, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseUpdateAlertResponse(rsp)
}

// GetOrganizationAuditLogsWithResponse request returning *GetOrganizationAuditLogsResponse
func (c *ClientWithResponses) GetOrganizationAuditLogsWithResponse(ctx context.Context, organizationId string, params *GetOrganizationAuditLogsParams, reqEditors ...RequestEditorFn) (*GetOrganizationAuditLogsResponse, error) {
	rsp, err := c.GetOrganizationAuditLogs(ctx, organizationId, params, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseGetOrganizationAuditLogsResponse(rsp)
}

// GetClusterOptionsWithResponse request returning *GetClusterOptionsResponse
func (c *ClientWithResponses) GetClusterOptionsWithResponse(ctx context.Context, organizationId string, params *GetClusterOptionsParams, reqEditors ...RequestEditorFn) (*GetClusterOptionsResponse, error) {
	rsp, err := c.GetClusterOptions(ctx, organizationId, params, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseGetClusterOptionsResponse(rsp)
}

// ListClustersWithResponse request returning *ListClustersResponse
func (c *ClientWithResponses) ListClustersWithResponse(ctx context.Context, organizationId string, params *ListClustersParams, reqEditors ...RequestEditorFn) (*ListClustersResponse, error) {
	rsp, err := c.ListClusters(ctx, organizationId, params, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseListClustersResponse(rsp)
}

// CreateClusterWithBodyWithResponse request with arbitrary body returning *CreateClusterResponse
func (c *ClientWithResponses) CreateClusterWithBodyWithResponse(ctx context.Context, organizationId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateClusterResponse, error) {
	rsp, err := c.CreateClusterWithBody(ctx, organizationId, contentType, body, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseCreateClusterResponse(rsp)
}

func (c *ClientWithResponses) CreateClusterWithResponse(ctx context.Context, organizationId string, body CreateClusterJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateClusterResponse, error) {
	rsp, err := c.CreateCluster(ctx, organizationId, body, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseCreateClusterResponse(rsp)
}

// DeleteClusterWithResponse request returning *DeleteClusterResponse
func (c *ClientWithResponses) DeleteClusterWithResponse(ctx context.Context, organizationId string, clusterId string, reqEditors ...RequestEditorFn) (*DeleteClusterResponse, error) {
	rsp, err := c.DeleteCluster(ctx, organizationId, clusterId, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseDeleteClusterResponse(rsp)
}

// GetClusterWithResponse request returning *GetClusterResponse
func (c *ClientWithResponses) GetClusterWithResponse(ctx context.Context, organizationId string, clusterId string, reqEditors ...RequestEditorFn) (*GetClusterResponse, error) {
	rsp, err := c.GetCluster(ctx, organizationId, clusterId, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseGetClusterResponse(rsp)
}

// UpdateClusterWithBodyWithResponse request with arbitrary body returning *UpdateClusterResponse
func (c *ClientWithResponses) UpdateClusterWithBodyWithResponse(ctx context.Context, organizationId string, clusterId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateClusterResponse, error) {
	rsp, err := c.UpdateClusterWithBody(ctx, organizationId, clusterId, contentType, body, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseUpdateClusterResponse(rsp)
}

func (c *ClientWithResponses) UpdateClusterWithResponse(ctx context.Context, organizationId string, clusterId string, body UpdateClusterJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateClusterResponse, error) {
	rsp, err := c.UpdateCluster(ctx, organizationId, clusterId, body, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseUpdateClusterResponse(rsp)
}

// GetDeploymentOptionsWithResponse request returning *GetDeploymentOptionsResponse
func (c *ClientWithResponses) GetDeploymentOptionsWithResponse(ctx context.Context, organizationId string, params *GetDeploymentOptionsParams, reqEditors ...RequestEditorFn) (*GetDeploymentOptionsResponse, error) {
	rsp, err := c.GetDeploymentOptions(ctx, organizationId, params, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseGetDeploymentOptionsResponse(rsp)
}

// ListDeploymentsWithResponse request returning *ListDeploymentsResponse
func (c *ClientWithResponses) ListDeploymentsWithResponse(ctx context.Context, organizationId string, params *ListDeploymentsParams, reqEditors ...RequestEditorFn) (*ListDeploymentsResponse, error) {
	rsp, err := c.ListDeployments(ctx, organizationId, params, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseListDeploymentsResponse(rsp)
}

// CreateDeploymentWithBodyWithResponse request with arbitrary body returning *CreateDeploymentResponse
func (c *ClientWithResponses) CreateDeploymentWithBodyWithResponse(ctx context.Context, organizationId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateDeploymentResponse, error) {
	rsp, err := c.CreateDeploymentWithBody(ctx, organizationId, contentType, body, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseCreateDeploymentResponse(rsp)
}

func (c *ClientWithResponses) CreateDeploymentWithResponse(ctx context.Context, organizationId string, body CreateDeploymentJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateDeploymentResponse, error) {
	rsp, err := c.CreateDeployment(ctx, organizationId, body, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseCreateDeploymentResponse(rsp)
}

// DeleteDeploymentWithResponse request returning *DeleteDeploymentResponse
func (c *ClientWithResponses) DeleteDeploymentWithResponse(ctx context.Context, organizationId string, deploymentId string, reqEditors ...RequestEditorFn) (*DeleteDeploymentResponse, error) {
	rsp, err := c.DeleteDeployment(ctx, organizationId, deploymentId, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseDeleteDeploymentResponse(rsp)
}

// GetDeploymentWithResponse request returning *GetDeploymentResponse
func (c *ClientWithResponses) GetDeploymentWithResponse(ctx context.Context, organizationId string, deploymentId string, reqEditors ...RequestEditorFn) (*GetDeploymentResponse, error) {
	rsp, err := c.GetDeployment(ctx, organizationId, deploymentId, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseGetDeploymentResponse(rsp)
}

// UpdateDeploymentWithBodyWithResponse request with arbitrary body returning *UpdateDeploymentResponse
func (c *ClientWithResponses) UpdateDeploymentWithBodyWithResponse(ctx context.Context, organizationId string, deploymentId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateDeploymentResponse, error) {
	rsp, err := c.UpdateDeploymentWithBody(ctx, organizationId, deploymentId, contentType, body, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseUpdateDeploymentResponse(rsp)
}

func (c *ClientWithResponses) UpdateDeploymentWithResponse(ctx context.Context, organizationId string, deploymentId string, body UpdateDeploymentJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateDeploymentResponse, error) {
	rsp, err := c.UpdateDeployment(ctx, organizationId, deploymentId, body, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseUpdateDeploymentResponse(rsp)
}

// DeleteDeploymentHibernationOverrideWithResponse request returning *DeleteDeploymentHibernationOverrideResponse
func (c *ClientWithResponses) DeleteDeploymentHibernationOverrideWithResponse(ctx context.Context, organizationId string, deploymentId string, reqEditors ...RequestEditorFn) (*DeleteDeploymentHibernationOverrideResponse, error) {
	rsp, err := c.DeleteDeploymentHibernationOverride(ctx, organizationId, deploymentId, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseDeleteDeploymentHibernationOverrideResponse(rsp)
}

// UpdateDeploymentHibernationOverrideWithBodyWithResponse request with arbitrary body returning *UpdateDeploymentHibernationOverrideResponse
func (c *ClientWithResponses) UpdateDeploymentHibernationOverrideWithBodyWithResponse(ctx context.Context, organizationId string, deploymentId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateDeploymentHibernationOverrideResponse, error) {
	rsp, err := c.UpdateDeploymentHibernationOverrideWithBody(ctx, organizationId, deploymentId, contentType, body, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseUpdateDeploymentHibernationOverrideResponse(rsp)
}

func (c *ClientWithResponses) UpdateDeploymentHibernationOverrideWithResponse(ctx context.Context, organizationId string, deploymentId string, body UpdateDeploymentHibernationOverrideJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateDeploymentHibernationOverrideResponse, error) {
	rsp, err := c.UpdateDeploymentHibernationOverride(ctx, organizationId, deploymentId, body, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseUpdateDeploymentHibernationOverrideResponse(rsp)
}

// ListEnvironmentObjectsWithResponse request returning *ListEnvironmentObjectsResponse
func (c *ClientWithResponses) ListEnvironmentObjectsWithResponse(ctx context.Context, organizationId string, params *ListEnvironmentObjectsParams, reqEditors ...RequestEditorFn) (*ListEnvironmentObjectsResponse, error) {
	rsp, err := c.ListEnvironmentObjects(ctx, organizationId, params, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseListEnvironmentObjectsResponse(rsp)
}

// CreateEnvironmentObjectWithBodyWithResponse request with arbitrary body returning *CreateEnvironmentObjectResponse
func (c *ClientWithResponses) CreateEnvironmentObjectWithBodyWithResponse(ctx context.Context, organizationId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateEnvironmentObjectResponse, error) {
	rsp, err := c.CreateEnvironmentObjectWithBody(ctx, organizationId, contentType, body, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseCreateEnvironmentObjectResponse(rsp)
}

func (c *ClientWithResponses) CreateEnvironmentObjectWithResponse(ctx context.Context, organizationId string, body CreateEnvironmentObjectJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateEnvironmentObjectResponse, error) {
	rsp, err := c.CreateEnvironmentObject(ctx, organizationId, body, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseCreateEnvironmentObjectResponse(rsp)
}

// DeleteEnvironmentObjectWithResponse request returning *DeleteEnvironmentObjectResponse
func (c *ClientWithResponses) DeleteEnvironmentObjectWithResponse(ctx context.Context, organizationId string, environmentObjectId string, reqEditors ...RequestEditorFn) (*DeleteEnvironmentObjectResponse, error) {
	rsp, err := c.DeleteEnvironmentObject(ctx, organizationId, environmentObjectId, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseDeleteEnvironmentObjectResponse(rsp)
}

// GetEnvironmentObjectWithResponse request returning *GetEnvironmentObjectResponse
func (c *ClientWithResponses) GetEnvironmentObjectWithResponse(ctx context.Context, organizationId string, environmentObjectId string, reqEditors ...RequestEditorFn) (*GetEnvironmentObjectResponse, error) {
	rsp, err := c.GetEnvironmentObject(ctx, organizationId, environmentObjectId, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseGetEnvironmentObjectResponse(rsp)
}

// UpdateEnvironmentObjectWithBodyWithResponse request with arbitrary body returning *UpdateEnvironmentObjectResponse
func (c *ClientWithResponses) UpdateEnvironmentObjectWithBodyWithResponse(ctx context.Context, organizationId string, environmentObjectId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateEnvironmentObjectResponse, error) {
	rsp, err := c.UpdateEnvironmentObjectWithBody(ctx, organizationId, environmentObjectId, contentType, body, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseUpdateEnvironmentObjectResponse(rsp)
}

func (c *ClientWithResponses) UpdateEnvironmentObjectWithResponse(ctx context.Context, organizationId string, environmentObjectId string, body UpdateEnvironmentObjectJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateEnvironmentObjectResponse, error) {
	rsp, err := c.UpdateEnvironmentObject(ctx, organizationId, environmentObjectId, body, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseUpdateEnvironmentObjectResponse(rsp)
}

// ExcludeLinkingEnvironmentObjectWithBodyWithResponse request with arbitrary body returning *ExcludeLinkingEnvironmentObjectResponse
func (c *ClientWithResponses) ExcludeLinkingEnvironmentObjectWithBodyWithResponse(ctx context.Context, organizationId string, environmentObjectId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*ExcludeLinkingEnvironmentObjectResponse, error) {
	rsp, err := c.ExcludeLinkingEnvironmentObjectWithBody(ctx, organizationId, environmentObjectId, contentType, body, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseExcludeLinkingEnvironmentObjectResponse(rsp)
}

func (c *ClientWithResponses) ExcludeLinkingEnvironmentObjectWithResponse(ctx context.Context, organizationId string, environmentObjectId string, body ExcludeLinkingEnvironmentObjectJSONRequestBody, reqEditors ...RequestEditorFn) (*ExcludeLinkingEnvironmentObjectResponse, error) {
	rsp, err := c.ExcludeLinkingEnvironmentObject(ctx, organizationId, environmentObjectId, body, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseExcludeLinkingEnvironmentObjectResponse(rsp)
}

// ListNotificationChannelsWithResponse request returning *ListNotificationChannelsResponse
func (c *ClientWithResponses) ListNotificationChannelsWithResponse(ctx context.Context, organizationId string, params *ListNotificationChannelsParams, reqEditors ...RequestEditorFn) (*ListNotificationChannelsResponse, error) {
	rsp, err := c.ListNotificationChannels(ctx, organizationId, params, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseListNotificationChannelsResponse(rsp)
}

// CreateNotificationChannelWithBodyWithResponse request with arbitrary body returning *CreateNotificationChannelResponse
func (c *ClientWithResponses) CreateNotificationChannelWithBodyWithResponse(ctx context.Context, organizationId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateNotificationChannelResponse, error) {
	rsp, err := c.CreateNotificationChannelWithBody(ctx, organizationId, contentType, body, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseCreateNotificationChannelResponse(rsp)
}

func (c *ClientWithResponses) CreateNotificationChannelWithResponse(ctx context.Context, organizationId string, body CreateNotificationChannelJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateNotificationChannelResponse, error) {
	rsp, err := c.CreateNotificationChannel(ctx, organizationId, body, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseCreateNotificationChannelResponse(rsp)
}

// DeleteNotificationChannelWithResponse request returning *DeleteNotificationChannelResponse
func (c *ClientWithResponses) DeleteNotificationChannelWithResponse(ctx context.Context, organizationId string, notificationChannelId string, reqEditors ...RequestEditorFn) (*DeleteNotificationChannelResponse, error) {
	rsp, err := c.DeleteNotificationChannel(ctx, organizationId, notificationChannelId, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseDeleteNotificationChannelResponse(rsp)
}

// GetNotificationChannelWithResponse request returning *GetNotificationChannelResponse
func (c *ClientWithResponses) GetNotificationChannelWithResponse(ctx context.Context, organizationId string, notificationChannelId string, reqEditors ...RequestEditorFn) (*GetNotificationChannelResponse, error) {
	rsp, err := c.GetNotificationChannel(ctx, organizationId, notificationChannelId, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseGetNotificationChannelResponse(rsp)
}

// UpdateNotificationChannelWithBodyWithResponse request with arbitrary body returning *UpdateNotificationChannelResponse
func (c *ClientWithResponses) UpdateNotificationChannelWithBodyWithResponse(ctx context.Context, organizationId string, notificationChannelId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateNotificationChannelResponse, error) {
	rsp, err := c.UpdateNotificationChannelWithBody(ctx, organizationId, notificationChannelId, contentType, body, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseUpdateNotificationChannelResponse(rsp)
}

func (c *ClientWithResponses) UpdateNotificationChannelWithResponse(ctx context.Context, organizationId string, notificationChannelId string, body UpdateNotificationChannelJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateNotificationChannelResponse, error) {
	rsp, err := c.UpdateNotificationChannel(ctx, organizationId, notificationChannelId, body, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseUpdateNotificationChannelResponse(rsp)
}

// ListWorkspacesWithResponse request returning *ListWorkspacesResponse
func (c *ClientWithResponses) ListWorkspacesWithResponse(ctx context.Context, organizationId string, params *ListWorkspacesParams, reqEditors ...RequestEditorFn) (*ListWorkspacesResponse, error) {
	rsp, err := c.ListWorkspaces(ctx, organizationId, params, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseListWorkspacesResponse(rsp)
}

// CreateWorkspaceWithBodyWithResponse request with arbitrary body returning *CreateWorkspaceResponse
func (c *ClientWithResponses) CreateWorkspaceWithBodyWithResponse(ctx context.Context, organizationId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateWorkspaceResponse, error) {
	rsp, err := c.CreateWorkspaceWithBody(ctx, organizationId, contentType, body, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseCreateWorkspaceResponse(rsp)
}

func (c *ClientWithResponses) CreateWorkspaceWithResponse(ctx context.Context, organizationId string, body CreateWorkspaceJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateWorkspaceResponse, error) {
	rsp, err := c.CreateWorkspace(ctx, organizationId, body, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseCreateWorkspaceResponse(rsp)
}

// DeleteWorkspaceWithResponse request returning *DeleteWorkspaceResponse
func (c *ClientWithResponses) DeleteWorkspaceWithResponse(ctx context.Context, organizationId string, workspaceId string, reqEditors ...RequestEditorFn) (*DeleteWorkspaceResponse, error) {
	rsp, err := c.DeleteWorkspace(ctx, organizationId, workspaceId, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseDeleteWorkspaceResponse(rsp)
}

// GetWorkspaceWithResponse request returning *GetWorkspaceResponse
func (c *ClientWithResponses) GetWorkspaceWithResponse(ctx context.Context, organizationId string, workspaceId string, reqEditors ...RequestEditorFn) (*GetWorkspaceResponse, error) {
	rsp, err := c.GetWorkspace(ctx, organizationId, workspaceId, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseGetWorkspaceResponse(rsp)
}

// UpdateWorkspaceWithBodyWithResponse request with arbitrary body returning *UpdateWorkspaceResponse
func (c *ClientWithResponses) UpdateWorkspaceWithBodyWithResponse(ctx context.Context, organizationId string, workspaceId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateWorkspaceResponse, error) {
	rsp, err := c.UpdateWorkspaceWithBody(ctx, organizationId, workspaceId, contentType, body, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseUpdateWorkspaceResponse(rsp)
}

func (c *ClientWithResponses) UpdateWorkspaceWithResponse(ctx context.Context, organizationId string, workspaceId string, body UpdateWorkspaceJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateWorkspaceResponse, error) {
	rsp, err := c.UpdateWorkspace(ctx, organizationId, workspaceId, body, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseUpdateWorkspaceResponse(rsp)
}

// ParseListOrganizationsResponse parses an HTTP response from a ListOrganizationsWithResponse call
func ParseListOrganizationsResponse(rsp *http.Response) (*ListOrganizationsResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &ListOrganizationsResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest OrganizationsPaginated
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON400 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}

// ParseGetOrganizationResponse parses an HTTP response from a GetOrganizationWithResponse call
func ParseGetOrganizationResponse(rsp *http.Response) (*GetOrganizationResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &GetOrganizationResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest Organization
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON400 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON404 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}

// ParseUpdateOrganizationResponse parses an HTTP response from a UpdateOrganizationWithResponse call
func ParseUpdateOrganizationResponse(rsp *http.Response) (*UpdateOrganizationResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &UpdateOrganizationResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest Organization
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON400 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON404 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}

// ParseListAlertsResponse parses an HTTP response from a ListAlertsWithResponse call
func ParseListAlertsResponse(rsp *http.Response) (*ListAlertsResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &ListAlertsResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest AlertsPaginated
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON400 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON404 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}

// ParseCreateAlertResponse parses an HTTP response from a CreateAlertWithResponse call
func ParseCreateAlertResponse(rsp *http.Response) (*CreateAlertResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &CreateAlertResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest Alert
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON400 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON404 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}

// ParseDeleteAlertResponse parses an HTTP response from a DeleteAlertWithResponse call
func ParseDeleteAlertResponse(rsp *http.Response) (*DeleteAlertResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &DeleteAlertResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON400 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON404 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}

// ParseGetAlertResponse parses an HTTP response from a GetAlertWithResponse call
func ParseGetAlertResponse(rsp *http.Response) (*GetAlertResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &GetAlertResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest Alert
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON400 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON404 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}

// ParseUpdateAlertResponse parses an HTTP response from a UpdateAlertWithResponse call
func ParseUpdateAlertResponse(rsp *http.Response) (*UpdateAlertResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &UpdateAlertResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest Alert
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON400 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON404 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}

// ParseGetOrganizationAuditLogsResponse parses an HTTP response from a GetOrganizationAuditLogsWithResponse call
func ParseGetOrganizationAuditLogsResponse(rsp *http.Response) (*GetOrganizationAuditLogsResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &GetOrganizationAuditLogsResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	return response, nil
}

// ParseGetClusterOptionsResponse parses an HTTP response from a GetClusterOptionsWithResponse call
func ParseGetClusterOptionsResponse(rsp *http.Response) (*GetClusterOptionsResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &GetClusterOptionsResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest []ClusterOptions
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON400 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON404 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}

// ParseListClustersResponse parses an HTTP response from a ListClustersWithResponse call
func ParseListClustersResponse(rsp *http.Response) (*ListClustersResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &ListClustersResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest ClustersPaginated
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON400 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}

// ParseCreateClusterResponse parses an HTTP response from a CreateClusterWithResponse call
func ParseCreateClusterResponse(rsp *http.Response) (*CreateClusterResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &CreateClusterResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest Cluster
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON400 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON404 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 412:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON412 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}

// ParseDeleteClusterResponse parses an HTTP response from a DeleteClusterWithResponse call
func ParseDeleteClusterResponse(rsp *http.Response) (*DeleteClusterResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &DeleteClusterResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON400 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON404 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}

// ParseGetClusterResponse parses an HTTP response from a GetClusterWithResponse call
func ParseGetClusterResponse(rsp *http.Response) (*GetClusterResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &GetClusterResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest Cluster
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON400 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON404 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}

// ParseUpdateClusterResponse parses an HTTP response from a UpdateClusterWithResponse call
func ParseUpdateClusterResponse(rsp *http.Response) (*UpdateClusterResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &UpdateClusterResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest Cluster
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON400 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON404 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 412:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON412 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}

// ParseGetDeploymentOptionsResponse parses an HTTP response from a GetDeploymentOptionsWithResponse call
func ParseGetDeploymentOptionsResponse(rsp *http.Response) (*GetDeploymentOptionsResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &GetDeploymentOptionsResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest DeploymentOptions
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON400 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}

// ParseListDeploymentsResponse parses an HTTP response from a ListDeploymentsWithResponse call
func ParseListDeploymentsResponse(rsp *http.Response) (*ListDeploymentsResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &ListDeploymentsResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest DeploymentsPaginated
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON400 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}

// ParseCreateDeploymentResponse parses an HTTP response from a CreateDeploymentWithResponse call
func ParseCreateDeploymentResponse(rsp *http.Response) (*CreateDeploymentResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &CreateDeploymentResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest Deployment
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON400 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}

// ParseDeleteDeploymentResponse parses an HTTP response from a DeleteDeploymentWithResponse call
func ParseDeleteDeploymentResponse(rsp *http.Response) (*DeleteDeploymentResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &DeleteDeploymentResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON400 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON404 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}

// ParseGetDeploymentResponse parses an HTTP response from a GetDeploymentWithResponse call
func ParseGetDeploymentResponse(rsp *http.Response) (*GetDeploymentResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &GetDeploymentResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest Deployment
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON400 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON404 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}

// ParseUpdateDeploymentResponse parses an HTTP response from a UpdateDeploymentWithResponse call
func ParseUpdateDeploymentResponse(rsp *http.Response) (*UpdateDeploymentResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &UpdateDeploymentResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest Deployment
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON400 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON404 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}

// ParseDeleteDeploymentHibernationOverrideResponse parses an HTTP response from a DeleteDeploymentHibernationOverrideWithResponse call
func ParseDeleteDeploymentHibernationOverrideResponse(rsp *http.Response) (*DeleteDeploymentHibernationOverrideResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &DeleteDeploymentHibernationOverrideResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode/100 == 4:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON4XX = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode/100 == 5:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON5XX = &dest

	}

	return response, nil
}

// ParseUpdateDeploymentHibernationOverrideResponse parses an HTTP response from a UpdateDeploymentHibernationOverrideWithResponse call
func ParseUpdateDeploymentHibernationOverrideResponse(rsp *http.Response) (*UpdateDeploymentHibernationOverrideResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &UpdateDeploymentHibernationOverrideResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest DeploymentHibernationOverride
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode/100 == 4:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON4XX = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode/100 == 5:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON5XX = &dest

	}

	return response, nil
}

// ParseListEnvironmentObjectsResponse parses an HTTP response from a ListEnvironmentObjectsWithResponse call
func ParseListEnvironmentObjectsResponse(rsp *http.Response) (*ListEnvironmentObjectsResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &ListEnvironmentObjectsResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest EnvironmentObjectsPaginated
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON404 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 405:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON405 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}

// ParseCreateEnvironmentObjectResponse parses an HTTP response from a CreateEnvironmentObjectWithResponse call
func ParseCreateEnvironmentObjectResponse(rsp *http.Response) (*CreateEnvironmentObjectResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &CreateEnvironmentObjectResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest CreateEnvironmentObject
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON404 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 405:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON405 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 409:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON409 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}

// ParseDeleteEnvironmentObjectResponse parses an HTTP response from a DeleteEnvironmentObjectWithResponse call
func ParseDeleteEnvironmentObjectResponse(rsp *http.Response) (*DeleteEnvironmentObjectResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &DeleteEnvironmentObjectResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON404 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 405:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON405 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 409:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON409 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}

// ParseGetEnvironmentObjectResponse parses an HTTP response from a GetEnvironmentObjectWithResponse call
func ParseGetEnvironmentObjectResponse(rsp *http.Response) (*GetEnvironmentObjectResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &GetEnvironmentObjectResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest EnvironmentObject
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON404 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 405:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON405 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}

// ParseUpdateEnvironmentObjectResponse parses an HTTP response from a UpdateEnvironmentObjectWithResponse call
func ParseUpdateEnvironmentObjectResponse(rsp *http.Response) (*UpdateEnvironmentObjectResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &UpdateEnvironmentObjectResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest EnvironmentObject
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON404 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 405:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON405 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 409:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON409 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}

// ParseExcludeLinkingEnvironmentObjectResponse parses an HTTP response from a ExcludeLinkingEnvironmentObjectWithResponse call
func ParseExcludeLinkingEnvironmentObjectResponse(rsp *http.Response) (*ExcludeLinkingEnvironmentObjectResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &ExcludeLinkingEnvironmentObjectResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON404 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 405:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON405 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 409:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON409 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}

// ParseListNotificationChannelsResponse parses an HTTP response from a ListNotificationChannelsWithResponse call
func ParseListNotificationChannelsResponse(rsp *http.Response) (*ListNotificationChannelsResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &ListNotificationChannelsResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest NotificationChannelsPaginated
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON400 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON404 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}

// ParseCreateNotificationChannelResponse parses an HTTP response from a CreateNotificationChannelWithResponse call
func ParseCreateNotificationChannelResponse(rsp *http.Response) (*CreateNotificationChannelResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &CreateNotificationChannelResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest NotificationChannel
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON400 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON404 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}

// ParseDeleteNotificationChannelResponse parses an HTTP response from a DeleteNotificationChannelWithResponse call
func ParseDeleteNotificationChannelResponse(rsp *http.Response) (*DeleteNotificationChannelResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &DeleteNotificationChannelResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON400 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON404 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}

// ParseGetNotificationChannelResponse parses an HTTP response from a GetNotificationChannelWithResponse call
func ParseGetNotificationChannelResponse(rsp *http.Response) (*GetNotificationChannelResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &GetNotificationChannelResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest NotificationChannel
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON400 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON404 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}

// ParseUpdateNotificationChannelResponse parses an HTTP response from a UpdateNotificationChannelWithResponse call
func ParseUpdateNotificationChannelResponse(rsp *http.Response) (*UpdateNotificationChannelResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &UpdateNotificationChannelResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest NotificationChannel
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON400 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON404 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}

// ParseListWorkspacesResponse parses an HTTP response from a ListWorkspacesWithResponse call
func ParseListWorkspacesResponse(rsp *http.Response) (*ListWorkspacesResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &ListWorkspacesResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest WorkspacesPaginated
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON400 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}

// ParseCreateWorkspaceResponse parses an HTTP response from a CreateWorkspaceWithResponse call
func ParseCreateWorkspaceResponse(rsp *http.Response) (*CreateWorkspaceResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &CreateWorkspaceResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest Workspace
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON400 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON404 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}

// ParseDeleteWorkspaceResponse parses an HTTP response from a DeleteWorkspaceWithResponse call
func ParseDeleteWorkspaceResponse(rsp *http.Response) (*DeleteWorkspaceResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &DeleteWorkspaceResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON400 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON404 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}

// ParseGetWorkspaceResponse parses an HTTP response from a GetWorkspaceWithResponse call
func ParseGetWorkspaceResponse(rsp *http.Response) (*GetWorkspaceResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &GetWorkspaceResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest Workspace
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON400 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON404 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}

// ParseUpdateWorkspaceResponse parses an HTTP response from a UpdateWorkspaceWithResponse call
func ParseUpdateWorkspaceResponse(rsp *http.Response) (*UpdateWorkspaceResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &UpdateWorkspaceResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest Workspace
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON400 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON401 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON403 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON404 = &dest

	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500:
		var dest Error
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON500 = &dest

	}

	return response, nil
}
