// Code generated by azure-service-operator-codegen. DO NOT EDIT.
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
package arm

import "encoding/json"

type WorkspacesConnection_STATUS struct {
	// Id: Fully qualified resource ID for the resource. Ex -
	// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	Id *string `json:"id,omitempty"`

	// Name: The name of the resource
	Name       *string                                 `json:"name,omitempty"`
	Properties *WorkspaceConnectionPropertiesV2_STATUS `json:"properties,omitempty"`

	// SystemData: Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData_STATUS `json:"systemData,omitempty"`

	// Type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string `json:"type,omitempty"`
}

type WorkspaceConnectionPropertiesV2_STATUS struct {
	// AAD: Mutually exclusive with all other properties
	AAD *AADAuthTypeWorkspaceConnectionProperties_STATUS `json:"aad,omitempty"`

	// AccessKey: Mutually exclusive with all other properties
	AccessKey *AccessKeyAuthTypeWorkspaceConnectionProperties_STATUS `json:"accessKey,omitempty"`

	// AccountKey: Mutually exclusive with all other properties
	AccountKey *AccountKeyAuthTypeWorkspaceConnectionProperties_STATUS `json:"accountKey,omitempty"`

	// ApiKey: Mutually exclusive with all other properties
	ApiKey *ApiKeyAuthWorkspaceConnectionProperties_STATUS `json:"apiKey,omitempty"`

	// CustomKeys: Mutually exclusive with all other properties
	CustomKeys *CustomKeysWorkspaceConnectionProperties_STATUS `json:"customKeys,omitempty"`

	// ManagedIdentity: Mutually exclusive with all other properties
	ManagedIdentity *ManagedIdentityAuthTypeWorkspaceConnectionProperties_STATUS `json:"managedIdentity,omitempty"`

	// None: Mutually exclusive with all other properties
	None *NoneAuthTypeWorkspaceConnectionProperties_STATUS `json:"none,omitempty"`

	// OAuth2: Mutually exclusive with all other properties
	OAuth2 *OAuth2AuthTypeWorkspaceConnectionProperties_STATUS `json:"oAuth2,omitempty"`

	// PAT: Mutually exclusive with all other properties
	PAT *PATAuthTypeWorkspaceConnectionProperties_STATUS `json:"pat,omitempty"`

	// SAS: Mutually exclusive with all other properties
	SAS *SASAuthTypeWorkspaceConnectionProperties_STATUS `json:"sas,omitempty"`

	// ServicePrincipal: Mutually exclusive with all other properties
	ServicePrincipal *ServicePrincipalAuthTypeWorkspaceConnectionProperties_STATUS `json:"servicePrincipal,omitempty"`

	// UsernamePassword: Mutually exclusive with all other properties
	UsernamePassword *UsernamePasswordAuthTypeWorkspaceConnectionProperties_STATUS `json:"usernamePassword,omitempty"`
}

// MarshalJSON defers JSON marshaling to the first non-nil property, because WorkspaceConnectionPropertiesV2_STATUS represents a discriminated union (JSON OneOf)
func (v2 WorkspaceConnectionPropertiesV2_STATUS) MarshalJSON() ([]byte, error) {
	if v2.AAD != nil {
		return json.Marshal(v2.AAD)
	}

	if v2.AccessKey != nil {
		return json.Marshal(v2.AccessKey)
	}

	if v2.AccountKey != nil {
		return json.Marshal(v2.AccountKey)
	}

	if v2.ApiKey != nil {
		return json.Marshal(v2.ApiKey)
	}

	if v2.CustomKeys != nil {
		return json.Marshal(v2.CustomKeys)
	}

	if v2.ManagedIdentity != nil {
		return json.Marshal(v2.ManagedIdentity)
	}

	if v2.None != nil {
		return json.Marshal(v2.None)
	}

	if v2.OAuth2 != nil {
		return json.Marshal(v2.OAuth2)
	}

	if v2.PAT != nil {
		return json.Marshal(v2.PAT)
	}

	if v2.SAS != nil {
		return json.Marshal(v2.SAS)
	}

	if v2.ServicePrincipal != nil {
		return json.Marshal(v2.ServicePrincipal)
	}

	if v2.UsernamePassword != nil {
		return json.Marshal(v2.UsernamePassword)
	}

	return nil, nil
}

// UnmarshalJSON unmarshals the WorkspaceConnectionPropertiesV2_STATUS
func (v2 *WorkspaceConnectionPropertiesV2_STATUS) UnmarshalJSON(data []byte) error {
	var rawJson map[string]interface{}
	err := json.Unmarshal(data, &rawJson)
	if err != nil {
		return err
	}
	discriminator := rawJson["authType"]
	if discriminator == "AAD" {
		v2.AAD = &AADAuthTypeWorkspaceConnectionProperties_STATUS{}
		return json.Unmarshal(data, v2.AAD)
	}
	if discriminator == "AccessKey" {
		v2.AccessKey = &AccessKeyAuthTypeWorkspaceConnectionProperties_STATUS{}
		return json.Unmarshal(data, v2.AccessKey)
	}
	if discriminator == "AccountKey" {
		v2.AccountKey = &AccountKeyAuthTypeWorkspaceConnectionProperties_STATUS{}
		return json.Unmarshal(data, v2.AccountKey)
	}
	if discriminator == "ApiKey" {
		v2.ApiKey = &ApiKeyAuthWorkspaceConnectionProperties_STATUS{}
		return json.Unmarshal(data, v2.ApiKey)
	}
	if discriminator == "CustomKeys" {
		v2.CustomKeys = &CustomKeysWorkspaceConnectionProperties_STATUS{}
		return json.Unmarshal(data, v2.CustomKeys)
	}
	if discriminator == "ManagedIdentity" {
		v2.ManagedIdentity = &ManagedIdentityAuthTypeWorkspaceConnectionProperties_STATUS{}
		return json.Unmarshal(data, v2.ManagedIdentity)
	}
	if discriminator == "None" {
		v2.None = &NoneAuthTypeWorkspaceConnectionProperties_STATUS{}
		return json.Unmarshal(data, v2.None)
	}
	if discriminator == "OAuth2" {
		v2.OAuth2 = &OAuth2AuthTypeWorkspaceConnectionProperties_STATUS{}
		return json.Unmarshal(data, v2.OAuth2)
	}
	if discriminator == "PAT" {
		v2.PAT = &PATAuthTypeWorkspaceConnectionProperties_STATUS{}
		return json.Unmarshal(data, v2.PAT)
	}
	if discriminator == "SAS" {
		v2.SAS = &SASAuthTypeWorkspaceConnectionProperties_STATUS{}
		return json.Unmarshal(data, v2.SAS)
	}
	if discriminator == "ServicePrincipal" {
		v2.ServicePrincipal = &ServicePrincipalAuthTypeWorkspaceConnectionProperties_STATUS{}
		return json.Unmarshal(data, v2.ServicePrincipal)
	}
	if discriminator == "UsernamePassword" {
		v2.UsernamePassword = &UsernamePasswordAuthTypeWorkspaceConnectionProperties_STATUS{}
		return json.Unmarshal(data, v2.UsernamePassword)
	}

	// No error
	return nil
}

type AADAuthTypeWorkspaceConnectionProperties_STATUS struct {
	// AuthType: Authentication type of the connection target
	AuthType AADAuthTypeWorkspaceConnectionProperties_AuthType_STATUS `json:"authType,omitempty"`

	// Category: Category of the connection
	Category                *ConnectionCategory_STATUS `json:"category,omitempty"`
	CreatedByWorkspaceArmId *string                    `json:"createdByWorkspaceArmId,omitempty"`
	ExpiryTime              *string                    `json:"expiryTime,omitempty"`

	// Group: Group based on connection category
	Group         *ConnectionGroup_STATUS `json:"group,omitempty"`
	IsSharedToAll *bool                   `json:"isSharedToAll,omitempty"`

	// Metadata: Store user metadata for this connection
	Metadata       map[string]string `json:"metadata,omitempty"`
	SharedUserList []string          `json:"sharedUserList,omitempty"`
	Target         *string           `json:"target,omitempty"`

	// Value: Value details of the workspace connection.
	Value *string `json:"value,omitempty"`

	// ValueFormat: format for the workspace connection value
	ValueFormat *AADAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS `json:"valueFormat,omitempty"`
}

type AccessKeyAuthTypeWorkspaceConnectionProperties_STATUS struct {
	// AuthType: Authentication type of the connection target
	AuthType AccessKeyAuthTypeWorkspaceConnectionProperties_AuthType_STATUS `json:"authType,omitempty"`

	// Category: Category of the connection
	Category                *ConnectionCategory_STATUS           `json:"category,omitempty"`
	CreatedByWorkspaceArmId *string                              `json:"createdByWorkspaceArmId,omitempty"`
	Credentials             *WorkspaceConnectionAccessKey_STATUS `json:"credentials,omitempty"`
	ExpiryTime              *string                              `json:"expiryTime,omitempty"`

	// Group: Group based on connection category
	Group         *ConnectionGroup_STATUS `json:"group,omitempty"`
	IsSharedToAll *bool                   `json:"isSharedToAll,omitempty"`

	// Metadata: Store user metadata for this connection
	Metadata       map[string]string `json:"metadata,omitempty"`
	SharedUserList []string          `json:"sharedUserList,omitempty"`
	Target         *string           `json:"target,omitempty"`

	// Value: Value details of the workspace connection.
	Value *string `json:"value,omitempty"`

	// ValueFormat: format for the workspace connection value
	ValueFormat *AccessKeyAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS `json:"valueFormat,omitempty"`
}

type AccountKeyAuthTypeWorkspaceConnectionProperties_STATUS struct {
	// AuthType: Authentication type of the connection target
	AuthType AccountKeyAuthTypeWorkspaceConnectionProperties_AuthType_STATUS `json:"authType,omitempty"`

	// Category: Category of the connection
	Category                *ConnectionCategory_STATUS            `json:"category,omitempty"`
	CreatedByWorkspaceArmId *string                               `json:"createdByWorkspaceArmId,omitempty"`
	Credentials             *WorkspaceConnectionAccountKey_STATUS `json:"credentials,omitempty"`
	ExpiryTime              *string                               `json:"expiryTime,omitempty"`

	// Group: Group based on connection category
	Group         *ConnectionGroup_STATUS `json:"group,omitempty"`
	IsSharedToAll *bool                   `json:"isSharedToAll,omitempty"`

	// Metadata: Store user metadata for this connection
	Metadata       map[string]string `json:"metadata,omitempty"`
	SharedUserList []string          `json:"sharedUserList,omitempty"`
	Target         *string           `json:"target,omitempty"`

	// Value: Value details of the workspace connection.
	Value *string `json:"value,omitempty"`

	// ValueFormat: format for the workspace connection value
	ValueFormat *AccountKeyAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS `json:"valueFormat,omitempty"`
}

type ApiKeyAuthWorkspaceConnectionProperties_STATUS struct {
	// AuthType: Authentication type of the connection target
	AuthType ApiKeyAuthWorkspaceConnectionProperties_AuthType_STATUS `json:"authType,omitempty"`

	// Category: Category of the connection
	Category                *ConnectionCategory_STATUS `json:"category,omitempty"`
	CreatedByWorkspaceArmId *string                    `json:"createdByWorkspaceArmId,omitempty"`

	// Credentials: Api key object for workspace connection credential.
	Credentials *WorkspaceConnectionApiKey_STATUS `json:"credentials,omitempty"`
	ExpiryTime  *string                           `json:"expiryTime,omitempty"`

	// Group: Group based on connection category
	Group         *ConnectionGroup_STATUS `json:"group,omitempty"`
	IsSharedToAll *bool                   `json:"isSharedToAll,omitempty"`

	// Metadata: Store user metadata for this connection
	Metadata       map[string]string `json:"metadata,omitempty"`
	SharedUserList []string          `json:"sharedUserList,omitempty"`
	Target         *string           `json:"target,omitempty"`

	// Value: Value details of the workspace connection.
	Value *string `json:"value,omitempty"`

	// ValueFormat: format for the workspace connection value
	ValueFormat *ApiKeyAuthWorkspaceConnectionProperties_ValueFormat_STATUS `json:"valueFormat,omitempty"`
}

type CustomKeysWorkspaceConnectionProperties_STATUS struct {
	// AuthType: Authentication type of the connection target
	AuthType CustomKeysWorkspaceConnectionProperties_AuthType_STATUS `json:"authType,omitempty"`

	// Category: Category of the connection
	Category                *ConnectionCategory_STATUS `json:"category,omitempty"`
	CreatedByWorkspaceArmId *string                    `json:"createdByWorkspaceArmId,omitempty"`

	// Credentials: Custom Keys credential object
	Credentials *CustomKeys_STATUS `json:"credentials,omitempty"`
	ExpiryTime  *string            `json:"expiryTime,omitempty"`

	// Group: Group based on connection category
	Group         *ConnectionGroup_STATUS `json:"group,omitempty"`
	IsSharedToAll *bool                   `json:"isSharedToAll,omitempty"`

	// Metadata: Store user metadata for this connection
	Metadata       map[string]string `json:"metadata,omitempty"`
	SharedUserList []string          `json:"sharedUserList,omitempty"`
	Target         *string           `json:"target,omitempty"`

	// Value: Value details of the workspace connection.
	Value *string `json:"value,omitempty"`

	// ValueFormat: format for the workspace connection value
	ValueFormat *CustomKeysWorkspaceConnectionProperties_ValueFormat_STATUS `json:"valueFormat,omitempty"`
}

type ManagedIdentityAuthTypeWorkspaceConnectionProperties_STATUS struct {
	// AuthType: Authentication type of the connection target
	AuthType ManagedIdentityAuthTypeWorkspaceConnectionProperties_AuthType_STATUS `json:"authType,omitempty"`

	// Category: Category of the connection
	Category                *ConnectionCategory_STATUS                 `json:"category,omitempty"`
	CreatedByWorkspaceArmId *string                                    `json:"createdByWorkspaceArmId,omitempty"`
	Credentials             *WorkspaceConnectionManagedIdentity_STATUS `json:"credentials,omitempty"`
	ExpiryTime              *string                                    `json:"expiryTime,omitempty"`

	// Group: Group based on connection category
	Group         *ConnectionGroup_STATUS `json:"group,omitempty"`
	IsSharedToAll *bool                   `json:"isSharedToAll,omitempty"`

	// Metadata: Store user metadata for this connection
	Metadata       map[string]string `json:"metadata,omitempty"`
	SharedUserList []string          `json:"sharedUserList,omitempty"`
	Target         *string           `json:"target,omitempty"`

	// Value: Value details of the workspace connection.
	Value *string `json:"value,omitempty"`

	// ValueFormat: format for the workspace connection value
	ValueFormat *ManagedIdentityAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS `json:"valueFormat,omitempty"`
}

type NoneAuthTypeWorkspaceConnectionProperties_STATUS struct {
	// AuthType: Authentication type of the connection target
	AuthType NoneAuthTypeWorkspaceConnectionProperties_AuthType_STATUS `json:"authType,omitempty"`

	// Category: Category of the connection
	Category                *ConnectionCategory_STATUS `json:"category,omitempty"`
	CreatedByWorkspaceArmId *string                    `json:"createdByWorkspaceArmId,omitempty"`
	ExpiryTime              *string                    `json:"expiryTime,omitempty"`

	// Group: Group based on connection category
	Group         *ConnectionGroup_STATUS `json:"group,omitempty"`
	IsSharedToAll *bool                   `json:"isSharedToAll,omitempty"`

	// Metadata: Store user metadata for this connection
	Metadata       map[string]string `json:"metadata,omitempty"`
	SharedUserList []string          `json:"sharedUserList,omitempty"`
	Target         *string           `json:"target,omitempty"`

	// Value: Value details of the workspace connection.
	Value *string `json:"value,omitempty"`

	// ValueFormat: format for the workspace connection value
	ValueFormat *NoneAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS `json:"valueFormat,omitempty"`
}

type OAuth2AuthTypeWorkspaceConnectionProperties_STATUS struct {
	// AuthType: Authentication type of the connection target
	AuthType OAuth2AuthTypeWorkspaceConnectionProperties_AuthType_STATUS `json:"authType,omitempty"`

	// Category: Category of the connection
	Category                *ConnectionCategory_STATUS `json:"category,omitempty"`
	CreatedByWorkspaceArmId *string                    `json:"createdByWorkspaceArmId,omitempty"`

	// Credentials: ClientId and ClientSecret are required. Other properties are optional
	// depending on each OAuth2 provider's  implementation.
	Credentials *WorkspaceConnectionOAuth2_STATUS `json:"credentials,omitempty"`
	ExpiryTime  *string                           `json:"expiryTime,omitempty"`

	// Group: Group based on connection category
	Group         *ConnectionGroup_STATUS `json:"group,omitempty"`
	IsSharedToAll *bool                   `json:"isSharedToAll,omitempty"`

	// Metadata: Store user metadata for this connection
	Metadata       map[string]string `json:"metadata,omitempty"`
	SharedUserList []string          `json:"sharedUserList,omitempty"`
	Target         *string           `json:"target,omitempty"`

	// Value: Value details of the workspace connection.
	Value *string `json:"value,omitempty"`

	// ValueFormat: format for the workspace connection value
	ValueFormat *OAuth2AuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS `json:"valueFormat,omitempty"`
}

type PATAuthTypeWorkspaceConnectionProperties_STATUS struct {
	// AuthType: Authentication type of the connection target
	AuthType PATAuthTypeWorkspaceConnectionProperties_AuthType_STATUS `json:"authType,omitempty"`

	// Category: Category of the connection
	Category                *ConnectionCategory_STATUS                     `json:"category,omitempty"`
	CreatedByWorkspaceArmId *string                                        `json:"createdByWorkspaceArmId,omitempty"`
	Credentials             *WorkspaceConnectionPersonalAccessToken_STATUS `json:"credentials,omitempty"`
	ExpiryTime              *string                                        `json:"expiryTime,omitempty"`

	// Group: Group based on connection category
	Group         *ConnectionGroup_STATUS `json:"group,omitempty"`
	IsSharedToAll *bool                   `json:"isSharedToAll,omitempty"`

	// Metadata: Store user metadata for this connection
	Metadata       map[string]string `json:"metadata,omitempty"`
	SharedUserList []string          `json:"sharedUserList,omitempty"`
	Target         *string           `json:"target,omitempty"`

	// Value: Value details of the workspace connection.
	Value *string `json:"value,omitempty"`

	// ValueFormat: format for the workspace connection value
	ValueFormat *PATAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS `json:"valueFormat,omitempty"`
}

type SASAuthTypeWorkspaceConnectionProperties_STATUS struct {
	// AuthType: Authentication type of the connection target
	AuthType SASAuthTypeWorkspaceConnectionProperties_AuthType_STATUS `json:"authType,omitempty"`

	// Category: Category of the connection
	Category                *ConnectionCategory_STATUS                       `json:"category,omitempty"`
	CreatedByWorkspaceArmId *string                                          `json:"createdByWorkspaceArmId,omitempty"`
	Credentials             *WorkspaceConnectionSharedAccessSignature_STATUS `json:"credentials,omitempty"`
	ExpiryTime              *string                                          `json:"expiryTime,omitempty"`

	// Group: Group based on connection category
	Group         *ConnectionGroup_STATUS `json:"group,omitempty"`
	IsSharedToAll *bool                   `json:"isSharedToAll,omitempty"`

	// Metadata: Store user metadata for this connection
	Metadata       map[string]string `json:"metadata,omitempty"`
	SharedUserList []string          `json:"sharedUserList,omitempty"`
	Target         *string           `json:"target,omitempty"`

	// Value: Value details of the workspace connection.
	Value *string `json:"value,omitempty"`

	// ValueFormat: format for the workspace connection value
	ValueFormat *SASAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS `json:"valueFormat,omitempty"`
}

type ServicePrincipalAuthTypeWorkspaceConnectionProperties_STATUS struct {
	// AuthType: Authentication type of the connection target
	AuthType ServicePrincipalAuthTypeWorkspaceConnectionProperties_AuthType_STATUS `json:"authType,omitempty"`

	// Category: Category of the connection
	Category                *ConnectionCategory_STATUS                  `json:"category,omitempty"`
	CreatedByWorkspaceArmId *string                                     `json:"createdByWorkspaceArmId,omitempty"`
	Credentials             *WorkspaceConnectionServicePrincipal_STATUS `json:"credentials,omitempty"`
	ExpiryTime              *string                                     `json:"expiryTime,omitempty"`

	// Group: Group based on connection category
	Group         *ConnectionGroup_STATUS `json:"group,omitempty"`
	IsSharedToAll *bool                   `json:"isSharedToAll,omitempty"`

	// Metadata: Store user metadata for this connection
	Metadata       map[string]string `json:"metadata,omitempty"`
	SharedUserList []string          `json:"sharedUserList,omitempty"`
	Target         *string           `json:"target,omitempty"`

	// Value: Value details of the workspace connection.
	Value *string `json:"value,omitempty"`

	// ValueFormat: format for the workspace connection value
	ValueFormat *ServicePrincipalAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS `json:"valueFormat,omitempty"`
}

type UsernamePasswordAuthTypeWorkspaceConnectionProperties_STATUS struct {
	// AuthType: Authentication type of the connection target
	AuthType UsernamePasswordAuthTypeWorkspaceConnectionProperties_AuthType_STATUS `json:"authType,omitempty"`

	// Category: Category of the connection
	Category                *ConnectionCategory_STATUS                  `json:"category,omitempty"`
	CreatedByWorkspaceArmId *string                                     `json:"createdByWorkspaceArmId,omitempty"`
	Credentials             *WorkspaceConnectionUsernamePassword_STATUS `json:"credentials,omitempty"`
	ExpiryTime              *string                                     `json:"expiryTime,omitempty"`

	// Group: Group based on connection category
	Group         *ConnectionGroup_STATUS `json:"group,omitempty"`
	IsSharedToAll *bool                   `json:"isSharedToAll,omitempty"`

	// Metadata: Store user metadata for this connection
	Metadata       map[string]string `json:"metadata,omitempty"`
	SharedUserList []string          `json:"sharedUserList,omitempty"`
	Target         *string           `json:"target,omitempty"`

	// Value: Value details of the workspace connection.
	Value *string `json:"value,omitempty"`

	// ValueFormat: format for the workspace connection value
	ValueFormat *UsernamePasswordAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS `json:"valueFormat,omitempty"`
}

type AADAuthTypeWorkspaceConnectionProperties_AuthType_STATUS string

const AADAuthTypeWorkspaceConnectionProperties_AuthType_STATUS_AAD = AADAuthTypeWorkspaceConnectionProperties_AuthType_STATUS("AAD")

// Mapping from string to AADAuthTypeWorkspaceConnectionProperties_AuthType_STATUS
var aADAuthTypeWorkspaceConnectionProperties_AuthType_STATUS_Values = map[string]AADAuthTypeWorkspaceConnectionProperties_AuthType_STATUS{
	"aad": AADAuthTypeWorkspaceConnectionProperties_AuthType_STATUS_AAD,
}

type AADAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS string

const AADAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS_JSON = AADAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS("JSON")

// Mapping from string to AADAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS
var aADAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS_Values = map[string]AADAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS{
	"json": AADAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS_JSON,
}

type AccessKeyAuthTypeWorkspaceConnectionProperties_AuthType_STATUS string

const AccessKeyAuthTypeWorkspaceConnectionProperties_AuthType_STATUS_AccessKey = AccessKeyAuthTypeWorkspaceConnectionProperties_AuthType_STATUS("AccessKey")

// Mapping from string to AccessKeyAuthTypeWorkspaceConnectionProperties_AuthType_STATUS
var accessKeyAuthTypeWorkspaceConnectionProperties_AuthType_STATUS_Values = map[string]AccessKeyAuthTypeWorkspaceConnectionProperties_AuthType_STATUS{
	"accesskey": AccessKeyAuthTypeWorkspaceConnectionProperties_AuthType_STATUS_AccessKey,
}

type AccessKeyAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS string

const AccessKeyAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS_JSON = AccessKeyAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS("JSON")

// Mapping from string to AccessKeyAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS
var accessKeyAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS_Values = map[string]AccessKeyAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS{
	"json": AccessKeyAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS_JSON,
}

type AccountKeyAuthTypeWorkspaceConnectionProperties_AuthType_STATUS string

const AccountKeyAuthTypeWorkspaceConnectionProperties_AuthType_STATUS_AccountKey = AccountKeyAuthTypeWorkspaceConnectionProperties_AuthType_STATUS("AccountKey")

// Mapping from string to AccountKeyAuthTypeWorkspaceConnectionProperties_AuthType_STATUS
var accountKeyAuthTypeWorkspaceConnectionProperties_AuthType_STATUS_Values = map[string]AccountKeyAuthTypeWorkspaceConnectionProperties_AuthType_STATUS{
	"accountkey": AccountKeyAuthTypeWorkspaceConnectionProperties_AuthType_STATUS_AccountKey,
}

type AccountKeyAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS string

const AccountKeyAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS_JSON = AccountKeyAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS("JSON")

// Mapping from string to AccountKeyAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS
var accountKeyAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS_Values = map[string]AccountKeyAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS{
	"json": AccountKeyAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS_JSON,
}

type ApiKeyAuthWorkspaceConnectionProperties_AuthType_STATUS string

const ApiKeyAuthWorkspaceConnectionProperties_AuthType_STATUS_ApiKey = ApiKeyAuthWorkspaceConnectionProperties_AuthType_STATUS("ApiKey")

// Mapping from string to ApiKeyAuthWorkspaceConnectionProperties_AuthType_STATUS
var apiKeyAuthWorkspaceConnectionProperties_AuthType_STATUS_Values = map[string]ApiKeyAuthWorkspaceConnectionProperties_AuthType_STATUS{
	"apikey": ApiKeyAuthWorkspaceConnectionProperties_AuthType_STATUS_ApiKey,
}

type ApiKeyAuthWorkspaceConnectionProperties_ValueFormat_STATUS string

const ApiKeyAuthWorkspaceConnectionProperties_ValueFormat_STATUS_JSON = ApiKeyAuthWorkspaceConnectionProperties_ValueFormat_STATUS("JSON")

// Mapping from string to ApiKeyAuthWorkspaceConnectionProperties_ValueFormat_STATUS
var apiKeyAuthWorkspaceConnectionProperties_ValueFormat_STATUS_Values = map[string]ApiKeyAuthWorkspaceConnectionProperties_ValueFormat_STATUS{
	"json": ApiKeyAuthWorkspaceConnectionProperties_ValueFormat_STATUS_JSON,
}

// Category of the connection
type ConnectionCategory_STATUS string

const (
	ConnectionCategory_STATUS_ADLSGen2                 = ConnectionCategory_STATUS("ADLSGen2")
	ConnectionCategory_STATUS_AIServices               = ConnectionCategory_STATUS("AIServices")
	ConnectionCategory_STATUS_AmazonMws                = ConnectionCategory_STATUS("AmazonMws")
	ConnectionCategory_STATUS_AmazonRdsForOracle       = ConnectionCategory_STATUS("AmazonRdsForOracle")
	ConnectionCategory_STATUS_AmazonRdsForSqlServer    = ConnectionCategory_STATUS("AmazonRdsForSqlServer")
	ConnectionCategory_STATUS_AmazonRedshift           = ConnectionCategory_STATUS("AmazonRedshift")
	ConnectionCategory_STATUS_AmazonS3Compatible       = ConnectionCategory_STATUS("AmazonS3Compatible")
	ConnectionCategory_STATUS_ApiKey                   = ConnectionCategory_STATUS("ApiKey")
	ConnectionCategory_STATUS_AzureBlob                = ConnectionCategory_STATUS("AzureBlob")
	ConnectionCategory_STATUS_AzureDataExplorer        = ConnectionCategory_STATUS("AzureDataExplorer")
	ConnectionCategory_STATUS_AzureDatabricksDeltaLake = ConnectionCategory_STATUS("AzureDatabricksDeltaLake")
	ConnectionCategory_STATUS_AzureMariaDb             = ConnectionCategory_STATUS("AzureMariaDb")
	ConnectionCategory_STATUS_AzureMySqlDb             = ConnectionCategory_STATUS("AzureMySqlDb")
	ConnectionCategory_STATUS_AzureOneLake             = ConnectionCategory_STATUS("AzureOneLake")
	ConnectionCategory_STATUS_AzureOpenAI              = ConnectionCategory_STATUS("AzureOpenAI")
	ConnectionCategory_STATUS_AzurePostgresDb          = ConnectionCategory_STATUS("AzurePostgresDb")
	ConnectionCategory_STATUS_AzureSqlDb               = ConnectionCategory_STATUS("AzureSqlDb")
	ConnectionCategory_STATUS_AzureSqlMi               = ConnectionCategory_STATUS("AzureSqlMi")
	ConnectionCategory_STATUS_AzureSynapseAnalytics    = ConnectionCategory_STATUS("AzureSynapseAnalytics")
	ConnectionCategory_STATUS_AzureTableStorage        = ConnectionCategory_STATUS("AzureTableStorage")
	ConnectionCategory_STATUS_BingLLMSearch            = ConnectionCategory_STATUS("BingLLMSearch")
	ConnectionCategory_STATUS_Cassandra                = ConnectionCategory_STATUS("Cassandra")
	ConnectionCategory_STATUS_CognitiveSearch          = ConnectionCategory_STATUS("CognitiveSearch")
	ConnectionCategory_STATUS_CognitiveService         = ConnectionCategory_STATUS("CognitiveService")
	ConnectionCategory_STATUS_Concur                   = ConnectionCategory_STATUS("Concur")
	ConnectionCategory_STATUS_ContainerRegistry        = ConnectionCategory_STATUS("ContainerRegistry")
	ConnectionCategory_STATUS_CosmosDb                 = ConnectionCategory_STATUS("CosmosDb")
	ConnectionCategory_STATUS_CosmosDbMongoDbApi       = ConnectionCategory_STATUS("CosmosDbMongoDbApi")
	ConnectionCategory_STATUS_Couchbase                = ConnectionCategory_STATUS("Couchbase")
	ConnectionCategory_STATUS_CustomKeys               = ConnectionCategory_STATUS("CustomKeys")
	ConnectionCategory_STATUS_Db2                      = ConnectionCategory_STATUS("Db2")
	ConnectionCategory_STATUS_Drill                    = ConnectionCategory_STATUS("Drill")
	ConnectionCategory_STATUS_Dynamics                 = ConnectionCategory_STATUS("Dynamics")
	ConnectionCategory_STATUS_DynamicsAx               = ConnectionCategory_STATUS("DynamicsAx")
	ConnectionCategory_STATUS_DynamicsCrm              = ConnectionCategory_STATUS("DynamicsCrm")
	ConnectionCategory_STATUS_Eloqua                   = ConnectionCategory_STATUS("Eloqua")
	ConnectionCategory_STATUS_FileServer               = ConnectionCategory_STATUS("FileServer")
	ConnectionCategory_STATUS_FtpServer                = ConnectionCategory_STATUS("FtpServer")
	ConnectionCategory_STATUS_GenericContainerRegistry = ConnectionCategory_STATUS("GenericContainerRegistry")
	ConnectionCategory_STATUS_GenericHttp              = ConnectionCategory_STATUS("GenericHttp")
	ConnectionCategory_STATUS_GenericRest              = ConnectionCategory_STATUS("GenericRest")
	ConnectionCategory_STATUS_Git                      = ConnectionCategory_STATUS("Git")
	ConnectionCategory_STATUS_GoogleAdWords            = ConnectionCategory_STATUS("GoogleAdWords")
	ConnectionCategory_STATUS_GoogleBigQuery           = ConnectionCategory_STATUS("GoogleBigQuery")
	ConnectionCategory_STATUS_GoogleCloudStorage       = ConnectionCategory_STATUS("GoogleCloudStorage")
	ConnectionCategory_STATUS_Greenplum                = ConnectionCategory_STATUS("Greenplum")
	ConnectionCategory_STATUS_Hbase                    = ConnectionCategory_STATUS("Hbase")
	ConnectionCategory_STATUS_Hdfs                     = ConnectionCategory_STATUS("Hdfs")
	ConnectionCategory_STATUS_Hive                     = ConnectionCategory_STATUS("Hive")
	ConnectionCategory_STATUS_Hubspot                  = ConnectionCategory_STATUS("Hubspot")
	ConnectionCategory_STATUS_Impala                   = ConnectionCategory_STATUS("Impala")
	ConnectionCategory_STATUS_Informix                 = ConnectionCategory_STATUS("Informix")
	ConnectionCategory_STATUS_Jira                     = ConnectionCategory_STATUS("Jira")
	ConnectionCategory_STATUS_Magento                  = ConnectionCategory_STATUS("Magento")
	ConnectionCategory_STATUS_MariaDb                  = ConnectionCategory_STATUS("MariaDb")
	ConnectionCategory_STATUS_Marketo                  = ConnectionCategory_STATUS("Marketo")
	ConnectionCategory_STATUS_MicrosoftAccess          = ConnectionCategory_STATUS("MicrosoftAccess")
	ConnectionCategory_STATUS_MongoDbAtlas             = ConnectionCategory_STATUS("MongoDbAtlas")
	ConnectionCategory_STATUS_MongoDbV2                = ConnectionCategory_STATUS("MongoDbV2")
	ConnectionCategory_STATUS_MySql                    = ConnectionCategory_STATUS("MySql")
	ConnectionCategory_STATUS_Netezza                  = ConnectionCategory_STATUS("Netezza")
	ConnectionCategory_STATUS_ODataRest                = ConnectionCategory_STATUS("ODataRest")
	ConnectionCategory_STATUS_Odbc                     = ConnectionCategory_STATUS("Odbc")
	ConnectionCategory_STATUS_Office365                = ConnectionCategory_STATUS("Office365")
	ConnectionCategory_STATUS_OpenAI                   = ConnectionCategory_STATUS("OpenAI")
	ConnectionCategory_STATUS_Oracle                   = ConnectionCategory_STATUS("Oracle")
	ConnectionCategory_STATUS_OracleCloudStorage       = ConnectionCategory_STATUS("OracleCloudStorage")
	ConnectionCategory_STATUS_OracleServiceCloud       = ConnectionCategory_STATUS("OracleServiceCloud")
	ConnectionCategory_STATUS_PayPal                   = ConnectionCategory_STATUS("PayPal")
	ConnectionCategory_STATUS_Phoenix                  = ConnectionCategory_STATUS("Phoenix")
	ConnectionCategory_STATUS_PostgreSql               = ConnectionCategory_STATUS("PostgreSql")
	ConnectionCategory_STATUS_Presto                   = ConnectionCategory_STATUS("Presto")
	ConnectionCategory_STATUS_PythonFeed               = ConnectionCategory_STATUS("PythonFeed")
	ConnectionCategory_STATUS_QuickBooks               = ConnectionCategory_STATUS("QuickBooks")
	ConnectionCategory_STATUS_Redis                    = ConnectionCategory_STATUS("Redis")
	ConnectionCategory_STATUS_Responsys                = ConnectionCategory_STATUS("Responsys")
	ConnectionCategory_STATUS_S3                       = ConnectionCategory_STATUS("S3")
	ConnectionCategory_STATUS_Salesforce               = ConnectionCategory_STATUS("Salesforce")
	ConnectionCategory_STATUS_SalesforceMarketingCloud = ConnectionCategory_STATUS("SalesforceMarketingCloud")
	ConnectionCategory_STATUS_SalesforceServiceCloud   = ConnectionCategory_STATUS("SalesforceServiceCloud")
	ConnectionCategory_STATUS_SapBw                    = ConnectionCategory_STATUS("SapBw")
	ConnectionCategory_STATUS_SapCloudForCustomer      = ConnectionCategory_STATUS("SapCloudForCustomer")
	ConnectionCategory_STATUS_SapEcc                   = ConnectionCategory_STATUS("SapEcc")
	ConnectionCategory_STATUS_SapHana                  = ConnectionCategory_STATUS("SapHana")
	ConnectionCategory_STATUS_SapOpenHub               = ConnectionCategory_STATUS("SapOpenHub")
	ConnectionCategory_STATUS_SapTable                 = ConnectionCategory_STATUS("SapTable")
	ConnectionCategory_STATUS_Serp                     = ConnectionCategory_STATUS("Serp")
	ConnectionCategory_STATUS_Serverless               = ConnectionCategory_STATUS("Serverless")
	ConnectionCategory_STATUS_ServiceNow               = ConnectionCategory_STATUS("ServiceNow")
	ConnectionCategory_STATUS_Sftp                     = ConnectionCategory_STATUS("Sftp")
	ConnectionCategory_STATUS_SharePointOnlineList     = ConnectionCategory_STATUS("SharePointOnlineList")
	ConnectionCategory_STATUS_Shopify                  = ConnectionCategory_STATUS("Shopify")
	ConnectionCategory_STATUS_Snowflake                = ConnectionCategory_STATUS("Snowflake")
	ConnectionCategory_STATUS_Spark                    = ConnectionCategory_STATUS("Spark")
	ConnectionCategory_STATUS_SqlServer                = ConnectionCategory_STATUS("SqlServer")
	ConnectionCategory_STATUS_Square                   = ConnectionCategory_STATUS("Square")
	ConnectionCategory_STATUS_Sybase                   = ConnectionCategory_STATUS("Sybase")
	ConnectionCategory_STATUS_Teradata                 = ConnectionCategory_STATUS("Teradata")
	ConnectionCategory_STATUS_Vertica                  = ConnectionCategory_STATUS("Vertica")
	ConnectionCategory_STATUS_WebTable                 = ConnectionCategory_STATUS("WebTable")
	ConnectionCategory_STATUS_Xero                     = ConnectionCategory_STATUS("Xero")
	ConnectionCategory_STATUS_Zoho                     = ConnectionCategory_STATUS("Zoho")
)

// Mapping from string to ConnectionCategory_STATUS
var connectionCategory_STATUS_Values = map[string]ConnectionCategory_STATUS{
	"adlsgen2":                 ConnectionCategory_STATUS_ADLSGen2,
	"aiservices":               ConnectionCategory_STATUS_AIServices,
	"amazonmws":                ConnectionCategory_STATUS_AmazonMws,
	"amazonrdsfororacle":       ConnectionCategory_STATUS_AmazonRdsForOracle,
	"amazonrdsforsqlserver":    ConnectionCategory_STATUS_AmazonRdsForSqlServer,
	"amazonredshift":           ConnectionCategory_STATUS_AmazonRedshift,
	"amazons3compatible":       ConnectionCategory_STATUS_AmazonS3Compatible,
	"apikey":                   ConnectionCategory_STATUS_ApiKey,
	"azureblob":                ConnectionCategory_STATUS_AzureBlob,
	"azuredataexplorer":        ConnectionCategory_STATUS_AzureDataExplorer,
	"azuredatabricksdeltalake": ConnectionCategory_STATUS_AzureDatabricksDeltaLake,
	"azuremariadb":             ConnectionCategory_STATUS_AzureMariaDb,
	"azuremysqldb":             ConnectionCategory_STATUS_AzureMySqlDb,
	"azureonelake":             ConnectionCategory_STATUS_AzureOneLake,
	"azureopenai":              ConnectionCategory_STATUS_AzureOpenAI,
	"azurepostgresdb":          ConnectionCategory_STATUS_AzurePostgresDb,
	"azuresqldb":               ConnectionCategory_STATUS_AzureSqlDb,
	"azuresqlmi":               ConnectionCategory_STATUS_AzureSqlMi,
	"azuresynapseanalytics":    ConnectionCategory_STATUS_AzureSynapseAnalytics,
	"azuretablestorage":        ConnectionCategory_STATUS_AzureTableStorage,
	"bingllmsearch":            ConnectionCategory_STATUS_BingLLMSearch,
	"cassandra":                ConnectionCategory_STATUS_Cassandra,
	"cognitivesearch":          ConnectionCategory_STATUS_CognitiveSearch,
	"cognitiveservice":         ConnectionCategory_STATUS_CognitiveService,
	"concur":                   ConnectionCategory_STATUS_Concur,
	"containerregistry":        ConnectionCategory_STATUS_ContainerRegistry,
	"cosmosdb":                 ConnectionCategory_STATUS_CosmosDb,
	"cosmosdbmongodbapi":       ConnectionCategory_STATUS_CosmosDbMongoDbApi,
	"couchbase":                ConnectionCategory_STATUS_Couchbase,
	"customkeys":               ConnectionCategory_STATUS_CustomKeys,
	"db2":                      ConnectionCategory_STATUS_Db2,
	"drill":                    ConnectionCategory_STATUS_Drill,
	"dynamics":                 ConnectionCategory_STATUS_Dynamics,
	"dynamicsax":               ConnectionCategory_STATUS_DynamicsAx,
	"dynamicscrm":              ConnectionCategory_STATUS_DynamicsCrm,
	"eloqua":                   ConnectionCategory_STATUS_Eloqua,
	"fileserver":               ConnectionCategory_STATUS_FileServer,
	"ftpserver":                ConnectionCategory_STATUS_FtpServer,
	"genericcontainerregistry": ConnectionCategory_STATUS_GenericContainerRegistry,
	"generichttp":              ConnectionCategory_STATUS_GenericHttp,
	"genericrest":              ConnectionCategory_STATUS_GenericRest,
	"git":                      ConnectionCategory_STATUS_Git,
	"googleadwords":            ConnectionCategory_STATUS_GoogleAdWords,
	"googlebigquery":           ConnectionCategory_STATUS_GoogleBigQuery,
	"googlecloudstorage":       ConnectionCategory_STATUS_GoogleCloudStorage,
	"greenplum":                ConnectionCategory_STATUS_Greenplum,
	"hbase":                    ConnectionCategory_STATUS_Hbase,
	"hdfs":                     ConnectionCategory_STATUS_Hdfs,
	"hive":                     ConnectionCategory_STATUS_Hive,
	"hubspot":                  ConnectionCategory_STATUS_Hubspot,
	"impala":                   ConnectionCategory_STATUS_Impala,
	"informix":                 ConnectionCategory_STATUS_Informix,
	"jira":                     ConnectionCategory_STATUS_Jira,
	"magento":                  ConnectionCategory_STATUS_Magento,
	"mariadb":                  ConnectionCategory_STATUS_MariaDb,
	"marketo":                  ConnectionCategory_STATUS_Marketo,
	"microsoftaccess":          ConnectionCategory_STATUS_MicrosoftAccess,
	"mongodbatlas":             ConnectionCategory_STATUS_MongoDbAtlas,
	"mongodbv2":                ConnectionCategory_STATUS_MongoDbV2,
	"mysql":                    ConnectionCategory_STATUS_MySql,
	"netezza":                  ConnectionCategory_STATUS_Netezza,
	"odatarest":                ConnectionCategory_STATUS_ODataRest,
	"odbc":                     ConnectionCategory_STATUS_Odbc,
	"office365":                ConnectionCategory_STATUS_Office365,
	"openai":                   ConnectionCategory_STATUS_OpenAI,
	"oracle":                   ConnectionCategory_STATUS_Oracle,
	"oraclecloudstorage":       ConnectionCategory_STATUS_OracleCloudStorage,
	"oracleservicecloud":       ConnectionCategory_STATUS_OracleServiceCloud,
	"paypal":                   ConnectionCategory_STATUS_PayPal,
	"phoenix":                  ConnectionCategory_STATUS_Phoenix,
	"postgresql":               ConnectionCategory_STATUS_PostgreSql,
	"presto":                   ConnectionCategory_STATUS_Presto,
	"pythonfeed":               ConnectionCategory_STATUS_PythonFeed,
	"quickbooks":               ConnectionCategory_STATUS_QuickBooks,
	"redis":                    ConnectionCategory_STATUS_Redis,
	"responsys":                ConnectionCategory_STATUS_Responsys,
	"s3":                       ConnectionCategory_STATUS_S3,
	"salesforce":               ConnectionCategory_STATUS_Salesforce,
	"salesforcemarketingcloud": ConnectionCategory_STATUS_SalesforceMarketingCloud,
	"salesforceservicecloud":   ConnectionCategory_STATUS_SalesforceServiceCloud,
	"sapbw":                    ConnectionCategory_STATUS_SapBw,
	"sapcloudforcustomer":      ConnectionCategory_STATUS_SapCloudForCustomer,
	"sapecc":                   ConnectionCategory_STATUS_SapEcc,
	"saphana":                  ConnectionCategory_STATUS_SapHana,
	"sapopenhub":               ConnectionCategory_STATUS_SapOpenHub,
	"saptable":                 ConnectionCategory_STATUS_SapTable,
	"serp":                     ConnectionCategory_STATUS_Serp,
	"serverless":               ConnectionCategory_STATUS_Serverless,
	"servicenow":               ConnectionCategory_STATUS_ServiceNow,
	"sftp":                     ConnectionCategory_STATUS_Sftp,
	"sharepointonlinelist":     ConnectionCategory_STATUS_SharePointOnlineList,
	"shopify":                  ConnectionCategory_STATUS_Shopify,
	"snowflake":                ConnectionCategory_STATUS_Snowflake,
	"spark":                    ConnectionCategory_STATUS_Spark,
	"sqlserver":                ConnectionCategory_STATUS_SqlServer,
	"square":                   ConnectionCategory_STATUS_Square,
	"sybase":                   ConnectionCategory_STATUS_Sybase,
	"teradata":                 ConnectionCategory_STATUS_Teradata,
	"vertica":                  ConnectionCategory_STATUS_Vertica,
	"webtable":                 ConnectionCategory_STATUS_WebTable,
	"xero":                     ConnectionCategory_STATUS_Xero,
	"zoho":                     ConnectionCategory_STATUS_Zoho,
}

// Group based on connection category
type ConnectionGroup_STATUS string

const (
	ConnectionGroup_STATUS_Azure           = ConnectionGroup_STATUS("Azure")
	ConnectionGroup_STATUS_AzureAI         = ConnectionGroup_STATUS("AzureAI")
	ConnectionGroup_STATUS_Database        = ConnectionGroup_STATUS("Database")
	ConnectionGroup_STATUS_File            = ConnectionGroup_STATUS("File")
	ConnectionGroup_STATUS_GenericProtocol = ConnectionGroup_STATUS("GenericProtocol")
	ConnectionGroup_STATUS_NoSQL           = ConnectionGroup_STATUS("NoSQL")
	ConnectionGroup_STATUS_ServicesAndApps = ConnectionGroup_STATUS("ServicesAndApps")
)

// Mapping from string to ConnectionGroup_STATUS
var connectionGroup_STATUS_Values = map[string]ConnectionGroup_STATUS{
	"azure":           ConnectionGroup_STATUS_Azure,
	"azureai":         ConnectionGroup_STATUS_AzureAI,
	"database":        ConnectionGroup_STATUS_Database,
	"file":            ConnectionGroup_STATUS_File,
	"genericprotocol": ConnectionGroup_STATUS_GenericProtocol,
	"nosql":           ConnectionGroup_STATUS_NoSQL,
	"servicesandapps": ConnectionGroup_STATUS_ServicesAndApps,
}

// Custom Keys credential object
type CustomKeys_STATUS struct {
	Keys map[string]string `json:"keys,omitempty"`
}

type CustomKeysWorkspaceConnectionProperties_AuthType_STATUS string

const CustomKeysWorkspaceConnectionProperties_AuthType_STATUS_CustomKeys = CustomKeysWorkspaceConnectionProperties_AuthType_STATUS("CustomKeys")

// Mapping from string to CustomKeysWorkspaceConnectionProperties_AuthType_STATUS
var customKeysWorkspaceConnectionProperties_AuthType_STATUS_Values = map[string]CustomKeysWorkspaceConnectionProperties_AuthType_STATUS{
	"customkeys": CustomKeysWorkspaceConnectionProperties_AuthType_STATUS_CustomKeys,
}

type CustomKeysWorkspaceConnectionProperties_ValueFormat_STATUS string

const CustomKeysWorkspaceConnectionProperties_ValueFormat_STATUS_JSON = CustomKeysWorkspaceConnectionProperties_ValueFormat_STATUS("JSON")

// Mapping from string to CustomKeysWorkspaceConnectionProperties_ValueFormat_STATUS
var customKeysWorkspaceConnectionProperties_ValueFormat_STATUS_Values = map[string]CustomKeysWorkspaceConnectionProperties_ValueFormat_STATUS{
	"json": CustomKeysWorkspaceConnectionProperties_ValueFormat_STATUS_JSON,
}

type ManagedIdentityAuthTypeWorkspaceConnectionProperties_AuthType_STATUS string

const ManagedIdentityAuthTypeWorkspaceConnectionProperties_AuthType_STATUS_ManagedIdentity = ManagedIdentityAuthTypeWorkspaceConnectionProperties_AuthType_STATUS("ManagedIdentity")

// Mapping from string to ManagedIdentityAuthTypeWorkspaceConnectionProperties_AuthType_STATUS
var managedIdentityAuthTypeWorkspaceConnectionProperties_AuthType_STATUS_Values = map[string]ManagedIdentityAuthTypeWorkspaceConnectionProperties_AuthType_STATUS{
	"managedidentity": ManagedIdentityAuthTypeWorkspaceConnectionProperties_AuthType_STATUS_ManagedIdentity,
}

type ManagedIdentityAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS string

const ManagedIdentityAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS_JSON = ManagedIdentityAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS("JSON")

// Mapping from string to ManagedIdentityAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS
var managedIdentityAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS_Values = map[string]ManagedIdentityAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS{
	"json": ManagedIdentityAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS_JSON,
}

type NoneAuthTypeWorkspaceConnectionProperties_AuthType_STATUS string

const NoneAuthTypeWorkspaceConnectionProperties_AuthType_STATUS_None = NoneAuthTypeWorkspaceConnectionProperties_AuthType_STATUS("None")

// Mapping from string to NoneAuthTypeWorkspaceConnectionProperties_AuthType_STATUS
var noneAuthTypeWorkspaceConnectionProperties_AuthType_STATUS_Values = map[string]NoneAuthTypeWorkspaceConnectionProperties_AuthType_STATUS{
	"none": NoneAuthTypeWorkspaceConnectionProperties_AuthType_STATUS_None,
}

type NoneAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS string

const NoneAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS_JSON = NoneAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS("JSON")

// Mapping from string to NoneAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS
var noneAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS_Values = map[string]NoneAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS{
	"json": NoneAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS_JSON,
}

type OAuth2AuthTypeWorkspaceConnectionProperties_AuthType_STATUS string

const OAuth2AuthTypeWorkspaceConnectionProperties_AuthType_STATUS_OAuth2 = OAuth2AuthTypeWorkspaceConnectionProperties_AuthType_STATUS("OAuth2")

// Mapping from string to OAuth2AuthTypeWorkspaceConnectionProperties_AuthType_STATUS
var oAuth2AuthTypeWorkspaceConnectionProperties_AuthType_STATUS_Values = map[string]OAuth2AuthTypeWorkspaceConnectionProperties_AuthType_STATUS{
	"oauth2": OAuth2AuthTypeWorkspaceConnectionProperties_AuthType_STATUS_OAuth2,
}

type OAuth2AuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS string

const OAuth2AuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS_JSON = OAuth2AuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS("JSON")

// Mapping from string to OAuth2AuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS
var oAuth2AuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS_Values = map[string]OAuth2AuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS{
	"json": OAuth2AuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS_JSON,
}

type PATAuthTypeWorkspaceConnectionProperties_AuthType_STATUS string

const PATAuthTypeWorkspaceConnectionProperties_AuthType_STATUS_PAT = PATAuthTypeWorkspaceConnectionProperties_AuthType_STATUS("PAT")

// Mapping from string to PATAuthTypeWorkspaceConnectionProperties_AuthType_STATUS
var pATAuthTypeWorkspaceConnectionProperties_AuthType_STATUS_Values = map[string]PATAuthTypeWorkspaceConnectionProperties_AuthType_STATUS{
	"pat": PATAuthTypeWorkspaceConnectionProperties_AuthType_STATUS_PAT,
}

type PATAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS string

const PATAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS_JSON = PATAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS("JSON")

// Mapping from string to PATAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS
var pATAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS_Values = map[string]PATAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS{
	"json": PATAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS_JSON,
}

type SASAuthTypeWorkspaceConnectionProperties_AuthType_STATUS string

const SASAuthTypeWorkspaceConnectionProperties_AuthType_STATUS_SAS = SASAuthTypeWorkspaceConnectionProperties_AuthType_STATUS("SAS")

// Mapping from string to SASAuthTypeWorkspaceConnectionProperties_AuthType_STATUS
var sASAuthTypeWorkspaceConnectionProperties_AuthType_STATUS_Values = map[string]SASAuthTypeWorkspaceConnectionProperties_AuthType_STATUS{
	"sas": SASAuthTypeWorkspaceConnectionProperties_AuthType_STATUS_SAS,
}

type SASAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS string

const SASAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS_JSON = SASAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS("JSON")

// Mapping from string to SASAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS
var sASAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS_Values = map[string]SASAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS{
	"json": SASAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS_JSON,
}

type ServicePrincipalAuthTypeWorkspaceConnectionProperties_AuthType_STATUS string

const ServicePrincipalAuthTypeWorkspaceConnectionProperties_AuthType_STATUS_ServicePrincipal = ServicePrincipalAuthTypeWorkspaceConnectionProperties_AuthType_STATUS("ServicePrincipal")

// Mapping from string to ServicePrincipalAuthTypeWorkspaceConnectionProperties_AuthType_STATUS
var servicePrincipalAuthTypeWorkspaceConnectionProperties_AuthType_STATUS_Values = map[string]ServicePrincipalAuthTypeWorkspaceConnectionProperties_AuthType_STATUS{
	"serviceprincipal": ServicePrincipalAuthTypeWorkspaceConnectionProperties_AuthType_STATUS_ServicePrincipal,
}

type ServicePrincipalAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS string

const ServicePrincipalAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS_JSON = ServicePrincipalAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS("JSON")

// Mapping from string to ServicePrincipalAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS
var servicePrincipalAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS_Values = map[string]ServicePrincipalAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS{
	"json": ServicePrincipalAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS_JSON,
}

type UsernamePasswordAuthTypeWorkspaceConnectionProperties_AuthType_STATUS string

const UsernamePasswordAuthTypeWorkspaceConnectionProperties_AuthType_STATUS_UsernamePassword = UsernamePasswordAuthTypeWorkspaceConnectionProperties_AuthType_STATUS("UsernamePassword")

// Mapping from string to UsernamePasswordAuthTypeWorkspaceConnectionProperties_AuthType_STATUS
var usernamePasswordAuthTypeWorkspaceConnectionProperties_AuthType_STATUS_Values = map[string]UsernamePasswordAuthTypeWorkspaceConnectionProperties_AuthType_STATUS{
	"usernamepassword": UsernamePasswordAuthTypeWorkspaceConnectionProperties_AuthType_STATUS_UsernamePassword,
}

type UsernamePasswordAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS string

const UsernamePasswordAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS_JSON = UsernamePasswordAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS("JSON")

// Mapping from string to UsernamePasswordAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS
var usernamePasswordAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS_Values = map[string]UsernamePasswordAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS{
	"json": UsernamePasswordAuthTypeWorkspaceConnectionProperties_ValueFormat_STATUS_JSON,
}

type WorkspaceConnectionAccessKey_STATUS struct {
	AccessKeyId *string `json:"accessKeyId,omitempty"`
}

type WorkspaceConnectionAccountKey_STATUS struct {
}

// Api key object for workspace connection credential.
type WorkspaceConnectionApiKey_STATUS struct {
}

type WorkspaceConnectionManagedIdentity_STATUS struct {
	ClientId   *string `json:"clientId,omitempty"`
	ResourceId *string `json:"resourceId,omitempty"`
}

// ClientId and ClientSecret are required. Other properties are optional
// depending on each OAuth2 provider's
// implementation.
type WorkspaceConnectionOAuth2_STATUS struct {
	// AuthUrl: Required by Concur connection category
	AuthUrl *string `json:"authUrl,omitempty"`

	// ClientId: Client id in the format of UUID
	ClientId *string `json:"clientId,omitempty"`

	// TenantId: Required by QuickBooks and Xero connection categories
	TenantId *string `json:"tenantId,omitempty"`

	// Username: Concur, ServiceNow auth server AccessToken grant type is 'Password'
	// which requires UsernamePassword
	Username *string `json:"username,omitempty"`
}

type WorkspaceConnectionPersonalAccessToken_STATUS struct {
}

type WorkspaceConnectionServicePrincipal_STATUS struct {
	ClientId *string `json:"clientId,omitempty"`
	TenantId *string `json:"tenantId,omitempty"`
}

type WorkspaceConnectionSharedAccessSignature_STATUS struct {
}

type WorkspaceConnectionUsernamePassword_STATUS struct {
	Username *string `json:"username,omitempty"`
}
