// Code generated by msgraph.go/gen DO NOT EDIT.

package msgraph

import "time"

// PrivilegedAccess undocumented
type PrivilegedAccess struct {
	// Entity is the base model of PrivilegedAccess
	Entity
	// DisplayName undocumented
	DisplayName *string `json:"displayName,omitempty"`
	// Resources undocumented
	Resources []GovernanceResource `json:"resources,omitempty"`
	// RoleDefinitions undocumented
	RoleDefinitions []GovernanceRoleDefinition `json:"roleDefinitions,omitempty"`
	// RoleAssignments undocumented
	RoleAssignments []GovernanceRoleAssignment `json:"roleAssignments,omitempty"`
	// RoleAssignmentRequests undocumented
	RoleAssignmentRequests []GovernanceRoleAssignmentRequestObject `json:"roleAssignmentRequests,omitempty"`
	// RoleSettings undocumented
	RoleSettings []GovernanceRoleSetting `json:"roleSettings,omitempty"`
}

// PrivilegedApproval undocumented
type PrivilegedApproval struct {
	// Entity is the base model of PrivilegedApproval
	Entity
	// UserID undocumented
	UserID *string `json:"userId,omitempty"`
	// RoleID undocumented
	RoleID *string `json:"roleId,omitempty"`
	// ApprovalType undocumented
	ApprovalType *string `json:"approvalType,omitempty"`
	// ApprovalState undocumented
	ApprovalState *ApprovalState `json:"approvalState,omitempty"`
	// ApprovalDuration undocumented
	ApprovalDuration *Duration `json:"approvalDuration,omitempty"`
	// RequestorReason undocumented
	RequestorReason *string `json:"requestorReason,omitempty"`
	// ApproverReason undocumented
	ApproverReason *string `json:"approverReason,omitempty"`
	// StartDateTime undocumented
	StartDateTime *time.Time `json:"startDateTime,omitempty"`
	// EndDateTime undocumented
	EndDateTime *time.Time `json:"endDateTime,omitempty"`
	// RequestNavigation undocumented
	RequestNavigation *PrivilegedRoleAssignmentRequestObject `json:"request,omitempty"`
	// RoleInfo undocumented
	RoleInfo *PrivilegedRole `json:"roleInfo,omitempty"`
}

// PrivilegedOperationEvent undocumented
type PrivilegedOperationEvent struct {
	// Entity is the base model of PrivilegedOperationEvent
	Entity
	// UserID undocumented
	UserID *string `json:"userId,omitempty"`
	// UserName undocumented
	UserName *string `json:"userName,omitempty"`
	// UserMail undocumented
	UserMail *string `json:"userMail,omitempty"`
	// RoleID undocumented
	RoleID *string `json:"roleId,omitempty"`
	// RoleName undocumented
	RoleName *string `json:"roleName,omitempty"`
	// ExpirationDateTime undocumented
	ExpirationDateTime *time.Time `json:"expirationDateTime,omitempty"`
	// CreationDateTime undocumented
	CreationDateTime *time.Time `json:"creationDateTime,omitempty"`
	// RequestorID undocumented
	RequestorID *string `json:"requestorId,omitempty"`
	// RequestorName undocumented
	RequestorName *string `json:"requestorName,omitempty"`
	// TenantID undocumented
	TenantID *string `json:"tenantId,omitempty"`
	// RequestType undocumented
	RequestType *string `json:"requestType,omitempty"`
	// AdditionalInformation undocumented
	AdditionalInformation *string `json:"additionalInformation,omitempty"`
	// ReferenceKey undocumented
	ReferenceKey *string `json:"referenceKey,omitempty"`
	// ReferenceSystem undocumented
	ReferenceSystem *string `json:"referenceSystem,omitempty"`
}

// PrivilegedRole undocumented
type PrivilegedRole struct {
	// Entity is the base model of PrivilegedRole
	Entity
	// Name undocumented
	Name *string `json:"name,omitempty"`
	// Settings undocumented
	Settings *PrivilegedRoleSettings `json:"settings,omitempty"`
	// Assignments undocumented
	Assignments []PrivilegedRoleAssignment `json:"assignments,omitempty"`
	// Summary undocumented
	Summary *PrivilegedRoleSummary `json:"summary,omitempty"`
}

// PrivilegedRoleAssignment undocumented
type PrivilegedRoleAssignment struct {
	// Entity is the base model of PrivilegedRoleAssignment
	Entity
	// UserID undocumented
	UserID *string `json:"userId,omitempty"`
	// RoleID undocumented
	RoleID *string `json:"roleId,omitempty"`
	// IsElevated undocumented
	IsElevated *bool `json:"isElevated,omitempty"`
	// ExpirationDateTime undocumented
	ExpirationDateTime *time.Time `json:"expirationDateTime,omitempty"`
	// ResultMessage undocumented
	ResultMessage *string `json:"resultMessage,omitempty"`
	// RoleInfo undocumented
	RoleInfo *PrivilegedRole `json:"roleInfo,omitempty"`
}

// PrivilegedRoleAssignmentRequestObject undocumented
type PrivilegedRoleAssignmentRequestObject struct {
	// Entity is the base model of PrivilegedRoleAssignmentRequestObject
	Entity
	// Schedule undocumented
	Schedule *GovernanceSchedule `json:"schedule,omitempty"`
	// UserID undocumented
	UserID *string `json:"userId,omitempty"`
	// RoleID undocumented
	RoleID *string `json:"roleId,omitempty"`
	// Type undocumented
	Type *string `json:"type,omitempty"`
	// AssignmentState undocumented
	AssignmentState *string `json:"assignmentState,omitempty"`
	// RequestedDateTime undocumented
	RequestedDateTime *time.Time `json:"requestedDateTime,omitempty"`
	// Status undocumented
	Status *string `json:"status,omitempty"`
	// Duration undocumented
	Duration *string `json:"duration,omitempty"`
	// Reason undocumented
	Reason *string `json:"reason,omitempty"`
	// TicketNumber undocumented
	TicketNumber *string `json:"ticketNumber,omitempty"`
	// TicketSystem undocumented
	TicketSystem *string `json:"ticketSystem,omitempty"`
	// RoleInfo undocumented
	RoleInfo *PrivilegedRole `json:"roleInfo,omitempty"`
}

// PrivilegedRoleSettings undocumented
type PrivilegedRoleSettings struct {
	// Entity is the base model of PrivilegedRoleSettings
	Entity
	// ApproverIDs undocumented
	ApproverIDs []string `json:"approverIds,omitempty"`
	// MinElevationDuration undocumented
	MinElevationDuration *Duration `json:"minElevationDuration,omitempty"`
	// MaxElavationDuration undocumented
	MaxElavationDuration *Duration `json:"maxElavationDuration,omitempty"`
	// ElevationDuration undocumented
	ElevationDuration *Duration `json:"elevationDuration,omitempty"`
	// NotificationToUserOnElevation undocumented
	NotificationToUserOnElevation *bool `json:"notificationToUserOnElevation,omitempty"`
	// TicketingInfoOnElevation undocumented
	TicketingInfoOnElevation *bool `json:"ticketingInfoOnElevation,omitempty"`
	// MFAOnElevation undocumented
	MFAOnElevation *bool `json:"mfaOnElevation,omitempty"`
	// LastGlobalAdmin undocumented
	LastGlobalAdmin *bool `json:"lastGlobalAdmin,omitempty"`
	// IsMFAOnElevationConfigurable undocumented
	IsMFAOnElevationConfigurable *bool `json:"isMfaOnElevationConfigurable,omitempty"`
	// ApprovalOnElevation undocumented
	ApprovalOnElevation *bool `json:"approvalOnElevation,omitempty"`
}

// PrivilegedRoleSummary undocumented
type PrivilegedRoleSummary struct {
	// Entity is the base model of PrivilegedRoleSummary
	Entity
	// Status undocumented
	Status *RoleSummaryStatus `json:"status,omitempty"`
	// UsersCount undocumented
	UsersCount *int `json:"usersCount,omitempty"`
	// ManagedCount undocumented
	ManagedCount *int `json:"managedCount,omitempty"`
	// ElevatedCount undocumented
	ElevatedCount *int `json:"elevatedCount,omitempty"`
	// MFAEnabled undocumented
	MFAEnabled *bool `json:"mfaEnabled,omitempty"`
}

// PrivilegedSignupStatus undocumented
type PrivilegedSignupStatus struct {
	// Entity is the base model of PrivilegedSignupStatus
	Entity
	// IsRegistered undocumented
	IsRegistered *bool `json:"isRegistered,omitempty"`
	// Status undocumented
	Status *SetupStatus `json:"status,omitempty"`
}
