{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/azure-ad/json-schema/azure-ad-microsoft-graph-access-review-schedule-definition-schema.json",
  "title": "microsoft.graph.accessReviewScheduleDefinition",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/azure-ad-identitygovernance-accessreviewset-api-openapi.yml#/components/schemas/microsoft.graph.accessReviewScheduleDefinition",
  "allOf": [
    {
      "$ref": "#/$defs/microsoft.graph.entity"
    },
    {
      "title": "accessReviewScheduleDefinition",
      "type": "object",
      "properties": {
        "additionalNotificationRecipients": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.accessReviewNotificationRecipientItem"
          },
          "description": "Defines the list of additional users or group members to be notified of the access review progress."
        },
        "createdBy": {
          "$ref": "#/$defs/microsoft.graph.userIdentity"
        },
        "createdDateTime": {
          "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
          "type": [
            "string",
            "null"
          ],
          "description": "Timestamp when the access review series was created. Supports $select. Read-only.",
          "format": "date-time"
        },
        "descriptionForAdmins": {
          "type": [
            "string",
            "null"
          ],
          "description": "Description provided by review creators to provide more context of the review to admins. Supports $select."
        },
        "descriptionForReviewers": {
          "type": [
            "string",
            "null"
          ],
          "description": "Description provided  by review creators to provide more context of the review to reviewers. Reviewers see this description in the email sent to them requesting their review. Email notifications support up to 256 characters. Supports $select."
        },
        "displayName": {
          "type": [
            "string",
            "null"
          ],
          "description": "Name of the access review series. Supports $select and $orderby. Required on create."
        },
        "fallbackReviewers": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.accessReviewReviewerScope"
          },
          "description": "This collection of reviewer scopes is used to define the list of fallback reviewers. These fallback reviewers are notified to take action if no users are found from the list of reviewers specified. This could occur when either the group owner is specified as the reviewer but the group owner doesn't exist, or manager is specified as reviewer but a user's manager doesn't exist. See accessReviewReviewerScope. Replaces backupReviewers. Supports $select. NOTE: The value of this property will be ignored if fallback reviewers are assigned through the stageSettings property."
        },
        "instanceEnumerationScope": {
          "$ref": "#/$defs/microsoft.graph.accessReviewScope"
        },
        "lastModifiedDateTime": {
          "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
          "type": [
            "string",
            "null"
          ],
          "description": "Timestamp when the access review series was last modified. Supports $select. Read-only.",
          "format": "date-time"
        },
        "reviewers": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.accessReviewReviewerScope"
          },
          "description": "This collection of access review scopes is used to define who are the reviewers. The reviewers property is only updatable if individual users are assigned as reviewers. Required on create. Supports $select. For examples of options for assigning reviewers, see Assign reviewers to your access review definition using the Microsoft Graph API. NOTE: The value of this property will be ignored if reviewers are assigned through the stageSettings property."
        },
        "scope": {
          "$ref": "#/$defs/microsoft.graph.accessReviewScope"
        },
        "settings": {
          "$ref": "#/$defs/microsoft.graph.accessReviewScheduleSettings"
        },
        "stageSettings": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.accessReviewStageSettings"
          },
          "description": "Required only for a multi-stage access review to define the stages and their settings. You can break down each review instance into up to three sequential stages, where each stage can have a different set of reviewers, fallback reviewers, and settings. Stages are created sequentially based on the dependsOn property. Optional.  When this property is defined, its settings are used instead of the corresponding settings in the accessReviewScheduleDefinition object and its settings, reviewers, and fallbackReviewers properties."
        },
        "status": {
          "type": [
            "string",
            "null"
          ],
          "description": "This read-only field specifies the status of an access review. The typical states include Initializing, NotStarted, Starting, InProgress, Completing, Completed, AutoReviewing, and AutoReviewed.  Supports $select, $orderby, and $filter (eq only). Read-only."
        },
        "instances": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.accessReviewInstance"
          },
          "description": "If the accessReviewScheduleDefinition is a recurring access review, instances represent each recurrence. A review that doesn't recur will have exactly one instance. Instances also represent each unique resource under review in the accessReviewScheduleDefinition. If a review has multiple resources and multiple instances, each resource has a unique instance for each recurrence.",
          "x-ms-navigationProperty": true
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    }
  ],
  "$defs": {
    "microsoft.graph.accessReviewApplyAction": {
      "title": "accessReviewApplyAction",
      "type": "object",
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.accessReviewInstance": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "accessReviewInstance",
          "type": "object",
          "properties": {
            "endDateTime": {
              "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
              "type": [
                "string",
                "null"
              ],
              "description": "DateTime when review instance is scheduled to end.The DatetimeOffset type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Supports $select. Read-only.",
              "format": "date-time"
            },
            "fallbackReviewers": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/microsoft.graph.accessReviewReviewerScope"
              },
              "description": "This collection of reviewer scopes is used to define the list of fallback reviewers. These fallback reviewers will be notified to take action if no users are found from the list of reviewers specified. This could occur when either the group owner is specified as the reviewer but the group owner does not exist, or manager is specified as reviewer but a user's manager does not exist. Supports $select."
            },
            "reviewers": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/microsoft.graph.accessReviewReviewerScope"
              },
              "description": "This collection of access review scopes is used to define who the reviewers are. Supports $select. For examples of options for assigning reviewers, see Assign reviewers to your access review definition using the Microsoft Graph API."
            },
            "scope": {
              "$ref": "#/$defs/microsoft.graph.accessReviewScope"
            },
            "startDateTime": {
              "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
              "type": [
                "string",
                "null"
              ],
              "description": "DateTime when review instance is scheduled to start. May be in the future. The DateTimeOffset type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Supports $select. Read-only.",
              "format": "date-time"
            },
            "status": {
              "type": [
                "string",
                "null"
              ],
              "description": "Specifies the status of an accessReview. Possible values: Initializing, NotStarted, Starting, InProgress, Completing, Completed, AutoReviewing, and AutoReviewed. Supports $select, $orderby, and $filter (eq only). Read-only."
            },
            "contactedReviewers": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/microsoft.graph.accessReviewReviewer"
              },
              "description": "Returns the collection of reviewers who were contacted to complete this review. While the reviewers and fallbackReviewers properties of the accessReviewScheduleDefinition might specify group owners or managers as reviewers, contactedReviewers returns their individual identities. Supports $select. Read-only.",
              "x-ms-navigationProperty": true
            },
            "decisions": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/microsoft.graph.accessReviewInstanceDecisionItem"
              },
              "description": "Each user reviewed in an accessReviewInstance has a decision item representing if they were approved, denied, or not yet reviewed.",
              "x-ms-navigationProperty": true
            },
            "stages": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/microsoft.graph.accessReviewStage"
              },
              "description": "If the instance has multiple stages, this returns the collection of stages. A new stage will only be created when the previous stage ends. The existence, number, and settings of stages on a review instance are created based on the accessReviewStageSettings on the parent accessReviewScheduleDefinition.",
              "x-ms-navigationProperty": true
            }
          },
          "additionalProperties": {
            "type": "object"
          }
        }
      ]
    },
    "microsoft.graph.accessReviewInstanceDecisionItem": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "accessReviewInstanceDecisionItem",
          "type": "object",
          "properties": {
            "accessReviewId": {
              "type": "string",
              "description": "The identifier of the accessReviewInstance parent. Supports $select. Read-only."
            },
            "appliedBy": {
              "$ref": "#/$defs/microsoft.graph.userIdentity"
            },
            "appliedDateTime": {
              "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
              "type": [
                "string",
                "null"
              ],
              "description": "The timestamp when the approval decision was applied.00000000-0000-0000-0000-000000000000 if the assigned reviewer hasn't applied the decision or it was automatically applied. The DatetimeOffset type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.  Supports $select. Read-only.",
              "format": "date-time"
            },
            "applyResult": {
              "type": [
                "string",
                "null"
              ],
              "description": "The result of applying the decision. Possible values: New, AppliedSuccessfully, AppliedWithUnknownFailure, AppliedSuccessfullyButObjectNotFound and ApplyNotSupported. Supports $select, $orderby, and $filter (eq only). Read-only."
            },
            "decision": {
              "type": [
                "string",
                "null"
              ],
              "description": "Result of the review. Possible values: Approve, Deny, NotReviewed, or DontKnow. Supports $select, $orderby, and $filter (eq only)."
            },
            "justification": {
              "type": [
                "string",
                "null"
              ],
              "description": "Justification left by the reviewer when they made the decision."
            },
            "principal": {
              "$ref": "#/$defs/microsoft.graph.identity"
            },
            "principalLink": {
              "type": [
                "string",
                "null"
              ],
              "description": "A link to the principal object. For example, https://graph.microsoft.com/v1.0/users/a6c7aecb-cbfd-4763-87ef-e91b4bd509d9. Read-only."
            },
            "recommendation": {
              "type": [
                "string",
                "null"
              ],
              "description": "A system-generated recommendation for the approval decision based off last interactive sign-in to tenant. The value is Approve if the sign-in is fewer than 30 days after the start of review, Deny if the sign-in is greater than 30 days after, or NoInfoAvailable. Possible values: Approve, Deny, or NoInfoAvailable. Supports $select, $orderby, and $filter (eq only). Read-only."
            },
            "resource": {
              "$ref": "#/$defs/microsoft.graph.accessReviewInstanceDecisionItemResource"
            },
            "resourceLink": {
              "type": [
                "string",
                "null"
              ],
              "description": "A link to the resource. For example, https://graph.microsoft.com/v1.0/servicePrincipals/c86300f3-8695-4320-9f6e-32a2555f5ff8. Supports $select. Read-only."
            },
            "reviewedBy": {
              "$ref": "#/$defs/microsoft.graph.userIdentity"
            },
            "reviewedDateTime": {
              "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
              "type": [
                "string",
                "null"
              ],
              "description": "The timestamp when the review decision occurred. Supports $select. Read-only.",
              "format": "date-time"
            },
            "insights": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/microsoft.graph.governanceInsight"
              },
              "description": "Insights are recommendations to reviewers on whether to approve or deny a decision. There can be multiple insights associated with an accessReviewInstanceDecisionItem.",
              "x-ms-navigationProperty": true
            }
          },
          "additionalProperties": {
            "type": "object"
          }
        }
      ]
    },
    "microsoft.graph.accessReviewInstanceDecisionItemResource": {
      "title": "accessReviewInstanceDecisionItemResource",
      "type": "object",
      "properties": {
        "displayName": {
          "type": [
            "string",
            "null"
          ],
          "description": "Display name of the resource"
        },
        "id": {
          "type": [
            "string",
            "null"
          ],
          "description": "Identifier of the resource"
        },
        "type": {
          "type": [
            "string",
            "null"
          ],
          "description": "Type of resource. Types include: Group, ServicePrincipal, DirectoryRole, AzureRole, AccessPackageAssignmentPolicy."
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.accessReviewNotificationRecipientItem": {
      "title": "accessReviewNotificationRecipientItem",
      "type": "object",
      "properties": {
        "notificationRecipientScope": {
          "$ref": "#/$defs/microsoft.graph.accessReviewNotificationRecipientScope"
        },
        "notificationTemplateType": {
          "type": [
            "string",
            "null"
          ],
          "description": "Indicates the type of access review email to be sent. Supported template type is CompletedAdditionalRecipients, which sends review completion notifications to the recipients."
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.accessReviewNotificationRecipientScope": {
      "title": "accessReviewNotificationRecipientScope",
      "type": "object",
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.accessReviewRecommendationInsightSetting": {
      "title": "accessReviewRecommendationInsightSetting",
      "type": "object",
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.accessReviewReviewer": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "accessReviewReviewer",
          "type": "object",
          "properties": {
            "createdDateTime": {
              "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
              "type": [
                "string",
                "null"
              ],
              "description": "The date when the reviewer was added for the access review.",
              "format": "date-time"
            },
            "displayName": {
              "type": [
                "string",
                "null"
              ],
              "description": "Name of reviewer."
            },
            "userPrincipalName": {
              "type": [
                "string",
                "null"
              ],
              "description": "User principal name of the reviewer."
            }
          },
          "additionalProperties": {
            "type": "object"
          }
        }
      ]
    },
    "microsoft.graph.accessReviewReviewerScope": {
      "title": "accessReviewReviewerScope",
      "type": "object",
      "properties": {
        "query": {
          "type": [
            "string",
            "null"
          ],
          "description": "The query specifying who will be the reviewer."
        },
        "queryRoot": {
          "type": [
            "string",
            "null"
          ],
          "description": "In the scenario where reviewers need to be specified dynamically, this property is used to indicate the relative source of the query. This property is only required if a relative query, for example, ./manager, is specified. Possible value: decisions."
        },
        "queryType": {
          "type": [
            "string",
            "null"
          ],
          "description": "The type of query. Examples include MicrosoftGraph and ARM."
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.accessReviewScheduleSettings": {
      "title": "accessReviewScheduleSettings",
      "type": "object",
      "properties": {
        "applyActions": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.accessReviewApplyAction"
          },
          "description": "Optional field. Describes the  actions to take once a review is complete. There are two types that are currently supported: removeAccessApplyAction (default) and disableAndDeleteUserApplyAction. Field only needs to be specified in the case of disableAndDeleteUserApplyAction."
        },
        "autoApplyDecisionsEnabled": {
          "type": "boolean",
          "description": "Indicates whether decisions are automatically applied. When set to false, an admin must apply the decisions manually once the reviewer completes the access review. When set to true, decisions are applied automatically after the access review instance duration ends, whether or not the reviewers have responded. Default value is false.  CAUTION: If both autoApplyDecisionsEnabled and defaultDecisionEnabled are true, all access for the principals to the resource risks being revoked if the reviewers fail to respond."
        },
        "decisionHistoriesForReviewersEnabled": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Indicates whether decisions on previous access review stages are available for reviewers on an accessReviewInstance with multiple subsequent stages. If not provided, the default is disabled (false)."
        },
        "defaultDecision": {
          "type": [
            "string",
            "null"
          ],
          "description": "Decision chosen if defaultDecisionEnabled is enabled. Can be one of Approve, Deny, or Recommendation."
        },
        "defaultDecisionEnabled": {
          "type": "boolean",
          "description": "Indicates whether the default decision is enabled or disabled when reviewers do not respond. Default value is false.  CAUTION: If both autoApplyDecisionsEnabled and defaultDecisionEnabled are true, all access for the principals to the resource risks being revoked if the reviewers fail to respond."
        },
        "instanceDurationInDays": {
          "maximum": 2147483647,
          "minimum": -2147483648,
          "type": "number",
          "description": "Duration of an access review instance in days. NOTE: If the stageSettings of the accessReviewScheduleDefinition object is defined, its durationInDays setting will be used instead of the value of this property.",
          "format": "int32"
        },
        "justificationRequiredOnApproval": {
          "type": "boolean",
          "description": "Indicates whether reviewers are required to provide justification with their decision. Default value is false."
        },
        "mailNotificationsEnabled": {
          "type": "boolean",
          "description": "Indicates whether emails are enabled or disabled. Default value is false."
        },
        "recommendationInsightSettings": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.accessReviewRecommendationInsightSetting"
          },
          "description": "Optional. Describes the types of insights that aid reviewers to make access review decisions. NOTE: If the stageSettings of the accessReviewScheduleDefinition object is defined, its recommendationInsightSettings setting will be used instead of the value of this property."
        },
        "recommendationLookBackDuration": {
          "pattern": "^-?P([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+([.][0-9]+)?S)?)?$",
          "type": [
            "string",
            "null"
          ],
          "description": "Optional field. Indicates the period of inactivity (with respect to the start date of the review instance) that recommendations will be configured from. The recommendation will be to deny if the user is inactive during the look-back duration. For reviews of groups and Microsoft Entra roles, any duration is accepted. For reviews of applications, 30 days is the maximum duration. If not specified, the duration is 30 days. NOTE: If the stageSettings of the accessReviewScheduleDefinition object is defined, its recommendationLookBackDuration setting will be used instead of the value of this property.",
          "format": "duration"
        },
        "recommendationsEnabled": {
          "type": "boolean",
          "description": "Indicates whether decision recommendations are enabled or disabled. NOTE: If the stageSettings of the accessReviewScheduleDefinition object is defined, its recommendationsEnabled setting will be used instead of the value of this property."
        },
        "recurrence": {
          "$ref": "#/$defs/microsoft.graph.patternedRecurrence"
        },
        "reminderNotificationsEnabled": {
          "type": "boolean",
          "description": "Indicates whether reminders are enabled or disabled. Default value is false."
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.accessReviewScope": {
      "title": "accessReviewScope",
      "type": "object",
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.accessReviewStage": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "accessReviewStage",
          "type": "object",
          "properties": {
            "endDateTime": {
              "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
              "type": [
                "string",
                "null"
              ],
              "description": "The date and time in ISO 8601 format and UTC time when the review stage is scheduled to end. This property is the cumulative total of the durationInDays for all stages. Read-only.",
              "format": "date-time"
            },
            "fallbackReviewers": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/microsoft.graph.accessReviewReviewerScope"
              },
              "description": "This collection of reviewer scopes is used to define the list of fallback reviewers. These fallback reviewers are notified to take action if no users are found from the list of reviewers specified. This could occur when either the group owner is specified as the reviewer but the group owner doesn't exist, or manager is specified as reviewer but a user's manager doesn't exist."
            },
            "reviewers": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/microsoft.graph.accessReviewReviewerScope"
              },
              "description": "This collection of access review scopes is used to define who the reviewers are. For examples of options for assigning reviewers, see Assign reviewers to your access review definition using the Microsoft Graph API."
            },
            "startDateTime": {
              "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
              "type": [
                "string",
                "null"
              ],
              "description": "The date and time in ISO 8601 format and UTC time when the review stage is scheduled to start. Read-only.",
              "format": "date-time"
            },
            "status": {
              "type": [
                "string",
                "null"
              ],
              "description": "Specifies the status of an accessReviewStage. Possible values: Initializing, NotStarted, Starting, InProgress, Completing, Completed, AutoReviewing, and AutoReviewed. Supports $orderby, and $filter (eq only). Read-only."
            },
            "decisions": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/microsoft.graph.accessReviewInstanceDecisionItem"
              },
              "description": "Each user reviewed in an accessReviewStage has a decision item representing if they were approved, denied, or not yet reviewed.",
              "x-ms-navigationProperty": true
            }
          },
          "additionalProperties": {
            "type": "object"
          }
        }
      ]
    },
    "microsoft.graph.accessReviewStageSettings": {
      "title": "accessReviewStageSettings",
      "type": "object",
      "properties": {
        "decisionsThatWillMoveToNextStage": {
          "type": "array",
          "items": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": "Indicate which decisions will go to the next stage. Can be a subset of Approve, Deny, Recommendation, or NotReviewed. If not provided, all decisions will go to the next stage. Optional."
        },
        "dependsOn": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Defines the sequential or parallel order of the stages and depends on the stageId. Only sequential stages are currently supported. For example, if stageId is 2, then dependsOn must be 1. If stageId is 1, don't specify dependsOn. Required if stageId isn't 1."
        },
        "durationInDays": {
          "maximum": 2147483647,
          "minimum": -2147483648,
          "type": "number",
          "description": "The duration of the stage. Required.  NOTE: The cumulative value of this property across all stages  1. Will override the instanceDurationInDays setting on the accessReviewScheduleDefinition object. 2. Can't exceed the length of one recurrence. That is, if the review recurs weekly, the cumulative durationInDays can't exceed 7.",
          "format": "int32"
        },
        "fallbackReviewers": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.accessReviewReviewerScope"
          },
          "description": "If provided, the fallback reviewers are asked to complete a review if the primary reviewers don't exist. For example, if managers are selected as reviewers and a principal under review doesn't have a manager in Microsoft Entra ID, the fallback reviewers are asked to review that principal. NOTE: The value of this property overrides the corresponding setting on the accessReviewScheduleDefinition object."
        },
        "recommendationInsightSettings": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.accessReviewRecommendationInsightSetting"
          }
        },
        "recommendationsEnabled": {
          "type": "boolean",
          "description": "Indicates whether showing recommendations to reviewers is enabled. Required. NOTE: The value of this property overrides override the corresponding setting on the accessReviewScheduleDefinition object."
        },
        "reviewers": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.accessReviewReviewerScope"
          },
          "description": "Defines who the reviewers are. If none is specified, the review is a self-review (users review their own access).  For examples of options for assigning reviewers, see Assign reviewers to your access review definition using the Microsoft Graph API. NOTE: The value of this property overrides the corresponding setting on the accessReviewScheduleDefinition."
        },
        "stageId": {
          "type": "string",
          "description": "Unique identifier of the accessReviewStageSettings object. The stageId is used by the dependsOn property to indicate the order of the stages. Required."
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.dayOfWeek": {
      "title": "dayOfWeek",
      "enum": [
        "sunday",
        "monday",
        "tuesday",
        "wednesday",
        "thursday",
        "friday",
        "saturday"
      ],
      "type": "string"
    },
    "microsoft.graph.entity": {
      "title": "entity",
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The unique identifier for an entity. Read-only."
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.governanceInsight": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "governanceInsight",
          "type": "object",
          "properties": {
            "insightCreatedDateTime": {
              "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
              "type": [
                "string",
                "null"
              ],
              "description": "Indicates when the insight was created.",
              "format": "date-time"
            }
          },
          "additionalProperties": {
            "type": "object"
          }
        }
      ]
    },
    "microsoft.graph.identity": {
      "title": "identity",
      "type": "object",
      "properties": {
        "displayName": {
          "type": [
            "string",
            "null"
          ],
          "description": "The display name of the identity.For drive items, the display name might not always be available or up to date. For example, if a user changes their display name the API might show the new value in a future response, but the items associated with the user don't show up as changed when using delta."
        },
        "id": {
          "type": [
            "string",
            "null"
          ],
          "description": "Unique identifier for the identity or actor. For example, in the access reviews decisions API, this property might record the id of the principal, that is, the group, user, or application that's subject to review."
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.patternedRecurrence": {
      "title": "patternedRecurrence",
      "type": "object",
      "properties": {
        "pattern": {
          "$ref": "#/$defs/microsoft.graph.recurrencePattern"
        },
        "range": {
          "$ref": "#/$defs/microsoft.graph.recurrenceRange"
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.recurrencePattern": {
      "title": "recurrencePattern",
      "type": "object",
      "properties": {
        "dayOfMonth": {
          "maximum": 2147483647,
          "minimum": -2147483648,
          "type": "number",
          "description": "The day of the month on which the event occurs. Required if type is absoluteMonthly or absoluteYearly.",
          "format": "int32"
        },
        "daysOfWeek": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.dayOfWeek"
          },
          "description": "A collection of the days of the week on which the event occurs. The possible values are: sunday, monday, tuesday, wednesday, thursday, friday, saturday. If type is relativeMonthly or relativeYearly, and daysOfWeek specifies more than one day, the event falls on the first day that satisfies the pattern.  Required if type is weekly, relativeMonthly, or relativeYearly."
        },
        "firstDayOfWeek": {
          "$ref": "#/$defs/microsoft.graph.dayOfWeek"
        },
        "index": {
          "$ref": "#/$defs/microsoft.graph.weekIndex"
        },
        "interval": {
          "maximum": 2147483647,
          "minimum": -2147483648,
          "type": "number",
          "description": "The number of units between occurrences, where units can be in days, weeks, months, or years, depending on the type. Required.",
          "format": "int32"
        },
        "month": {
          "maximum": 2147483647,
          "minimum": -2147483648,
          "type": "number",
          "description": "The month in which the event occurs.  This is a number from 1 to 12.",
          "format": "int32"
        },
        "type": {
          "$ref": "#/$defs/microsoft.graph.recurrencePatternType"
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.recurrencePatternType": {
      "title": "recurrencePatternType",
      "enum": [
        "daily",
        "weekly",
        "absoluteMonthly",
        "relativeMonthly",
        "absoluteYearly",
        "relativeYearly"
      ],
      "type": "string"
    },
    "microsoft.graph.recurrenceRange": {
      "title": "recurrenceRange",
      "type": "object",
      "properties": {
        "endDate": {
          "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$",
          "type": [
            "string",
            "null"
          ],
          "description": "The date to stop applying the recurrence pattern. Depending on the recurrence pattern of the event, the last occurrence of the meeting may not be this date. Required if type is endDate.",
          "format": "date"
        },
        "numberOfOccurrences": {
          "maximum": 2147483647,
          "minimum": -2147483648,
          "type": "number",
          "description": "The number of times to repeat the event. Required and must be positive if type is numbered.",
          "format": "int32"
        },
        "recurrenceTimeZone": {
          "type": [
            "string",
            "null"
          ],
          "description": "Time zone for the startDate and endDate properties. Optional. If not specified, the time zone of the event is used."
        },
        "startDate": {
          "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$",
          "type": [
            "string",
            "null"
          ],
          "description": "The date to start applying the recurrence pattern. The first occurrence of the meeting may be this date or later, depending on the recurrence pattern of the event. Must be the same value as the start property of the recurring event. Required.",
          "format": "date"
        },
        "type": {
          "$ref": "#/$defs/microsoft.graph.recurrenceRangeType"
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.recurrenceRangeType": {
      "title": "recurrenceRangeType",
      "enum": [
        "endDate",
        "noEnd",
        "numbered"
      ],
      "type": "string"
    },
    "microsoft.graph.userIdentity": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.identity"
        },
        {
          "title": "userIdentity",
          "type": "object",
          "properties": {
            "ipAddress": {
              "type": [
                "string",
                "null"
              ],
              "description": "Indicates the client IP address associated with the user performing the activity (audit log only)."
            },
            "userPrincipalName": {
              "type": [
                "string",
                "null"
              ],
              "description": "The userPrincipalName attribute of the user."
            }
          },
          "additionalProperties": {
            "type": "object"
          }
        }
      ]
    },
    "microsoft.graph.weekIndex": {
      "title": "weekIndex",
      "enum": [
        "first",
        "second",
        "third",
        "fourth",
        "last"
      ],
      "type": "string"
    }
  }
}