type : object
properties:
  type:
    type: string
    # Can't use $ref to RequestableObjectType here because it's non-optional on access requests
    enum: [ACCESS_PROFILE, ROLE, ENTITLEMENT]
    description: The type of the item being requested.
    example: ACCESS_PROFILE
  id:
    type: string
    description: ID of Role, Access Profile or Entitlement being requested.
    example: 2c9180835d2e5168015d32f890ca1581
  comment:
    type: string
    description: |
      Comment provided by requester.
      * Comment is required when the request is of type Revoke Access.
    example: Requesting access profile for John Doe
  clientMetadata:
    type: object
    additionalProperties:
      type: string
      example:
        requestedAppId: 2c91808f7892918f0178b78da4a305a1
        requestedAppName: test-app
    example:
      requestedAppName: test-app
      requestedAppId: 2c91808f7892918f0178b78da4a305a1
    description: >-
      Arbitrary key-value pairs. They will never be processed by the IdentityNow system but will be returned on
      associated APIs such as /account-activities and /access-request-status.
  removeDate:
    type: string
    description: |
      The date the role or access profile is no longer assigned to the specified identity.
      * Specify a date in the future.
      * The current SLA for the deprovisioning is 24 hours.
      * This date can be modified to either extend or decrease the duration of access item assignments for the specified identity.
      * Currently it is not supported for entitlements.
      * If sunset date for role or access profile specified, removeDate cannot be established. This rule doesn't apply for entitlements.

    format: 'date-time'
    example: '2020-07-11T21:23:15.000Z'
required : ["id", "type"] 

