// Code generated by msgraph-generate.go DO NOT EDIT.

package msgraph

import "time"

// Policy undocumented
type Policy struct {
	// DirectoryObject is the base model of Policy
	DirectoryObject
	// AlternativeIdentifier undocumented
	AlternativeIdentifier *string `json:"alternativeIdentifier,omitempty"`
	// Definition undocumented
	Definition []string `json:"definition,omitempty"`
	// DisplayName undocumented
	DisplayName *string `json:"displayName,omitempty"`
	// IsOrganizationDefault undocumented
	IsOrganizationDefault *bool `json:"isOrganizationDefault,omitempty"`
	// KeyCredentials undocumented
	KeyCredentials []KeyCredential `json:"keyCredentials,omitempty"`
	// Type undocumented
	Type *string `json:"type,omitempty"`
	// AppliesTo undocumented
	AppliesTo []DirectoryObject `json:"appliesTo,omitempty"`
}

// PolicySet A class containing the properties used for PolicySet.
type PolicySet struct {
	// Entity is the base model of PolicySet
	Entity
	// CreatedDateTime Creation time of the PolicySet.
	CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
	// LastModifiedDateTime Last modified time of the PolicySet.
	LastModifiedDateTime *time.Time `json:"lastModifiedDateTime,omitempty"`
	// DisplayName DisplayName of the PolicySet.
	DisplayName *string `json:"displayName,omitempty"`
	// Description Description of the PolicySet.
	Description *string `json:"description,omitempty"`
	// Status Validation/assignment status of the PolicySet.
	Status *PolicySetStatus `json:"status,omitempty"`
	// ErrorCode Error code if any occured.
	ErrorCode *ErrorCode `json:"errorCode,omitempty"`
	// GuidedDeploymentTags Tags of the guided deployment
	GuidedDeploymentTags []string `json:"guidedDeploymentTags,omitempty"`
	// RoleScopeTags RoleScopeTags of the PolicySet
	RoleScopeTags []string `json:"roleScopeTags,omitempty"`
	// Assignments undocumented
	Assignments []PolicySetAssignment `json:"assignments,omitempty"`
	// Items undocumented
	Items []PolicySetItem `json:"items,omitempty"`
}

// PolicySetAssignment A class containing the properties used for PolicySet Assignment.
type PolicySetAssignment struct {
	// Entity is the base model of PolicySetAssignment
	Entity
	// LastModifiedDateTime Last modified time of the PolicySetAssignment.
	LastModifiedDateTime *time.Time `json:"lastModifiedDateTime,omitempty"`
	// Target The target group of PolicySetAssignment
	Target *DeviceAndAppManagementAssignmentTarget `json:"target,omitempty"`
}

// PolicySetItem A class containing the properties used for PolicySet Item.
type PolicySetItem struct {
	// Entity is the base model of PolicySetItem
	Entity
	// CreatedDateTime Creation time of the PolicySetItem.
	CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
	// LastModifiedDateTime Last modified time of the PolicySetItem.
	LastModifiedDateTime *time.Time `json:"lastModifiedDateTime,omitempty"`
	// PayloadID PayloadId of the PolicySetItem.
	PayloadID *string `json:"payloadId,omitempty"`
	// ItemType policySetType of the PolicySetItem.
	ItemType *string `json:"itemType,omitempty"`
	// DisplayName DisplayName of the PolicySetItem.
	DisplayName *string `json:"displayName,omitempty"`
	// Status Status of the PolicySetItem.
	Status *PolicySetStatus `json:"status,omitempty"`
	// ErrorCode Error code if any occured.
	ErrorCode *ErrorCode `json:"errorCode,omitempty"`
	// GuidedDeploymentTags Tags of the guided deployment
	GuidedDeploymentTags []string `json:"guidedDeploymentTags,omitempty"`
}
