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

package msgraph

import "time"

// AccessAction undocumented
type AccessAction struct {
	// Object is the base model of AccessAction
	Object
}

// AccessPackage undocumented
type AccessPackage struct {
	// Entity is the base model of AccessPackage
	Entity
	// CatalogID undocumented
	CatalogID *string `json:"catalogId,omitempty"`
	// DisplayName undocumented
	DisplayName *string `json:"displayName,omitempty"`
	// Description undocumented
	Description *string `json:"description,omitempty"`
	// IsHidden undocumented
	IsHidden *bool `json:"isHidden,omitempty"`
	// IsRoleScopesVisible undocumented
	IsRoleScopesVisible *bool `json:"isRoleScopesVisible,omitempty"`
	// CreatedBy undocumented
	CreatedBy *string `json:"createdBy,omitempty"`
	// CreatedDateTime undocumented
	CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
	// ModifiedBy undocumented
	ModifiedBy *string `json:"modifiedBy,omitempty"`
	// ModifiedDateTime undocumented
	ModifiedDateTime *time.Time `json:"modifiedDateTime,omitempty"`
	// AccessPackageCatalog undocumented
	AccessPackageCatalog *AccessPackageCatalog `json:"accessPackageCatalog,omitempty"`
	// AccessPackageResourceRoleScopes undocumented
	AccessPackageResourceRoleScopes []AccessPackageResourceRoleScope `json:"accessPackageResourceRoleScopes,omitempty"`
	// AccessPackageAssignmentPolicies undocumented
	AccessPackageAssignmentPolicies []AccessPackageAssignmentPolicy `json:"accessPackageAssignmentPolicies,omitempty"`
}

// AccessPackageAssignment undocumented
type AccessPackageAssignment struct {
	// Entity is the base model of AccessPackageAssignment
	Entity
	// CatalogID undocumented
	CatalogID *string `json:"catalogId,omitempty"`
	// AccessPackageID undocumented
	AccessPackageID *string `json:"accessPackageId,omitempty"`
	// AssignmentPolicyID undocumented
	AssignmentPolicyID *string `json:"assignmentPolicyId,omitempty"`
	// TargetID undocumented
	TargetID *string `json:"targetId,omitempty"`
	// AssignmentStatus undocumented
	AssignmentStatus *string `json:"assignmentStatus,omitempty"`
	// AssignmentState undocumented
	AssignmentState *string `json:"assignmentState,omitempty"`
	// IsExtended undocumented
	IsExtended *bool `json:"isExtended,omitempty"`
	// ExpiredDateTime undocumented
	ExpiredDateTime *time.Time `json:"expiredDateTime,omitempty"`
	// AccessPackage undocumented
	AccessPackage *AccessPackage `json:"accessPackage,omitempty"`
	// AccessPackageAssignmentPolicy undocumented
	AccessPackageAssignmentPolicy *AccessPackageAssignmentPolicy `json:"accessPackageAssignmentPolicy,omitempty"`
	// Target undocumented
	Target *AccessPackageSubject `json:"target,omitempty"`
	// AccessPackageAssignmentRequests undocumented
	AccessPackageAssignmentRequests []AccessPackageAssignmentRequestObject `json:"accessPackageAssignmentRequests,omitempty"`
	// AccessPackageAssignmentResourceRoles undocumented
	AccessPackageAssignmentResourceRoles []AccessPackageAssignmentResourceRole `json:"accessPackageAssignmentResourceRoles,omitempty"`
}

// AccessPackageAssignmentPolicy undocumented
type AccessPackageAssignmentPolicy struct {
	// Entity is the base model of AccessPackageAssignmentPolicy
	Entity
	// UserType undocumented
	UserType *string `json:"userType,omitempty"`
	// AccessPackageID undocumented
	AccessPackageID *string `json:"accessPackageId,omitempty"`
	// DisplayName undocumented
	DisplayName *string `json:"displayName,omitempty"`
	// Description undocumented
	Description *string `json:"description,omitempty"`
	// IsEnabled undocumented
	IsEnabled *bool `json:"isEnabled,omitempty"`
	// CanExtend undocumented
	CanExtend *bool `json:"canExtend,omitempty"`
	// DurationInDays undocumented
	DurationInDays *int `json:"durationInDays,omitempty"`
	// ExpirationDateTime undocumented
	ExpirationDateTime *time.Time `json:"expirationDateTime,omitempty"`
	// CreatedBy undocumented
	CreatedBy *string `json:"createdBy,omitempty"`
	// CreatedDateTime undocumented
	CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
	// ModifiedBy undocumented
	ModifiedBy *string `json:"modifiedBy,omitempty"`
	// ModifiedDateTime undocumented
	ModifiedDateTime *time.Time `json:"modifiedDateTime,omitempty"`
	// AccessPackage undocumented
	AccessPackage *AccessPackage `json:"accessPackage,omitempty"`
	// AccessPackageCatalog undocumented
	AccessPackageCatalog *AccessPackageCatalog `json:"accessPackageCatalog,omitempty"`
}

// AccessPackageAssignmentRequestObject undocumented
type AccessPackageAssignmentRequestObject struct {
	// Entity is the base model of AccessPackageAssignmentRequestObject
	Entity
	// RequestType undocumented
	RequestType *string `json:"requestType,omitempty"`
	// RequestState undocumented
	RequestState *string `json:"requestState,omitempty"`
	// RequestStatus undocumented
	RequestStatus *string `json:"requestStatus,omitempty"`
	// IsValidationOnly undocumented
	IsValidationOnly *bool `json:"isValidationOnly,omitempty"`
	// CreatedDateTime undocumented
	CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
	// CompletedDate undocumented
	CompletedDate *time.Time `json:"completedDate,omitempty"`
	// ExpirationDateTime undocumented
	ExpirationDateTime *time.Time `json:"expirationDateTime,omitempty"`
	// Justification undocumented
	Justification *string `json:"justification,omitempty"`
	// AccessPackage undocumented
	AccessPackage *AccessPackage `json:"accessPackage,omitempty"`
	// AccessPackageAssignment undocumented
	AccessPackageAssignment *AccessPackageAssignment `json:"accessPackageAssignment,omitempty"`
	// Requestor undocumented
	Requestor *AccessPackageSubject `json:"requestor,omitempty"`
}

// AccessPackageAssignmentResourceRole undocumented
type AccessPackageAssignmentResourceRole struct {
	// Entity is the base model of AccessPackageAssignmentResourceRole
	Entity
	// OriginID undocumented
	OriginID *string `json:"originId,omitempty"`
	// OriginSystem undocumented
	OriginSystem *string `json:"originSystem,omitempty"`
	// Status undocumented
	Status *string `json:"status,omitempty"`
	// AccessPackageResourceScope undocumented
	AccessPackageResourceScope *AccessPackageResourceScope `json:"accessPackageResourceScope,omitempty"`
	// AccessPackageResourceRole undocumented
	AccessPackageResourceRole *AccessPackageResourceRole `json:"accessPackageResourceRole,omitempty"`
	// AccessPackageSubject undocumented
	AccessPackageSubject *AccessPackageSubject `json:"accessPackageSubject,omitempty"`
	// AccessPackageAssignments undocumented
	AccessPackageAssignments []AccessPackageAssignment `json:"accessPackageAssignments,omitempty"`
}

// AccessPackageCatalog undocumented
type AccessPackageCatalog struct {
	// Entity is the base model of AccessPackageCatalog
	Entity
	// DisplayName undocumented
	DisplayName *string `json:"displayName,omitempty"`
	// Description undocumented
	Description *string `json:"description,omitempty"`
	// CatalogType undocumented
	CatalogType *string `json:"catalogType,omitempty"`
	// CatalogStatus undocumented
	CatalogStatus *string `json:"catalogStatus,omitempty"`
	// IsExternallyVisible undocumented
	IsExternallyVisible *bool `json:"isExternallyVisible,omitempty"`
	// CreatedBy undocumented
	CreatedBy *string `json:"createdBy,omitempty"`
	// CreatedDateTime undocumented
	CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
	// ModifiedBy undocumented
	ModifiedBy *string `json:"modifiedBy,omitempty"`
	// ModifiedDateTime undocumented
	ModifiedDateTime *time.Time `json:"modifiedDateTime,omitempty"`
	// AccessPackageResources undocumented
	AccessPackageResources []AccessPackageResource `json:"accessPackageResources,omitempty"`
	// AccessPackageResourceRoles undocumented
	AccessPackageResourceRoles []AccessPackageResourceRole `json:"accessPackageResourceRoles,omitempty"`
	// AccessPackageResourceScopes undocumented
	AccessPackageResourceScopes []AccessPackageResourceScope `json:"accessPackageResourceScopes,omitempty"`
	// AccessPackages undocumented
	AccessPackages []AccessPackage `json:"accessPackages,omitempty"`
}

// AccessPackageResource undocumented
type AccessPackageResource struct {
	// Entity is the base model of AccessPackageResource
	Entity
	// DisplayName undocumented
	DisplayName *string `json:"displayName,omitempty"`
	// Description undocumented
	Description *string `json:"description,omitempty"`
	// URL undocumented
	URL *string `json:"url,omitempty"`
	// ResourceType undocumented
	ResourceType *string `json:"resourceType,omitempty"`
	// OriginID undocumented
	OriginID *string `json:"originId,omitempty"`
	// OriginSystem undocumented
	OriginSystem *string `json:"originSystem,omitempty"`
	// IsPendingOnboarding undocumented
	IsPendingOnboarding *bool `json:"isPendingOnboarding,omitempty"`
	// AddedBy undocumented
	AddedBy *string `json:"addedBy,omitempty"`
	// AddedOn undocumented
	AddedOn *time.Time `json:"addedOn,omitempty"`
	// AccessPackageResourceScopes undocumented
	AccessPackageResourceScopes []AccessPackageResourceScope `json:"accessPackageResourceScopes,omitempty"`
	// AccessPackageResourceRoles undocumented
	AccessPackageResourceRoles []AccessPackageResourceRole `json:"accessPackageResourceRoles,omitempty"`
}

// AccessPackageResourceRequestObject undocumented
type AccessPackageResourceRequestObject struct {
	// Entity is the base model of AccessPackageResourceRequestObject
	Entity
	// CatalogID undocumented
	CatalogID *string `json:"catalogId,omitempty"`
	// ExecuteImmediately undocumented
	ExecuteImmediately *bool `json:"executeImmediately,omitempty"`
	// IsValidationOnly undocumented
	IsValidationOnly *bool `json:"isValidationOnly,omitempty"`
	// RequestType undocumented
	RequestType *string `json:"requestType,omitempty"`
	// RequestState undocumented
	RequestState *string `json:"requestState,omitempty"`
	// RequestStatus undocumented
	RequestStatus *string `json:"requestStatus,omitempty"`
	// Justification undocumented
	Justification *string `json:"justification,omitempty"`
	// ExpirationDateTime undocumented
	ExpirationDateTime *time.Time `json:"expirationDateTime,omitempty"`
	// AccessPackageResource undocumented
	AccessPackageResource *AccessPackageResource `json:"accessPackageResource,omitempty"`
	// Requestor undocumented
	Requestor *AccessPackageSubject `json:"requestor,omitempty"`
}

// AccessPackageResourceRole undocumented
type AccessPackageResourceRole struct {
	// Entity is the base model of AccessPackageResourceRole
	Entity
	// DisplayName undocumented
	DisplayName *string `json:"displayName,omitempty"`
	// Description undocumented
	Description *string `json:"description,omitempty"`
	// OriginID undocumented
	OriginID *string `json:"originId,omitempty"`
	// OriginSystem undocumented
	OriginSystem *string `json:"originSystem,omitempty"`
	// AccessPackageResource undocumented
	AccessPackageResource *AccessPackageResource `json:"accessPackageResource,omitempty"`
}

// AccessPackageResourceRoleScope undocumented
type AccessPackageResourceRoleScope struct {
	// Entity is the base model of AccessPackageResourceRoleScope
	Entity
	// CreatedBy undocumented
	CreatedBy *string `json:"createdBy,omitempty"`
	// CreatedDateTime undocumented
	CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
	// ModifiedBy undocumented
	ModifiedBy *string `json:"modifiedBy,omitempty"`
	// ModifiedDateTime undocumented
	ModifiedDateTime *time.Time `json:"modifiedDateTime,omitempty"`
	// AccessPackageResourceRole undocumented
	AccessPackageResourceRole *AccessPackageResourceRole `json:"accessPackageResourceRole,omitempty"`
	// AccessPackageResourceScope undocumented
	AccessPackageResourceScope *AccessPackageResourceScope `json:"accessPackageResourceScope,omitempty"`
}

// AccessPackageResourceScope undocumented
type AccessPackageResourceScope struct {
	// Entity is the base model of AccessPackageResourceScope
	Entity
	// DisplayName undocumented
	DisplayName *string `json:"displayName,omitempty"`
	// Description undocumented
	Description *string `json:"description,omitempty"`
	// OriginID undocumented
	OriginID *string `json:"originId,omitempty"`
	// OriginSystem undocumented
	OriginSystem *string `json:"originSystem,omitempty"`
	// RoleOriginID undocumented
	RoleOriginID *string `json:"roleOriginId,omitempty"`
	// IsRootScope undocumented
	IsRootScope *bool `json:"isRootScope,omitempty"`
	// URL undocumented
	URL *string `json:"url,omitempty"`
	// AccessPackageResource undocumented
	AccessPackageResource *AccessPackageResource `json:"accessPackageResource,omitempty"`
}

// AccessPackageSubject undocumented
type AccessPackageSubject struct {
	// Entity is the base model of AccessPackageSubject
	Entity
	// ObjectID undocumented
	ObjectID *string `json:"objectId,omitempty"`
	// AltSecID undocumented
	AltSecID *string `json:"altSecId,omitempty"`
	// DisplayName undocumented
	DisplayName *string `json:"displayName,omitempty"`
	// PrincipalName undocumented
	PrincipalName *string `json:"principalName,omitempty"`
	// Email undocumented
	Email *string `json:"email,omitempty"`
	// OnPremisesSecurityIdentifier undocumented
	OnPremisesSecurityIdentifier *string `json:"onPremisesSecurityIdentifier,omitempty"`
	// Type undocumented
	Type *string `json:"type,omitempty"`
}

// AccessReview undocumented
type AccessReview struct {
	// Entity is the base model of AccessReview
	Entity
	// DisplayName undocumented
	DisplayName *string `json:"displayName,omitempty"`
	// StartDateTime undocumented
	StartDateTime *time.Time `json:"startDateTime,omitempty"`
	// EndDateTime undocumented
	EndDateTime *time.Time `json:"endDateTime,omitempty"`
	// Status undocumented
	Status *string `json:"status,omitempty"`
	// CreatedBy undocumented
	CreatedBy *UserIdentity `json:"createdBy,omitempty"`
	// BusinessFlowTemplateID undocumented
	BusinessFlowTemplateID *string `json:"businessFlowTemplateId,omitempty"`
	// ReviewerType undocumented
	ReviewerType *string `json:"reviewerType,omitempty"`
	// Description undocumented
	Description *string `json:"description,omitempty"`
	// Settings undocumented
	Settings *AccessReviewSettings `json:"settings,omitempty"`
	// ReviewedEntity undocumented
	ReviewedEntity *Identity `json:"reviewedEntity,omitempty"`
	// Reviewers undocumented
	Reviewers []AccessReviewReviewer `json:"reviewers,omitempty"`
	// Decisions undocumented
	Decisions []AccessReviewDecision `json:"decisions,omitempty"`
	// MyDecisions undocumented
	MyDecisions []AccessReviewDecision `json:"myDecisions,omitempty"`
	// Instances undocumented
	Instances []AccessReview `json:"instances,omitempty"`
}

// AccessReviewDecision undocumented
type AccessReviewDecision struct {
	// Entity is the base model of AccessReviewDecision
	Entity
	// AccessReviewID undocumented
	AccessReviewID *string `json:"accessReviewId,omitempty"`
	// ReviewedBy undocumented
	ReviewedBy *UserIdentity `json:"reviewedBy,omitempty"`
	// ReviewedDateTime undocumented
	ReviewedDateTime *time.Time `json:"reviewedDateTime,omitempty"`
	// ReviewResult undocumented
	ReviewResult *string `json:"reviewResult,omitempty"`
	// Justification undocumented
	Justification *string `json:"justification,omitempty"`
	// AppliedBy undocumented
	AppliedBy *UserIdentity `json:"appliedBy,omitempty"`
	// AppliedDateTime undocumented
	AppliedDateTime *time.Time `json:"appliedDateTime,omitempty"`
	// ApplyResult undocumented
	ApplyResult *string `json:"applyResult,omitempty"`
	// AccessRecommendation undocumented
	AccessRecommendation *string `json:"accessRecommendation,omitempty"`
}

// AccessReviewRecurrenceSettings undocumented
type AccessReviewRecurrenceSettings struct {
	// Object is the base model of AccessReviewRecurrenceSettings
	Object
	// RecurrenceType undocumented
	RecurrenceType *string `json:"recurrenceType,omitempty"`
	// RecurrenceEndType undocumented
	RecurrenceEndType *string `json:"recurrenceEndType,omitempty"`
	// DurationInDays undocumented
	DurationInDays *int `json:"durationInDays,omitempty"`
	// RecurrenceCount undocumented
	RecurrenceCount *int `json:"recurrenceCount,omitempty"`
}

// AccessReviewReviewer undocumented
type AccessReviewReviewer struct {
	// Entity is the base model of AccessReviewReviewer
	Entity
	// DisplayName undocumented
	DisplayName *string `json:"displayName,omitempty"`
	// UserPrincipalName undocumented
	UserPrincipalName *string `json:"userPrincipalName,omitempty"`
}

// AccessReviewSettings undocumented
type AccessReviewSettings struct {
	// Object is the base model of AccessReviewSettings
	Object
	// MailNotificationsEnabled undocumented
	MailNotificationsEnabled *bool `json:"mailNotificationsEnabled,omitempty"`
	// RemindersEnabled undocumented
	RemindersEnabled *bool `json:"remindersEnabled,omitempty"`
	// JustificationRequiredOnApproval undocumented
	JustificationRequiredOnApproval *bool `json:"justificationRequiredOnApproval,omitempty"`
	// RecurrenceSettings undocumented
	RecurrenceSettings *AccessReviewRecurrenceSettings `json:"recurrenceSettings,omitempty"`
	// AutoReviewEnabled undocumented
	AutoReviewEnabled *bool `json:"autoReviewEnabled,omitempty"`
	// ActivityDurationInDays undocumented
	ActivityDurationInDays *int `json:"activityDurationInDays,omitempty"`
	// AutoReviewSettings undocumented
	AutoReviewSettings *AutoReviewSettings `json:"autoReviewSettings,omitempty"`
	// AutoApplyReviewResultsEnabled undocumented
	AutoApplyReviewResultsEnabled *bool `json:"autoApplyReviewResultsEnabled,omitempty"`
	// AccessRecommendationsEnabled undocumented
	AccessRecommendationsEnabled *bool `json:"accessRecommendationsEnabled,omitempty"`
}