openapi: 3.0.0
info:
  title: Conditional Access Policy
  description: Conditional Access Policy API for ManageEngine ID360
  version: 1.0.0
servers:
  - url: 'https://id360.manageengine.com/api/v1'
    description: 'API Endpoint'
tags:
  - name: conditional-access-policy
    description: Conditional Access Policy Endpoints
paths:
  # Conditional Access Policy Endpoints
  /protection/conditional-access-policies:
    get:
      tags:
        - conditional-access-policy
      summary: List Conditional Access Policies
      description: Retrieves a list of conditional access policies.
      parameters:
        - $ref: '#/components/parameters/acceptHeader'
        - $ref: '#/components/parameters/fields'
        - $ref: '#/components/parameters/from'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/filter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/conditionalAccessPolicies'
                  meta:
                    $ref: '#/components/schemas/meta'
        '401':
          description: 'Unauthorized'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/unauthorized'
        '500':
          description: 'Internal Server Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/serverError'
      security:
        - Zoho_Auth:
            - id360.notification_template.read
            - id360.notification_template.all
    post:
      tags:
        - conditional-access-policy
      summary: Create a Conditional Access Policy
      description: Create a conditional access policy.
      parameters:
        - $ref: '#/components/parameters/acceptHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/conditionalAccessPolicyResource'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/conditionalAccessPolicyResource'
        '401':
          description: 'Unauthorized'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/unauthorized'
        '500':
          description: 'Internal Server Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/serverError'
      security:
        - Zoho_Auth:
            - id360.conditional_access_policy.create
            - id360.conditional_access_policy.all
    delete:
      tags:
        - conditional-access-policy
      summary: Bulk Delete Conditional Access Policies
      description: Deletes multiple conditional access policies by IDs.
      parameters:
        - $ref: '#/components/parameters/acceptHeader'
        - $ref: '#/components/parameters/policyIds'
      responses:
        '204':
          description: No Content
        '207':
          description: 'Multi-Status'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bulkActionsMultiStatus'
        '401':
          description: 'Unauthorized'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/unauthorized'
        '500':
          description: 'Internal Server Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/serverError'
      security:
        - Zoho_Auth:
            - id360.conditional_access_policy.delete
            - id360.conditional_access_policy.all'

  /protection/conditional-access-policies/{id}:
    get:
      tags:
        - conditional-access-policy
      summary: Get a Conditional Access Policy
      description: Retrieve a specific conditional access policy by ID.
      parameters:
        - $ref: '#/components/parameters/acceptHeader'
        - $ref: '#/components/parameters/policyId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/conditionalAccessPolicyResource'
        '404':
          description: 'Not Found'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policyNotFound'
        '401':
          description: 'Unauthorized'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/unauthorized'
        '500':
          description: 'Internal Server Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/serverError'
      security:
        - Zoho_Auth:
            - id360.conditional_access_policy.read
            - id360.conditional_access_policy.all
    patch:
      tags:
        - conditional-access-policy
      summary: Update a Conditional Access Policy
      description: Update an existing conditional access policy by ID.
      parameters:
        - $ref: '#/components/parameters/acceptHeader'
        - $ref: '#/components/parameters/policyId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/conditionalAccessPolicyResource'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/conditionalAccessPolicyResource'
        '404':
          description: 'Not Found'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policyNotFound'
        '401':
          description: 'Unauthorized'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/unauthorized'
        '500':
          description: 'Internal Server Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/serverError'
      security:
        - Zoho_Auth:
            - id360.conditional_access_policy.update
            - id360.conditional_access_policy.all'
    delete:
      tags:
        - conditional-access-policy
      summary: Delete a Conditional Access Policy
      description: Delete a specific conditional access policy by ID.
      parameters:
        - $ref: '#/components/parameters/acceptHeader'
        - $ref: '#/components/parameters/policyId'
      responses:
        '204':
          description: No Content
        '404':
          description: 'Not Found'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policyNotFound'
        '401':
          description: 'Unauthorized'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/unauthorized'
        '500':
          description: 'Internal Server Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/serverError'
      security:
        - Zoho_Auth:
            - id360.conditional_access_policy.delete
            - id360.conditional_access_policy.all'

  /protection/conditional-access-policies/priority:
    get:
      tags:
        - conditional-access-policy
      summary: Get Conditional Access Policies Priority
      description: >
        Retrieve the priority order of conditional access policies.
        <br>
        This is an internal API
      parameters:
        - $ref: '#/components/parameters/acceptHeader'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/conditionalAccessPoliciesPriority'
        '404':
          description: 'Not Found'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policyNotFound'
        '401':
          description: 'Unauthorized'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/unauthorized'
        '500':
          description: 'Internal Server Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/serverError'
      security:
        - Zoho_Auth:
            - id360.conditional_access_policy.read
            - id360.conditional_access_policy.all
    put:
      tags:
        - conditional-access-policy
      summary: Update Conditional Access Policies Priority
      description: >
        Update the priority order of conditional access policies.
        <br>
        This is an internal API
      parameters:
        - $ref: '#/components/parameters/acceptHeader'
        - $ref: '#/components/parameters/policyId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/conditionalAccessPoliciesPriority'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/conditionalAccessPoliciesPriority'
        '404':
          description: 'Not Found'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policyNotFound'
        '401':
          description: 'Unauthorized'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/unauthorized'
        '500':
          description: 'Internal Server Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/serverError'
      security:
        - Zoho_Auth:
            - id360.conditional_access_policy.update
            - id360.conditional_access_policy.all'

  /protection/conditional-access-policies/{id}/enable:
    post:
      tags:
        - conditional-access-policy
      summary: Enable a Conditional Access Policy
      description: Enables a specific conditional access policy by ID.
      parameters:
        - $ref: '#/components/parameters/acceptHeader'
        - $ref: '#/components/parameters/policyId'
      responses:
        '204':
          description: No Content
        '404':
          description: 'Not Found'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policyNotFound'
        '401':
          description: 'Unauthorized'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/unauthorized'
        '500':
          description: 'Internal Server Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/serverError'
      security:
        - Zoho_Auth:
            - id360.conditional_access_policy.update
            - id360.conditional_access_policy.write
            - id360.conditional_access_policy.all'

  /protection/conditional-access-policies/{id}/disable:
    post:
      tags:
        - conditional-access-policy
      summary: Disable a Conditional Access Policy
      description: Disables a specific conditional access policy by ID.
      parameters:
        - $ref: '#/components/parameters/acceptHeader'
        - $ref: '#/components/parameters/policyId'
      responses:
        '204':
          description: No Content
        '404':
          description: 'Not Found'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policyNotFound'
        '401':
          description: 'Unauthorized'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/unauthorized'
        '500':
          description: 'Internal Server Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/serverError'
      security:
        - Zoho_Auth:
            - id360.conditional_access_policy.update
            - id360.conditional_access_policy.write
            - id360.conditional_access_policy.all'

  /protection/conditional-access-policies/enable:
    post:
      tags:
        - conditional-access-policy
      summary: Bulk Enable Conditional Access Policies
      description: Enables multiple conditional access policies by IDs.
      parameters:
        - $ref: '#/components/parameters/acceptHeader'
        - $ref: '#/components/parameters/policyIds'
      responses:
        '204':
          description: No Content
        '207':
          description: 'Multi-Status'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bulkActionsMultiStatus'
        '401':
          description: 'Unauthorized'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/unauthorized'
        '500':
          description: 'Internal Server Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/serverError'
      security:
        - Zoho_Auth:
            - id360.conditional_access_policy.update
            - id360.conditional_access_policy.write
            - id360.conditional_access_policy.all'

  /protection/conditional-access-policies/disable:
    post:
      tags:
        - conditional-access-policy
      summary: Bulk Disable Conditional Access Policies
      description: Disables multiple conditional access policies by IDs.
      parameters:
        - $ref: '#/components/parameters/acceptHeader'
        - $ref: '#/components/parameters/policyIds'
      responses:
        '204':
          description: No Content
        '207':
          description: 'Multi-Status'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bulkActionsMultiStatus'
        '401':
          description: 'Unauthorized'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/unauthorized'
        '500':
          description: 'Internal Server Error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/serverError'
      security:
        - Zoho_Auth:
            - id360.conditional_access_policy.update
            - id360.conditional_access_policy.write
            - id360.conditional_access_policy.all'
components:
  parameters:
    acceptHeader:
      name: Accept
      in: header
      schema:
        type: string
      description: 'Accept header for the API'
      required: false
      example: 'application/json'
    fields:
      in: query
      name: fields
      schema:
        type: string
      description: >
        Comma-separated list of fields to include in the response.
        <br>
        <strong>eg:</strong> id,name,description,is_enabled,assignment,access_type,endpoint_settings,advanced_settings
      required: false
      example: id,name,description,is_enabled,assignment,access_type,endpoint_settings,advanced_settings
    from:
      in: query
      name: from
      schema:
        type: integer
        default: 1
      description: >
        Start index for pagination.
      required: false
      example:  1
    limit:
      in: query
      name: limit
      schema:
        type: integer
        maximum: 100
        minimum: 1
        default: 25
      description: >
        Maximum number of records to return in the response.
        <br>
        <strong>eg:</strong> 50
      required: false
      example: 50
    filter:
      in: query
      name: filter
      schema:
        type: string
      description: >
        Filter users based on a the provided SCIM filter query. Refer to filter section for more details
        <br>
        <strong>eg:</strong> name eq "Policy 01"
      required: false
      example: name eq "Policy 01"
    policyId:
      in: path
      name: id
      required: true
      description: The ID of the conditional access policy.
      example: 2000000000001
      schema:
        type: integer
    policyIds:
      name: ids
      in: query
      required: true
      description: 'Comma-separated list of IDs to be deleted'
      example: '2000000000001,2000000000002'
      schema:
        type: string
        example: '2000000000001,2000000000002'
  schemas:
    # Conditional Access Policy Schemas
    gendoc-attributes-schema:
      type: object
      $ref: '#/components/schemas/conditionalAccessPolicyResource'
    conditionalAccessPolicies:
      type: array
      items:
        $ref: '#/components/schemas/conditionalAccessPolicyResource'
      example:
        - id: '2000000093001'
          is_enabled: true
          is_default_policy: true
          display_name: 'Global Policy'
          description: ''
          priority: 2
          endpoints:
            - 'All Endpoints'
          access_type: allow
          is_agent_required: true
          last_modified_time: '2025-07-08T06:09:47.123Z'
          last_modified_user: 'john@mydomain.com'
        - id: '2000000093002'
          is_enabled: true
          is_default_policy: false
          display_name: 'Policy 01'
          description: ''
          priority: 1
          user_assignments:
            users_count: 5
            groups_count: 2
          endpoints:
            - 'ComputerDevices'
            - 'NPS'
          access_type: allow
          is_agent_required: true
          last_modified_time: '2025-07-08T06:09:47.123Z'
          last_modified_user: 'jane@mydomain.com'
    conditionalAccessPolicyResource:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the conditional access policy.
          example: '2000000000001'
          readOnly: true
        name:
          type: string
          description: Name of the conditional access policy.
          example: 'Policy 01'
        description:
          type: string
          description: Description of the conditional access policy.
          example: 'Test Policy'
        is_enabled:
          type: boolean
          description: Indicates whether the policy is enabled.
          example: true
        user_assignments:
          $ref: '#/components/schemas/conditionalAccessPolicyUserAssignment'
        access_conditions:
          type: object
          properties:
            criteria_expression:
              type: string
              description: >
                Expression defining the criteria for the policy.
                <br>
                <strong>eg:</strong> ((3 and 2) and 1)
              example: '((3 and 2) and 1)'
            conditions:
              type: array
              items:
                type: object
                properties:
                  sequence_number:
                    type: integer
                    description: Sequence number of the condition.
                    example: 1
                  factor_type:
                    type: string
                    description: Type of conditional factor.
                    enum:
                      - ipaddress
                      - geolocation
                      - time
                    example: ipaddress
                  comparator:
                    type: string
                    description: Comparator for the condition.
                    enum:
                      - in
                      - not_in
                    example: in
                  factor_configs:
                    type: array
                    items:
                      type: string
                    description: List of factor configuration IDs for the condition.
                    example:
                      - '2000000092642'
                      - '2000000092643'
                  include_all_trusted_sources:
                    type: boolean
                    description: Indicates if all trusted sources are included (applicable only for ipaddress).
                    example: true
        access_type:
          type: string
          description: Type of access granted by the policy.
          enum:
            - allow
            - deny
          example: allow
        endpoints:
          type: array
          items:
            type: string
          description: List of endpoints associated with the policy.
          example:
            - 'ComputerDevices'
            - 'NPS'
            - 'IIS'
            - 'IdentityServer'
          readOnly: true
        endpoints_settings:
          $ref: '#/components/schemas/endpointsSettings'
        advanced_settings:
          $ref: '#/components/schemas/advancedSettingsResource'
    conditionalAccessPolicyUserAssignment:
      type: object
      properties:
        user_ids:
          type: array
          items:
            type: string
          description: List of user IDs assigned to the policy.
          example:
            - '2000000092642'
            - '2000000092643'
        group_ids:
          type: array
          items:
            type: string
          description: List of group IDs assigned to the policy.
          example:
            - '2000000092616'
        users_count:
          type: integer
          description: Total number of users assigned to the policy.
          example: 2
          readOnly: true
        groups_count:
          type: integer
          description: Total number of groups assigned to the policy.
          example: 1
          readOnly: true
    conditionalAccessPoliciesPriority:
      type: array
      items:
        type: object
        properties:
          id:
            type: string
            description: Unique identifier for the conditional access policy.
            example: '20000001002'
          name:
            type: string
            description: Name of the conditional access policy.
            example: 'Policy 01'
            readOnly: true
          priority:
            type: integer
            description: Priority of the conditional access policy.
            example: 1
    endpointsSettings:
      type: array
      description: List of endpoint settings for the conditional access policy.
      items:
        $ref: '#/components/schemas/endpointSetting'
    endpointSetting:
      type: object
      description: Configuration for endpoints in conditional access policies.
      properties:
        endpoint:
          type: string
          description: Endpoint for which the policy is applicable.
          enum:
            - ComputerDevices
            - NPS
            - IIS
            - SSOApplications
            - IdentityServer
          example: 'ComputerDevices'
        type:
          type: string
          description: >
            Type of the endpoint.
            <br>
            <ul>
              <li>
                ComputerDevices : 
                  <ul>
                    <li>ComputerDevices</li>
                  </ul>
              </li>
              <li>
                NPS : 
                  <ul>
                    <li>NPS_VPN</li>
                  </ul>
              </li>
              <li>
                IIS : 
                  <ul>
                    <li>IIS</li>
                  </ul>
              </li>
              <li>
                SSOApplications : 
                  <ul>
                    <li>SSOApplications</li>
                  </ul>
              </li>
              <li>
                IdentityServer : 
                  <ul>
                    <li>Login</li>
                    <li>SensitiveActions</li>
                  </ul>
              </li>
            </ul>
          example: 'ComputerDevices'
        device_assignment:
          type: object
          description: Configuration for device assignment in the policy. Only applicable for ComputerDevices.
          properties:
            device_ids:
              type: array
              items:
                type: string
              description: List of device IDs assigned to the policy.
              example:
                - '2000000092642'
                - '2000000092643'
            group_ids:
              type: array
              items:
                type: string
              description: List of group IDs assigned to the policy.
              example:
                - '2000000092616'
                - '2000000092617'
            all_devices_group_selected:
              type: boolean
              description: Indicates if all devices group is selected for the policy.
              example: false
        app_assignment:
          type: object
          description: Configuration for application assignment in the policy. Only applicable for SSOApplications.
          properties:
            app_ids:
              type: array
              items:
                type: string
              description: List of application IDs assigned to the module.
              example:
                - '2000000092642'
        actions:
          type: array
          items:
            type: string
          description: >
            List of actions allowed. Only applicable for ComputerDevices and IdentityServer-SensitiveActions.
            <br>
            <strong>Available actions for ComputerDevices:</strong>
            <ul>
              <li>InteractiveLogon </li>
              <li>MachineUnlock</li>
              <li>RDP</li>
              <li>SSH</li>
              <li>UAC</li>
              <li>Sudo</li>
            </ul>
            <strong>Available actions for IdentityServer-SensitiveActions:</strong>
            <ul>
              <li>delete_users</li>
              <li>delete_groups</li>
              <li>delete_directories</li>
              <li>delete_applications</li>
              <li>admin_dashboard_enrollment</li>
            </ul>
          example:
            - 'InteractiveLogon'
            - 'RDP'
        primary_authentication:
          $ref: '#/components/schemas/primaryAuthentication'
        secondary_authentication:
          $ref: '#/components/schemas/secondaryAuthentication'
        advanced_settings:
          $ref: '#/components/schemas/endPointAdvancedSettings'

    endPointAdvancedSettings:
      type: object
      description: Advanced settings for the endpoint type.
      writeOnly: true
      properties:
        mfa_timeout:
          type: integer
          description: Timeout for authentication completion in minutes.
          example: 5
        mfa_unenrolled_action:
          type: string
          description: Allow/Deny access partially enrolled users.
          enum:
            - allow
            - deny
          example: allow
        mfa_trust:
          $ref: '#/components/schemas/mfaTrust'
        radius_response_config:
          type: object
          description: Configuration for RADIUS response attributes. Only applicable for NPS.
          properties:
            vendor_id:
              type: string
              description: >
                The unique number that denotes your VPN provider.
                <br>
                <strong>Note:</strong> In the case of Fortigate, the Vendor ID is 12356. Refer to your VPN provider's documentation to get the Vendor ID.
              example: '12356'
            attributes_list:
              type: array
              description: List of RADIUS attributes to be included in the response.
              items:
                type: object
                properties:
                  type:
                    type: string
                    description: Type of the RADIUS attribute (vendor or standard).
                    enum:
                      - vendor
                      - standard
                    example: vendor
                  number:
                    type: integer
                    description: Number of the RADIUS attribute.
                    example: 12
                  data_type:
                    type: string
                    description: Data type of the RADIUS attribute.
                    enum:
                      - string
                      - integer
                      - enum
                      - ipv4address
                      - ipv6address
                    example: string
                  value:
                    type: string
                    description: Value of the RADIUS attribute.
                    example: '12'
        notification_template_id:
          type: integer
          description: Unique identifier for the notification template.
          example: 200000012544
          writeOnly: true
        notification_template:
          type: object
          properties:
            id:
              type: integer
              description: Unique identifier for the notification template.
              example: 200000012544
            name:
              type: string
              description: Name of the notification template.
              example: 'Email Verification'
          readOnly: true

    primaryAuthentication:
      type: object
      description: Configuration for primary factors required for the action. Available only for ComputerDevices and IdentityServer-Login.
      properties:
        is_passwordless_enabled:
          type: boolean
          description: Indicates if passwordless authentication is enabled.
          example: true
        factor_configs:
          type: array
          description: List of factor configurations for primary authentication.
          items:
            $ref: '#/components/schemas/mfaPrimaryFactorConfigs'
    secondaryAuthentication:
      type: object
      description: Configuration for secondary factors required for the action. Available for all endpoints.
      properties:
        is_mfa_enabled:
          type: boolean
          description: Indicates if multi-factor authentication is enabled for the action.
          example: true
        no_of_required_factors:
          type: integer
          description: Minimum number of secondary factors required for the action.
          example: 1
        authn_mode:
          type: string
          description: Mode of verification for the secondary factor. Available only for NPS.
          enum:
            - native
            - secure_link
          example: native
        factor_configs:
          type: array
          description: List of factor configurations for secondary authentication.
          items:
            $ref: '#/components/schemas/mfaSecondaryFactorConfigs'
    mfaPrimaryFactorConfigs:
      type: object
      description: Configuration for multi-factor authentication factors.
      properties:
        authn_factor_config_id:
          type: integer
          description: Unique identifier for the authentication factor configuration.
          example: 200000012544
        verification_order:
          type: integer
          description: Order of verification for the authentication factor.
          example: 1
    mfaSecondaryFactorConfigs:
      type: object
      description: Configuration for multi-factor authentication factors.
      properties:
        authn_factor_config_id:
          type: integer
          description: Unique identifier for the authentication factor configuration.
          example: 200000012544
        verification_order:
          type: integer
          description: Order of verification for the authentication factor.
          example: 1
        is_mandatory:
          type: boolean
          description: Indicates if the authentication factor is mandatory.
          example: true

    # Conditional Access Policy Advanced settings
    advancedSettingsResource:
      type: object
      description: Advanced settings for conditional access policies.
      writeOnly: true
      properties:
        is_captcha_enabled:
          type: boolean
          description: Indicates if CAPTCHA is enabled for the policy.
          example: true
        captcha_frequency_type:
          type: string
          description: Type of CAPTCHA frequency.
          enum:
            - always
            - after_failed_attempts
          example: always
        captcha_failed_attempts_threshold:
          type: integer
          description: Number of failed attempts before CAPTCHA is triggered.
          example: 3
        is_backup_codes_enabled:
          type: boolean
          description: Indicates if backup codes are enabled for the policy.
          example: false
        emailaddress_selection_mode:
          type: string
          description: Mode for selecting email addresses.
          enum:
            - primary
            - select
            - input
          example: primary
        mobileno_selection_mode:
          type: string
          description: Mode for selecting SMS numbers.
          enum:
            - primary
            - select
            - input
          example: select

    mfaTrust:
      type: object
      description: Configuration for periodic MFA prompts.
      properties:
        is_enabled:
          type: boolean
          description: Indicates if periodic MFA prompts are enabled.
          example: true
        initiator_type:
          type: string
          description: Type of initiator for the periodic MFA prompts.
          enum:
              - user
              - admin
          example: user
        duration:
          type: object
          properties:
            value:
              type: integer
              description: Value of the trust duration.
              example: 30
            unit:
              type: string
              description: Unit of the trust duration.
              enum:
                - minutes
                - hours
                - days
              example: minutes

    meta:
      type: object
      properties:
        start_index:
          type: integer
          description: The starting index of the records in the response.
          example: 1
        limit:
          type: integer
          description: The maximum number of records returned in the response.
          example: 100
        total_no_of_objects:
          type: integer
          description: The total number of records available for the request.
          example: 1

    bulkActionsMultiStatus:
      type: array
      items:
        type: object
        properties:
          resource_id:
            type: string
            description: The ID of the user for whom the action was performed.
            example: '2000000000001'
          status:
            type: integer
            description: HTTP status code indicating the result of the action.
            example: 204
          error:
            $ref: '#/components/schemas/policyNotFound'
      example:
        - resource_id: '2000000000001'
          status: 204
        - resource_id: '2000000000002'
          status: 404
          error:
            code: '****'
            title: 'Policy Not Found'
            detail: 'The specified conditional access policy does not exist.'

    policyNotFound:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              example: '****'
            title:
              type: string
              example: 'Policy Not Found'
            detail:
              type: string
              example: 'The specified conditional access policy does not exist.'
    unauthorized:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              example: '00000101'
            title:
              type: string
              example: 'Unauthorized'
            detail:
              type: string
              example: 'The OAuth token is invalid.'
    serverError:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              example: '00000000'
            title:
              type: string
              example: 'Internal Server Error'
            detail:
              type: string
              example: 'An unexpected internal error has occurred on the server. Please try again later.'
  securitySchemes:
    Zoho_Auth:
      type: oauth2
      x-authorization-example: 'Zoho-oauthtoken 1000.41d9f2cfbd1b7a8f9e314b7aff7bc2d1.8fcc9810810a216793f385b9dd6e125f'
      flows:
        authorizationCode:
          authorizationUrl: 'https://accounts.zoho.com/oauth/v2/auth'
          tokenUrl: 'https://accounts.zoho.com/oauth/v2/token'
          scopes:
            id360.conditional_access_policy.read: 'Read access for management actions'
            id360.conditional_access_policy.write: 'Write access for management actions'
            id360.conditional_access_policy.create: 'Create access for management actions'
            id360.conditional_access_policy.delete: 'Delete access for management actions'
            id360.conditional_access_policy.update: 'Update access for management actions'
            id360.conditional_access_policy.all: 'All access for management actions'