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

type PrincipalAssignment_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: The database principal.
	Properties *DatabasePrincipalProperties_STATUS `json:"properties,omitempty"`

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

// A class representing database principal property.
type DatabasePrincipalProperties_STATUS struct {
	// AadObjectId: The service principal object id in AAD (Azure active directory)
	AadObjectId *string `json:"aadObjectId,omitempty"`

	// PrincipalId: The principal ID assigned to the database principal. It can be a user email, application ID, or security
	// group name.
	PrincipalId *string `json:"principalId,omitempty"`

	// PrincipalName: The principal name
	PrincipalName *string `json:"principalName,omitempty"`

	// PrincipalType: Principal type.
	PrincipalType *DatabasePrincipalProperties_PrincipalType_STATUS `json:"principalType,omitempty"`

	// ProvisioningState: The provisioned state of the resource.
	ProvisioningState *ProvisioningState_STATUS `json:"provisioningState,omitempty"`

	// Role: Database principal role.
	Role *DatabasePrincipalProperties_Role_STATUS `json:"role,omitempty"`

	// TenantId: The tenant id of the principal
	TenantId *string `json:"tenantId,omitempty"`

	// TenantName: The tenant name of the principal
	TenantName *string `json:"tenantName,omitempty"`
}

type DatabasePrincipalProperties_PrincipalType_STATUS string

const (
	DatabasePrincipalProperties_PrincipalType_STATUS_App   = DatabasePrincipalProperties_PrincipalType_STATUS("App")
	DatabasePrincipalProperties_PrincipalType_STATUS_Group = DatabasePrincipalProperties_PrincipalType_STATUS("Group")
	DatabasePrincipalProperties_PrincipalType_STATUS_User  = DatabasePrincipalProperties_PrincipalType_STATUS("User")
)

// Mapping from string to DatabasePrincipalProperties_PrincipalType_STATUS
var databasePrincipalProperties_PrincipalType_STATUS_Values = map[string]DatabasePrincipalProperties_PrincipalType_STATUS{
	"app":   DatabasePrincipalProperties_PrincipalType_STATUS_App,
	"group": DatabasePrincipalProperties_PrincipalType_STATUS_Group,
	"user":  DatabasePrincipalProperties_PrincipalType_STATUS_User,
}

type DatabasePrincipalProperties_Role_STATUS string

const (
	DatabasePrincipalProperties_Role_STATUS_Admin              = DatabasePrincipalProperties_Role_STATUS("Admin")
	DatabasePrincipalProperties_Role_STATUS_Ingestor           = DatabasePrincipalProperties_Role_STATUS("Ingestor")
	DatabasePrincipalProperties_Role_STATUS_Monitor            = DatabasePrincipalProperties_Role_STATUS("Monitor")
	DatabasePrincipalProperties_Role_STATUS_UnrestrictedViewer = DatabasePrincipalProperties_Role_STATUS("UnrestrictedViewer")
	DatabasePrincipalProperties_Role_STATUS_User               = DatabasePrincipalProperties_Role_STATUS("User")
	DatabasePrincipalProperties_Role_STATUS_Viewer             = DatabasePrincipalProperties_Role_STATUS("Viewer")
)

// Mapping from string to DatabasePrincipalProperties_Role_STATUS
var databasePrincipalProperties_Role_STATUS_Values = map[string]DatabasePrincipalProperties_Role_STATUS{
	"admin":              DatabasePrincipalProperties_Role_STATUS_Admin,
	"ingestor":           DatabasePrincipalProperties_Role_STATUS_Ingestor,
	"monitor":            DatabasePrincipalProperties_Role_STATUS_Monitor,
	"unrestrictedviewer": DatabasePrincipalProperties_Role_STATUS_UnrestrictedViewer,
	"user":               DatabasePrincipalProperties_Role_STATUS_User,
	"viewer":             DatabasePrincipalProperties_Role_STATUS_Viewer,
}
