openapi: 3.0.0
info:
  title: Users API                                       # TITLE OF THE DOCUMENT (REQUIRED)
  description: 'The Users API provides programmatic access to Active Directory user accounts. It offers endpoints to update user attributes and retrieve user accounts using filters, sorting, and pagination, enabling administrators to automate and streamline user management. User records typically include identity details, contact information, and organizational attributes, and the API ensures they can be accessed or modified in a consistent and secure format.'
  contact: {}
  version: 2.0.0
servers:
  -
    url: 'http://admanagerplus:8080/api/v2'                       # PRODUCT URL
    description: 'API Endpoint'                            # URL DESCRIPTION
tags:
  -
    name: api-for-ad-users                                      # TAG NAME SHOULD BE SAME AS DEFINED IN APP.YML TAGS & SAME AS YML FILE NAME (REQUIRED)
    description: 'Users Endpoint'                      # DESCRIPTION ABOUT THE TAG NAME
security:
  - authToken: []
paths:
  /users:
    get:
      tags:
        - api-for-ad-users
      summary: List AD users
      description: |
        This endpoint retrieves AD user objects based on specified filters, sort order, and pagination. You can also limit the response to only the required fields. It is useful for generating user reports, integrating with other systems, or identifying users who meet specific conditions.
      parameters:
        - $ref: '#/components/parameters/acceptHeader'
        - $ref: '#/components/parameters/xModule'
        - $ref: '#/components/parameters/date_format'
        - $ref: '#/components/parameters/from'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/domains'
        - $ref: '#/components/parameters/fields'
        - $ref: '#/components/parameters/filter'
        - $ref: '#/components/parameters/sort'
        - $ref: '#/components/parameters/refresh'
      responses:
        "200":
          description: Successful response with AD users.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/list_users_response'
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bad_request_response'
        "401":
          description: UnAuthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/unauthorized_response'
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/internal_server_error_response'
      security: 
        - authToken:
            - Modify users action
            - All user management actions
            - delegated-roles
            - All Users Report
    patch:
      tags:
        - api-for-ad-users
      summary: Update AD Users
      description: This endpoint updates one or more AD user objects with the specified payload. You can modify general information, organizational details, Microsoft 365 settings, and Exchange attributes. It is often used for updating records during role changes or applying account policies in bulk.
      parameters:
        - $ref: '#/components/parameters/acceptHeader'
        - $ref: '#/components/parameters/xModule'
        - $ref: '#/components/parameters/from'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/domain'
        - $ref: '#/components/parameters/filter'
        - $ref: '#/components/parameters/sort'
        - $ref: '#/components/parameters/refresh'
      requestBody:
        description: ""
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/update_users_body'
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/update_users_response'
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bad_request_response'
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/unauthorized_response'
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/internal_server_error_response'
      deprecated: false
      security: 
        - authToken:
            - Modify user action
            - All user management actions
            - delegated-roles
            - Modify Users Using Template
            - Bulk User Modification
components:
  parameters:
    authorization:
      name: Authorization
      in: header
      schema:
        type: string
      description: 'Authtoken for the API'
      required: true
      example: '41d**************125f'
    acceptHeader:
      name: Accept
      in: header
      schema:
        type: string
      description: 'The response format that the client accepts.'
      required: false
      example: 'application/json'
    contentType:
      name: Content-Type
      in: header
      schema:
        type: string
      description: 'The format of data sent to the server. This value is passed in the Content-Type header of the API request.'
      required: false
      example: 'application/json'
    xModule:
      name: X-Module
      in: header
      schema:
        type: string
      description: 'The module name to be recorded in the audit logs. If not provided, the default module is recorded as Rest API.'
      required: false
      example: 'External API'
    date_format :
      name: X-Date-Time-Format
      in: header
      description: "The date-time format to be used for parsing date values returned in the response. If not provided, the default ISO format is used (yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX])."
      required: false
      schema:
        type: string
    from:
      in: query
      name: from
      schema:
        type: integer
        minimum: 1
      description: 'The starting index for pagination. Enables pagination through large result sets.'
      required: false
      example: 1
    limit:
      in: query
      name: limit
      schema:
        type: integer
        maximum: 100
        minimum: 1
      description: 'The maximum number of user records to return per request.'
      required: false
      example: 50
    domains:
      in: query
      name: domains
      schema:
        type: string
      description: >
        A comma-separated list of domains from which to fetch users. 
        <br>
        <strong>Example:</strong>  domain1.com,domain2.com
      required: true
      example: domain1.com
    fields:
      in: query
      name: fields
      schema:
        type: string
      description: 'The attributes to be returned in the response.'
      required: false
      example: 'SAM_ACCOUNT_NAME,EMAIL_ADDRESS,MEMBER_OF'
    filter:
      in: query
      name: filter
      schema:
        type: string
      description: >
        A SCIM filter query to refine which objects are returned. See <a href="https://www.manageengine.com/uk/products/ad-manager/active-directory-api/v2/filters/#overview">Filter section</a> for details.
        <br>
        <strong>Example:</strong>  (FIRST_NAME eq John) and (LAST_NAME eq Doe)
      required: false
      example:  (FIRST_NAME eq John) and (LAST_NAME eq Doe)
    sort:
      in: query
      name: sort
      schema:
        type: string
      description: >
        This field is used to sort results. The default sort order is ascending. To sort in descending order, prefix the field with a - (hyphen).
        <br>
        <strong>Example:</strong> FIRST_NAME,-LAST_NAME
      required: false
      example: 'FIRST_NAME,-LAST_NAME'
    refresh:
      in: query
      name: refresh
      description: If set to true, triggers a sync before fetching results, ensuring that the data reflects the latest state of AD.
      required: false
      schema:
        type: boolean
    domain:
      in: query
      name: domain
      description: >
        The AD domain where the requested operation is performed.
        <br>
        <strong>Example:</strong> domain1.com
      required: true
      example: domain1.com
      schema:
        type: string
  schemas:
    list_users_response: 
      type: object
      properties:
        data:
          type: array
          example:
          - EMPLOYEE_ID: "1"
            LOGON_NAME: testuser1@domain.com
            DISTINGUISHED_NAME: "CN=testuser1,CN=Users,DC=domain,DC=com"
            INITIAL: "-"
            LAST_NAME: "user1"
            DOMAIN_NAME: domain.com
            DISPLAY_NAME: testuser1
            FIRST_NAME: testuser1
            OU_NAME: Users
            CITY: "Chennai"
            COUNTRY: "India"
            EMAIL_ADDRESS: test@domain.com
            SID_STRING: S-1-5-21-829226656-1721363957-3165918102-24877
            OBJECT_GUID: "{E6L8H46E-CB3B-4OFA-BK88-B2050347970F}"
            STREET_ADDRESS: "Test Street"
            SAM_ACCOUNT_NAME: testuserapi1
            MOBILE: "9876540123"
          - EMPLOYEE_ID: "2"
            LOGON_NAME: testuser2@domain.com
            DISTINGUISHED_NAME: "CN=testuser2,CN=Users,DC=domain,DC=com"
            INITIAL: "-"
            LAST_NAME: "user2"
            DOMAIN_NAME: domain.com
            DISPLAY_NAME: testuser2
            FIRST_NAME: testuser2
            OU_NAME: Users
            CITY: "Chennai"
            COUNTRY: "India"
            EMAIL_ADDRESS: test@domain.com
            SID_STRING: S-1-5-21-829226656-1721363957-3165918102-24877
            OBJECT_GUID: "{E6L8H46E-CB3B-4OFA-BK88-B2050347970F}"
            STREET_ADDRESS: "Test Street"
            SAM_ACCOUNT_NAME: testuserapi2
            MOBILE: "9876543210"
        meta:
          $ref: '#/components/schemas/meta'
          example:
            start_index: 1
            limit: 10
            total_no_of_objects: 2

    users_array:
      items:
        example:
          - EMPLOYEE_ID: "1"
            LOGON_NAME: testuser1@domain.com
            DISTINGUISHED_NAME: "CN=testuser1,CN=Users,DC=domain,DC=com"
            INITIAL: "-"
            LAST_NAME: "user1"
            DOMAIN_NAME: domain.com
            DISPLAY_NAME: testuser1
            FIRST_NAME: testuser1
            OU_NAME: Users
            CITY: "Chennai"
            COUNTRY: "India"
            EMAIL_ADDRESS: test@domain.com
            SID_STRING: S-1-5-21-829226656-1721363957-3165918102-24877
            OBJECT_GUID: "{E6L8H46E-CB3B-4OFA-BK88-B2050347970F}"
            STREET_ADDRESS: "Test Street"
            SAM_ACCOUNT_NAME: testuserapi1
            MOBILE: "9876540123"
          - EMPLOYEE_ID: "2"
            LOGON_NAME: testuser2@domain.com
            DISTINGUISHED_NAME: "CN=testuser2,CN=Users,DC=domain,DC=com"
            INITIAL: "-"
            LAST_NAME: "user2"
            DOMAIN_NAME: domain.com
            DISPLAY_NAME: testuser2
            FIRST_NAME: testuser2
            OU_NAME: Users
            CITY: "Chennai"
            COUNTRY: "India"
            EMAIL_ADDRESS: test@domain.com
            SID_STRING: S-1-5-21-829226656-1721363957-3165918102-24877
            OBJECT_GUID: "{E6L8H46E-CB3B-4OFA-BK88-B2050347970F}"
            STREET_ADDRESS: "Test Street"
            SAM_ACCOUNT_NAME: testuserapi2
            MOBILE: "9876543210"
    
    meta:
      type: object
      properties:
        start_index:
          type: integer
        limit:
          type: integer
        total_no_of_objects:
          type: integer

    update_users_response:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/updated_users_data'
        meta:
          $ref: '#/components/schemas/meta'
          example:
            start_index: 1
            limit: 10
            total_no_of_objects: 1

    updated_users_data:
      type: object
      properties:
        object:
          type: object
          $ref: '#/components/schemas/object_data'
          example:
            Description: "User Modified via API"
            User Name: Test User
            OU Name: "CN=Users,DC=test,DC=com"
            Managed by: "CN=Manager Name,CN=Users,DC=test,DC=com"
        status:
          $ref: '#/components/schemas/status'
          example:
            status_code: 1
            status_message: "Successfully updated the user.Setting values for custom attributes: Error in setting attributes,A constraint violation occurred. - Error Code : 8007202f.  Error in creating mailbox enabled user, Could not connect to the Exchange Server.Click <a class='preserveHtml' class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=\"greenlinktxt admp-ml-0\" target=\"_blank\"  href=\"help/misc/troubleshooting_tips.html\" >here </a>to troubleshoot."

    object_data:
      type: object
      properties:
        Description:
          type: string
        User Name:
          type: string
        OU Name:
          type: string
        Managed by:
          type: string
    
    status:
      type: object
      properties:
        status_code:
          type: integer
          example: 1
        status_message:
          type: string
          example: "Successfully updated the user.Setting values for custom attributes: Error in setting attributes,A constraint violation occurred. - Error Code : 8007202f.  Error in creating mailbox enabled user, Could not connect to the Exchange Server.Click <a class='preserveHtml' class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=\"greenlinktxt admp-ml-0\" target=\"_blank\"  href=\"help/misc/troubleshooting_tips.html\" >here </a>to troubleshoot."

    update_users_body:
      type: object
      properties:
        template:
          $ref: '#/components/schemas/template'
          description: >
            The template to be used for updating the user. If not specified, the default system template is applied.
          example:
            template_name: "User Modification Template"
        data:
          type: object
          properties:
            attributes:
              type: object
              properties:
                  givenName:
                    type: string
                    description: "The first name of the user.."
                  initials:
                    type: string
                    description: "The middle name of the user."
                  sn:
                    type: string
                    description: "The last name of the user."
                  userPrincipalName:
                    type: string
                    description: "The logon name of the user."
                  sAMAccountName:
                    type: string
                    description: "The SAM account name of the user."
                  displayName:
                    type: string
                    description: "The display name of the user."
                  name:
                    type: string
                    description: "The full name of the user."
                  description:
                    type: string
                    description: "The description of the user."
                  physicalDeliveryOfficeName:
                    type: string
                    description: "The office location of the user."
                  telephoneNumber:
                    type: string
                    description: "The telephone number of the user."
                  mail:
                    type: string
                    description: "The email address of the user."
                  wWWHomePage:
                    type: string
                    description: "The home page URL of the user."
                  OUName:
                    type: string
                    description: "The OU where the user resides."
                  password:
                    type: string
                    description: "The password of the user."
                  streetAddress:
                    type: string
                    description: "The street address of the user."
                  postOfficeBox:
                    type: string
                    description: "The post office box of the user."
                  l:
                    type: string
                    description: "The city of the user."
                  st:
                    type: string
                    description: "The state or province of the user."
                  postalCode:
                    type: string
                    description: "The postal code of the user."
                  co:
                    type: string
                    description: "The country of the user."
                  c:
                    type: string
                    description: "The two-letter country code of the user."
                  countryCode:
                    type: string
                    description: "The country code of the user."
                  memberOf:
                    type: string
                    description: "The groups to which the user should be added."
                  removememberOf:
                    type: string
                    description: "The groups from which the user should be removed."
                  accountExpires:
                    type: string
                    description: "The account expiration date of the user."
                  userAccountControl:
                    type: string
                    description: "The user account control flags of the user."
                  thumbnailPhoto / exchangePhoto (Supports high resolution photo) / jpegPhoto / photo / thumbnailLogo:
                    type: string
                    format: binary
                    description: "The photo of the user."
                  profilePath:
                    type: string
                    description: "The profile path of the user."
                  scriptPath:
                    type: string
                    description: "The script path of the user."
                  homeDirectory:
                    type: string
                    description: "The home directory of the user."
                  homeDrive:
                    type: string
                    description: "The home drive of the user."
                  userWorkstations:
                    type: string
                    description: "The workstations from which the user can log on."
                  homePhone:
                    type: string
                    description: "The home phone number of the user."
                  pager:
                    type: string
                    description: "The pager number of the user."
                  mobile:
                    type: string
                    description: "The mobile number of the user."
                  facsimileTelephoneNumber:
                    type: string
                    description: "The facsimile telephone number of the user."
                  ipPhone:
                    type: string
                    description: "The IP phone number of the user."
                  info:
                    type: string
                    description: "The notes attribute of the user."
                  title:
                    type: string
                    description: "The job title of the user."
                  department:
                    type: string
                    description: "The department of the user."
                  company:
                    type: string
                    description: "The company of the user."
                  manager:
                    type: string
                    description: "The manager of the user."
                  tsAllowLogon:
                    type: boolean
                    description: "Allow the user to log on to Terminal Services."
                  tsProfilePath:
                    type: string
                    description: "The profile path for the user on Terminal Services."
                  tsHomeDir:
                    type: string
                    description: "The home directory for the user on Terminal Services."
                  tsHomeDirDrive:
                    type: string
                    description: "The home drive for the user on Terminal Services."
                  tsInheritInitialProgram:
                    type: boolean
                    description: "Start the following program at logon for the user on Terminal Services."
                  tsIntialProgram:
                    type: string
                    description: "The initial program to be started at logon for the user on Terminal Services."
                  tsWorkingDir:
                    type: string
                    description: "The start in attribute of the user on Terminal Services."
                  tsDeviceClientDrives:
                    type: boolean
                    description: "Connect client drives to Terminal Services."
                  tsDeviceClientPrinters:
                    type: boolean
                    description: "Connect client printer at logon"
                  tsDeviceClientDefaultPrinter:
                    type: boolean
                    description: "Default to main client printer" 
                  tsTimeOutSettingsDisConnections:
                    type: string
                    description: "End disconnected session"
                  tsTimeOutSettingsConnections:
                    type: string
                    description: "Active Session limit"
                  tsTimeOutSettingsIdle:
                    type: string
                    description: "Idle session limit"
                  tsBrokenTimeOutSettings:
                    type: string
                    description: "Behavior when the session limit is reached or connection is broken."
                  tsReConnectSettings:
                    type: boolean
                    description: "Allow reconnection"
                  tsShadowSettings:
                    type: boolean
                    description: "Remote Control"
                  preventDeletion:
                    type: boolean
                    description: "Protect the user object from accidental deletion."
                  managerCanUpdateMembership:
                    type: boolean
                    description: "Allow the manager to update the membership of the user."
                  primaryGroupID:
                    type: string
                    description: "The primary group ID of the user."
                  exchange:
                    type: object
                    description: "The Exchange attribute of the user."
                    properties:
                      msExchAdminGroups:
                        type: string
                        description: "The Exchange administrative groups to which the user belongs."
                      msExchHomeServerName:
                        type: string
                        description: "The Exchange home server name for the user."
                      targetAddress:
                        type: string
                        description: "The target address for the user."
                      proxyAddresses:
                        type: string
                        description: "The proxy addresses for the user."
                      removeproxyAddresses:
                        type: string
                        description: "The proxy addresses to be removed for the user."
                      msExchPoliciesExcluded:
                        type: string
                        description: "The Exchange policies to be excluded for the user."
                      mailNickname:
                        type: string
                        description: "The email-alias of the user."
                      displayNamePrintable:
                        type: string
                        description: "The simple display name of the user."
                      msExchHideFromAddressLists:
                        type: boolean
                        description: "Specifies whether the user mailbox is hidden from Exchange address lists."
                      submissionContLength:
                        type: integer
                        description: "The maximum size of an email the user mailbox can send."
                      delivContLength:
                        type: integer
                        description: "The maximum size of an email the user mailbox can receive."
                      msExchRequireAuthToSendTo:
                        type: boolean
                        description: "Require authentication to send emails to this user."
                      unauthOrig:
                        type: boolean
                        description: "Allow unauthenticated users to send emails to this user."
                      authOrig:
                        type: boolean
                        description: "Allow authenticated users to send emails to this user."
                      publicDelegates:
                        type: string
                        description: "The send on behalf for the user."
                      altRecipient:
                        type: string
                        description: "The forward-to attribute of the user."
                      deliverAndRedirect:
                        type: boolean
                        description: "Deliver and redirect emails for the user."  
                      msExchRecipLimit:
                        type: integer
                        description: "The maximum number of recipients allowed in a user’s email."
                      mDBuseDefaults:
                        type: boolean
                        description: "Use default mailbox settings for the user."
                      mDBStorageQuota:
                        type: integer
                        description: "The mailbox size (in MB/GB) at which a warning is issued to the user."
                      mDBOverQuotaLimit:
                        type: integer
                        description: "The mailbox size at which the user is prohibited from sending emails."
                      mDBOverHardQuotaLimit:
                        type: integer
                        description: "The mailbox size at which the user is prohibited from both sending and receiving emails."
                      deletedItemFlags:
                        type: string
                        description: "The deleted item retention settings for the user’s mailbox."
                      garbageCollPeriod:
                        type: string
                        description: "The deleted item retention period for the user’s mailbox."
                      msExchOmaAdminWirelessEnabled:
                        type: boolean
                        description: "Enable Outlook mobile access (OMA) for the user."
                      protocolSettings:
                        type: string
                        description: "The Outlook Web Access settings for the user."
                  microsoft_365:
                    type: object
                    description: "The Microsoft 365 attributes of the user."
                    properties:
                      MAPIEnabled:
                        type: boolean
                        description: "Enable MAPI for the user’s mailbox."
                      PopEnabled:
                        type: boolean
                        description: "Enable POP for the user’s mailbox."
                      EwsEnabled:
                        type: boolean
                        description: "Enable EWS for the user’s mailbox."
                      OWAEnabled:
                        type: boolean
                        description: "Enable access to a mailbox using Exchange Web Services."
                      OWAforDevicesEnabled:
                        type: boolean
                        description: "Enable OWA for mobile devices."
                      SmtpClientAuthenticationDisabled:
                        type: boolean
                        description: "Disable SMTP client authentication for the user’s mailbox."
                      ActiveSyncEnabled:
                        type: boolean
                        description: "Enable ActiveSync for the user’s mailbox."
                      O365Roles:
                        type: string
                        description: "The Microsoft 365 roles assigned to the user."
                      MFAEnabled:
                        type: boolean
                        description: "Enable multi-factor authentication (MFA) for the user."
                      IssueWarningQuota:
                        type: integer
                        description: "The storage quota at which the user is warned."
                      ProhibitSendQuota:
                        type: integer
                        description: "The mailbox size limit after which the user cannot send messages."
                      ProhibitSendReceiveQuota:
                        type: integer
                        description: "The mailbox size limit after which the user cannot send or receive messages."
                      O365ProxyAddresses:
                        type: string
                        description: "The proxy addresses for the user in Microsoft 365."
                      RemotePowerShellEnabled:
                        type: boolean
                        description: "Enable Remote PowerShell for the user."
                      ImapEnabled:
                        type: boolean
                        description: "Enable IMAP for the user’s mailbox."
                      SharingPolicy:
                        type: string
                        description: "The sharing policy for the user’s mailbox."
                      RoleAssignmentPolicy:
                        type: string
                        description: "The role assignment policy for the user’s mailbox."
                      RetentionPolicy:
                        type: string
                        description: "The retention policy for the user’s mailbox."
                      AddressBookPolicy:
                        type: string
                        description: "The address book policy for the user’s mailbox."
                      GroupMemberObjectId:
                        type: string
                        description: "The Microsoft 365 group memberships of the user."
                      LitigationHoldEnabled:
                        type: boolean
                        description: "Enable litigation hold for the user’s mailbox."
                      LitigationHoldDuration:
                        type: string
                        description: "The duration of litigation hold for the user’s mailbox."
                      InPlaceArchiveEnabled:
                        type: boolean
                        description: "Enable in-place archive for the user’s mailbox."
                      ArchiveName:
                        type: string
                        description: "The name of the user’s mailbox archive"
                      O365userPrincipalName:
                        type: string
                        description: "The user principal name in Microsoft 365."
                      O365Manager:
                        type: string
                        description: "The manager of the user in Microsoft 365."
                      SimpleDisplayName:
                        type: string
                        description: "The simple display name of the user in Microsoft 365."
                      O365HiddenFromAddress:
                        type: boolean
                        description: "Specifies whether the Microsoft 365 account is hidden from Exchange address lists."
                      waadLicenseInfo:
                        type: string
                        description: "The Microsoft 365 license information for the user."


              description: >
                The attributes of the user to be updated. This can include Active Directory, Microsoft 365, and Exchange attributes.
          description: >
            Data to be updated for the user.
          example:
              attributes:
                employeeID: "12345"
                extensionAttribute1: "Custom Attribute"
                co: "India"
                manager: "Manager 1"
                microsoft_365: {
                    "waadLicenseInfo" : "sku_id1;sku_id2"
                }
                exchange: {
                    "msExchHomeServerName":"/o=Test/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Configuration/cn=Servers/cn=TEST-MEM1",
                    "homeMDB":"CN=Mailbox Database 03456078997,CN=Databases,CN=Exchange Administrative Group (FYDIBOHF23SPDLT),CN=Administrative Groups,CN=Test,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=test,DC=com",
                    "mailNickname":"tester",
                    "proxyAddresses":"SMTP:tester@domain.com"
                }

    template:
      type: object
      properties:
        template_name:
          type: string
          description: >
            The name of the template used to update the user.
        template_id:
          type: integer
          description: >
            The ID of the template used to update the user.
    bad_request_response:
      type: object
      properties:
        code:
          type: string
          description: Error code
          example: "00000100"
        detail:
          type: string
          description: Detailed error message
          example: "Some columns given in fields parameter are invalid"
        title:
          type: string
          description: Short error message
          example: "Bad Request."
    unauthorized_response:
      type: object
      properties:
        code:
          type: string
          description: Error code
          example: "00000101"
        detail:
          type: string
          description: Detailed error message
          example: "The given Authtoken is invalid."
        title:
          type: string
          description: Short error message
          example: "Unauthorized."
    internal_server_error_response:
      type: object
      properties:
        code:
          type: string
          description: Error code
          example: "00000000"
        detail:
          type: string
          description: Detailed error message
          example: "An internal server error occurred."
        title:
          type: string
          description: Short error message
          example: "Internal Server Error."
  securitySchemes:
    authToken:
      type: apiKey
      in: header
      name: Authorization
