openapi: 3.1.2
info:
  title: learningBOX Ver. 6.1 API Documentation
  description: |
    # API Overview
    ## Request Limits for OAuth2.0 API
    Since learningBOX 2.24, request rate limits have been set to ensure stable server operation.

    - Hourly limit: 1,000 requests per organization
    - Daily limit: 5,000 requests per organization

    ※ The above limits do not include access token acquisition (requests to the token endpoint).

    ## Common Responses
    Each API has its own response definitions, but if the access limit is exceeded, the following common error is returned.

    Error example (HTTP 401 Unauthorized):

    ```json
    {
      "error": "insufficient_scope",
      "error_description": "The request requires higher privileges than provided by the access token"
    }
    ```

    Error example (HTTP 429 Too Many Requests):

    ```json
    {
      "error": "exceeded_limit",
      "error_description": "The access limit has been exceeded"
    }
    ```

    ## Access Permissions (Scopes)

    This API uses **scope** included in OAuth2.0 access tokens for access control.
    The required scope for each endpoint is listed in the "Required Permissions" section.

    ### Where to Configure Scopes

    Third-party app guide: [https://support.learningbox.online/en/how-to-use/third-party-app/](https://support.learningbox.online/en/how-to-use/third-party-app/)

    Configure the required scopes in the learningBOX admin panel at:

    - Third-Party Apps (/user/manage-3pa) > Add App > "Add App" > **Access Permissions**
    - Third-Party Apps (/user/manage-3pa) > (target app) Update > "Update App" > **Access Permissions**

    Hereafter, this screen is referred to as **"Access Permissions Settings"**.

    ### Notation Rules
    Each endpoint shows the required permissions in the following format:

    - Access Permissions Settings checkbox item: e.g., Content > Read
    - Scope: `example.scope`

    ## Revision History
    - This version (6.1) has no changes from the previous version (6.0).
  version: 1.0.0
tags:
  - name: oauth
    description: Access Token
    x-displayName: Access Token
  - name: sco
    description: Content
    x-displayName: Content
  - name: result
    description: Grades
    x-displayName: Grades
  - name: user
    description: Users
    x-displayName: Users
  - name: group
    description: Groups
    x-displayName: Groups
  - name: access-list
    description: IP Restrictions
    x-displayName: IP Restrictions
  - name: author
    description: Stakeholders
    x-displayName: Stakeholders
  - name: training
    description: Training
    x-displayName: Training
  - name: payment
    description: eCommerce Payments
    x-displayName: eCommerce Payments
paths:
  /v1/oauth/token:
    post:
      security: [] # No authentication required
      tags:
        - oauth
      summary: Get access token
      description: |
        Obtains an access token via the OAuth2.0 authorization process, which is required to use the API.
        ### Required Permissions
        - No permissions are required for this endpoint.
      operationId: getAccessToken
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/TokenRequestPost'
            example:
              grant_type: client_credentials
              client_id: your_client_id
              client_secret: your_client_secret
      responses:
        '200':
          description: Success
          headers:
            Content-Type:
              description: The media type of the response
              schema:
                type: string
                example: application/json
            Cache-Control:
              description: Cache control directive
              schema:
                type: string
                example: no-store
            Pragma:
              description: Cache control directive (legacy)
              schema:
                type: string
                example: no-cache
          content:
            application/json:
              schema:
                type: object
                required:
                  - access_token
                  - token_type
                  - expires_in
                properties:
                  access_token:
                    type: string
                    description: The access token
                  expires_in:
                    type: integer
                    description: Expiration time in seconds
                  token_type:
                    type: string
                    description: The token type
                    enum:
                      - Bearer
                  scope:
                    type: string
                    description: Access permissions configured in Third-Party App management (space-separated)
                    example: result.read sco.read accesslist.read accesslist.create
              example:
                access_token: 3ba0696fc5157d7c5c3d6da409d57085ccfc7a6b
                expires_in: 3600
                token_type: Bearer
                scope: result.read sco.read
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                  - error_description
                properties:
                  error:
                    type: string
                    description: Error message
                  error_description:
                    type: string
                    description: Error details
                  error_uri:
                    type: string
                    description: Error reference URL
              examples:
                clientID_or_secretkey_incorrect:
                  summary: Invalid client ID or secret key
                  value:
                    error: invalid_client
                    error_description: The client credentials are invalid
                clientID_not_sent:
                  summary: Client ID not sent
                  value:
                    error: invalid_client
                    error_description: Client credentials were not found in the headers
                      or body
                secretkey_not_sent:
                  summary: Secret key not sent
                  value:
                    error: invalid_client
                    error_description: Client credentials are required
                grant_type_error:
                  summary: Invalid "grant_type"
                  value:
                    error: unsupported_grant_type
                    error_description: Grant type "aaa" not supported
                grant_type_not_sent:
                  summary: '"grant_type" not sent'
                  value:
                    error: invalid_request
                    error_description: The grant type was not specified in the request
                sending_method_error:
                  summary: Invalid request method
                  value:
                    error: invalid_request
                    error_description: The request method must be POST when requesting
                      an access token
                    error_uri: http://tools.ietf.org/html/rfc6749#section-3.2
        '401':
          description: Unauthorized
          headers:
            WWW-Authenticate:
              description: Authentication scheme and realm
              schema:
                type: string
                example: 'Bearer realm="Service"'
            Content-Type:
              schema:
                type: string
                example: application/json
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    properties:
                      error:
                        type: string
                        description: Error message
                      error_description:
                        type: string
                        description: Error details
                      error_uri:
                        type: string
                        description: Error reference URL
                  - type: string
                    maxLength: 0
                    description: 'Empty body (Content-Length: 0)'
              examples:
                invalid_token:
                  summary: Access token does not exist
                  value:
                    error: invalid_token
                    error_description: The access token provided is invalid
                token_expired:
                  summary: Access token has expired
                  value:
                    error: invalid_token
                    error_description: The access token provided has expired
                token_null:
                  summary: Access token not set
                  value:
                    error: invalid_request
                    error_description: Malformed auth header
                token_item_missing:
                  summary: Access token missing (no body)
                  value: ''
  /v1/sco:
    post:
      security:
        - OAuth2: [sco.read]
      tags:
        - sco
      summary: List content
      description: |
        Retrieves information managed in the content management screen.
        ### Required Permissions
        - Access Permissions Settings checkbox: Content > Read
        - Scope: `sco.read`
      operationId: searchScoList
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                parent_id:
                  type: integer
                  description: The internal ID of the parent course/folder content
                  example: 1765
                parent_code:
                  type: string
                  description: "The content code of the parent course/folder. Specify `contents_root` to retrieve items directly under the root."
                  example: 1b7c705c-e910-11eb-a524-0698f151fb8c
                sco_type:
                  type: string
                  description: Content type
                  example: contents
                  enum:
                    - folder
                    - contents
                sco_code:
                  type: string
                  description: Content code
                title:
                  type: string
                  description: Content name
                limit:
                  type: integer
                  description: 'Number of rows to return per request. Defaults to 20 if not specified. Specify 0 to return all rows.'
                offset:
                  type: integer
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                parent_id:
                  type: integer
                  description: The internal ID of the parent course/folder content
                  example: 1765
                parent_code:
                  type: string
                  description: "The content code of the parent course/folder. Specify `contents_root` to retrieve items directly under the root."
                  example: 1b7c705c-e910-11eb-a524-0698f151fb8c
                sco_type:
                  type: string
                  description: Content type
                  example: contents
                  enum:
                    - folder
                    - contents
                sco_code:
                  type: string
                  description: Content code
                title:
                  type: string
                  description: Content name
                limit:
                  type: integer
                  description: 'Number of rows to return per request. Defaults to 20 if not specified. Specify 0 to return all rows.'
                offset:
                  type: integer
        required: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ScoListResponse'
                  - $ref: '#/components/schemas/ErrorResponse'
              examples:
                success:
                  summary: Success
                  value:
                    scos:
                      - sco_id: '1684'
                        sco_type: folder
                        sco_code: 1b7c6604-e910-11eb-a524-0698f151fb8c
                        generetor_type: null
                        title: Sample Content
                        child_count: 21
                        created_at: '2025-07-15 09:58:28'
                        updated_at: '2025-07-15 10:03:51'
                      - sco_id: '1709'
                        sco_type: title-bar
                        sco_code: 1b7c705c-e910-11eb-a524-0698f151fb8c
                        generetor_type: null
                        title: Title
                        child_count: 4
                        created_at: '2025-07-15 09:58:28'
                        updated_at: '2024-07-10 09:58:28'
                      - sco_id: '1738'
                        sco_type: contents
                        sco_code: 1b7c86cd-e910-11eb-a524-0698f151fb8c
                        generetor_type: REPORT
                        title: Report Assignment
                        child_count: 0
                        created_at: '2025-07-15 09:58:28'
                        updated_at: '2025-07-15 10:03:51'
                    meta:
                      total: 2236
                      limit: 3
                      offset: 0
                invalid_sco_type:
                  summary: Invalid sco_type
                  value:
                    error: parameter incorrect.
                    error_description: '[sco_type] must be <folder> or <contents>.'
                invalid_limit:
                  summary: Invalid limit
                  value:
                    error: parameter incorrect.
                    error_description: '[limit] must be a number greater than 0.'
                invalid_offset:
                  summary: Invalid offset
                  value:
                    error: parameter incorrect.
                    error_description: '[offset] must be a number greater than 0.'
      deprecated: false
      x-codegen-request-body-name: body
  /v1/job/create:
    post:
      security:
        - OAuth2: [sco.create]
        - OAuth2: [sco.update]
      tags:
        - sco
      summary: Create or update content
      description: |
        Creates a course or folder, or loads SCORM content. (Asynchronous process)
        ### Required Permissions
        - Access Permissions Settings checkbox: Content > Add or Content > Update
        - Scope: `sco.create` or `sco.update`
      operationId: jobCreateSco
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContentCreateUpdateRequest'
            examples:
              create_scorm_content:
                summary: Create SCORM content
                value:
                  type: create-content
                  payload:
                    sco_type: content
                    generator_type: SCORM
                    parent_sco_code: sample
                    insert_after: <last>
                    sco_data:
                      title: sample-scorm
                      description: sample-scorm-description
                    upload_file:
                      extension: zip
                      size: 356589
              create_pdf_content:
                summary: Create PDF content
                value:
                  type: create-content
                  payload:
                    sco_type: content
                    generator_type: PDF
                    parent_sco_code: sample
                    insert_after: <first>
                    sco_data:
                      title: sample-pdf
                      description: sample-pdf-description
                      additional_fields:
                        downloadable: 1
                        language: ja
                        scroll: vertical
                        no_change_scroll_mode: 0
                        scroll_direction: right
                        use_highlight: 1
                        tool_mode: hand_tool
                    upload_file:
                      extension: pdf
                      size: 25543
              create_folder:
                summary: Create folder
                value:
                  type: create-content
                  payload:
                    sco_type: folder
                    parent_sco_code: sample
                    insert_after: <last>
                    sco_data:
                      title: sample-folder
                      description: sample-folder-description
                    thumbnail_file:
                      extension: jpg
                      size: 2768
      responses:
        '200':
          description: 'Success<br>

            - Create an S3 upload request according to the content stored in upload_file_to, and append the binary data of the file at the end to upload the file.

            - When uploading both a file and a thumbnail, each must be uploaded in a separate request.

            - The S3 upload request created based on this response sample will look like the one shown in the notes.

            - For S3 responses to upload requests, please refer to the [AWS documentation](https://docs.aws.amazon.com/AmazonS3/latest/API/Welcome.html).'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobResponse'
              example:
                job_id: 12345
                type: create-content
                status: waiting
                payload:
                  sco_code: '123'
                  upload_file_to:
                    method: POST
                    url: https://your-upload-url
                    headers:
                      Content-Type: multipart/form-data
                    fields:
                      Content-Type: application/zip
                      X-Amz-Security-Token: your-security-token
                      key: your-object-key
                      X-Amz-Credential: your-credential
                      X-Amz-Algorithm: your-algorithm
                      X-Amz-Date: 20250718T013036Z
                      Policy: your-policy
                      X-Amz-Signature: your-signature
                    expires_at: '2025-07-18 10:40:36'
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                type_not_specified:
                  summary: type not specified
                  value:
                    error: wrong parameter.
                    error_description: type is required.
                payload_not_specified:
                  summary: payload not specified
                  value:
                    error: wrong parameter.
                    error_description: payload is required.
                invalid_type_value:
                  summary: Invalid type value
                  value:
                    error: wrong parameter.
                    error_description: Invalid type.
        '422':
          description:
            "Error<br>\nPossible error details for each attribute include the following.\n- parent_sco_code:<br>\n\
            \    Parent sco not found.: The content with the specified code as the placement destination does not exist<br>\n    Parent\
            \ sco is not a folder or course.: The specified code as the placement destination is not a course or folder\n- sco_code:<br>\n\
            \    Same sco_code already exists.: A content with the same code already exists when creating new<br>\n    Current\
            \ sco not found.: The content with the specified code for update does not exist\n- upload_file_size/thumbnail_file_size:<br>\n\
            \    Size exceeds plan upload limit.: The file size to be uploaded exceeds the plan limit<br>\n\
            \    Storage capacity exceeded after upload.: The storage capacity after upload exceeds the plan limit\n\
            - generator_type:<br>\n    Invalid generator_type.: The generator_type value is invalid\n\
            - upload_file_extension:<br>\n    Invalid extension.: The file extension does not correspond to the content type<br>\n\
            - thumbnail_extension:<br>\n    Invalid extension.: The file extension is not available for thumbnail images"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error: wrong parameter.
                error_description: 'parent_sco_code: Parent sco not found. sco_code:
                  Same sco_code already exists.'
      deprecated: false
      x-codegen-request-body-name: body
  /v1/sco/delete/{sco_code}:
    post:
      security:
        - OAuth2: [sco.delete]
      tags:
        - sco
      summary: Delete content
      description: |
        Deletes a content item.
        ### Required Permissions
        - Access Permissions Settings checkbox: Content > Delete
        - Scope: `sco.delete`
      operationId: deleteSco
      parameters:
        - name: sco_code
          in: path
          description: Content code
          required: true
          schema:
            type: string
          example: 'sco_code'
      requestBody:
        content:
          application/json:
            schema:
              required:
                - delete_certificates
                - recursive
              type: object
              properties:
                recursive:
                  type: integer
                  description: 'Recursive deletion flag<br>

                    Whether to delete all items including sub-folders/content<br>

                    1: Delete<br>

                    0: Do not delete'
                  example: 1
                delete_certificates:
                  type: integer
                  description: 'Issued certificate deletion flag<br>

                    Whether to delete all items including sub-folders/content<br>

                    1: Delete<br>

                    0: Do not delete'
                  example: 1
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                required:
                  - scos
                type: object
                properties:
                  scos:
                    type: array
                    description: Array of deleted content data
                    items:
                      type: object
                      required:
                        - sco_code
                        - title
                      properties:
                        sco_code:
                          type: string
                          example: '123_abc'
                          description: The sco_code of the deleted content
                        title:
                          type: string
                          description: The title of the deleted content
              example:
                scos:
                  - sco_code: 363abb03-7b27-4db4-ac2e-26fed5d03f69
                    title: Target course for deletion
                  - sco_code: 696ec937-bbb8-4e27-904f-e7c564213b23
                    title: Target folder for deletion
                  - sco_code: e1579743-e7c4-44a6-bfc4-d41ce140fb12
                    title: Target quiz for deletion
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                sco_code_not_specified:
                  summary: sco_code not specified
                  value:
                    error: wrong parameter.
                    error_description: sco_code is required.
                delete_certificates_not_specified:
                  summary: delete_certificates not specified
                  value:
                    error: wrong parameter.
                    error_description: delete_certificates is required.
                invalid_recursive_value:
                  summary: Invalid recursive value
                  value:
                    error: wrong parameter.
                    error_description: Invalid recursive value.
        '404':
          description: Error - No content found for the specified sco_code
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error: sco not found.
        '422':
          description: Error - Contains content that cannot be deleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error: not deletable.
                error_description: sco is not deletable.
      deprecated: false
      x-codegen-request-body-name: body
  /v1/sco/assign/{sco_code}:
    post:
      security:
        - OAuth2: [sco.assign]
      tags:
        - sco
      summary: Assign content
      description: |
        Assigns content to users or groups.
        ### Required Permissions
        - Access Permissions Settings checkbox: Content > Assign to users/groups
        - Scope: `sco.assign`
      operationId: assignContents
      parameters:
        - name: sco_code
          in: path
          description: The sco_code of the content
          required: true
          schema:
            type: string
          example: 'sco_code'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - recursive
              properties:
                assign_group_ids:
                  type: array
                  description: Array of group IDs to assign
                  items:
                    type: integer
                    format: int32
                assign_group_codes:
                  type: array
                  description: Array of group codes to assign
                  items:
                    type: string
                release_group_ids:
                  type: array
                  description: Array of group IDs to unassign
                  items:
                    type: integer
                    format: int32
                release_group_codes:
                  type: array
                  description: Array of group codes to unassign
                  items:
                    type: string
                assign_user_ids:
                  type: array
                  description: Array of user IDs to assign
                  items:
                    type: integer
                    format: int32
                assign_user_logins:
                  type: array
                  description: Array of Login IDs of users to assign
                  items:
                    type: string
                release_user_ids:
                  type: array
                  description: Array of user IDs to unassign
                  items:
                    type: integer
                    format: int32
                release_user_logins:
                  type: array
                  description: Array of Login IDs of users to unassign
                  items:
                    type: string
                recursive:
                  type: integer
                  format: int32
                  description: 'Recursive assignment flag. 1: Apply, 0: Do not apply'
                  enum:
                    - 0
                    - 1
            example:
              assign_group_codes:
                - g3
              assign_user_ids:
                - 123
              recursive: 1
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                required:
                  - scos
                  - groups
                  - users
                properties:
                  scos:
                    type: array
                    description: Array of content items that were assigned or unassigned
                    items:
                      type: object
                      required:
                        - sco_id
                        - sco_code
                        - sco_title
                      properties:
                        sco_id:
                          description: Content Internal ID
                          type: integer
                          format: int64
                        sco_code:
                          description: Content code
                          type: string
                        sco_title:
                          description: The title of the content
                          type: string
                  groups:
                    type: array
                    description: Array of groups that were assigned or unassigned
                    items:
                      type: object
                      required:
                        - group_id
                        - group_code
                        - name
                      properties:
                        group_id:
                          description: Group Internal ID
                          type: integer
                          format: int64
                        group_code:
                          description: group code
                          type: string
                        name:
                          description: group name
                          type: string
                  users:
                    description: Array of users that were assigned or unassigned
                    type: array
                    items:
                      type: object
                      required:
                        - user_id
                        - login
                        - name
                      properties:
                        user_id:
                          description: User Internal ID
                          type: integer
                          format: int64
                        login:
                          description: Login ID
                          type: string
                        name:
                          description: name
                          type: string
              example:
                scos:
                  - sco_id: 10008
                    sco_code: 91314352-0da3-4bc3-b9f-5056cdef2e67
                    sco_title: Course for assignment
                  - sco_id: 10009
                    sco_code: 6d1cf984-ceff-411a-b701-343316902374
                    sco_title: Folder for assignment
                groups:
                  - group_id: 3
                    group_code: g3
                    name: Management Group
                users:
                  - user_id: 123
                    login: user-123
                    name: Learner 1
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                sco_code_not_specified:
                  summary: sco_code not specified
                  value:
                    error: wrong parameter.
                    error_description: sco_code is required.
                recursive_not_specified:
                  summary: recursive not specified
                  value:
                    error: wrong parameter.
                    error_description: recursive is required.
                invalid_recursive_value:
                  summary: Invalid recursive value
                  value:
                    error: wrong parameter.
                    error_description: Invalid recursive value.
        '404':
          description: The content is not assignable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error: not found.
                error_description: sco is not assignable.
        '422':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                no_assign_or_release_targets_specified:
                  summary: No groups/users specified for assign or release
                  value:
                    error: wrong parameter.
                    error_description: any assign or release group_ids/group_codes/user_ids
                      are required.
                duplicate_in_assign_and_release:
                  summary: Same groups/users included in both assign and release
                  value:
                    error: wrong parameter.
                    error_description: duplicate group_ids/group_codes/user_ids in
                      assign and release.
                non_assignable_groups_or_users_included:
                  summary: Non-assignable groups/users are included
                  value:
                    error: wrong parameter.
                    error_description: some group_ids/group_codes/user_ids are not
                      assignable.
  /v1/job/status:
    post:
      security:
        - OAuth2: [sco.create]
        - OAuth2: [sco.update]
      tags:
        - sco
      summary: Check content creation status
      description: |
        Gets the creation status of content submitted via the Create or update content API.
        ### Required Permissions
        - Access Permissions Settings checkbox: Content > Add or Content > Update
        - Scope: `sco.create` or `sco.update`
      operationId: jobScoStatus
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - job_ids
              properties:
                job_ids:
                  type: array
                  items:
                    type: string
                  description: Array of job IDs (up to 2000)
                  minItems: 1
                  maxItems: 2000
                  example:
                    - 1234
                    - 5678
                    - 9012
                since_requested_at:
                  type: string
                  description: Start date/time for job request search (YYYY-MM-DD hh:mm:ss). Filters to requests on or after the specified date/time.
                  format: date-time
                  example: '2024-05-01 00:00:00'
                until_requested_at:
                  type: string
                  description: End date/time for job request search (YYYY-MM-DD hh:mm:ss). Filters to requests on or before the specified date/time.
                  format: date-time
                  example: '2024-05-01 23:59:59'
                statuses:
                  type: array
                  items:
                    type: string
                    enum:
                      - waiting
                      - in progress
                      - complete
                      - failed
                  description: Array specification of job progress status<br>waiting = Pending<br>in progress = Processing<br>complete = Completed<br>failed = Failed
                  example:
                    - waiting
                    - complete
                    - failed

      responses:
        '200':
          description: 'Success<br>

            Possible values for error_description when status = failed include the following.


            - file not uploaded.: The file upload did not complete within the URL expiration period

            - file infected.: The file is infected with a virus

            - parent_sco_code not found.: The content with the parent_sco_code specified at job registration does not exist (e.g., deleted between registration and content creation/update, or the sco_code was changed)

            - failed to move item to parent folder.: Content move failed (see the [how-to page](https://support.learningbox.online/en/how-to-use/move/) for details)'

          content:
            application/json:
              schema:
                type: object
                required:
                  - statuses
                properties:
                  statuses:
                    type: array
                    description: Array of job progress statuses
                    items:
                      type: object
                      required:
                        - job_id
                        - status
                        - detail
                      properties:
                        job_id:
                          type: integer
                          description: Job ID
                        status:
                          type: string
                          description: Job progress
                          enum:
                            - waiting
                            - in progress
                            - complete
                            - failed
                        detail:
                          type: [array, 'null']
                          description: Job execution result details (empty array when waiting/in progress, object when complete/failed)
                          items:
                            oneOf:
                              - type: object
                                description: Details when job is complete
                                required:
                                  - sco_id
                                  - sco_code
                                  - sco_title
                                properties:
                                  sco_id:
                                    type: integer
                                    description: Content Internal ID
                                    format: int32
                                  sco_code:
                                    type: string
                                    description: Content code
                                  sco_title:
                                    type: string
                                    description: Content title
                              - type: object
                                description: Details when job has failed
                                required:
                                  - error_description
                                properties:
                                  error_description:
                                    type: string
                                    description: Error details when the job has failed
                                    examples:
                                      - file not uploaded.
                                      - file infected.
                                      - parent_sco_code not found.
              example:
                statuses:
                  - job_id: 1234
                    status: waiting
                    detail: []
                  - job_id: 5678
                    status: complete
                    detail:
                      sco_id: 123456
                      sco_code: sco-uuid
                      sco_title: New Course
                  - job_id: 9012
                    status: failed
                    detail:
                      error_description: file not uploaded.
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                job_ids_not_specified:
                  summary: job_ids not specified
                  value:
                    error: wrong parameter.
                    error_description: job_ids is required.
                invalid_job_ids:
                  summary: Invalid job_ids
                  value:
                    error: wrong parameter.
                    error_description: Invalid job_ids.
                job_ids_count_exceeds_limit:
                  summary: job_ids count exceeds limit
                  value:
                    error: wrong parameter.
                    error_description: Too many job_ids.
                invalid_since_requested_at_value:
                  summary: Invalid since_requested_at value
                  value:
                    error: wrong parameter.
                    error_description: Invalid since_requested_at.
                invalid_until_requested_at_value:
                  summary: Invalid until_requested_at value
                  value:
                    error: wrong parameter.
                    error_description: Invalid until_requested_at.
                since_requested_at_is_after_until_requested_at:
                  summary: since_requested_at is after until_requested_at
                  value:
                    error: wrong parameter.
                    error_description: since_requested_at must be before until_requested_at.
                invalid_statuses_value:
                  summary: Invalid statuses value
                  value:
                    error: wrong parameter.
                    error_description: Invalid statuses.
      deprecated: false
      x-codegen-request-body-name: body
  /v1/result:
    post:
      security:
        - OAuth2: [result.read]
      tags:
        - result
      summary: List scores
      description: |
        Retrieves information managed in the grade management screen.
        ### Required Permissions
        - Access Permissions Settings checkbox: Grade > Read
        - Scope: `result.read`
      operationId: searchResultList
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                user_id:
                  type: integer
                  description: Search by User Internal ID
                  example: 100
                login:
                  type: string
                  description: Search by Login ID
                active_status:
                  type: string
                  description: User status (6:suspended 7:active 8:inactive. Score data for inactive users is returned only when the Customize plan or above is used and the inactive user setting is ON.)
                  default: 6,7
                group_id:
                  type: integer
                  description: Search by Group Internal ID (required when group_recursive=1)
                  example: 30
                group_recursive:
                  type: integer
                  description: In-group search flag. When 1, searches all groups including the specified group ID and its subordinate groups.
                  default: 0
                  example: 1
                sco_id:
                  type: integer
                  description: Search by Content Internal ID (required when sco_recursive=1)
                  example: 234
                sco_code:
                  type: string
                  description: Partial match search by content code
                sco_recursive:
                  type: integer
                  description: In-folder search flag. When flag is 1 and the specified sco_id is a folder, searches all sub-folders including the target folder and all content belonging to those folders.
                  default: 0
                  example: 1
                lesson_status:
                  type: string
                  description:
                    Completion status search (passed⇒passed, failed⇒failed, completed⇒completed,
                    in progress⇒incomplete, not started⇒not attempted, exempted⇒exempted) Multiple values can be specified with commas (no spaces needed)
                  example: passed,completed
                best_score_flag:
                  type: integer
                  description: Best score flag (0:all, 1:search only the highest score among scores for a specific content)
                  default: 0
                  example: 1
                start_date:
                  type: string
                  deprecated: true
                  description: 'Search for data on or after the specified date/time (Deprecated: use since_entry_date instead)'
                  format: date-time
                finish_date:
                  type: string
                  deprecated: true
                  description: 'Search for data on or before the specified date/time (Deprecated: use until_entry_date instead)'
                  format: date-time
                since_entry_date:
                  type: string
                  description: Search for data on or after the specified date/time
                  format: date-time
                  example: '2020-01-01 00:00:00'
                until_entry_date:
                  type: string
                  description: Search for data on or before the specified date/time
                  format: date-time
                  example: '2020-12-31 23:59:59'
                since_updated_date:
                  type: string
                  description: Search for data on or after the specified date/time
                  format: date-time
                until_updated_date:
                  type: string
                  description: Search for data on or before the specified date/time
                  format: date-time
                included:
                  type: integer
                  enum:
                    - 0
                    - 1
                  description: Progress on learning screen (0:exclude, 1:include, not specified:all)
                limit:
                  type: integer
                  description: Number of rows
                  default: 20
                offset:
                  type: integer
                  description: Starting row
                  default: 0
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                user_id:
                  type: integer
                  description: Search by User Internal ID
                  example: 100
                login:
                  type: string
                  description: Search by Login ID
                active_status:
                  type: string
                  description: User status (6:suspended 7:active 8:inactive. Score data for inactive users is returned only when the Customize plan or above is used and the inactive user setting is ON.)
                  default: 6,7
                group_id:
                  type: integer
                  description: Search by Group Internal ID (required when group_recursive=1)
                  example: 30
                group_recursive:
                  type: integer
                  description: In-group search flag. When 1, searches all groups including the specified group ID and its subordinate groups.
                  default: 0
                  example: 1
                sco_id:
                  type: integer
                  description: Search by Content Internal ID (required when sco_recursive=1)
                  example: 234
                sco_code:
                  type: string
                  description: Partial match search by content code
                sco_recursive:
                  type: integer
                  description: In-folder search flag. When flag is 1 and the specified sco_id is a folder, searches all sub-folders including the target folder and all content belonging to those folders.
                  default: 0
                  example: 1
                lesson_status:
                  type: string
                  description:
                    Completion status search (passed⇒passed, failed⇒failed, completed⇒completed,
                    in progress⇒incomplete, not started⇒not attempted, exempted⇒exempted) Multiple values can be specified with commas (no spaces needed)
                  example: passed,completed
                best_score_flag:
                  type: integer
                  description: Best score flag (0:all, 1:search only the highest score among scores for a specific content)
                  default: 0
                  example: 1
                start_date:
                  type: string
                  deprecated: true
                  description: 'Search for data on or after the specified date/time (Deprecated: use since_entry_date instead)'
                  format: date-time
                finish_date:
                  type: string
                  deprecated: true
                  description: 'Search for data on or before the specified date/time (Deprecated: use until_entry_date instead)'
                  format: date-time
                since_entry_date:
                  type: string
                  description: Search for data on or after the specified date/time
                  format: date-time
                  example: '2020-01-01 00:00:00'
                until_entry_date:
                  type: string
                  description: Search for data on or before the specified date/time
                  format: date-time
                  example: '2020-12-31 23:59:59'
                since_updated_date:
                  type: string
                  description: Search for data on or after the specified date/time
                  format: date-time
                until_updated_date:
                  type: string
                  description: Search for data on or before the specified date/time
                  format: date-time
                included:
                  type: integer
                  enum:
                    - 0
                    - 1
                  description: Progress on learning screen (0:exclude, 1:include, not specified:all)
                limit:
                  type: integer
                  description: Number of rows
                  default: 20
                offset:
                  type: integer
                  description: Starting row
                  default: 0
        required: false
      responses:
        '200':
          description: Success or Error Response
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ResultDetail'
                  - $ref: '#/components/schemas/ErrorResponse'
              examples:
                success:
                  summary: Success
                  value:
                    results:
                      - result_id: 1001
                        user_id: 2001
                        login: user-001
                        name: Yamada Taro
                        sco_id: '3001'
                        sco_code: 1b7c86cd-e910-11eb-a524-0698f151fb8c
                        title: Report Assignment
                        score: 0
                        lesson_status: completed
                        lesson_status_label: 回答完了
                        entry_date: '2020-08-27 10:18:30'
                        updated_at: null
                        duration: 22
                        session_time: 50
                        start_date: '2020-08-27 10:12:48'
                        finish_date: '2020-08-27 10:19:30'
                        kicked_at: null
                        groups:
                          - id: 3
                            name: Management Group
                          - id: 5
                            name: Sales Department
                    meta:
                      total: 1
                      limit: 20
                      offset: 0
                group_recursive_error:
                  summary: group_recursive specification error
                  value:
                    error: parameter incorrect.
                    error_description: '[group_recursive] must be 0 or 1.'
                sco_recursive_error:
                  summary: sco_recursive specification error
                  value:
                    error: parameter incorrect.
                    error_description: '[sco_recursive] must be 0 or 1.'
                lesson_status_error:
                  summary: lesson_status specification error
                  value:
                    error: parameter incorrect.
                    error_description: '[lesson_status] must be [passed,failed,completed,incomplete,not
                      attempted,exempted].'
                best_score_flag_error:
                  summary: best_score_flag specification error
                  value:
                    error: parameter incorrect.
                    error_description: '[best_score_flag] must be 0 or 1.'
                limit_error:
                  summary: limit specification error
                  value:
                    error: parameter incorrect.
                    error_description: '[limit] must be a number greater than 0.'
                offset_error:
                  summary: offset specification error
                  value:
                    error: parameter incorrect.
                    error_description: '[offset] must be a number greater than 0.'
                active_status_error:
                  summary: active_status specification error
                  value:
                    error: parameter incorrect.
                    error_description: '[active_status] must be [6, 7, 8].'
                start_date_error:
                  summary: start_date specification error (deprecated)
                  value:
                    error: parameter incorrect.
                    error_description: '[start_date] format(yyyy-mm-dd hh:mm:ss) not
                      correct.'
                finish_date_error:
                  summary: finish_date specification error (deprecated)
                  value:
                    error: parameter incorrect.
                    error_description: '[finish_date] format(yyyy-mm-dd hh:mm:ss)
                      not correct.'
  /v1/result/detail/{result_id}:
    post:
      security:
        - OAuth2: [result.read]
      tags:
        - result
      summary: Get score details
      description: |
        Retrieves information displayed on the score detail screen.
        ### Required Permissions
        - Access Permissions Settings checkbox: Grade > Read
        - Scope: `result.read`
      operationId: getResultDetail
      parameters:
        - name: result_id
          description: Score Internal ID
          in: path
          required: true
          schema:
            type: integer
          example: 555
      responses:
        '200':
          description: Success or Error Response
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ResultBaseResponse'
                  - $ref: '#/components/schemas/ErrorResponse'
              examples:
                success:
                  summary: Success
                  value:
                    result:
                      result_id: '3651'
                      user_id: 2
                      login: test-user
                      name: Test User
                      sco_id: '1756'
                      sco_code: QUIZ001
                      title: Math Quiz 2019
                      score: '100'
                      lesson_status: passed
                      lesson_status_label: 合格
                      entry_date: '2018-04-23 11:03:57'
                      duration: '50'
                      session_time: '61'
                      finish_date: '2018-04-23 11:05:01'
                      scoring_history: []
                      rubric_result:
                        - perspective: Business Communication
                          level: Excellent
                          score: 25
                        - perspective: Business Etiquette
                          level: Good
                          score: 17
                      groups:
                        - id: 3
                          name: Management Group
                        - id: 5
                          name: Sales Department
                    details:
                      - section_no: S001
                        question_no: q007
                        choice_no:
                          - 'choice-1.0_a'
                        type: fill-in
                        student_responce: Russia America Canada
                        correct_responce:
                          - pattern: 'Russia, Canada, America, USA'
                        result: correct
                        duration: 9
                        section_tag:
                          - Social Studies
                        item_tag:
                          - Geography
                          - World Geography
                        rubric_result: []
                      - section_no: S001
                        question_no: q002
                        choice_no:
                          - '2'
                        type: choice
                        student_responce: 'Shinano River, Tone River, Ishikari River, Teshio River'
                        correct_responce:
                          - pattern: 'Shinano River, Tone River, Ishikari River, Teshio River'
                        result: correct
                        duration: 26
                        section_tag:
                          - Social Studies
                        item_tag:
                          - Geography
                          - Japanese Geography
                        rubric_result: []
                      - section_no: S001
                        question_no: q003
                        choice_no: null
                        type: textarea-report
                        student_responce: 'A rubric is an evaluation standard.'
                        correct_responce:
                          - pattern: ''
                        result: sankaku
                        duration: 3
                        section_tag: []
                        item_tag: []
                        rubric_result:
                          - perspective: Neatness
                            level: Excellent
                            score: 50
                          - perspective: Accuracy
                            level: Good
                            score: 30
                with_grading_workflow:
                  summary: Success when using grading workflow
                  value:
                    result:
                      result_id: '136293'
                      user_id: 2
                      login: test-user
                      name: Test User
                      sco_id: '175204'
                      sco_code: QUIZ005
                      title: Quiz 2024
                      score: '100'
                      lesson_status: passed
                      lesson_status_label: 合格
                      entry_date: '2024-06-06 10:44:43'
                      duration: '42'
                      session_time: '21'
                      finish_date: '2024-06-06 10:45:06'
                      groups:
                        - id: 3
                          name: Management Group
                        - id: 5
                          name: Sales Department
                      scoring_history:
                        - user_id: 26473
                          user_login: test-26473
                          action_type: submitted
                          flow_step_type: null
                          flow_step_name: null
                          updated_flow_step_type: before_scoring
                          updated_flow_step_name: Approval 1
                          comment: null
                          action_date: '2024-06-07 08:52:18'
                        - user_id: 36253
                          user_login: test-36253
                          action_type: approved
                          flow_step_type: before_scoring
                          flow_step_name: Approval 1
                          updated_flow_step_type: before_scoring
                          updated_flow_step_name: Approval 2
                          comment: null
                          action_date: '2024-06-08 04:15:24'
                        - user_id: 2
                          user_login: test-2
                          action_type: approved
                          flow_step_type: before_scoring
                          flow_step_name: Approval 3
                          updated_flow_step_type: scoring
                          updated_flow_step_name: Score
                          comment: null
                          action_date: '2024-06-08 16:50:44'
                        - user_id: 3645
                          user_login: test-3645
                          action_type: completed_scoring
                          flow_step_type: scoring
                          flow_step_name: Score
                          updated_flow_step_type: after_scoring
                          updated_flow_step_name: Approval 1
                          comment: null
                          action_date: '2024-06-11 04:48:02'
                        - user_id: 15616
                          user_login: test-15616
                          action_type: approved
                          flow_step_type: after_scoring
                          flow_step_name: Approval 1
                          updated_flow_step_type: after_scoring
                          updated_flow_step_name: Approval 2
                          comment: null
                          action_date: '2024-06-11 23:36:09'
                        - user_id: 27386
                          user_login: test-27386
                          action_type: approved
                          flow_step_type: after_scoring
                          flow_step_name: Approval 2
                          updated_flow_step_type: after_scoring
                          updated_flow_step_name: Approval 3
                          comment: null
                          action_date: '2024-06-12 15:13:52'
                        - user_id: 32462
                          user_login: test-32462
                          action_type: approved
                          flow_step_type: after_scoring
                          flow_step_name: Approval 3
                          updated_flow_step_type: null
                          updated_flow_step_name: null
                          comment: null
                          action_date: '2024-06-12 21:30:32'
                    details:
                      - section_no: S001
                        question_no: q007
                        choice_no:
                          - '1'
                        type: fill-in
                        student_responce: Russia America Canada
                        correct_responce:
                          - pattern: 'Russia, Canada, America, USA'
                        result: correct
                        duration: 9
                        section_tag:
                          - Social Studies
                        item_tag:
                          - Geography
                          - World Geography
                      - section_no: S001
                        question_no: q002
                        choice_no:
                          - '2'
                        type: choice
                        student_responce: 'Shinano River, Tone River, Ishikari River, Teshio River'
                        correct_responce:
                          - pattern: 'Shinano River, Tone River, Ishikari River, Teshio River'
                        result: correct
                        duration: 26
                        section_tag:
                          - Social Studies
                        item_tag:
                          - Geography
                          - Japanese Geography
                result_id_error:
                  summary: result_id specification error
                  value:
                    error: result not found.
                    error_description: could not find result with id [123].
                anonymous_survey_error:
                  summary: Anonymous survey specification error
                  value:
                    error: The result is an anonymous survey
                    error_description: could not retrieve the result with id [10013]
                      because this result is an anonymous survey.
      deprecated: false
  /v1/result/advance-detail:
    post:
      security:
        - OAuth2: [result.read]
      tags:
        - result
      summary: Bulk get score details
      description: |
        Retrieves score information for specific users, including detailed answer data per question.
        ### Required Permissions
        - Access Permissions Settings checkbox: Grade > Read
        - Scope: `result.read`
      operationId: getResultAdvanceDetail
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - search_options
              properties:
                device_info:
                  type: boolean
                  description: 'Whether to retrieve device check results. true: retrieve, false: do not retrieve'
                  default: false
                  example: true
                include_detail:
                  type: boolean
                  description: 'Whether to retrieve answer data per question. true: retrieve, false: do not retrieve'
                  default: true
                include_unlink_contents:
                  type: boolean
                  description:
                    'Whether to retrieve content information and scores within a deleted linked course distributed from another owner.
                    true: retrieve, false: do not retrieve'
                  default: false
                score_type:
                  type: string
                  description: Target score type. best_score:highest score first obtained, last_score:most recent score, all_score:all scores
                  default: best_score
                  enum:
                    - best_score
                    - last_score
                    - all_score
                lesson_status:
                  type: array
                  description: |
                    Specify learning status as an array to search.
                    - browsed: Not started (SCORM status. Cannot be used as a search keyword)
                    - not attempted: Not started (Searching with not attempted returns unstarted results including browsed)
                    - incomplete: In progress
                    - completed: Completed / Answer submitted / Pending grading
                    - passed: Passed
                    - failed: Failed
                    - exempted: Exempted

                    "Unstarted results" refers to results explicitly stored as browsed or not attempted, as well as results where no records have been saved yet.

                    Note: If a status other than "not attempted" is specified for lesson_status, or if best_score_flag, start_date, or finish_date are used as additional search conditions, unstarted results will not be retrieved.
                  items:
                    type: string
                  enum:
                    - passed
                    - failed
                    - completed
                    - incomplete
                    - not attempted
                    - exempted
                  example:
                    - passed
                    - failed
                date_scope:
                  type: object
                  description: Search by date range
                  properties:
                    since_entry_date:
                      type: string
                      description: Search for data on or after the specified date/time
                      format: date-time
                      example: '2019-02-01 13:00:00'
                    until_entry_date:
                      type: string
                      description: Search for data on or before the specified date/time
                      format: date-time
                      example: '2020-02-01 13:00:00'
                    since_updated_date:
                      type: string
                      description: Search for data on or after the specified date/time
                      format: date-time
                      example: '2019-02-01 13:00:00'
                    until_updated_date:
                      type: string
                      description: Search for data on or before the specified date/time
                      format: date-time
                      example: '2020-02-01 13:00:00'
                included:
                  type: integer
                  enum:
                    - 0
                    - 1
                  description: 'Progress on learning screen (0:exclude, 1:include, not specified:all)'
                search_options:
                  type: array
                  description: |
                    Array of search criteria (required). Up to 10,000 items can be specified.
                    If there are many items, it is recommended to split them (e.g., 1,000 at a time) and call multiple times.
                    Either user_id or login is required for each element. If both are specified, user_id takes priority.
                    Also, either sco_ids or sco_codes is required for each element. If both are specified, sco_ids takes priority.
                  maxItems: 10000
                  items:
                    type: object
                    properties:
                      user_id:
                        type: integer
                        description: 'Either user_id or login is required. Search by user internal ID.'
                      login:
                        type: string
                        description: 'Either user_id or login is required. Search by login ID. Ignored if user_id is specified.'
                        example: user-001
                      sco_ids:
                        type: array
                        description: 'Either sco_ids or sco_codes is required. Search by content internal ID.'
                        items:
                          type: integer
                      sco_codes:
                        type: array
                        description: 'Either sco_ids or sco_codes is required. Partial match search by content code. Ignored if sco_ids is specified.'
                        items:
                          type: string
                        example:
                          - '21001'
                          - '22001'
                          - '23001'
                  example:
                    - login: unique000x000000000x000000000x00000001
                      sco_codes:
                        - '21001'
                        - '22001'
                        - '23001'
                    - login: unique000x000000000x000000000x00000002
                      sco_codes:
                        - '21001'
                        - '22001'
                        - '23001'
      responses:
        '200':
          description: Success Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultAdvanceDetailResponse'
              examples:
                device_info_true:
                  summary: Success when device_info is true
                  value:
                    result:
                      - user_id: 2001
                        login: user-001
                        name: Yamada Taro
                        sco_results:
                          - sco_id: '1001'
                            sco_code: 1b7c86cd-e910-11eb-a524-0698f151fb8c
                            title: Math
                            score: 0
                            lesson_status: not attempted
                            lesson_status_label: 未学習
                            entry_date: '2024-06-01 10:28:47'
                            duration: 0
                            session_time: 0
                            finish_date: '2024-06-01 10:33:47'
                            login_check_result:
                              user_os: Windows 10
                              user_browser: Chrome 92.0.4515.107
                              user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
                                (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36
                              entry_date: '2024-06-06 10:25:29'
                            check_result_details: []
                            details: []
                            scoring_history: []
                            rubric_result:
                              - perspective: Mathematical Ability
                                level: Excellent
                                score: 30
                              - perspective: Logical Thinking
                                level: Good
                                score: 20
                          - sco_id: '1002'
                            sco_code: null
                            error: not found.
                          - sco_id: null
                            sco_code: SCO_1003
                            error: not found.
                          - sco_id: '1004'
                            sco_code: 22001
                            title: Japanese
                            score: 87
                            lesson_status: passed
                            lesson_status_label: 合格
                            entry_date: '2024-06-01 10:30:55'
                            duration: 50
                            finish_date: '2024-06-01 10:33:47'
                            login_check_result:
                              user_os: Windows 10
                              user_browser: Chrome 92.0.4515.107
                              user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
                                (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36
                              entry_date: '2021-06-01 10:25:29'
                            check_result_details:
                              - check_type: speed
                                check_action: allow
                                check_condition: 20Mbps
                                check_result: 12Mbps
                                check_ok: true
                                entry_date: '2021-06-01 10:25:29'
                              - check_type: sound
                                check_action: forbidden
                                check_condition: null
                                check_result: null
                                check_ok: true
                                entry_date: '2021-06-01 10:25:29'
                            details:
                              - section_no: S001
                                question_no: 1
                                choice_no:
                                  - '1'
                                type: choice
                                student_response: Decline
                                correct_responses:
                                  - pattern: Decline
                                result: correct
                                latency: '00:00:09'
                                section_tag:
                                  - Modern Japanese/Knowledge
                                item_tag:
                                  - Vocabulary
                                  - Kanji
                                rubric_result: []
                              - section_no: S001
                                question_no: q002
                                choice_no:
                                  - '2'
                                type: choice
                                student_response: Change
                                correct_responses:
                                  - pattern: Transition
                                result: wrong
                                latency: '00:00:09'
                                section_tag:
                                  - Modern Japanese/Knowledge
                                item_tag:
                                  - Vocabulary
                                  - Kanji
                                rubric_result: []
                              - section_no: S001
                                question_no: q003
                                choice_no: null
                                type: textarea-report
                                student_response: 'A rubric is an evaluation standard.'
                                correct_responses:
                                  - pattern: ''
                                result: sankaku
                                latency: '00:00:03'
                                section_tag: []
                                item_tag: []
                                rubric_result:
                                  - perspective: Neatness
                                    level: Excellent
                                    score: 50
                                  - perspective: Accuracy
                                    level: Good
                                    score: 30
                            scoring_history:
                              - user_id: 26473
                                user_login: user-26473
                                action_type: submitted
                                flow_step_type: null
                                flow_step_name: null
                                updated_flow_step_type: before_scoring
                                updated_flow_step_name: Approval 1
                                comment: null
                                action_date: '2024-06-07 08:52:18'
                              - user_id: 36253
                                user_login: user-36253
                                action_type: approved
                                flow_step_type: before_scoring
                                flow_step_name: Approval 1
                                updated_flow_step_type: before_scoring
                                updated_flow_step_name: Approval 2
                                comment: null
                                action_date: '2024-06-08 01:05:51'
                              - user_id: 74524
                                user_login: user-74524
                                action_type: approved
                                flow_step_type: before_scoring
                                flow_step_name: Approval 2
                                updated_flow_step_type: before_scoring
                                updated_flow_step_name: Approval 3
                                comment: null
                                action_date: '2024-06-08 04:15:24'
                              - user_id: 34675
                                user_login: user-34675
                                action_type: approved
                                flow_step_type: before_scoring
                                flow_step_name: Approval 3
                                updated_flow_step_type: scoring
                                updated_flow_step_name: Score
                                comment: null
                                action_date: '2024-06-08 16:50:44'
                              - user_id: 36451
                                user_login: user-36451
                                action_type: completed_scoring
                                flow_step_type: scoring
                                flow_step_name: Score
                                updated_flow_step_type: after_scoring
                                updated_flow_step_name: Approval 1
                                comment: null
                                action_date: '2024-06-11 04:48:02'
                              - user_id: 27386
                                user_login: user-27386
                                action_type: approved
                                flow_step_type: after_scoring
                                flow_step_name: Approval 1
                                updated_flow_step_type: after_scoring
                                updated_flow_step_name: Approval 2
                                comment: null
                                action_date: '2024-06-11 23:36:09'
                              - user_id: 32462
                                user_login: user-32462
                                action_type: approved
                                flow_step_type: after_scoring
                                flow_step_name: Approval 2
                                updated_flow_step_type: after_scoring
                                updated_flow_step_name: Approval 3
                                comment: null
                                action_date: '2024-06-12 15:13:52'
                              - user_id: 15616
                                user_login: user-15616
                                action_type: approved
                                flow_step_type: after_scoring
                                flow_step_name: Approval 3
                                updated_flow_step_type: null
                                updated_flow_step_name: null
                                comment: null
                                action_date: '2024-06-12 21:30:32'
                      - user_id: null
                        login: test
                        error: not found.
                      - user_id: 99
                        login: null
                        error: not found.
                device_info_false:
                  summary: Success when device_info is false
                  value:
                    result:
                      - user_id: 2001
                        login: user-001
                        name: Yamada Taro
                        sco_results:
                          - sco_id: '1001'
                            sco_code: 1b7c86cd-e910-11eb-a524-0698f151fb8c
                            title: Math
                            score: 0
                            lesson_status: not attempted
                            lesson_status_label: 未学習
                            entry_date: '2024-06-01 10:28:47'
                            duration: 0
                            session_time: 0
                            details: []
                          - sco_id: '1002'
                            sco_code: null
                            error: not found.
                          - sco_id: null
                            sco_code: SCO_1003
                            error: not found.
                          - sco_id: '1004'
                            sco_code: 22001
                            title: Japanese
                            score: 87
                            lesson_status: passed
                            lesson_status_label: 合格
                            entry_date: '2024-06-01 10:30:55'
                            duration: 50
                            finish_date: '2024-06-01 10:33:47'
                            session_time: null
                            details:
                              - section_no: S001
                                question_no: 1
                                choice_no:
                                  - '1'
                                type: choice
                                student_response: Decline
                                correct_responses:
                                  - pattern: Decline
                                result: correct
                                latency: '00:00:09'
                                section_tag:
                                  - Modern Japanese/Knowledge
                                item_tag:
                                  - Vocabulary
                                  - Kanji
                              - section_no: S001
                                question_no: q002
                                choice_no:
                                  - '2'
                                type: choice
                                student_response: Change
                                correct_responses:
                                  - pattern: Transition
                                result: wrong
                                latency: '00:00:09'
                                section_tag:
                                  - Modern Japanese/Knowledge
                                item_tag:
                                  - Vocabulary
                                  - Kanji
                            scoring_history:
                              - user_id: 26473
                                user_login: user-26473
                                action_type: submitted
                                flow_step_type: null
                                flow_step_name: null
                                updated_flow_step_type: before_scoring
                                updated_flow_step_name: Approval 1
                                comment: null
                                action_date: '2024-06-07 08:52:18'
                              - user_id: 36253
                                user_login: user-36253
                                action_type: approved
                                flow_step_type: before_scoring
                                flow_step_name: Approval 1
                                updated_flow_step_type: before_scoring
                                updated_flow_step_name: Approval 2
                                comment: null
                                action_date: '2024-06-08 01:05:51'
                              - user_id: 74524
                                user_login: user-74524
                                action_type: approved
                                flow_step_type: before_scoring
                                flow_step_name: Approval 2
                                updated_flow_step_type: before_scoring
                                updated_flow_step_name: Approval 3
                                comment: null
                                action_date: '2024-06-08 04:15:24'
                              - user_id: 34675
                                user_login: user-34675
                                action_type: approved
                                flow_step_type: before_scoring
                                flow_step_name: Approval 3
                                updated_flow_step_type: scoring
                                updated_flow_step_name: Score
                                comment: null
                                action_date: '2024-06-08 16:50:44'
                              - user_id: 36451
                                user_login: user-36451
                                action_type: completed_scoring
                                flow_step_type: scoring
                                flow_step_name: Score
                                updated_flow_step_type: after_scoring
                                updated_flow_step_name: Approval 1
                                comment: null
                                action_date: '2024-06-11 04:48:02'
                              - user_id: 27386
                                user_login: user-27386
                                action_type: approved
                                flow_step_type: after_scoring
                                flow_step_name: Approval 1
                                updated_flow_step_type: after_scoring
                                updated_flow_step_name: Approval 2
                                comment: null
                                action_date: '2024-06-11 23:36:09'
                              - user_id: 32462
                                user_login: user-32462
                                action_type: approved
                                flow_step_type: after_scoring
                                flow_step_name: Approval 2
                                updated_flow_step_type: after_scoring
                                updated_flow_step_name: Approval 3
                                comment: null
                                action_date: '2024-06-12 15:13:52'
                              - user_id: 15616
                                user_login: user-15616
                                action_type: approved
                                flow_step_type: after_scoring
                                flow_step_name: Approval 3
                                updated_flow_step_type: null
                                updated_flow_step_name: null
                                comment: null
                                action_date: '2024-06-12 21:30:32'
                      - user_id: null
                        login: test
                        error: not found.
                      - user_id: 99
                        login: null
                        error: not found.
        '400':
          description: Error
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ErrorResponse_for_ResultAdvanceDetail'
                  - $ref: '#/components/schemas/ErrorResponse'
              examples:
                search_options_not_specified:
                  summary: search_options not specified
                  value:
                    error: wrong_parameter
                    error_description: Search options is empty.
                search_options_count_exceeded:
                  summary: search_options count exceeded
                  value:
                    error: wrong_parameter
                    error_description: Search options should be less than 10000.
                score_type_error:
                  summary: score_type specification error
                  value:
                    error: wrong_parameter
                    error_description: '[score_type] should be [best_score,last_score,all_score].'
                search_options_error:
                  summary: search_options specification error
                  value:
                    error: wrong_parameter
                    error_description: Search options is incorrect.
                    error_items:
                      - index: 99
                        error_details:
                          - user_id or login is necessary.
                          - sco_ids or sco_codes is necessary.
                before_created_at_error:
                  summary: before_created_at specification error
                  value:
                    error: wrong_parameter
                    error_description: '[before_created_at] format(yyyy-mm-dd hh:mm:ss)
                      is incorrect.'
                lesson_status_error:
                  summary: lesson_status specification error
                  value:
                    error: wrong_parameter
                    error_description: '[lesson_status] must be [passed,failed,completed,incomplete,not
                      attempted,exempted].'
      deprecated: false
  /v1/user/list:
    post:
      security:
        - OAuth2: [user.read]
      tags:
        - user
      summary: List users
      description: |
        Retrieves user information managed in the user management screen.
        ### Required Permissions
        - Access Permissions Settings checkbox: User > Read
        - Scope: `user.read`
      operationId: searchUserList
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                keyword:
                  type: string
                  description: "Fuzzy search by arbitrary string.

                    Searchable fields: 'name', 'login', 'email', 'nickname', 'department',
                    'position'"
                group_id:
                  type: integer
                group_code:
                  type: string
                since_created_at:
                  type: string
                until_created_at:
                  type: string
                since_updated_at:
                  type: string
                until_updated_at:
                  type: string
                limit:
                  type: integer
                  default: 20
                  description: 'Number of rows to return per search. Defaults to 20 if not specified. Specify 0 to return all rows.'
                offset:
                  type: integer
            example:
              keyword: 'user'
              since_created_at: '2017-01-01 00:00:00'
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                keyword:
                  type: string
                  description: "Fuzzy search by arbitrary string.

                    Searchable fields: 'name', 'login', 'email', 'nickname', 'department',
                    'position'"
                group_id:
                  type: integer
                group_code:
                  type: string
                since_created_at:
                  type: string
                until_created_at:
                  type: string
                since_updated_at:
                  type: string
                until_updated_at:
                  type: string
                limit:
                  type: integer
                  description: 'Number of rows to return per request. Defaults to 20 if not specified. Specify 0 to return all rows.'
                offset:
                  type: integer
        required: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserListResponse'
              example:
                results:
                  - user_id: 2
                    active_status: 7
                    active_status_label: 有効
                    login: admin
                    name: Environment Administrator
                    nickname: Environment Administrator
                    department: Development
                    position: Manager
                    email: apitest@example.com
                    lms_country: Japan
                    lms_language: ja_JP
                    lms_timezone: Asia/Tokyo
                    lms_date_format: YYYY/M/D
                    lms_time_format: H:mm:ss
                    created_at: '2017-06-07 08:31:47'
                    updated_at: '2017-06-07 09:35:00'
                    receive_notice_mail: 1
                  - user_id: 4
                    active_status: 7
                    active_status_label: 有効
                    login: user_4
                    name: Learner 4
                    nickname: Learner 4
                    department: Development
                    position: Section Chief
                    email: apitest_user4@example.com
                    lms_country: null
                    lms_language: null
                    lms_timezone: null
                    lms_date_format: DD/MMM/YYYY
                    lms_time_format: hh:mm:ss a
                    created_at: '2017-06-07 08:31:47'
                    updated_at: '2017-06-07 09:35:00'
                    receive_notice_mail: 0
                meta:
                  total: 2236
                  limit: 20
                  offset: 0
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error: parameter incorrect.
                error_description: '[before_created_at] format(yyyy-mm-dd hh:mm:ss) is incorrect.'
      deprecated: false
      x-codegen-request-body-name: body
  /v1/user/detail/{login}:
    post:
      security:
        - OAuth2: [user.read]
      tags:
        - user
      summary: Get user details
      description: |
        Retrieves detailed information for a specific user.
        ### Required Permissions
        - Access Permissions Settings checkbox: User > Read
        - Scope: `user.read`
      operationId: getUserDetail
      parameters:
        - name: login
          in: path
          description: Login ID
          required: true
          schema:
            type: string
            minLength: 5
            maxLength: 50
          example: 'test-user'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserDetail'
              example:
                result:
                  user_id: 2
                  active_status: 7
                  active_status_label: 有効
                  login: admin
                  name: Environment Administrator
                  nickname: Environment Administrator
                  department: Development
                  position: Manager
                  email: apitest@example.com
                  lms_country: Japan
                  lms_language: ja_JP
                  lms_timezone: Asia/Tokyo
                  lms_date_format: YYYY/M/D
                  lms_time_format: H:mm:ss
                  created_at: '2017-06-07 08:31:47'
                  updated_at: '2017-06-07 09:35:00'
                  receive_notice_mail: 1
                  groups:
                    - id: 9
                      name: Grade 1
                      group_code: g9
                      user_limit: null
                    - id: 51
                      name: Training 3
                      group_code: g51
                      product_id: 55
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                unexpected_error:
                  summary: Unexpected Error
                  value:
                    error: unknown
                    error_description: '{error message}'
                login_id_not_specified:
                  summary: Login ID not specified
                  value:
                    error: wrong_parameter
                    error_description: Login ID could not be empty.
                user_not_found:
                  summary: User not found
                  value:
                    error: not_exists
                    error_description: User does not exist.
      deprecated: false
  /v1/user/create:
    post:
      security:
        - OAuth2: [user.create]
      tags:
        - user
      summary: Create user
      description: |
        Creates a new user.

        ## Input Field Settings
        Whether each field is required or optional, and whether it is shown or hidden, follows the input field settings.
        - Fields set to "Required" in the input field settings are also required in the API.
        - Fields set to disabled (hidden) in the input field settings are ignored even if specified.

        ### When Email Address Becomes Required
        In addition to being set to "Required" in the input field settings, the email address is automatically required in any of the following cases.
        - The content sales feature or member registration feature is enabled
        - The login ID is hidden (auto-assigned)

        ## Custom Fields
        You can set custom field values by specifying keys other than standard fields in the request body.
        - **Key**: The physical name of the custom field (field name defined in the input field settings screen)
        - **Value**: Specify as string type
        - Example: `{"custom_field_key": "value", "another_field": "another_value"}`

        ### Checkbox-type Fields
        When setting multiple values, specify in array format.
        - **JSON**: `{"hobby": ["fishing", "movies"]}`
        - **Form**: `hobby[]=fishing&hobby[]=movies`

        ### Validation per Field Type
        - **Text / Text area**: Character limit applies (depends on field definition)
        - **Date**: Follows the format specified in the field definition (Y-m-d/e.g. `YYYY-MM-DD`, j-f-Y/e.g. `dd-February-YYYY`)
        - **Number**: Integer value (depends on field definition)
        - **Pull-down menu**: Only defined option values are valid

        ### About Non-editable Fields
        Fields set to "Readonly: On" in the input field settings screen can still be updated via the API.

        ### Required Permissions
        - Access Permissions Settings checkbox: User > Add
        - Scope: `user.create`
      operationId: createUser
      requestBody:
        content:
          application/json:
            schema:
              required:
                - login
              type: object
              properties:
                login:
                  minLength: 5
                  maxLength: 50
                  type: string
                  description: Login ID
                  example: 'user01'
                email:
                  maxLength: 255
                  type: string
                  description: Email address
                  format: email
                name:
                  type: string
                  description: name
                  example: 'Test Taro'
                nickname:
                  type: string
                  description: display name
                password:
                  type: string
                  description: Password
                department:
                  type: string
                  description: department
                position:
                  type: string
                  description: job title
                lms_country:
                  type: string
                  description: |
                    Country/region of residence. Specify the country name in English.
                    Allowed values: Japan, Afghanistan, Albania, Algeria, Andorra, Angola, AntiguaAndBarbuda, Argentina, Armenia, Australia, Austria, Azerbaijan, Bahamas, Bahrain, Bangladesh, Barbados, Belarus, Belgium, Belize, Benin, Bhutan, Bolivia, BosniaAndHerzegovina, Botswana, Brazil, BruneiDarussalam, Bulgaria, BurkinaFaso, Burundi, CaboVerde, Cambodia, Cameroon, Canada, CentralAfricanRepublic, Chad, Chile, China, Colombia, Comoros, Congo, CostaRica, CoteD'Ivoire, Croatia, Cuba, Cyprus, CzechRepublic, DemocraticPeople'sRepublicOfKorea, DemocraticRepublicOfTheCongo, Denmark, Djibouti, Dominica, DominicanRepublic, Ecuador, Egypt, ElSalvador, EquatorialGuinea, Eritrea, Estonia, Eswatini, Ethiopia, Fiji, Finland, France, Gabon, Gambia, Georgia, Germany, Ghana, Greece, Grenada, Guatemala, Guinea, GuineaBissau, Guyana, Haiti, Honduras, Hungary, Iceland, India, Indonesia, Iran, Iraq, Ireland, Israel, Italy, Jamaica, Jordan, Kazakhstan, Kenya, Kiribati, Kuwait, Kyrgyzstan, LaoPeople'sDemocraticRepublic, Latvia, Lebanon, Lesotho, Liberia, Libya, Liechtenstein, Lithuania, Luxembourg, Madagascar, Malawi, Malaysia, Maldives, Mali, Malta, MarshallIslands, Mauritania, Mauritius, Mexico, Micronesia, Monaco, Mongolia, Montenegro, Morocco, Mozambique, Myanmar, Namibia, Nauru, Nepal, Netherlands, NewZealand, Nicaragua, Niger, Nigeria, NorthMacedonia, Norway, Oman, Pakistan, Palau, Panama, PapuaNewGuinea, Paraguay, Peru, Philippines, Poland, Portugal, Qatar, RepublicOfKorea, RepublicOfMoldova, Romania, RussianFederation, Rwanda, SaintKittsAndNevis, SaintLucia, SaintVincentAndTheGrenadines, Samoa, SanMarino, SaoTomeAndPrincipe, SaudiArabia, Senegal, Serbia, Seychelles, SierraLeone, Singapore, Slovakia, Slovenia, SolomonIslands, Somalia, SouthAfrica, SouthSudan, Spain, SriLanka, Sudan, Suriname, Sweden, Switzerland, SyrianArabRepublic, Tajikistan, Thailand, Timor-Leste, Togo, Tonga, TrinidadAndTobago, Tunisia, Turkey, Turkmenistan, Tuvalu, Uganda, Ukraine, UnitedArabEmirates, UnitedKingdomOfGreatBritainAndNorthernIreland, UnitedRepublicOfTanzania, UnitedStatesOfAmerica, Uruguay, Uzbekistan, Vanuatu, Venezuela, VietNam, Yemen, Zambia, Zimbabwe
                lms_language:
                  type: string
                  description: |
                    Language. Specify using a locale code.
                    Allowed values: ja_JP (Japanese), en_US (English), vi_VN (Vietnamese), id_ID (Indonesian), de_DE (German), es_ES (Spanish), fr_FR (French), my_MM (Burmese), pt_PT (Portuguese), tl_PH (Tagalog), ru_RU (Russian), ur_PK (Urdu), hi_IN (Hindi), th_TH (Thai), km_KH (Khmer), zh_CN (Simplified Chinese), zh_TW (Traditional Chinese), ko_KR (Korean)
                lms_timezone:
                  type: string
                  description: |
                    Timezone. Specify using an IANA timezone identifier.
                    Allowed values: Asia/Tokyo, Europe/Budapest, Africa/Lagos, Europe/Amsterdam, Europe/Paris, Africa/Windhoek, Africa/Harare, Europe/Helsinki, Europe/Sofia, Africa/Cairo, Europe/Bucharest, Asia/Jerusalem, Asia/Amman, Asia/Beirut, Asia/Damascus, Europe/Istanbul, Asia/Kuwait, Europe/Minsk, Africa/Nairobi, Asia/Baghdad, Europe/Moscow, Asia/Tehran, Asia/Yerevan, Asia/Baku, Asia/Tbilisi, Asia/Kabul, Asia/Ashgabat, Asia/Karachi, Asia/Kolkata, Asia/Colombo, Asia/Kathmandu, Asia/Dhaka, Asia/Yangon, Asia/Bangkok, Asia/Singapore, Asia/Taipei, Asia/Hong_Kong, Asia/Shanghai, Asia/Macau, Asia/Ulaanbaatar, Asia/Seoul, Australia/Melbourne, Pacific/Guam, Pacific/Noumea, Pacific/Auckland, Pacific/Apia, America/Argentina/Buenos_Aires, America/Sao_Paulo, America/Santiago, America/Cayenne, America/Montevideo, America/Manaus, America/Asuncion, America/Bogota, America/Mexico_City, America/Phoenix, America/Vancouver, Pacific/Honolulu, UTC
                lms_date_format:
                  type: string
                  description: Date format
                lms_time_format:
                  type: string
                  description: Time format
                active_status:
                  type: integer
                  description: 'Status and label

                    6:Suspended

                    7:Active

                    8:Inactive'
                send_mail:
                  maximum: 1
                  minimum: 0
                  type: integer
                  description: Whether to send an invitation email
                receive_notice_mail:
                  maximum: 1
                  minimum: 0
                  type: integer
                  description: 'Receive notification emails for published announcements.
                    0:Do not receive
                    1:Receive'
              additionalProperties:
                oneOf:
                  - type: string
                    description: 'Custom field: value for text, date, number, or select type fields'
                  - type: array
                    items:
                      type: string
                    description: 'Custom field: value for checkbox type fields (multiple selection)'
              example:
                login: 'user01'
                name: 'Test Taro'
                password: 'SecurePassword123!'
                email: 'user@example.com'
                department: 'Sales'
                custom_division: 'Tokyo Sales Office'
                hobby:
                  - 'fishing'
                  - 'movies'
          application/x-www-form-urlencoded:
            schema:
              required:
                - login
              type: object
              properties:
                login:
                  minLength: 5
                  maxLength: 50
                  type: string
                  description: Login ID
                email:
                  maxLength: 255
                  type: string
                  description: Email address
                  format: email
                name:
                  type: string
                  description: name
                nickname:
                  type: string
                  description: display name
                password:
                  type: string
                  description: Password
                department:
                  type: string
                  description: department
                position:
                  type: string
                  description: job title
                lms_country:
                  type: string
                  description: |
                    Country/region of residence. Specify the country name in English.
                    Allowed values: Japan, Afghanistan, Albania, Algeria, Andorra, Angola, AntiguaAndBarbuda, Argentina, Armenia, Australia, Austria, Azerbaijan, Bahamas, Bahrain, Bangladesh, Barbados, Belarus, Belgium, Belize, Benin, Bhutan, Bolivia, BosniaAndHerzegovina, Botswana, Brazil, BruneiDarussalam, Bulgaria, BurkinaFaso, Burundi, CaboVerde, Cambodia, Cameroon, Canada, CentralAfricanRepublic, Chad, Chile, China, Colombia, Comoros, Congo, CostaRica, CoteD'Ivoire, Croatia, Cuba, Cyprus, CzechRepublic, DemocraticPeople'sRepublicOfKorea, DemocraticRepublicOfTheCongo, Denmark, Djibouti, Dominica, DominicanRepublic, Ecuador, Egypt, ElSalvador, EquatorialGuinea, Eritrea, Estonia, Eswatini, Ethiopia, Fiji, Finland, France, Gabon, Gambia, Georgia, Germany, Ghana, Greece, Grenada, Guatemala, Guinea, GuineaBissau, Guyana, Haiti, Honduras, Hungary, Iceland, India, Indonesia, Iran, Iraq, Ireland, Israel, Italy, Jamaica, Jordan, Kazakhstan, Kenya, Kiribati, Kuwait, Kyrgyzstan, LaoPeople'sDemocraticRepublic, Latvia, Lebanon, Lesotho, Liberia, Libya, Liechtenstein, Lithuania, Luxembourg, Madagascar, Malawi, Malaysia, Maldives, Mali, Malta, MarshallIslands, Mauritania, Mauritius, Mexico, Micronesia, Monaco, Mongolia, Montenegro, Morocco, Mozambique, Myanmar, Namibia, Nauru, Nepal, Netherlands, NewZealand, Nicaragua, Niger, Nigeria, NorthMacedonia, Norway, Oman, Pakistan, Palau, Panama, PapuaNewGuinea, Paraguay, Peru, Philippines, Poland, Portugal, Qatar, RepublicOfKorea, RepublicOfMoldova, Romania, RussianFederation, Rwanda, SaintKittsAndNevis, SaintLucia, SaintVincentAndTheGrenadines, Samoa, SanMarino, SaoTomeAndPrincipe, SaudiArabia, Senegal, Serbia, Seychelles, SierraLeone, Singapore, Slovakia, Slovenia, SolomonIslands, Somalia, SouthAfrica, SouthSudan, Spain, SriLanka, Sudan, Suriname, Sweden, Switzerland, SyrianArabRepublic, Tajikistan, Thailand, Timor-Leste, Togo, Tonga, TrinidadAndTobago, Tunisia, Turkey, Turkmenistan, Tuvalu, Uganda, Ukraine, UnitedArabEmirates, UnitedKingdomOfGreatBritainAndNorthernIreland, UnitedRepublicOfTanzania, UnitedStatesOfAmerica, Uruguay, Uzbekistan, Vanuatu, Venezuela, VietNam, Yemen, Zambia, Zimbabwe
                lms_language:
                  type: string
                  description: |
                    Language. Specify using a locale code.
                    Allowed values: ja_JP (Japanese), en_US (English), vi_VN (Vietnamese), id_ID (Indonesian), de_DE (German), es_ES (Spanish), fr_FR (French), my_MM (Burmese), pt_PT (Portuguese), tl_PH (Tagalog), ru_RU (Russian), ur_PK (Urdu), hi_IN (Hindi), th_TH (Thai), km_KH (Khmer), zh_CN (Simplified Chinese), zh_TW (Traditional Chinese), ko_KR (Korean)
                lms_timezone:
                  type: string
                  description: |
                    Timezone. Specify using an IANA timezone identifier.
                    Allowed values: Asia/Tokyo, Europe/Budapest, Africa/Lagos, Europe/Amsterdam, Europe/Paris, Africa/Windhoek, Africa/Harare, Europe/Helsinki, Europe/Sofia, Africa/Cairo, Europe/Bucharest, Asia/Jerusalem, Asia/Amman, Asia/Beirut, Asia/Damascus, Europe/Istanbul, Asia/Kuwait, Europe/Minsk, Africa/Nairobi, Asia/Baghdad, Europe/Moscow, Asia/Tehran, Asia/Yerevan, Asia/Baku, Asia/Tbilisi, Asia/Kabul, Asia/Ashgabat, Asia/Karachi, Asia/Kolkata, Asia/Colombo, Asia/Kathmandu, Asia/Dhaka, Asia/Yangon, Asia/Bangkok, Asia/Singapore, Asia/Taipei, Asia/Hong_Kong, Asia/Shanghai, Asia/Macau, Asia/Ulaanbaatar, Asia/Seoul, Australia/Melbourne, Pacific/Guam, Pacific/Noumea, Pacific/Auckland, Pacific/Apia, America/Argentina/Buenos_Aires, America/Sao_Paulo, America/Santiago, America/Cayenne, America/Montevideo, America/Manaus, America/Asuncion, America/Bogota, America/Mexico_City, America/Phoenix, America/Vancouver, Pacific/Honolulu, UTC
                lms_date_format:
                  type: string
                  description: Date format
                lms_time_format:
                  type: string
                  description: Time format
                active_status:
                  type: integer
                  description: 'Status and label

                    6:Suspended

                    7:Active

                    8:Inactive'
                send_mail:
                  maximum: 1
                  minimum: 0
                  type: integer
                  description: Whether to send an invitation email
                receive_notice_mail:
                  maximum: 1
                  minimum: 0
                  type: integer
                  description: 'Receive notification emails for published announcements.

                    0:Do not receive

                    1:Receive'
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserCreateResponse'
              example:
                result:
                  user_id: 32
                  login: test-user
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                unexpected_error:
                  summary: Unexpected Error
                  value:
                    error: unknown
                    error_description: '{error message}'
                addition_limit_exceeded:
                  summary: Addition limit exceeded
                  value:
                    error: deny
                    error_description: User registration failed because the user limit has been reached.
        '422':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_user'
              example:
                send_mail:
                  - 入力内容が正しくありません。
                login:
                  - ログインIDを入力してください。
                email:
                  - E-mailアドレスが正しくありません。
      deprecated: false
      x-codegen-request-body-name: body
  /v1/user/update/{login}:
    post:
      security:
        - OAuth2: [user.update]
      tags:
        - user
      summary: Update user
      description: |
        Updates detailed information for a specific user.

        ## Partial Update (PATCH equivalent)
        Specify the target user with path parameter `{login}`, and only the fields included in the body will be updated.

        ## Relationship Between Path Parameter and Body Parameter
        - **Path parameter `{login}`**: The current Login ID of the user to update (required)
        - **Body `login`**: Specify when changing to a new Login ID (omit to leave unchanged)

        ## Input Field Settings
        Whether each field is required or optional, and whether it is shown or hidden, follows the input field settings.
        - Even fields set to "Required" in the input field settings **will not cause an error if omitted from the request**. An error occurs only when a required field is sent with an empty value.
        - Fields set to disabled (hidden) in the input field settings are ignored even if specified.

        ### When Email Address Becomes Required
        In addition to being set to "Required" in the input field settings, the email address is automatically required in any of the following cases.
        - The content sales feature or member registration feature is enabled
        - The login ID is hidden (auto-assigned)

        ## Custom Fields
        You can set custom field values by specifying keys other than standard fields in the request body.
        - **Key**: The physical name of the custom field (field name defined in the input field settings screen)
        - **Value**: Specify as string type
        - Example: `{"custom_field_key": "value", "another_field": "another_value"}`


        ### Checkbox-type Fields
        When setting multiple values, specify in array format. Sending an empty string clears the registered content.
        - **JSON**: `{"hobby": ["fishing", "movies"]}`  Clear registered content: `{"hobby": ""}`
        - **Form**: `hobby[]=fishing&hobby[]=movies`  Clear registered content: `hobby=`


        ### Validation per Field Type
        - **Text / Text area**: Character limit applies (depends on field definition)
        - **Date**: Follows the format specified in the field definition (Y-m-d/e.g. `YYYY-MM-DD`, j-f-Y/e.g. `dd-February-YYYY`)
        - **Number**: Integer value (depends on field definition)
        - **Pull-down menu**: Only defined option values are valid

        ### About Non-editable Fields
        Fields set to "Readonly: On" in the input field settings screen can still be updated via the API.

        ### Required Permissions
        - Access Permissions Settings checkbox: User > Update
        - Scope: `user.update`
      operationId: updateUser
      parameters:
        - name: login
          in: path
          description: The Login ID of the user to update (required). Specify the target using this path parameter.
          required: true
          schema:
            type: string
            minLength: 5
            maxLength: 50
          example: 'test-user'
      requestBody:
        description: |
          Partial update object. Only the fields included in the body will be updated.
          - Specify the target using path parameter `{login}`.
          - If body.login is specified, it is applied as the "updated Login ID" (omit to leave unchanged).
          - Custom fields can be specified by their respective field keys.
        content:
          application/json:
            schema:
              type: object
              properties:
                login:
                  minLength: 5
                  maxLength: 50
                  type: string
                  description: Updated Login ID. If login parameter is provided, it will overwrite with the provided login parameter.
                email:
                  maxLength: 255
                  type: string
                  description: Email address
                  format: email
                name:
                  type: string
                  description: name
                nickname:
                  type: string
                  description: display name
                password:
                  type: string
                  description: Password. Will not be updated if password is not provided.
                department:
                  type: string
                  description: department
                position:
                  type: string
                  description: position
                lms_country:
                  type: string
                  description: |
                    Country/region of residence
                    Specify the country name in English.
                    Allowed values: Japan, Afghanistan, Albania, Algeria, Andorra, Angola, AntiguaAndBarbuda, Argentina, Armenia, Australia, Austria, Azerbaijan, Bahamas, Bahrain, Bangladesh, Barbados, Belarus, Belgium, Belize, Benin, Bhutan, Bolivia, BosniaAndHerzegovina, Botswana, Brazil, BruneiDarussalam, Bulgaria, BurkinaFaso, Burundi, CaboVerde, Cambodia, Cameroon, Canada, CentralAfricanRepublic, Chad, Chile, China, Colombia, Comoros, Congo, CostaRica, CoteD'Ivoire, Croatia, Cuba, Cyprus, CzechRepublic, DemocraticPeople'sRepublicOfKorea, DemocraticRepublicOfTheCongo, Denmark, Djibouti, Dominica, DominicanRepublic, Ecuador, Egypt, ElSalvador, EquatorialGuinea, Eritrea, Estonia, Eswatini, Ethiopia, Fiji, Finland, France, Gabon, Gambia, Georgia, Germany, Ghana, Greece, Grenada, Guatemala, Guinea, GuineaBissau, Guyana, Haiti, Honduras, Hungary, Iceland, India, Indonesia, Iran, Iraq, Ireland, Israel, Italy, Jamaica, Jordan, Kazakhstan, Kenya, Kiribati, Kuwait, Kyrgyzstan, LaoPeople'sDemocraticRepublic, Latvia, Lebanon, Lesotho, Liberia, Libya, Liechtenstein, Lithuania, Luxembourg, Madagascar, Malawi, Malaysia, Maldives, Mali, Malta, MarshallIslands, Mauritania, Mauritius, Mexico, Micronesia, Monaco, Mongolia, Montenegro, Morocco, Mozambique, Myanmar, Namibia, Nauru, Nepal, Netherlands, NewZealand, Nicaragua, Niger, Nigeria, NorthMacedonia, Norway, Oman, Pakistan, Palau, Panama, PapuaNewGuinea, Paraguay, Peru, Philippines, Poland, Portugal, Qatar, RepublicOfKorea, RepublicOfMoldova, Romania, RussianFederation, Rwanda, SaintKittsAndNevis, SaintLucia, SaintVincentAndTheGrenadines, Samoa, SanMarino, SaoTomeAndPrincipe, SaudiArabia, Senegal, Serbia, Seychelles, SierraLeone, Singapore, Slovakia, Slovenia, SolomonIslands, Somalia, SouthAfrica, SouthSudan, Spain, SriLanka, Sudan, Suriname, Sweden, Switzerland, SyrianArabRepublic, Tajikistan, Thailand, Timor-Leste, Togo, Tonga, TrinidadAndTobago, Tunisia, Turkey, Turkmenistan, Tuvalu, Uganda, Ukraine, UnitedArabEmirates, UnitedKingdomOfGreatBritainAndNorthernIreland, UnitedRepublicOfTanzania, UnitedStatesOfAmerica, Uruguay, Uzbekistan, Vanuatu, Venezuela, VietNam, Yemen, Zambia, Zimbabwe
                lms_language:
                  type: string
                  description: |
                    Language
                    Specify using a locale code.
                    Allowed values: ja_JP (Japanese), en_US (English), vi_VN (Vietnamese), id_ID (Indonesian), de_DE (German), es_ES (Spanish), fr_FR (French), my_MM (Burmese), pt_PT (Portuguese), tl_PH (Tagalog), ru_RU (Russian), ur_PK (Urdu), hi_IN (Hindi), th_TH (Thai), km_KH (Khmer), zh_CN (Simplified Chinese), zh_TW (Traditional Chinese), ko_KR (Korean)
                lms_timezone:
                  type: string
                  description: |
                    Timezone
                    Specify using an IANA timezone identifier.
                    Allowed values: Asia/Tokyo, Europe/Budapest, Africa/Lagos, Europe/Amsterdam, Europe/Paris, Africa/Windhoek, Africa/Harare, Europe/Helsinki, Europe/Sofia, Africa/Cairo, Europe/Bucharest, Asia/Jerusalem, Asia/Amman, Asia/Beirut, Asia/Damascus, Europe/Istanbul, Asia/Kuwait, Europe/Minsk, Africa/Nairobi, Asia/Baghdad, Europe/Moscow, Asia/Tehran, Asia/Yerevan, Asia/Baku, Asia/Tbilisi, Asia/Kabul, Asia/Ashgabat, Asia/Karachi, Asia/Kolkata, Asia/Colombo, Asia/Kathmandu, Asia/Dhaka, Asia/Yangon, Asia/Bangkok, Asia/Singapore, Asia/Taipei, Asia/Hong_Kong, Asia/Shanghai, Asia/Macau, Asia/Ulaanbaatar, Asia/Seoul, Australia/Melbourne, Pacific/Guam, Pacific/Noumea, Pacific/Auckland, Pacific/Apia, America/Argentina/Buenos_Aires, America/Sao_Paulo, America/Santiago, America/Cayenne, America/Montevideo, America/Manaus, America/Asuncion, America/Bogota, America/Mexico_City, America/Phoenix, America/Vancouver, Pacific/Honolulu, UTC
                lms_date_format:
                  type: string
                  description: Date format
                lms_time_format:
                  type: string
                  description: Time format
                active_status:
                  type: integer
                  description: 'Status and label

                    6:Suspended

                    7:Active

                    8:Inactive'
                send_mail:
                  maximum: 1
                  minimum: 0
                  default: 0
                  type: integer
                  description: 'Whether to send an invitation email

                    0:Do not send

                    1:Send'
                receive_notice_mail:
                  maximum: 1
                  minimum: 0
                  type: integer
                  description: 'Receive notification emails for published announcements.

                    0:Do not receive

                    1:Receive'
              additionalProperties:
                oneOf:
                  - type: string
                    description: 'Custom field: value for text, date, number, or select type fields'
                  - type: array
                    items:
                      type: string
                    description: 'Custom field: value for checkbox type fields (multiple selection; empty string to clear all)'
              example:
                name: 'Test Taro (updated)'
                department: 'Sales Planning'
                custom_division: 'Osaka Sales Office'
                hobby:
                  - 'reading'
                  - 'gaming'
          application/x-www-form-urlencoded:
            schema:
              type: object
              description: |
                Partial update (form submission). Specify the target using path parameter {login}.
                Only the fields included in the body will be updated.
              properties:
                login:
                  minLength: 5
                  maxLength: 50
                  type: string
                  description: Login ID. If login parameter is provided, it will overwrite with the provided login parameter (no change if omitted).
                email:
                  maxLength: 255
                  type: string
                  description: Email address
                  format: email
                name:
                  type: string
                  description: name
                nickname:
                  type: string
                  description: display name
                password:
                  type: string
                  description: Password. Will not be updated if password is not provided.
                department:
                  type: string
                  description: department
                position:
                  type: string
                  description: position
                lms_country:
                  type: string
                  description: |
                    Country/region of residence
                    Specify the country name in English.
                    Allowed values: Japan, Afghanistan, Albania, Algeria, Andorra, Angola, AntiguaAndBarbuda, Argentina, Armenia, Australia, Austria, Azerbaijan, Bahamas, Bahrain, Bangladesh, Barbados, Belarus, Belgium, Belize, Benin, Bhutan, Bolivia, BosniaAndHerzegovina, Botswana, Brazil, BruneiDarussalam, Bulgaria, BurkinaFaso, Burundi, CaboVerde, Cambodia, Cameroon, Canada, CentralAfricanRepublic, Chad, Chile, China, Colombia, Comoros, Congo, CostaRica, CoteD'Ivoire, Croatia, Cuba, Cyprus, CzechRepublic, DemocraticPeople'sRepublicOfKorea, DemocraticRepublicOfTheCongo, Denmark, Djibouti, Dominica, DominicanRepublic, Ecuador, Egypt, ElSalvador, EquatorialGuinea, Eritrea, Estonia, Eswatini, Ethiopia, Fiji, Finland, France, Gabon, Gambia, Georgia, Germany, Ghana, Greece, Grenada, Guatemala, Guinea, GuineaBissau, Guyana, Haiti, Honduras, Hungary, Iceland, India, Indonesia, Iran, Iraq, Ireland, Israel, Italy, Jamaica, Jordan, Kazakhstan, Kenya, Kiribati, Kuwait, Kyrgyzstan, LaoPeople'sDemocraticRepublic, Latvia, Lebanon, Lesotho, Liberia, Libya, Liechtenstein, Lithuania, Luxembourg, Madagascar, Malawi, Malaysia, Maldives, Mali, Malta, MarshallIslands, Mauritania, Mauritius, Mexico, Micronesia, Monaco, Mongolia, Montenegro, Morocco, Mozambique, Myanmar, Namibia, Nauru, Nepal, Netherlands, NewZealand, Nicaragua, Niger, Nigeria, NorthMacedonia, Norway, Oman, Pakistan, Palau, Panama, PapuaNewGuinea, Paraguay, Peru, Philippines, Poland, Portugal, Qatar, RepublicOfKorea, RepublicOfMoldova, Romania, RussianFederation, Rwanda, SaintKittsAndNevis, SaintLucia, SaintVincentAndTheGrenadines, Samoa, SanMarino, SaoTomeAndPrincipe, SaudiArabia, Senegal, Serbia, Seychelles, SierraLeone, Singapore, Slovakia, Slovenia, SolomonIslands, Somalia, SouthAfrica, SouthSudan, Spain, SriLanka, Sudan, Suriname, Sweden, Switzerland, SyrianArabRepublic, Tajikistan, Thailand, Timor-Leste, Togo, Tonga, TrinidadAndTobago, Tunisia, Turkey, Turkmenistan, Tuvalu, Uganda, Ukraine, UnitedArabEmirates, UnitedKingdomOfGreatBritainAndNorthernIreland, UnitedRepublicOfTanzania, UnitedStatesOfAmerica, Uruguay, Uzbekistan, Vanuatu, Venezuela, VietNam, Yemen, Zambia, Zimbabwe
                lms_language:
                  type: string
                  description: |
                    Language
                    Specify using a locale code.
                    Allowed values: ja_JP (Japanese), en_US (English), vi_VN (Vietnamese), id_ID (Indonesian), de_DE (German), es_ES (Spanish), fr_FR (French), my_MM (Burmese), pt_PT (Portuguese), tl_PH (Tagalog), ru_RU (Russian), ur_PK (Urdu), hi_IN (Hindi), th_TH (Thai), km_KH (Khmer), zh_CN (Simplified Chinese), zh_TW (Traditional Chinese), ko_KR (Korean)
                lms_timezone:
                  type: string
                  description: |
                    Timezone
                    Specify using an IANA timezone identifier.
                    Allowed values: Asia/Tokyo, Europe/Budapest, Africa/Lagos, Europe/Amsterdam, Europe/Paris, Africa/Windhoek, Africa/Harare, Europe/Helsinki, Europe/Sofia, Africa/Cairo, Europe/Bucharest, Asia/Jerusalem, Asia/Amman, Asia/Beirut, Asia/Damascus, Europe/Istanbul, Asia/Kuwait, Europe/Minsk, Africa/Nairobi, Asia/Baghdad, Europe/Moscow, Asia/Tehran, Asia/Yerevan, Asia/Baku, Asia/Tbilisi, Asia/Kabul, Asia/Ashgabat, Asia/Karachi, Asia/Kolkata, Asia/Colombo, Asia/Kathmandu, Asia/Dhaka, Asia/Yangon, Asia/Bangkok, Asia/Singapore, Asia/Taipei, Asia/Hong_Kong, Asia/Shanghai, Asia/Macau, Asia/Ulaanbaatar, Asia/Seoul, Australia/Melbourne, Pacific/Guam, Pacific/Noumea, Pacific/Auckland, Pacific/Apia, America/Argentina/Buenos_Aires, America/Sao_Paulo, America/Santiago, America/Cayenne, America/Montevideo, America/Manaus, America/Asuncion, America/Bogota, America/Mexico_City, America/Phoenix, America/Vancouver, Pacific/Honolulu, UTC
                lms_date_format:
                  type: string
                  description: Date format
                lms_time_format:
                  type: string
                  description: Time format
                active_status:
                  type: integer
                  description: 'Status and label

                    6:Suspended

                    7:Active

                    8:Inactive'
                send_mail:
                  maximum: 1
                  minimum: 0
                  default: 0
                  type: integer
                  description: 'Whether to send an invitation email

                    0:Do not send

                    1:Send'
                receive_notice_mail:
                  maximum: 1
                  minimum: 0
                  type: integer
                  description: 'Receive notification emails for published announcements.

                    0:Do not receive

                    1:Receive'
        required: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserCreateResponse'
              example:
                result:
                  user_id: 32
                  login: test-user
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                unexpected_error:
                  summary: Unexpected Error
                  value:
                    error: unknown
                    error_description: '{error message}'
                login_id_not_specified:
                  summary: Login ID not specified
                  value:
                    error: wrong_parameter
                    error_description: Login ID could not be empty.
                user_not_found:
                  summary: User not found
                  value:
                    error: not_exists
                    error_description: User does not exist.
                no_update_content:
                  summary: No update content
                  value:
                    error: not_exists
                    error_description: Update field could not be empty.
        '422':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_user'
              example:
                email:
                  - メールアドレスの形式は正しくありません。
                  - 50文字以内で入力してください。
                  - メールアドレスのドメインが正しくありません。
                login:
                  - ログインIDを入力してください。
                  - ログインIDに使用不可能な文字が入力されています。
                password:
                  - パスワードを入力してください。
                  - 過去利用したパスワードは使用できません。
                active_status:
                  - ステータスを入力してください。
                  - 入力内容が正しくありません。
                  - 統合元ユーザーのステータスを無効以外にする前にユーザー統合を解除する必要があります。
                  - 「管理グループ」のアカウント登録数が上限を越えます。
                receive_notice_mail:
                  - 入力内容が正しくありません。
      deprecated: false
      x-codegen-request-body-name: body
  /v1/user/delete/{login}:
    post:
      security:
        - OAuth2: [user.delete]
      tags:
        - user
      summary: Delete user
      description: |
        Deletes a specific user.
        ### Required Permissions
        - Access Permissions Settings checkbox: User > Delete
        - Scope: `user.delete`
      operationId: deleteUser
      parameters:
        - name: login
          in: path
          description: Login ID
          required: true
          schema:
            type: string
          example: 'test-user'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserDeleteResponse'
              example:
                id: 62
                login: test-user50
                message: ACCEPTED
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                unexpected_error:
                  summary: Unexpected Error
                  value:
                    error: unknown
                    error_description: '{error message}'
                login_id_not_specified:
                  summary: Login ID not specified
                  value:
                    error: wrong_parameter
                    error_description: Login ID could not be empty.
                user_not_found:
                  summary: User not found
                  value:
                    error: not_exists
                    error_description: User does not exist.
                active_product_exists:
                  summary: Active product exists (output only when using EC feature)
                  value:
                    error: deny
                    error_description: Active payment exist! user_id:{id}
                subscribed_product_exists:
                  summary: Subscribed product exists (output only when using EC feature)
                  value:
                    error: deny
                    error_description: Active subscription exist! user_id:{id}
      deprecated: false
  /v1/user/group/{login}:
    post:
      security:
        - OAuth2: [user.group]
      tags:
        - user
      summary: Assign groups to user
      description: |
        Assigns a specific user to specified groups.
        ### Required Permissions
        - Access Permissions Settings checkbox: User > Manage group affiliation
        - Scope: `user.group`
      operationId: assignGroupUser
      parameters:
        - name: login
          in: path
          description: Login ID
          required: true
          schema:
            type: string
          example: 'test-user'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                assign:
                  type: array
                  items:
                    type: integer
                  description: Group Internal ID to assign
                assign_code:
                  type: array
                  items:
                    type: string
                  description: group code to assign
                release:
                  type: array
                  items:
                    type: integer
                  description: Group Internal ID to release
                release_code:
                  type: array
                  items:
                    type: string
                  description: group code to release
            example:
              assign:
                - 3
                - 51
              assign_code:
                - g9
              release:
                - 7
              release_code:
                - g7
                - g51
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                assign:
                  type: array
                  items:
                    type: integer
                  description: Group Internal ID to assign
                assign_code:
                  type: array
                  items:
                    type: string
                  description: group code to assign
                release:
                  type: array
                  items:
                    type: integer
                  description: Group Internal ID to release
                release_code:
                  type: array
                  items:
                    type: string
                  description: group code to release
            example:
              assign:
                - 3
                - 51
              assign_code:
                - g9
              release:
                - 7
              release_code:
                - g7
                - g51
        required: false
      responses:
        '200':
          description: 'Success<br>

            Returns the list of belonged groups after the assignment change.

            For product user groups, "product_id" is returned.

            Product user groups do not include "user_limit".

            If there is no limit on the number of accounts that can be registered in the group, user_limit is set to null.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: object
                    description: Change result
                    properties:
                      user_id:
                        type: integer
                        description: User Internal ID
                      login:
                        type: string
                        description: Login ID
                      groups:
                        type: array
                        description: List of belonged groups
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              description: Group Internal ID
                            name:
                              type: string
                              description: group name
                            group_code:
                              type: string
                              description: group code
                            user_limit:
                              type: integer
                              description: User limit count
                            product_id:
                              type: integer
                              description: Product ID (only when using EC feature)
              example:
                result:
                  user_id: 32
                  login: test-user
                  groups:
                    - id: 3
                      name: Grade 1
                      group_code: g3
                      user_limit: null
                    - id: 21
                      name: Class 1
                      group_code: g55
                      user_limit: 5
                    - id: 51
                      name: Training 3
                      group_code: g51
                      product_id: 55
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                login_id_not_specified:
                  summary: Login ID not specified
                  value:
                    error: wrong_parameter
                    error_description: Login ID could not be empty.
                user_not_found:
                  summary: User not found
                  value:
                    error: not_exists
                    error_description: User does not exist.
        '422':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_assignGroup422'
              example:
                assign:
                  - 入力内容が正しくありません。
                release:
                  - 入力内容が正しくありません。
      deprecated: false
      x-codegen-request-body-name: body
  /v1/user/permissions:
    post:
      security:
        - OAuth2: [user.update]
      tags:
        - user
      summary: Bulk process user permissions
      description: |
        Adds, updates, or deletes management permissions for specific users.
        ### Required Permissions
        - Access Permissions Settings checkbox: User > Update
        - Scope: `user.update`
      operationId: permissionUser
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  type: array
                  description: Configuration content
                  items:
                    type: object
                    properties:
                      mode:
                        type: string
                        description: Operation mode
                        enum:
                          - get
                          - add
                          - save
                          - delete
                      user:
                        type: object
                        properties:
                          field_name:
                            type: string
                            description: Field name
                            enum:
                              - user_id
                              - login
                          field_value:
                            type: string
                            description: Field value
                        description: Target user
                      permission_admin:
                        type: array
                        description: Administrator permissions
                        items:
                          type: string
                          enum:
                            - grant_admin
                            - edit_notification
                            - edit_setting
                            - edit_ec
                      permission_group:
                        type: array
                        description: Group management permissions
                        items:
                          type: object
                          properties:
                            group:
                              $ref: '#/components/schemas/GroupFieldIdentifier'
                            permission:
                              type: string
                              description: Permission
                              enum:
                                - view
                                - edit
                      permission_sco:
                        type: array
                        description: Content management permissions
                        items:
                          type: object
                          properties:
                            sco:
                              $ref: '#/components/schemas/ScoFieldIdentifier'
                            permission:
                              type: string
                              enum:
                                - view
                                - edit
                      permission_result:
                        type: array
                        description: Grade management permissions
                        items:
                          type: object
                          properties:
                            group:
                              $ref: '#/components/schemas/GroupFieldIdentifier'
                            sco:
                              $ref: '#/components/schemas/ScoFieldIdentifier'
                            permission:
                              type: string
                              enum:
                                - view
                                - edit
                                - scoring
                                - approve_scoring
                      permission_sco_assign:
                        type: array
                        description: Content assignment permissions
                        items:
                          type: object
                          properties:
                            group:
                              $ref: '#/components/schemas/GroupFieldIdentifier'
                            sco:
                              $ref: '#/components/schemas/ScoFieldIdentifier'
                            permission:
                              type: string
                              enum:
                                - edit
                      permission_mailtemplate:
                        type: array
                        description: Mail template editing permissions
                        items:
                          type: object
                          properties:
                            group:
                              $ref: '#/components/schemas/GroupFieldIdentifier'
                            permission:
                              type: string
                              enum:
                                - edit
                      permission_message:
                        type: array
                        description: Message management permissions
                        items:
                          type: object
                          properties:
                            group:
                              $ref: '#/components/schemas/GroupFieldIdentifier'
                            permission:
                              type: string
                              enum:
                                - edit
                      permission_notification:
                        type: array
                        description: Notification management permissions
                        items:
                          type: object
                          properties:
                            group:
                              $ref: '#/components/schemas/GroupFieldIdentifier'
                            permission:
                              type: string
                              enum:
                                - edit
            example:
              data:
                - mode: save
                  user:
                    field_name: user_id
                    field_value: 1
                  permission_admin:
                    - grant_admin
                    - edit_notification
                    - edit_setting
                    - edit_ec
                  permission_group:
                    - group:
                        field_name: group_id
                        field_value: -1
                      permission: edit
                    - group:
                        field_name: group_code
                        field_value: g1
                      permission: view
                  permission_sco:
                    - sco:
                        field_name: sco_id
                        field_value: -1
                      permission: edit
                    - sco:
                        field_name: sco_code
                        field_value: a3de5c
                      permission: view
                  permission_result:
                    - group:
                        field_name: group_id
                        field_value: -1
                      sco:
                        field_name: sco_id
                        field_value: -1
                      permission: edit
                    - group:
                        field_name: group_code
                        field_value: g1
                      sco:
                        field_name: sco_code
                        field_value: a3de5c
                      permission: view
                  permission_sco_assign:
                    - group:
                        field_name: group_id
                        field_value: -1
                      sco:
                        field_name: sco_code
                        field_value: all
                      permission: edit
                    - group:
                        field_name: group_code
                        field_value: g1
                      sco:
                        field_name: sco_code
                        field_value: a3de5c
                      permission: edit
                  permission_mailtemplate:
                    - group:
                        field_name: group_id
                        field_value: -1
                      permission: edit
                    - group:
                        field_name: group_code
                        field_value: g1
                      permission: edit
                  permission_message:
                    - group:
                        field_name: group_id
                        field_value: -1
                      permission: edit
                    - group:
                        field_name: group_code
                        field_value: g1
                      permission: edit
                  permission_notification:
                    - group:
                        field_name: group_id
                        field_value: -1
                      permission: edit
                    - group:
                        field_name: group_code
                        field_value: g1
                      permission: edit
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        user:
                          type: object
                          properties:
                            user_id:
                              type: integer
                              description: User Internal ID
                            login:
                              type: string
                              description: Login ID
                        permission_admin:
                          type: array
                          description: Administrator permissions
                          items:
                            type: string
                            enum:
                              - grant_admin
                              - edit_notification
                              - edit_setting
                              - edit_ec
                        permission_group:
                          type: array
                          description: Group management permissions
                          items:
                            type: object
                            properties:
                              group:
                                allOf:
                                  - $ref: '#/components/schemas/GroupInfo'
                                  - description: Target group
                              permission:
                                type: string
                                description: Permission (view permission cannot be specified for all users)
                                enum:
                                  - view
                                  - edit
                        permission_sco:
                          type: array
                          description: Content management permissions
                          items:
                            type: object
                            properties:
                              sco:
                                allOf:
                                  - $ref: '#/components/schemas/ScoInfo'
                                  - description: Target content
                              permission:
                                type: string
                                description: Permission (view permission cannot be specified for all users)
                                enum:
                                  - view
                                  - edit
                        permission_result:
                          type: array
                          description: Grade management permissions
                          items:
                            type: object
                            properties:
                              group:
                                allOf:
                                  - $ref: '#/components/schemas/GroupInfo'
                                  - description: Target group
                              sco:
                                allOf:
                                  - $ref: '#/components/schemas/ScoInfo'
                                  - description: Target content
                              permission:
                                type: string
                                description: Permission (view permission cannot be specified for all users)
                                enum:
                                  - view
                                  - edit
                                  - scoring
                                  - approve_scoring
                        permission_sco_assign:
                          type: array
                          description: Content assignment permissions
                          items:
                            type: object
                            properties:
                              group:
                                allOf:
                                  - $ref: '#/components/schemas/GroupInfo'
                                  - description: Target group
                              sco:
                                allOf:
                                  - $ref: '#/components/schemas/ScoInfo'
                                  - description: Target content
                              permission:
                                type: string
                                description: Permission (view permission cannot be specified for all users)
                                enum:
                                  - edit
                        permission_mailtemplate:
                          type: array
                          description: Mail template editing permissions
                          items:
                            type: object
                            properties:
                              group:
                                allOf:
                                  - $ref: '#/components/schemas/GroupInfo'
                                  - description: Target group
                              permission:
                                type: string
                                description: Permission (view permission cannot be specified for all users)
                                enum:
                                  - edit
                        permission_message:
                          type: array
                          description: Message management permissions
                          items:
                            type: object
                            properties:
                              group:
                                allOf:
                                  - $ref: '#/components/schemas/GroupInfo'
                                  - description: Target group
                              permission:
                                type: string
                                description: Permission
                                enum:
                                  - edit
                        permission_notification:
                          type: array
                          description: Notification management permissions
                          items:
                            type: object
                            properties:
                              group:
                                allOf:
                                  - $ref: '#/components/schemas/GroupInfo'
                                  - description: Target group
                              permission:
                                type: string
                                description: Permission
                                enum:
                                  - edit
                        message:
                          type: string
                          description: Processing message
              example:
                result:
                  - user:
                      user_id: 32
                      login: test-user
                    permission_admin:
                      - grant_admin
                      - edit_notification
                      - edit_setting
                      - edit_ec
                    permission_group:
                      - group:
                          group_id: -1
                          group_code: all
                          name: 全ユーザー
                        permission: edit
                      - group:
                          group_id: 1
                          group_code: g1
                          name: Grade 1
                        permission: view
                    permission_sco:
                      - sco:
                          sco_id: '-1'
                          sco_code: all
                          title: 全コンテンツ
                        permission: edit
                      - sco:
                          sco_id: '1'
                          sco_code: a3de5c
                          title: Japanese
                        permission: view
                    permission_result:
                      - group:
                          group_id: -1
                          group_code: all
                          name: 全ユーザー
                        sco:
                          sco_id: '-1'
                          sco_code: all
                          title: 全コンテンツ
                        permission: edit
                      - group:
                          group_id: 1
                          group_code: g2
                          name: Grade 2
                        sco:
                          sco_id: '1'
                          sco_code: a3de5c
                          title: Japanese
                        permission: view
                    permission_sco_assign:
                      - group:
                          group_id: -1
                          group_code: all
                          name: 全ユーザー
                        sco:
                          sco_id: '-1'
                          sco_code: all
                          title: 全コンテンツ
                        permission: edit
                      - group:
                          group_id: 1
                          group_code: g1
                          name: グループA
                        sco:
                          sco_id: '1'
                          sco_code: a3de5c
                          title: Japanese
                        permission: edit
                    permission_mailtemplate:
                      - group:
                          group_id: -1
                          group_code: all
                          name: 全ユーザー
                        permission: edit
                      - group:
                          group_id: 1
                          group_code: g1
                          name: Grade 1
                        permission: edit
                    permission_message:
                      - group:
                          group_id: -1
                          group_code: all
                          name: 全ユーザー
                        permission: edit
                      - group:
                          group_id: 1
                          group_code: g1
                          name: Grade 1
                        permission: edit
                    permission_notification:
                      - group:
                          group_id: -1
                          group_code: all
                          name: 全ユーザー
                        permission: edit
                      - group:
                          group_id: 1
                          group_code: g1
                          name: Grade 1
                        permission: edit
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_userpermission'
              examples:
                empty:
                  summary: data is empty
                  value:
                    error: wrong_parameter
                    error_description: '[data] is empty.'
                limit_exceeded:
                  summary: Exceeds 1000 records processable in one request
                  value:
                    error: wrong_parameter
                    error_description: '[data] length is more than 1000.'
                invalid_data_values:
                  summary: Invalid values in data
                  value:
                    error: wrong_parameter
                    error_description: '[data] has wrong.'
                    error_report:
                      - 'Index[0]: mode is incorrect.'
                      - 'Index[0]: user not found.'
                      - 'Index[1]: permission_admin is incorrect.'
                      - 'Index[2]: permission_group is incorrect.'
                      - 'Index[2]: permission_group[0].group not found.'
                      - 'Index[2]: permission_group[0].group not allow.'
                      - 'Index[2]: permission_group[0] is duplicated.'
                      - 'Index[2]: permission_group[0].permission is incorrect.'
                      - 'Index[3]: permission_sco is incorrect.'
                      - 'Index[3]: permission_sco[0].sco not found.'
                      - 'Index[3]: permission_sco[0].sco not allow.'
                      - 'Index[3]: permission_sco[0] is duplicated.'
                      - 'Index[3]: permission_sco[0].permission is incorrect.'
                      - 'Index[4]: permission_result is incorrect.'
                      - 'Index[4]: permission_result[0].group not found.'
                      - 'Index[4]: permission_result[0].group not allow.'
                      - 'Index[4]: permission_result[0].sco not found.'
                      - 'Index[4]: permission_result[0] is duplicated.'
                      - 'Index[4]: permission_result[0].permission is incorrect.'
                      - 'Index[5]: permission_sco_assign is incorrect.'
                      - 'Index[5]: permission_sco_assign[0].group not found.'
                      - 'Index[5]: permission_sco_assign[0].group not allow.'
                      - 'Index[5]: permission_sco_assign[0].sco not found.'
                      - 'Index[5]: permission_sco_assign[0].sco not allow.'
                      - 'Index[5]: permission_sco_assign[0] is duplicated.'
                      - 'Index[5]: permission_sco_assign[0].permission is incorrect.'
                      - 'Index[6]: permission_mailtemplate is incorrect.'
                      - 'Index[6]: permission_mailtemplate[0].group not found.'
                      - 'Index[6]: permission_mailtemplate[0] is duplicated.'
                      - 'Index[6]: permission_mailtemplate[0].permission is incorrect.'
                      - 'Index[7]: permission_message is incorrect.'
                      - 'Index[7]: permission_message[0].group not found.'
                      - 'Index[7]: permission_message[0] is duplicated.'
                      - 'Index[7]: permission_message[0].permission is incorrect.'
      deprecated: false
      x-codegen-request-body-name: body
  /v1/user/merge:
    post:
      security:
        - OAuth2: [user.merge]
      tags:
        - user
      summary: Merge users
      description: |
        Merges two specific users.
        ### Required Permissions
        - Access Permissions Settings checkbox: User > Merge
        - Scope: `user.merge`
      operationId: mergeUser
      requestBody:
        content:
          application/json:
            schema:
              required:
                - dst_login
                - src_login
              type: object
              properties:
                src_login:
                  type: string
                  description: Login ID of the source account to merge from (must be inactive)
                dst_login:
                  type: string
                  description: Login ID of the destination account to merge to (must be active)
                force:
                  type: integer
                  enum:
                    - 0
                    - 1
                  description: Ignores already-merged status and forcefully performs the merge.
                  default: 0
            example:
              src_login: user-1
              dst_login: user-2
              force: 1
          application/x-www-form-urlencoded:
            schema:
              required:
                - dst_login
                - src_login
              type: object
              properties:
                src_login:
                  type: string
                  description: Login ID of the source account to merge from (must be inactive)
                dst_login:
                  type: string
                  description: Login ID of the destination account to merge to (must be active)
                force:
                  type: integer
                  enum:
                    - 0
                    - 1
                  description: Ignores already-merged status and forcefully performs the merge.
                  default: 0
            example:
              src_login: user-1
              dst_login: user-2
              force: 1
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MergeResponse'
              example:
                result:
                  src_user_id: 2
                  dst_user_id: 7
                  merge_result:
                    - type: result
                      total: 55
                    - type: badge
                      total: 55
                    - type: login
                      total: 55
        '400':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error: unknown
                error_description: '{error message}'
        '422':
          description: |
            Error. Returns values in Japanese.

            | Message (Japanese) | English |
            |---|---|
            | 統合元のアカウントのログインIDを指定してください。 | Please specify the Login ID of the source account. |
            | 統合元のアカウントが存在しません。 | The source account does not exist. |
            | 統合元のアカウントは無効になっている必要があります。 | The source account must be inactive. |
            | 統合先のアカウントのログインIDを指定してください。 | Please specify the Login ID of the destination account. |
            | 統合先のアカウントが存在しません。 | The destination account does not exist. |
            | 統合先のアカウントは有効になっている必要があります。 | The destination account must be active. |
            | 指定アカウントは既に統合されています。※ | The specified account has already been merged. ※ |
            | 0または1を指定してください。 | Please specify 0 or 1. |

            ※ Not output when force=1.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MergeResponse422'
              example:
                src_login:
                  - 統合元のアカウントのログインIDを指定してください。
                  - 統合元のアカウントが存在しません。
                  - 統合元のアカウントは無効になっている必要があります。
                dst_login:
                  - 統合先のアカウントのログインIDを指定してください。
                  - 統合先のアカウントが存在しません。
                  - 統合先のアカウントは有効になっている必要があります。
                  - 指定アカウントは既に統合されています。
                force:
                  - 0または1を指定してください。
      deprecated: false
      x-codegen-request-body-name: body
  /v1/group/list:
    post:
      security:
        - OAuth2: [group.read]
      tags:
        - group
      summary: List groups
      description: |
        Retrieves group information managed in the user management screen.
        ### Required Permissions
        - Access Permissions Settings checkbox: Group > Read
        - Scope: `group.read`
      operationId: searchGroupList
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                parent_id:
                  type: integer
                  description: Parent Group Internal ID
                  example: 15
                parent_code:
                  type: string
                  description: Parent group code
                  example: g15
                keyword:
                  type: [string, 'null']
                  description: Group search keyword
                  example: subgroup
                limit:
                  type: integer
                  description: 'Number of rows to return per request. Defaults to 20 if not specified. Specify 0 to return all rows.'
                  default: 20
                offset:
                  type: integer
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                parent_id:
                  type: integer
                  description: Parent Group Internal ID
                  example: 15
                parent_code:
                  type: string
                  description: Parent group code
                  example: g15
                keyword:
                  type: [string, 'null']
                  description: Group search keyword
                  example: subgroup
                limit:
                  type: integer
                  description: 'Number of rows to return per request. Defaults to 20 if not specified. Specify 0 to return all rows.'
                  default: 20
                offset:
                  type: integer
        required: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  results:
                    type: array
                    description: List of groups
                    items:
                      type: object
                      properties:
                        group_id:
                          type: integer
                          description: Group Internal ID
                        group_code:
                          type: string
                          description: group code
                        parent_id:
                          type: integer
                          description: Parent Group Internal ID
                        parent_code:
                          type: string
                          description: Parent group code
                        name:
                          type: string
                          description: group name
                        user_limit:
                          type: integer
                          description: Maximum number of registerable accounts
                  meta:
                    allOf:
                      - $ref: '#/components/schemas/Meta'
                      - description: Meta information
              example:
                results:
                  - group_id: 15
                    group_code: g15
                    name: Management Subgroup
                    parent_id: 3
                    parent_code: g3
                    user_limit: 5
                meta:
                  total: 1
                  limit: 20
                  offset: 0
  /v1/group/create:
    post:
      security:
        - OAuth2: [group.create]
      tags:
        - group
      summary: Create group
      description: |
        Creates a new group.
        ### Required Permissions
        - Access Permissions Settings checkbox: Group > Add
        - Scope: `group.create`
      operationId: createGroup
      requestBody:
        content:
          application/json:
            schema:
              required:
                - name
              type: object
              properties:
                parent_id:
                  type: integer
                  description: Parent Group Internal ID (product user group IDs cannot be specified)
                  example: 9
                parent_code:
                  type: string
                  description: Parent group code (product user group codes cannot be specified)
                  example: g9
                name:
                  type: string
                  description: group name (duplicates within the same level are not allowed)
                  example: Grade 3
                group_code:
                  type: string
                  description: group code
                  example: g15
                user_limit:
                  type: integer
                  description: Number of registerable accounts
                  example: 5
          application/x-www-form-urlencoded:
            schema:
              required:
                - name
              type: object
              properties:
                parent_id:
                  type: integer
                  description: Parent Group Internal ID (product user group IDs cannot be specified)
                  example: 9
                parent_code:
                  type: string
                  description: Parent group code (product user group codes cannot be specified)
                  example: g9
                name:
                  type: string
                  description: group name (duplicates within the same level are not allowed)
                  example: Grade 3
                group_code:
                  type: string
                  description: group code
                  example: g15
                user_limit:
                  type: integer
                  description: Number of registerable accounts
                  example: 5
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: object
                    description: Added group
                    properties:
                      group_id:
                        type: integer
                        description: Group Internal ID
                      group_code:
                        type: string
                        description: group code
                      parent_id:
                        type: integer
                        description: Parent Group Internal ID
                      parent_code:
                        type: string
                        description: Parent group code
                      name:
                        type: string
                        description: group name
                      user_limit:
                        type: integer
                        description: Number of registerable accounts
              example:
                result:
                  group_id: 15
                  group_code: g15
                  parent_id: 9
                  parent_code: g9
                  name: Grade 3
                  user_limit: 5
        '400':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error: unknown
                error_description: '{error message}'
        '422':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroupValidationErrors'
              examples:
                value_error:
                  summary: Value specification error
                  value:
                    parent_id:
                      - Parent Group does not exists.
                    parent_code:
                      - Parent Group does not exists.
                    name:
                      - Group name must be 30 characters or less.
                    group_code:
                      - Group Code contains illegal characters.
                    user_limit:
                      - 子グループのアカウント登録可能数の合計値より大きい数値を設定してください。
                scim_group_error:
                  summary: SCIM group specification error
                  description: Error messages are returned in Japanese only.
                  value:
                    parent_id:
                      - SCIMグループを親グループにできません。
                    parent_code:
                      - SCIMグループを親グループにできません。
      deprecated: false
      x-codegen-request-body-name: body
  /v1/group/update:
    post:
      security:
        - OAuth2: [group.update]
      tags:
        - group
      summary: Update group (without group_id)
      description: |
        Updates information for a specific group.
        This endpoint does not include `group_id` in the path.
        If you can specify a `group_id`, using /v1/group/update/{group_id} is recommended.
        ### Required Permissions
        - Access Permissions Settings checkbox: Group > Update
        - Scope: `group.update`
      operationId: updateGroup
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateGroupRequest1'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UpdateGroupRequest1'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateGroupResponse'
              example:
                result:
                  group_id: 15
                  group_code: g15
                  parent_id: 9
                  parent_code: g9
                  name: Grade 3
                  user_limit: 5
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                unexpected_error:
                  summary: Unexpected Error
                  value:
                    error: unknown
                    error_description: '{error message}'
                group_id_or_code_not_specified:
                  summary: Group ID or group code not specified
                  value:
                    error: wrong_parameter
                    error_description: Group ID or Group Code could not be empty.
                group_not_found:
                  summary: Group not found
                  value:
                    error: not_exists
                    error_description: Group does not exists.
                product_group_specified:
                  summary: Product group specified
                  value:
                    error: wrong_parameter
                    error_description: Product Group not allowed update.
                scim_group_specified:
                  summary: SCIM group specified
                  value:
                    error: wrong_parameter
                    error_description: SCIM groups cannot be edited.
        '422':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroupValidationErrors'
              example:
                name:
                  - Group Name could not be empty.
                  - Group Name must be 30 characters or less.
                  - Group Name duplicated.
                group_code:
                  - Group Code must be 30 characters or less.
                  - Group Code duplicated.
                  - Group Code contains illegal characters.
                  - Group Code is reserved.
                user_limit:
                  - アカウント登録可能数を0〜10の整数値で入力してください。
                  - 子グループのアカウント登録可能数の合計値より大きい数値を設定してください。
                  - すでに対象グループに登録されているアカウント数より大きい数値を設定してください。
      deprecated: false
      x-codegen-request-body-name: body

  /v1/group/update/{group_id}:
    post:
      security:
        - OAuth2: [group.update]
      tags:
        - group
      summary: Update group (with group_id)
      description: |
        Updates information for a specific group.
        If `group_id` is specified as a non-zero value, `group_id` takes priority; `group_code` is used only when `group_id` is 0.
        ### Required Permissions
        - Access Permissions Settings checkbox: Group > Update
        - Scope: `group.update`
      operationId: updateGroupById
      parameters:
        - name: group_id
          in: path
          description: Group Internal ID
          required: true
          schema:
            type: integer
          example: 15
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateGroupRequest2'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UpdateGroupRequest2'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateGroupResponse'
              example:
                result:
                  group_id: 15
                  group_code: g15
                  parent_id: 9
                  parent_code: g9
                  name: Grade 3
                  user_limit: 5
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                unexpected_error:
                  summary: Unexpected Error
                  value:
                    error: unknown
                    error_description: '{error message}'
                group_id_or_code_not_specified:
                  summary: Group ID or group code not specified
                  value:
                    error: wrong_parameter
                    error_description: Group ID or Group Code could not be empty.
                group_not_found:
                  summary: Group not found
                  value:
                    error: not_exists
                    error_description: Group does not exists.
                product_group_specified:
                  summary: Product group specified
                  value:
                    error: wrong_parameter
                    error_description: Product Group not allowed update.
                scim_group_specified:
                  summary: SCIM group specified
                  value:
                    error: wrong_parameter
                    error_description: SCIM groups cannot be edited.
        '422':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroupValidationErrors'
              example:
                name:
                  - Group Name could not be empty.
                  - Group Name must be 30 characters or less.
                  - Group Name duplicated.
                group_code:
                  - Group Code must be 30 characters or less.
                  - Group Code duplicated.
                  - Group Code contains illegal characters.
                  - Group Code is reserved.
                user_limit:
                  - アカウント登録可能数を0〜10の整数値で入力してください。
                  - 子グループのアカウント登録可能数の合計値より大きい数値を設定してください。
                  - すでに対象グループに登録されているアカウント数より大きい数値を設定してください。
      deprecated: false
      x-codegen-request-body-name: body
  /v1/group/delete/{group_id}:
    post:
      security:
        - OAuth2: [group.delete]
      tags:
        - group
      summary: Delete group
      description: |
        Deletes a specific group.
        Specify the target using path parameter {group_id}.
        Only when {group_id} is 0, use group_code in the request body to specify the target group.
        ### Required Permissions
        - Access Permissions Settings checkbox: Group > Delete
        - Scope: `group.delete`
      operationId: deleteGroup
      parameters:
        - name: group_id
          in: path
          description: ID of the group to delete (used preferentially when non-zero)
          required: true
          schema:
            type: integer
          example: 123
      requestBody:
        content:
          application/json:
            schema:
              type: object
              description: Group deletion object (specify group_code when {group_id} is 0)
              properties:
                group_code:
                  type: string
                  pattern: '^[a-zA-Z0-9]+$'
                  description: Code of the group to delete (specify when {group_id} is 0; optional)
                  example: 'g123'
          application/x-www-form-urlencoded:
            schema:
              type: object
              description: Group deletion object (form submission)
              properties:
                group_code:
                  type: string
                  pattern: '^[a-zA-Z0-9]+$'
                  description: Code of the group to delete (specify when {group_id} is 0; optional)
        required: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroupDeleteResponse'
              example:
                id: 123
                code: g123
                message: ACCEPTED
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                unexpected_error:
                  summary: Unexpected Error
                  value:
                    error: unknown
                    error_description: '{error message}'
                group_id_or_code_not_specified:
                  summary: Group ID or group code not specified
                  value:
                    error: wrong_parameter
                    error_description: Group ID or Group Code could not be empty.
                group_not_found:
                  summary: Group not found
                  value:
                    error: not_exists
                    error_description: Group does not exist.
                product_group_specified:
                  summary: Product group specified
                  value:
                    error: wrong_parameter
                    error_description: Product Group not allowed delete.
                scim_group_specified:
                  summary: SCIM group specified
                  value:
                    error: wrong_parameter
                    error_description: SCIM groups cannot be deleted.
      deprecated: false
  /v1/group/contents/{group_id}:
    post:
      security:
        - OAuth2: [group.contents]
      tags:
        - group
      summary: Assign content to group
      description: |
        Assigns content to a specific group.
        ### Required Permissions
        - Access Permissions Settings checkbox: Group > Assign content
        - Scope: `group.contents`
      operationId: assignContentsToGroup
      parameters:
        - name: group_id
          in: path
          description: Group Internal ID
          required: true
          schema:
            type: integer
          example: 9
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                assign:
                  type: string
                  description: Content Internal ID to assign
                  example: 1,2,3
                assign_code:
                  type: string
                  description: Content code to assign
                  example: aaa,bbb,ccc
                release:
                  type: string
                  description: Content Internal ID to unassign
                  example: 4,5,6
                release_code:
                  type: string
                  description: Content code to unassign
                  example: eee,fff,ggg
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                assign:
                  type: string
                  description: Content Internal ID to assign
                  example: 1,2,3
                assign_code:
                  type: string
                  description: Content code to assign
                  example: aaa,bbb,ccc
                release:
                  type: string
                  description: Content Internal ID to unassign
                  example: 4,5,6
                release_code:
                  type: string
                  description: Content code to unassign
                  example: eee,fff,ggg
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetGroupContentsResponse'
              example:
                result:
                  group_id: 9
                  group_code: g9
                  name: Grade 1
                  scos:
                    - parent_id: 1674
                      sco_id: '1709'
                      sco_code: sample
                      sco_type: folder
                      generator_type: null
                      title: Grade 1
                    - parent_id: 1684
                      sco_id: '1773'
                      sco_code: b23d
                      sco_type: contents
                      generator_type: ASSESSMENT
                      title: Diagnostic Test
                    - parent_id: 1674
                      sco_id: '1764'
                      sco_code: a318
                      sco_type: folder
                      generator_type: null
                      title: Sample Course
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                unexpected_error:
                  summary: Unexpected Error
                  value:
                    error: unknown
                    error_description: '{error message}'
                group_id_or_code_not_specified:
                  summary: Group ID or group code not specified
                  value:
                    error: wrong_parameter
                    error_description: Group ID or Group Code could not be empty.
                group_not_found:
                  summary: Group not found
                  value:
                    error: not_exists
                    error_description: Group does not exist.
                product_group_specified:
                  summary: Product group specified
                  value:
                    error: wrong_parameter
                    error_description: Product Group not allowed delete.
                scim_group_specified:
                  summary: SCIM group specified
                  value:
                    error: wrong_parameter
                    error_description: SCIM groups cannot be deleted.
        '422':
          description: Error. Returns values in Japanese.
          content:
            application/json:
              schema:
                type: object
                properties:
                  assign:
                    type: array
                    description: Assignment input errors
                    items:
                      type: string
                  release:
                    type: array
                    description: Unassignment input errors
                    items:
                      type: string
              example:
                assign:
                  - 入力内容が正しくありません。
                release:
                  - 入力内容が正しくありません。
      deprecated: false
  /v1/access-list:
    post:
      security:
        - OAuth2: [accesslist.read]
      tags:
        - access-list
      summary: List access lists
      description: |
        Retrieves access lists within IP restriction management.
        ### Required Permissions
        - Access Permissions Settings checkbox: Access List > Read
        - Scope: `accesslist.read`
      operationId: searchAccessList
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/ListSearchParameters'
                - type: object
                  properties:
                    keyword:
                      description: 'Search string. Search targets: name, identification code'
                    limit:
                      description: 'Number of rows to return per search. Defaults to 20 if not specified. Specify 0 to return all rows.'
                      default: 20
                    offset:
          application/x-www-form-urlencoded:
            schema:
              allOf:
                - $ref: '#/components/schemas/ListSearchParameters'
                - type: object
                  properties:
                    keyword:
                      description: 'Search string. Search targets: name, identification code'
                    limit:
                      description: 'Number of rows to return per search. Defaults to 20 if not specified. Specify 0 to return all rows.'
                      default: 20
                    offset:
        required: false
      responses:
        '200':
          description: Success Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessListResponse'
              example:
                results:
                  - id: 1
                    name: Head Office
                    code: 1
                    ip_list:
                      - 192.168.0.1
                      - 192.168.0.2
                      - 192.168.1.0/24
                    inuse: false
                  - id: 2
                    name: Branch Office
                    code: 2
                    ip_list:
                      - 192.168.0.1
                      - 192.168.0.2
                      - 192.168.1.0/24
                    inuse: true
                meta:
                  total: 2
                  limit: 20
                  offset: 0
        '400':
          description: Error Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error: unknown
                error_description: '{error message}'
        '422':
          description: Error Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  limit:
                    type: array
                    items:
                      type: string
                  offset:
                    type: array
                    items:
                      type: string
              example:
                limit:
                  - '[limit] must be a number greater than 0.'
                offset:
                  - '[offset] must be a number greater than 0.'
  /v1/access-list/create:
    post:
      security:
        - OAuth2: [accesslist.create]
      tags:
        - access-list
      summary: Create access list
      description: |
        Creates an access list within IP restriction management.
        ### Required Permissions
        - Access Permissions Settings checkbox: Access List > Add
        - Scope: `accesslist.create`
      operationId: addAccessList
      requestBody:
        content:
          application/json:
            schema:
              required:
                - name
                - ip_list
              type: object
              properties:
                name:
                  type: string
                  description: List name
                  example: Head Office
                code:
                  type: string
                  description: Access list code (if empty or not set, a random string is automatically assigned)
                  example: 4e6a2e838b64f547825cd1d6cda65ba3
                ip_list:
                  type: string
                  description: IP addresses (up to 100)
                  example: 192.168.0.1,192.168.0.2,192.168.1.0/24
          application/x-www-form-urlencoded:
            schema:
              required:
                - name
                - ip_list
              type: object
              properties:
                name:
                  type: string
                  description: List name
                  example: Head Office
                code:
                  type: string
                  description: Access list code (if empty or not set, a random string is automatically assigned)
                  example: 4e6a2e838b64f547825cd1d6cda65ba3
                ip_list:
                  type: string
                  description: IP addresses (up to 100)
                  example: 192.168.0.1,192.168.0.2,192.168.1.0/24
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: object
                    description: Addition result
                    properties:
                      id:
                        type: integer
                        description: Access list internal ID
                      name:
                        type: string
                        description: Access list name
                      code:
                        type: string
                        description: Access list code
                      ip_list:
                        type: array
                        description: IP list
                        items:
                          type: string
                      inuse:
                        type: boolean
              example:
                result:
                  id: 1
                  name: Head Office
                  code: 1
                  ip_list:
                    - 192.168.0.1
                    - 192.168.0.2
                    - 192.168.1.0/24
                  inuse: false
        '400':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error: unknown
                error_description: '{error message}'
        '422':
          description: |
            Error. Returns values in Japanese.

            Required field errors and other errors are not output simultaneously.

            | Message (Japanese) | English |
            |---|---|
            | アクセスリスト名を入力してください。 | Please enter the access list name. |
            | 30文字以内で入力してください | Please enter within 30 characters. |
            | アクセスリスト名が重複しています。 | The access list name is duplicated. |
            | 255文字以内で入力してください | Please enter within 255 characters. |
            | 半角の英数字と「-」「_」「.」以外の文字が含まれています。 | Contains characters other than half-width alphanumeric characters and "-", "_", ".". |
            | アクセスリストコードが重複しています。 | The access list code is duplicated. |
            | アクセス可能なIPアドレスを入力してください。 | Please enter accessible IP addresses. |
            | アクセス可能なIPアドレスが正しくありません。 | The accessible IP address is invalid. |
            | アクセス可能なIPアドレスが重複しています。 | The accessible IP address is duplicated. |
            | アクセス可能なIPアドレスは100個まで設定可能です。 | Up to 100 accessible IP addresses can be set. |
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IPValidationErrors'
              example:
                name:
                  - アクセスリスト名を入力してください。
                  - 30文字以内で入力してください
                  - アクセスリスト名が重複しています。
                code:
                  - 255文字以内で入力してください
                  - 半角の英数字と「-」「_」「.」以外の文字が含まれています。
                  - アクセスリストコードが重複しています。
                ip_list:
                  - アクセス可能なIPアドレスを入力してください。
                  - アクセス可能なIPアドレスが正しくありません。
                  - アクセス可能なIPアドレスが重複しています。
                  - アクセス可能なIPアドレスは100個まで設定可能です。
      deprecated: false
      x-codegen-request-body-name: body
  /v1/access-list/update/{id}:
    post:
      security:
        - OAuth2: [accesslist.update]
      tags:
        - access-list
      summary: Update access list
      description: |
        Updates information for a specific access list.
        ### Required Permissions
        - Access Permissions Settings checkbox: Access List > Update
        - Scope: `accesslist.update`
      operationId: updateAccessList
      parameters:
        - name: id
          in: path
          required: true
          description: Access list internal ID
          schema:
            type: integer
          example: 15
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                code:
                  type: string
                  description: Access list code
                  example: code_001
                name:
                  type: string
                  description: Access list name
                  example: Head Office
                ip_list:
                  type: string
                  description: IP addresses
                  example: 192.168.0.1,192.168.0.2,192.168.1.0/24
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                code:
                  type: string
                  description: Access list code
                  example: code_001
                name:
                  type: string
                  description: Access list name
                  example: Head Office
                ip_list:
                  type: string
                  description: IP addresses
                  example: 192.168.0.1,192.168.0.2,192.168.1.0/24
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: object
                    description: Update result
                    properties:
                      id:
                        type: integer
                        description: Access list internal ID
                      name:
                        type: string
                        description: Access list name
                      code:
                        type: string
                        description: Access list code
                      ip_list:
                        type: array
                        description: IP address list
                        items:
                          type: string
                      inuse:
                        type: boolean
                        description: Whether the access list is used as a Sign-in/Content browsing restriction
              example:
                result:
                  id: 1
                  name: Head Office
                  code: 1
                  ip_list:
                    - 192.168.0.1
                    - 192.168.0.2
                    - 192.168.1.0/24
                  inuse: false
        '400':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                unexpected_error:
                  summary: Unexpected Error
                  value:
                    error: unknown
                    error_description: '{error message}'
                access_list_not_found:
                  summary: Access list not found
                  value:
                    error: not_exists
                    error_description: Access list does not exists.
        '422':
          description: |
            Error. Returns values in Japanese.

            Required field errors and other errors are not output simultaneously.

            | Message (Japanese) | English |
            |---|---|
            | アクセスリスト名を入力してください。 | Please enter the access list name. |
            | 30文字以内で入力してください | Please enter within 30 characters. |
            | アクセスリスト名が重複しています。 | The access list name is duplicated. |
            | アクセスリストコードを入力してください。 | Please enter the access list code. |
            | 255文字以内で入力してください | Please enter within 255 characters. |
            | 半角の英数字と「-」「_」「.」以外の文字が含まれています。 | Contains characters other than half-width alphanumeric characters and "-", "_", ".". |
            | アクセスリストコードが重複しています。 | The access list code is duplicated. |
            | アクセス可能なIPアドレスを入力してください。 | Please enter accessible IP addresses. |
            | アクセス可能なIPアドレスが正しくありません。 | The accessible IP address is invalid. |
            | アクセス可能なIPアドレスが重複しています。 | The accessible IP address is duplicated. |
            | アクセス可能なIPアドレスは100個まで設定可能です。 | Up to 100 accessible IP addresses can be set. |
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IPValidationErrors'
              example:
                name:
                  - アクセスリスト名を入力してください。
                  - 30文字以内で入力してください
                  - アクセスリスト名が重複しています。
                code:
                  - アクセスリストコードを入力してください。
                  - 255文字以内で入力してください
                  - 半角の英数字と「-」「_」「.」以外の文字が含まれています。
                  - アクセスリストコードが重複しています。
                ip_list:
                  - アクセス可能なIPアドレスを入力してください。
                  - アクセス可能なIPアドレスが正しくありません。
                  - アクセス可能なIPアドレスが重複しています。
                  - アクセス可能なIPアドレスは100個まで設定可能です。
  /v1/access-list/delete/{id}:
    post:
      security:
        - OAuth2: [accesslist.delete]
      tags:
        - access-list
      summary: Delete access list
      description: |
        Deletes a specific access list.
        ### Required Permissions
        - Access Permissions Settings checkbox: Access List > Delete
        - Scope: `accesslist.delete`
      operationId: deleteAccessList
      parameters:
        - name: id
          in: path
          required: true
          description: Access list internal ID
          schema:
            type: integer
          example: 123
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                code:
                  type: string
                  description: Access list code. Required when id is not specified at the end of the URL.
                  example: code_001
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                code:
                  type: string
                  description: Access list code. Required when id is not specified at the end of the URL.
                  example: code_001
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IPDeleteResponse'
              example:
                id: 1
                code: 123
                message: ACCEPTED
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                unexpected_error:
                  summary: Unexpected Error
                  value:
                    error: unknown
                    error_description: '{error message}'
                access_list_not_found:
                  summary: Access list not found
                  value:
                    error: not_exists
                    error_description: Access list does not exist.
                list_in_use_specified:
                  summary: A list currently in use was specified
                  value:
                    error: wrong_parameter
                    error_description: Access list not allowed delete.
  /v1/access-list/permissions:
    post:
      security:
        - OAuth2: [accesspermit.read]
      tags:
        - access-list
      summary: List Sign-in/Content browsing restrictions
      description: |
        Retrieves the list of Sign-in/Content browsing restrictions within IP restriction management.
        ### Required Permissions
        - Access Permissions Settings checkbox: Sign-in/Content browsing restrictions > Read
        - Scope: `accesspermit.read`
      operationId: searchAccessInUseList
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/ListSearchParameters'
                - type: object
                  properties:
                    keyword:
                      description: 'Search string. Search targets: name, identification code'
                    limit:
                      description: 'Number of rows to return per search. Defaults to 20 if not specified. Specify 0 to return all rows.'
                      default: 20
                    offset:
          application/x-www-form-urlencoded:
            schema:
              allOf:
                - $ref: '#/components/schemas/ListSearchParameters'
                - type: object
                  properties:
                    keyword:
                      description: 'Search string. Search targets: name, identification code'
                    limit:
                      description: 'Number of rows to return per search. Defaults to 20 if not specified. Specify 0 to return all rows.'
                      default: 20
                    offset:
        required: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                required:
                  - results
                  - meta
                properties:
                  results:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          description: Access permission internal ID
                        type:
                          type: string
                          description: Restriction type
                          enum:
                            - login
                            - sco
                        sco:
                          type: object
                          description: Content information (when type=sco)
                          properties:
                            id:
                              type: integer
                            type:
                              type: string
                            code:
                              type: string
                            name:
                              type: string
                        group:
                          type: object
                          description: Group information
                          properties:
                            id:
                              type: integer
                            code:
                              type: string
                              nullable: true
                            name:
                              type: string
                              description: 'Group name. When the target is all users, returns 全ユーザー in Japanese.'
                        access_list:
                          type: object
                          description: Access list information
                          properties:
                            id:
                              type: integer
                            code:
                              type: string
                            name:
                              type: string
                  meta:
                    $ref: '#/components/schemas/Meta'
              examples:
                login_type:
                  summary: 'Restriction type: login'
                  value:
                    results:
                      - id: 1
                        type: login
                        group:
                          id: 7
                          code: g31
                          name: Management Group
                        access_list:
                          id: 1
                          code: 111
                          name: Head Office
                      - id: 2
                        type: login
                        group:
                          id: 0
                          code: null
                          name: 全ユーザー
                        access_list:
                          id: 2
                          code: 222
                          name: Branch Office
                    meta:
                      total: 2
                      limit: 20
                      offset: 0
                sco_type:
                  summary: 'Restriction type: sco'
                  value:
                    results:
                      - id: 1
                        type: sco
                        sco:
                          id: 7
                          type: folder
                          code: 1
                          name: Grade 1
                        group:
                          id: 7
                          code: g31
                          name: Management Group
                        access_list:
                          id: 1
                          code: 111
                          name: Head Office
                      - id: 2
                        type: sco
                        sco:
                          id: 7
                          type: folder
                          code: 1
                          name: Grade 1
                        group:
                          id: 0
                          code: null
                          name: 全ユーザー
                        access_list:
                          id: 2
                          code: 222
                          name: Branch Office
                    meta:
                      total: 2
                      limit: 20
                      offset: 0
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error: unknown
                error_description: '{error message}'
        '422':
          description: Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: array
                    items:
                      type: string
                  limit:
                    type: array
                    items:
                      type: string
                  offset:
                    type: array
                    items:
                      type: string
              example:
                type:
                  - '[type] must be [login] or [sco].'
                limit:
                  - '[limit] must be a number greater than 0.'
                offset:
                  - '[offset] must be a number greater than 0.'
  /v1/access-list/permission-create:
    post:
      security:
        - OAuth2: [accesspermit.create]
      tags:
        - access-list
      summary: Create Sign-in/Content browsing restriction
      description: |
        Adds a Sign-in/Content browsing restriction within IP restriction management.
        ### Required Permissions
        - Access Permissions Settings checkbox: Sign-in/Content browsing restrictions > Add
        - Scope: `accesspermit.create`
      operationId: addAccessInUseList
      requestBody:
        content:
          application/json:
            schema:
              required:
                - type
                - group_code
                - access_list_code
              type: object
              properties:
                type:
                  type: string
                  description: Content type
                  enum:
                    - login
                    - sco
                  example: sco
                sco_code:
                  type: string
                  description: Code of the content to restrict (when type=sco)
                  example: 4e6a2e838b64f547825cd1d6cda65ba3
                group_code:
                  type: string
                  description: Code of the group to restrict. If empty, treated as "All Users".
                  example: 4e6g1
                access_list_code:
                  type: string
                  description: Access list code to use for the restriction
                  example: code_001
          application/x-www-form-urlencoded:
            schema:
              required:
                - type
                - group_code
                - access_list_code
              type: object
              properties:
                type:
                  type: string
                  description: Content type
                  enum:
                    - login
                    - sco
                  example: sco
                sco_code:
                  type: string
                  description: Code of the content to restrict (when type=sco)
                  example: 4e6a2e838b64f547825cd1d6cda65ba3
                group_code:
                  type: string
                  description: Code of the group to restrict. If empty, treated as "All Users".
                  example: 4e6g1
                access_list_code:
                  type: string
                  description: Access list code to use for the restriction
                  example: code_001
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: object
                    description: Addition result
                    properties:
                      id:
                        type: integer
                        description: Restriction internal ID
                      type:
                        type: string
                        description: Restriction type
                        enum:
                          - login
                          - sco
                      sco:
                        type: object
                        description: Content
                        properties:
                          id:
                            type: integer
                            description: Content Internal ID
                          type:
                            type: string
                            description: Content type
                            enum:
                              - quiz
                              - link
                              - folder
                              - link-folder
                          code:
                            type: string
                            description: Content code
                          name:
                            type: string
                            description: Content name
                      group:
                        allOf:
                          - $ref: '#/components/schemas/IdCodeName'
                          - description: Group
                            properties:
                              id:
                                description: Group Internal ID
                              code:
                                description: group code
                              name:
                                description: group name
                      access_list:
                        allOf:
                          - $ref: '#/components/schemas/IdCodeName'
                          - description: Access list
                            properties:
                              id:
                                description: Access list internal ID
                              code:
                                description: Access list code
                              name:
                                description: Access list name
              examples:
                login_type:
                  summary: 'Restriction type: login'
                  value:
                    result:
                      id: 1
                      type: login
                      group:
                        id: 7
                        code: g31
                        name: Management Group
                      access_list:
                        id: 1
                        code: 111
                        name: Head Office
                sco_type:
                  summary: 'Restriction type: sco'
                  value:
                    result:
                      id: 1
                      type: sco
                      sco:
                        id: 7
                        type: folder
                        code: 1
                        name: Grade 1
                      group:
                        id: 7
                        code: g31
                        name: Management Group
                      access_list:
                        id: 1
                        code: 111
                        name: Head Office
        '400':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error: unknown
                error_description: '{error message}'
        '422':
          description: |
            Error. Returns values in Japanese.

            Required field errors and other errors are not output simultaneously. sco_code errors are only output when type=sco.

            | Message (Japanese) | English |
            |---|---|
            | 制限タイプを入力してください。 | Please enter the restriction type. |
            | 制限タイプが正しくありません。 | The restriction type is invalid. |
            | コンテンツを選択してください。 | Please select a content item. |
            | コンテンツが見つかりません。 | The content was not found. |
            | グループが見つかりません。 | The group was not found. |
            | ご指定のグループは設定できません。 | The specified group cannot be configured. |
            | アクセスリストを選択してください。 | Please select an access list. |
            | アクセスリストが見つかりません。 | The access list was not found. |
            | 同一のグループ・アクセスリストの組み合わせが登録済みです。 | The same group and access list combination is already registered. |
            | 同一のコンテンツ・グループ・アクセスリストの組み合わせが登録済みです。 | The same content, group, and access list combination is already registered. |
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: array
                    description: Restriction type errors
                    items:
                      type: string
                  sco_code:
                    type: array
                    description: Content specification errors
                    items:
                      type: string
                  group_code:
                    type: array
                    description: Group specification errors
                    items:
                      type: string
                  access_list_code:
                    type: array
                    description: Access list specification errors
                    items:
                      type: string
              example:
                type:
                  - 制限タイプを入力してください。
                  - 制限タイプが正しくありません。
                sco_code:
                  - コンテンツを選択してください。
                  - コンテンツが見つかりません。
                group_code:
                  - グループが見つかりません。
                  - ご指定のグループは設定できません。
                access_list_code:
                  - アクセスリストを選択してください。
                  - アクセスリストが見つかりません。
                  - 同一のグループ・アクセスリストの組み合わせが登録済みです。
                  - 同一のコンテンツ・グループ・アクセスリストの組み合わせが登録済みです。
  /v1/access-list/permission-update/{id}:
    post:
      security:
        - OAuth2: [accesspermit.update]
      tags:
        - access-list
      summary: Update Sign-in/Content browsing restriction
      description: |
        Updates a Sign-in/Content browsing restriction within IP restriction management.
        ### Required Permissions
        - Access Permissions Settings checkbox: Sign-in/Content browsing restrictions > Update
        - Scope: `accesspermit.update`
      operationId: updateAccessInUseList
      parameters:
        - name: id
          in: path
          required: true
          description: Restriction internal ID
          schema:
            type: integer
          example: 15
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                sco_code:
                  type: string
                  description: Content code
                  example: 51c76
                group_code:
                  type: string
                  description: group code
                  example: g3
                access_list_code:
                  type: string
                  description: Access list code
                  example: 2d1f
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                sco_code:
                  type: string
                  description: Content code
                  example: 51c76
                group_code:
                  type: string
                  description: group code
                  example: g3
                access_list_code:
                  type: string
                  description: Access list code
                  example: 2d1f
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: object
                    description: Update result
                    properties:
                      id:
                        type: integer
                        description: Restriction internal ID
                      type:
                        type: string
                        description: Restriction type
                        enum:
                          - login
                          - sco
                      sco:
                        type: object
                        description: Content
                        properties:
                          id:
                            type: integer
                            description: Content Internal ID
                          type:
                            type: string
                            description: Content type
                            enum:
                              - quiz
                              - link
                              - folder
                              - link-folder
                          code:
                            type: string
                            description: Content code
                          name:
                            type: string
                            description: Content name
                      group:
                        allOf:
                          - $ref: '#/components/schemas/IdCodeName'
                          - description: Group
                            properties:
                              id:
                                description: Group Internal ID
                              code:
                                description: group code
                              name:
                                description: group name
                      access_list:
                        allOf:
                          - $ref: '#/components/schemas/IdCodeName'
                          - description: Access list
                            properties:
                              id:
                                description: Access list internal ID
                              code:
                                description: Access list code
                              name:
                                description: Access list name
              examples:
                login_type:
                  summary: 'Restriction type: login'
                  value:
                    result:
                      id: 1
                      type: login
                      group:
                        id: 7
                        code: g31
                        name: Management Group
                      access_list:
                        id: 1
                        code: 111
                        name: Head Office
                sco_type:
                  summary: 'Restriction type: sco'
                  value:
                    result:
                      id: 1
                      type: sco
                      sco:
                        id: 7
                        type: folder
                        code: 1
                        name: Grade 1
                      group:
                        id: 7
                        code: g31
                        name: Management Group
                      access_list:
                        id: 1
                        code: 111
                        name: Head Office
        '400':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                unexpected_error:
                  summary: Unexpected Error
                  value:
                    error: unknown
                    error_description: '{error message}'
                restriction_not_found:
                  summary: Restriction to update not found
                  value:
                    error: not_exists
                    error_description: Permission does not exists.
        '422':
          description: |
            Error. Returns values in Japanese.

            Required field errors and other errors are not output simultaneously. sco_code errors are only output when type=sco.

            | Message (Japanese) | English |
            |---|---|
            | コンテンツを選択してください。 | Please select a content item. |
            | コンテンツが見つかりません。 | The content was not found. |
            | グループが見つかりません。 | The group was not found. |
            | ご指定のグループは設定できません。 | The specified group cannot be configured. |
            | アクセスリストを選択してください。 | Please select an access list. |
            | アクセスリストが見つかりません。 | The access list was not found. |
            | 同一のグループ・アクセスリストの組み合わせが登録済みです。 | The same group and access list combination is already registered. |
            | 同一のコンテンツ・グループ・アクセスリストの組み合わせが登録済みです。 | The same content, group, and access list combination is already registered. |
          content:
            application/json:
              schema:
                type: object
                properties:
                  sco_code:
                    type: array
                    description: Content specification errors
                    items:
                      type: string
                  group_code:
                    type: array
                    description: Group specification errors
                    items:
                      type: string
                  access_list_code:
                    type: array
                    description: Access list specification errors
                    items:
                      type: string
              example:
                sco_code:
                  - コンテンツを選択してください。
                  - コンテンツが見つかりません。
                group_code:
                  - グループが見つかりません。
                  - ご指定のグループは設定できません。
                access_list_code:
                  - アクセスリストを選択してください。
                  - アクセスリストが見つかりません。
                  - 同一のグループ・アクセスリストの組み合わせが登録済みです。
                  - 同一のコンテンツ・グループ・アクセスリストの組み合わせが登録済みです。
  /v1/access-list/permission-delete/{id}:
    post:
      security:
        - OAuth2: [accesspermit.delete]
      tags:
        - access-list
      summary: Delete Sign-in/Content browsing restriction
      description: |
        Deletes a specific Sign-in/Content browsing restriction.
        ### Required Permissions
        - Access Permissions Settings checkbox: Sign-in/Content browsing restrictions > Delete
        - Scope: `accesspermit.delete`
      operationId: deleteAccessInUseList
      parameters:
        - name: id
          in: path
          required: true
          description: Restriction internal ID
          schema:
            type: integer
          example: 123
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  description: Restriction type. Required when id is not specified at the end of the URL.
                  example: sco
                  enum:
                    - login
                    - sco
                sco_code:
                  type: string
                  description: Content code. Required when id is not specified at the end of the URL, or when type=sco.
                  example: d23e74
                group_code:
                  type: string
                  description: group code. Required when id is not specified at the end of the URL. If empty, treated as "All Users".
                  example: g3
                access_list_code:
                  type: string
                  description: Access list code. Required when id is not specified at the end of the URL.
                  example: code_001
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                type:
                  type: string
                  description: Restriction type. Required when id is not specified at the end of the URL.
                  example: sco
                  enum:
                    - login
                    - sco
                sco_code:
                  type: string
                  description: Content code. Required when id is not specified at the end of the URL, or when type=sco.
                  example: d23e74
                group_code:
                  type: string
                  description: group code. Required when id is not specified at the end of the URL. If empty, treated as "All Users".
                  example: g3
                access_list_code:
                  type: string
                  description: Access list code. Required when id is not specified at the end of the URL.
                  example: code_001
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                required:
                  - id
                  - message
                type: object
                properties:
                  id:
                    type: integer
                  message:
                    type: string
              example:
                id: 123
                message: ACCEPTED
        '400':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                unexpected_error:
                  summary: Unexpected Error
                  value:
                    error: unknown
                    error_description: '{error message}'
                restriction_not_found:
                  summary: Restriction to delete not found
                  value:
                    error: not_exists
                    error_description: Permission does not exists.
  /v1/author/list:
    post:
      security:
        - OAuth2: [author.read]
      tags:
        - author
      summary: List authors
      description: |
        Retrieves the list of authors from Curriculum/Product/Seminar/Training > Authors.
        ### Required Permissions
        - Access Permissions Settings checkbox: Stakeholders > Read
        - Scope: `author.read`
      operationId: searchAuthorList
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/ListSearchParameters'
                - type: object
                  properties:
                    keyword:
                      description: 'Fuzzy search by arbitrary string. Search targets: name, identification code'
                      example: teacher
                    limit:
                      description: 'Number of rows to return per search. Defaults to 20 if not specified. Specify 0 to return all rows.'
                      default: 20
                    offset:
          application/x-www-form-urlencoded:
            schema:
              allOf:
                - $ref: '#/components/schemas/ListSearchParameters'
                - type: object
                  properties:
                    keyword:
                      description: 'Fuzzy search by arbitrary string. Search targets: name, identification code'
                      example: teacher
                    limit:
                      description: 'Number of rows to return per search. Defaults to 20 if not specified. Specify 0 to return all rows.'
                      default: 20
                    offset:
        required: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthorList'
              example:
                results:
                  - author_id: 3
                    author_uid: AUTHOR-03
                    author_types:
                      - lecturer
                      - organizer
                      - passers
                    author_name: Teacher A
                    author_summary: Lecturer introduction for Teacher A
                    organizer_summary: Organizer introduction for Teacher A
                    passers_summary: Passer introduction for Teacher A
                    author_description: Detailed lecturer introduction for Teacher A
                    organizer_description: Detailed organizer introduction for Teacher A
                    passers_description: Detailed passer introduction for Teacher A
                    author_ratio: 30
                    entry_date: '2018-12-07 00:00:00'
                    user:
                      id: 2
                      login: author-03
                      name: Teacher A
                  - author_id: 2
                    author_uid: AUTHOR-02
                    author_types:
                      - lecturer
                      - organizer
                      - passers
                    author_name: Teacher E
                    author_summary: Lecturer introduction for Teacher E
                    organizer_summary: Organizer introduction for Teacher E
                    passers_summary: Passer introduction for Teacher E
                    author_description: Detailed lecturer introduction for Teacher E
                    organizer_description: Detailed organizer introduction for Teacher E
                    passers_description: Detailed passer introduction for Teacher E
                    author_ratio: 20
                    entry_date: '2018-12-10 00:00:00'
                    user: null
                meta:
                  total: 2
                  limit: 20
                  offset: 0
  /v1/author/create:
    post:
      security:
        - OAuth2: [author.create]
      tags:
        - author
      summary: Create author
      description: |
        Creates an author in Curriculum/Product/Seminar/Training > Authors.
        ### Required Permissions
        - Access Permissions Settings checkbox: Stakeholders > Add
        - Scope: `author.create`
      operationId: createAuthor
      requestBody:
        content:
          application/json:
            schema:
              required:
                - author_uid
                - author_types
                - author_name
              type: object
              properties:
                author_uid:
                  type: string
                  description: Identification code (half-width alphanumeric characters, "-", and "_" are allowed)
                  example: EC-AUTHOR-04
                author_types:
                  type: array
                  description: List of types
                  items:
                    type: string
                    enum:
                      - lecturer
                      - organizer
                      - passers
                  example:
                    - lecturer
                    - organizer
                    - passers
                author_name:
                  type: string
                  description: Name
                  example: Teacher F
                author_summary:
                  type: string
                  description: Lecturer overview
                  example: Lecturer introduction for Teacher F
                organizer_summary:
                  type: string
                  description: Organizer overview
                  example: Organizer introduction for Teacher F
                passers_summary:
                  type: string
                  description: Passer overview
                  example: Passer introduction for Teacher F
                author_description:
                  type: string
                  description: Lecturer description
                  example: Detailed lecturer introduction for Teacher F
                organizer_description:
                  type: string
                  description: Organizer description
                  example: Detailed organizer introduction for Teacher F
                passers_description:
                  type: string
                  description: Passer description
                  example: Detailed passer introduction for Teacher F
                author_ratio:
                  type: integer
                  description: Distribution ratio
                  minimum: 0
                  maximum: 100
                  example: 25
                user_login:
                  type: string
                  description: Login ID of the account to link
                  example: author-04
          application/x-www-form-urlencoded:
            schema:
              required:
                - author_uid
                - author_types
                - author_name
              type: object
              properties:
                author_uid:
                  type: string
                  description: Identification code (half-width alphanumeric characters, "-", and "_" are allowed)
                  example: EC-AUTHOR-04
                author_types:
                  type: array
                  description: 'List of types (multiple allowed). For form-urlencoded, specify in the format: author_types[]=lecturer&author_types[]=organizer'
                  items:
                    type: string
                    enum:
                      - lecturer
                      - organizer
                      - passers
                  example:
                    - lecturer
                    - organizer
                    - passers
                author_name:
                  type: string
                  description: Name
                  example: Teacher F
                author_summary:
                  type: string
                  description: Lecturer overview
                  example: Lecturer introduction for Teacher F
                organizer_summary:
                  type: string
                  description: Organizer overview
                  example: Organizer introduction for Teacher F
                passers_summary:
                  type: string
                  description: Passer overview
                  example: Passer introduction for Teacher F
                author_description:
                  type: string
                  description: Lecturer description
                  example: Detailed lecturer introduction for Teacher F
                organizer_description:
                  type: string
                  description: Organizer description
                  example: Detailed organizer introduction for Teacher F
                passers_description:
                  type: string
                  description: Passer description
                  example: Detailed passer introduction for Teacher F
                author_ratio:
                  type: integer
                  description: Distribution ratio
                  minimum: 0
                  maximum: 100
                  example: 25
                user_login:
                  type: string
                  description: Login ID of the account to link
                  example: author-04
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthorResult'
              example:
                result:
                  author_id: 4
                  author_uid: AUTHOR-04
                  author_types:
                    - lecturer
                    - organizer
                    - passers
                  author_name: Teacher F
                  author_summary: Lecturer introduction for Teacher F
                  organizer_summary: Organizer introduction for Teacher F
                  passers_summary: Passer introduction for Teacher F
                  author_description: Detailed lecturer introduction for Teacher F
                  organizer_description: Detailed organizer introduction for Teacher F
                  passers_description: Detailed passer introduction for Teacher F
                  author_ratio: 25
                  entry_date: '2018-12-10 00:00:00'
                  user:
                    id: 4
                    login: author-04
                    name: Teacher F
        '400':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error: unknown
                error_description: '{error message}'
        '422':
          description: |
            Error. Returns values in Japanese.

            | Message (Japanese) | English |
            |---|---|
            | 入力してください | Please enter a value. |
            | 識別コードが未設定です。 | The identification code is not set. |
            | 種別は1つ以上選択してください。 | Please select at least one type. |
            | 種別が正しくありません。 | The type is invalid. |
            | このアカウントは別の関係者情報に連携しています。 | This account is already linked to another author. |
            | 名称が未設定です。 | The name is not set. |
          content:
            application/json:
              schema:
                type: object
                description: 'A map with input field names as keys and arrays of error messages as values. Returns values in Japanese.'
                properties:
                  author_uid:
                    type: array
                    description: Identification code errors
                    items:
                      type: string
                  author_types:
                    type: array
                    description: Type errors
                    items:
                      type: string
                  user_id:
                    type: array
                    description: Linked account Login ID errors
                    items:
                      type: string
                  author_name:
                    type: array
                    description: Name errors
                    items:
                      type: string
              example:
                author_uid:
                  - 入力してください
                  - 識別コードが未設定です。
                author_types:
                  - 種別は1つ以上選択してください。
                  - 種別が正しくありません。
                user_id:
                  - このアカウントは別の関係者情報に連携しています。
                author_name:
                  - 名称が未設定です。
  /v1/author/update/{author_id}:
    post:
      security:
        - OAuth2: [author.update]
      tags:
        - author
      summary: Update author
      description: |
        Updates an author in Curriculum/Product/Seminar/Training > Authors.
        ### Required Permissions
        - Access Permissions Settings checkbox: Stakeholders > Update
        - Scope: `author.update`
      operationId: updateAuthor
      parameters:
        - name: author_id
          in: path
          description: Author internal ID
          required: true
          schema:
            type: integer
          example: 123
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                author_uid:
                  type: string
                  description: Identification code (half-width alphanumeric characters, "-", and "_" are allowed)
                  example: EC-AUTHOR-04
                author_types:
                  type: array
                  description: List of types
                  items:
                    type: string
                    enum:
                      - lecturer
                      - organizer
                      - passers
                  example:
                    - lecturer
                    - organizer
                    - passers
                author_name:
                  type: string
                  description: Name
                  example: Teacher F
                author_summary:
                  type: string
                  description: Lecturer overview
                  example: Lecturer introduction for Teacher F
                organizer_summary:
                  type: string
                  description: Organizer overview
                  example: Organizer introduction for Teacher F
                passers_summary:
                  type: string
                  description: Passer overview
                  example: Passer introduction for Teacher F
                author_description:
                  type: string
                  description: Lecturer description
                  example: Detailed lecturer introduction for Teacher F
                organizer_description:
                  type: string
                  description: Organizer description
                  example: Detailed organizer introduction for Teacher F
                passers_description:
                  type: string
                  description: Passer description
                  example: Detailed passer introduction for Teacher F
                author_ratio:
                  type: integer
                  description: Distribution ratio
                  minimum: 0
                  maximum: 100
                  example: 25
                user_login:
                  type: string
                  description: Login ID of the account to link
                  example: author-04
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                author_uid:
                  type: string
                  description: Identification code (half-width alphanumeric characters, "-", and "_" are allowed)
                  example: EC-AUTHOR-04
                author_types:
                  type: array
                  description: 'List of types (multiple allowed). For form-urlencoded, specify in the format: author_types[]=lecturer&author_types[]=organizer'
                  items:
                    type: string
                    enum:
                      - lecturer
                      - organizer
                      - passers
                  example:
                    - lecturer
                    - organizer
                    - passers
                author_name:
                  type: string
                  description: Name
                  example: Teacher F
                author_summary:
                  type: string
                  description: Lecturer overview
                  example: Lecturer introduction for Teacher F
                organizer_summary:
                  type: string
                  description: Organizer overview
                  example: Organizer introduction for Teacher F
                passers_summary:
                  type: string
                  description: Passer overview
                  example: Passer introduction for Teacher F
                author_description:
                  type: string
                  description: Lecturer description
                  example: Detailed lecturer introduction for Teacher F
                organizer_description:
                  type: string
                  description: Organizer description
                  example: Detailed organizer introduction for Teacher F
                passers_description:
                  type: string
                  description: Passer description
                  example: Detailed passer introduction for Teacher F
                author_ratio:
                  type: integer
                  description: Distribution ratio
                  minimum: 0
                  maximum: 100
                  example: 25
                user_login:
                  type: string
                  description: Login ID of the account to link
                  example: author-04
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthorResult'
              example:
                result:
                  author_id: 4
                  author_uid: AUTHOR-04
                  author_types:
                    - lecturer
                    - organizer
                    - passers
                  author_name: Teacher F
                  author_summary: Lecturer introduction for Teacher F
                  organizer_summary: Organizer introduction for Teacher F
                  passers_summary: Passer introduction for Teacher F
                  author_description: Detailed lecturer introduction for Teacher F
                  organizer_description: Detailed organizer introduction for Teacher F
                  passers_description: Detailed passer introduction for Teacher F
                  author_ratio: 25
                  entry_date: '2018-12-10 00:00:00'
                  user:
                    id: 4
                    login: author-04
                    name: Teacher F
        '400':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error: unknown
                error_description: '{error message}'
        '422':
          description: |
            Error. Returns values in Japanese.

            | Message (Japanese) | English |
            |---|---|
            | 識別コードが未設定です。 | The identification code is not set. |
            | 種別が正しくありません。 | The type is invalid. |
          content:
            application/json:
              schema:
                type: object
                description: 'A map with input field names as keys and arrays of error messages as values. Returns values in Japanese.'
                properties:
                  author_uid:
                    type: array
                    description: Identification code errors
                    items:
                      type: string
                  author_types:
                    type: array
                    description: Type errors
                    items:
                      type: string
              example:
                author_uid:
                  - 識別コードが未設定です。
                author_types:
                  - 種別が正しくありません。
  /v1/author/delete/{author_id}:
    post:
      security:
        - OAuth2: [author.delete]
      tags:
        - author
      summary: Delete author
      description: |
        Deletes a specific author from Curriculum/Product/Seminar/Training > Authors.
        ### Required Permissions
        - Access Permissions Settings checkbox: Stakeholders > Delete
        - Scope: `author.delete`
      operationId: deleteAuthor
      parameters:
        - name: author_id
          in: path
          description: Author internal ID
          required: true
          schema:
            type: integer
          example: 10
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                required:
                  - id
                  - uid
                  - message
                type: object
                properties:
                  id:
                    type: integer
                    description: Author internal ID
                  uid:
                    type: string
                    description: Identification code
                  message:
                    type: string
                    description: Deletion completion message
              example:
                id: 10
                uid: EC-AUTHOR-10
                message: ACCEPTED
        '400':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                unexpected_error:
                  summary: Unexpected Error
                  value:
                    error: unknown
                    error_description: '{error message}'
                author_not_found:
                  summary: Author to delete not found
                  value:
                    error: not_exists
                    error_description: Author does not exists.
                author_not_specified:
                  summary: Author to delete not specified
                  value:
                    error: wrong_parameter
                    error_description: Author ID could not be empty.
  /v1/training/reservation-list:
    post:
      security:
        - OAuth2: [training_reservation.read]
      tags:
        - training
      summary: List training reservation history
      description: |
        Retrieves training reservation history.
        ### Required Permissions
        - Access Permissions Settings checkbox: Training Reservation Status > Read
        - Scope: `training_reservation.read`
      operationId: searchTrainingReservaionList
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                reservation_no:
                  type: string
                  description: 'Fuzzy search by arbitrary string. Search target: reservation ID'
                  example: P20210426
                reservation_statuses:
                  type: array
                  description: Reservation status
                  items:
                    type: string
                    enum:
                      - waiting_approval
                      - approval
                      - disapproval
                      - cancel
                  example:
                    - waiting_approval
                    - approval
                attendance_statuses:
                  type: array
                  description: Attendance status
                  items:
                    type: string
                    enum:
                      - not_accepted
                      - attended
                      - absence
                  example:
                    - not_accepted
                    - absence
                created_at1:
                  type: string
                  description: Reservation date (from)
                  example: '2021-04-01'
                created_at2:
                  type: string
                  description: Reservation date (to)
                  example: '2026-04-26'
                approval_at1:
                  type: string
                  description: Approval date (from)
                  example: '2021-04-01'
                approval_at2:
                  type: string
                  description: Approval date (to)
                  example: '2026-04-26'
                attendance_at1:
                  type: string
                  description: Attendance date (from)
                  example: '2021-04-01'
                attendance_at2:
                  type: string
                  description: Attendance date (to)
                  example: '2026-04-26'
                ticket_updated_at1:
                  type: string
                  description: Ticket updated date (from)
                  example: '2021-04-01'
                ticket_updated_at2:
                  type: string
                  description: Ticket updated date (to)
                  example: '2026-04-26'
                user:
                  type: string
                  description: 'Fuzzy search by arbitrary string. Search targets: user Login ID, name, email address'
                  example: user
                training:
                  type: string
                  description: 'Fuzzy search by arbitrary string. Search targets: training title, training code'
                  example: training
                limit:
                  type: integer
                  description: 'Number of rows to return per request. Defaults to 20 if not specified. Specify 0 to return all rows.'
                  default: 5000
                  example: 1
                offset:
                  type: integer
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                reservation_no:
                  type: string
                  description: 'Fuzzy search by arbitrary string. Search target: reservation ID'
                  example: P20210426
                reservation_statuses:
                  type: array
                  description: Reservation status
                  items:
                    type: string
                    enum:
                      - waiting_approval
                      - approval
                      - disapproval
                      - cancel
                  example:
                    - waiting_approval
                    - approval
                attendance_statuses:
                  type: array
                  description: Attendance status
                  items:
                    type: string
                    enum:
                      - not_accepted
                      - attended
                      - absence
                  example:
                    - not_accepted
                    - absence
                created_at1:
                  type: string
                  description: Reservation date (from)
                  example: '2021-04-01'
                created_at2:
                  type: string
                  description: Reservation date (to)
                  example: '2026-04-26'
                approval_at1:
                  type: string
                  description: Approval date (from)
                  example: '2021-04-01'
                approval_at2:
                  type: string
                  description: Approval date (to)
                  example: '2026-04-26'
                attendance_at1:
                  type: string
                  description: Attendance date (from)
                  example: '2021-04-01'
                attendance_at2:
                  type: string
                  description: Attendance date (to)
                  example: '2026-04-26'
                ticket_updated_at1:
                  type: string
                  description: Ticket updated date (from)
                  example: '2021-04-01'
                ticket_updated_at2:
                  type: string
                  description: Ticket updated date (to)
                  example: '2026-04-26'
                user:
                  type: string
                  description: 'Fuzzy search by arbitrary string. Search targets: user Login ID, name, email address'
                  example: user
                training:
                  type: string
                  description: 'Fuzzy search by arbitrary string. Search targets: training title, training code'
                  example: training
                limit:
                  type: integer
                  description: 'Number of rows to return per request. Defaults to 20 if not specified. Specify 0 to return all rows.'
                  default: 5000
                  example: 1
                offset:
                  type: integer
        required: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrainingReservationList'
              example:
                results:
                  - reservation_no: P202403151AC53A-L
                    reservation_status: approval
                    reservation_at: '2024-03-10 22:00:00'
                    canceled_at: null
                    created_at: '2024-03-10 22:00:00'
                    updated_at: '2024-03-10 22:00:00'
                    attendance_at: '2024-03-25 22:00:00'
                    reservation_user:
                      user_id: 22
                      user_name: Test User
                      user_login: test-user
                      user_email: sample.aaa.bbb@sample.co.jp
                    reserved_training:
                      training_code: sample_training_code
                      training_title: Sample Training
                      stock_name: Classroom A
                      duration_end_date: null
                      duration_num: 3
                      duration_unit: D
                      ticket_no: a1234b
                      attendance_status: attended
                meta:
                  total: 2
                  limit: 1
                  offset: 0
        '422':
          description: |
            Error. Returns values in Japanese.

            | Message (Japanese) | English |
            |---|---|
            | 30文字以下で入力してください。 | Please enter within 30 characters. |
            | 予約ステータスは配列で1個以上4個以下の範囲で設定してください。 | Please set reservation statuses as an array with 1 to 4 items. |
            | 予約ステータスが正しくありません。 | The reservation status is invalid. |
            | 出席ステータスは配列で1個以上3個以下の範囲で設定してください。 | Please set attendance statuses as an array with 1 to 3 items. |
            | 出席ステータスが正しくありません。 | The attendance status is invalid. |
            | 予約日（から）のフォーマットが正しくありません。 | The format of reservation date (from) is invalid. |
            | 予約日（まで）のフォーマットが正しくありません。 | The format of reservation date (to) is invalid. |
            | 承認日（から）のフォーマットが正しくありません。 | The format of approval date (from) is invalid. |
            | 承認日（まで）のフォーマットが正しくありません。 | The format of approval date (to) is invalid. |
            | 出席日（から）のフォーマットが正しくありません。 | The format of attendance date (from) is invalid. |
            | 出席日（まで）のフォーマットが正しくありません。 | The format of attendance date (to) is invalid. |
            | チケット更新日（から）のフォーマットが正しくありません。 | The format of ticket updated date (from) is invalid. |
            | チケット更新日（まで）のフォーマットが正しくありません。 | The format of ticket updated date (to) is invalid. |
            | ユーザー曖昧検索は200文字以下で入力してください。 | Please enter within 200 characters for the user fuzzy search. |
            | 研修曖昧検索は200文字以下で入力してください。 | Please enter within 200 characters for the training fuzzy search. |
            | 1以上5000以下の整数で入力してください。 | Please enter an integer between 1 and 5000. |
            | 0以上の整数で入力してください。 | Please enter an integer of 0 or greater. |
          content:
            application/json:
              schema:
                type: object
                properties:
                  reservation_no:
                    type: array
                    description: Reservation ID errors
                    items:
                      type: string
                  reservation_statuses:
                    type: array
                    description: Reservation status errors
                    items:
                      type: string
                  attendance_statuses:
                    type: array
                    description: Attendance status errors
                    items:
                      type: string
                  created_at1:
                    type: array
                    description: Reservation date start errors
                    items:
                      type: string
                  created_at2:
                    type: array
                    description: Reservation date end errors
                    items:
                      type: string
                  approval_at1:
                    type: array
                    description: Approval date start errors
                    items:
                      type: string
                  approval_at2:
                    type: array
                    description: Approval date end errors
                    items:
                      type: string
                  attendance_at1:
                    type: array
                    description: Attendance date start errors
                    items:
                      type: string
                  attendance_at2:
                    type: array
                    description: Attendance date end errors
                    items:
                      type: string
                  ticket_updated_at1:
                    type: array
                    description: Ticket updated date start errors
                    items:
                      type: string
                  ticket_updated_at2:
                    type: array
                    description: Ticket updated date end errors
                    items:
                      type: string
                  user:
                    type: array
                    description: User search errors
                    items:
                      type: string
                  training:
                    type: array
                    description: Training search errors
                    items:
                      type: string
                  limit:
                    type: array
                    description: Limit errors
                    items:
                      type: string
                  offset:
                    type: array
                    description: Offset errors
                    items:
                      type: string
              example:
                reservation_no:
                  - 30文字以下で入力してください。
                reservation_statuses:
                  - 予約ステータスは配列で1個以上4個以下の範囲で設定してください。
                  - 予約ステータスが正しくありません。
                attendance_statuses:
                  - 出席ステータスは配列で1個以上3個以下の範囲で設定してください。
                  - 出席ステータスが正しくありません。
                created_at1:
                  - 予約日（から）のフォーマットが正しくありません。
                created_at2:
                  - 予約日（まで）のフォーマットが正しくありません。
                approval_at1:
                  - 承認日（から）のフォーマットが正しくありません。
                approval_at2:
                  - 承認日（まで）のフォーマットが正しくありません。
                attendance_at1:
                  - 出席日（から）のフォーマットが正しくありません。
                attendance_at2:
                  - 出席日（まで）のフォーマットが正しくありません。
                ticket_updated_at1:
                  - チケット更新日（から）のフォーマットが正しくありません。
                ticket_updated_at2:
                  - チケット更新日（まで）のフォーマットが正しくありません。
                user:
                  - ユーザー曖昧検索は200文字以下で入力してください。
                training:
                  - 研修曖昧検索は200文字以下で入力してください。
                limit:
                  - 1以上5000以下の整数で入力してください。
                offset:
                  - 0以上の整数で入力してください。
  /v1/payment/list:
    post:
      security:
        - OAuth2: [payment.read]
      tags:
        - payment
      summary: List payment history (by order)
      description: |
        Retrieves payment history (by order) from the EC feature.
        ### Required Permissions
        - Access Permissions Settings checkbox: Payment History > Read
        - Scope: `payment.read`
      operationId: searchPaymentList
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                no:
                  type: string
                  description: 'Fuzzy search by arbitrary string. Search target: order ID'
                  example: P20210426
                status:
                  type: array
                  description: Payment status
                  items:
                    type: string
                    enum:
                      - order
                      - cancel
                      - canceled
                      - waiting_pay
                      - waiting_confirm
                      - expired
                      - paid
                  example:
                    - order
                    - paid
                method:
                  type: array
                  description: Payment method
                  items:
                    type: string
                    enum:
                      - free
                      - bank
                      - bill
                      - paypal
                      - gmo_cvs
                      - gmo_ganb
                      - gmo_card
                  example:
                    - bill
                    - gmo_card
                created_at1:
                  type: string
                  description: Order date (from)
                  example: '2021-04-01'
                created_at2:
                  type: string
                  description: Order date (to)
                  example: '2026-04-26'
                paid_at1:
                  type: string
                  description: Payment date (from)
                  example: '2021-04-01'
                paid_at2:
                  type: string
                  description: Payment date (to)
                  example: '2026-04-26'
                comment:
                  type: string
                  description: Fuzzy search by comment
                  example: test
                user:
                  type: string
                  description: 'Fuzzy search by arbitrary string. Search targets: user Login ID, name, email address'
                  example: user
                product:
                  type: string
                  description: 'Fuzzy search by arbitrary string. Search targets: product/seminar title, product/seminar code, coupon code'
                  example: training
                product_type:
                  type: array
                  description: Type
                  items:
                    type: string
                    enum:
                      - product
                      - seminar
                  example:
                    - product
                    - seminar
                limit:
                  type: integer
                  description: 'Number of rows to return per request. Defaults to 20 if not specified. Specify 0 to return all rows.'
                  default: 20
                  example: 1
                offset:
                  type: integer
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                no:
                  type: string
                  description: 'Fuzzy search by arbitrary string. Search target: order ID'
                  example: P20210426
                status:
                  type: array
                  description: 'Payment status (multiple allowed). For form-urlencoded, specify in the format: status[]=order&status[]=paid'
                  items:
                    type: string
                    enum:
                      - order
                      - cancel
                      - canceled
                      - waiting_pay
                      - waiting_confirm
                      - expired
                      - paid
                  example:
                    - order
                    - paid
                method:
                  type: array
                  description: 'Payment method (multiple allowed). For form-urlencoded, specify in the format: method[]=bill&method[]=gmo_card'
                  items:
                    type: string
                    enum:
                      - free
                      - bank
                      - bill
                      - paypal
                      - gmo_cvs
                      - gmo_ganb
                      - gmo_card
                  example:
                    - bill
                    - gmo_card
                created_at1:
                  type: string
                  description: Order date (from)
                  example: '2021-04-01'
                created_at2:
                  type: string
                  description: Order date (to)
                  example: '2026-04-26'
                paid_at1:
                  type: string
                  description: Payment date (from)
                  example: '2021-04-01'
                paid_at2:
                  type: string
                  description: Payment date (to)
                  example: '2026-04-26'
                comment:
                  type: string
                  description: Fuzzy search by comment
                  example: test
                user:
                  type: string
                  description: 'Fuzzy search by arbitrary string. Search targets: user Login ID, name, email address'
                  example: user
                product:
                  type: string
                  description: 'Fuzzy search by arbitrary string. Search targets: product/seminar title, product/seminar code, coupon code'
                  example: training
                product_type:
                  type: array
                  description: 'Type (multiple allowed). For form-urlencoded, specify in the format: product_type[]=product&product_type[]=seminar'
                  items:
                    type: string
                    enum:
                      - product
                      - seminar
                  example:
                    - product
                    - seminar
                limit:
                  type: integer
                  description: 'Number of rows to return per request. Defaults to 20 if not specified. Specify 0 to return all rows.'
                  default: 20
                  example: 1
                offset:
                  type: integer
        required: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentList'
              example:
                results:
                  - payment_id: 112
                    payment_no: P202104262F00BC-123
                    payment_status: paid
                    payment_method: bill
                    payment_price: 80
                    payment_transaction_fee: 0
                    paid_at: '2021-04-26 17:33:13'
                    canceled_at: null
                    created_at: '2021-04-26 17:33:13'
                    updated_at: '2021-04-26 17:33:13'
                    payment_purchases:
                      - purchase_id: 103
                        product_code: SP-TEST-001
                        product_type: product
                        product_title: Product Title 1
                        duration_pirce: 100
                        duration_start: '2021-04-27 15:37:28'
                        duration_close: '2021-04-27 15:37:28'
                        purchase_amount: 1
                        purchase_price: 80
                        coupon:
                          discount_code: test
                          discount_name: test
                          discount_rate: 20
                        tickets: null
                        authors:
                          - author_id: 2
                            author_uid: EC-AUTHOR-02
                            author_name: Teacher E
                            profit_rate: 20
                    payment_user:
                      user_id: 100
                      user_name: Buyer 100
                      user_login: payment-100
                      user_email: user100@example.co.jp
                    payment_contact:
                      contact_username: User 100
                      contact_company: Company 100 Ltd.
                      contact_tel: null
                      contact_zip: 111-1111
                      contact_prefectures: Prefecture XX
                      contact_city: City XX
                      contact_addr1: XX 1-1
                      contact_addr2: null
                    comment: null
                  - payment_id: 111
                    payment_no: P202104264B845D-888
                    payment_status: paid
                    payment_method: bill
                    payment_price: 200
                    payment_transaction_fee: 0
                    paid_at: '2021-04-26 17:28:21'
                    canceled_at: null
                    created_at: '2021-04-26 17:28:21'
                    updated_at: '2021-04-26 17:28:21'
                    payment_purchases:
                      - purchase_id: 102
                        product_code: SP-SEMINAR-001
                        product_type: seminar
                        product_title: Seminar Title 1
                        duration_pirce: 100
                        duration_start: '2021-04-26 17:28:21'
                        duration_close: '2021-04-27 17:28:21'
                        purchase_amount: 2
                        purchase_price: 200
                        coupon: null
                        tickets:
                          - 10206
                          - 10207
                        authors: null
                    payment_user:
                      user_id: 200
                      user_name: Buyer 200
                      user_login: payment-200
                      user_email: user200@example.co.jp
                    payment_contact:
                      contact_username: User 200
                      contact_company: Company 200 Ltd.
                      contact_tel: null
                      contact_zip: 222-2222
                      contact_prefectures: Prefecture YY
                      contact_city: City YY
                      contact_addr1: YY 1-1
                      contact_addr2: null
                    comment: null
                meta:
                  total: 5
                  limit: 1
                  offset: 0
        '422':
          description: |
            Error. Returns values in Japanese.

            | Message (Japanese) | English |
            |---|---|
            | ステータスが正しくありません。 | The status is invalid. |
            | 決済方法が正しくありません。 | The payment method is invalid. |
            | 種別が正しくありません。 | The type is invalid. |
            | 注文日（まで）を10文字で入力してください。 | Please enter the order date (to) in 10 characters. |
            | 注文日（まで）が正しくありません。 | The order date (to) is invalid. |
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: array
                    description: Payment status errors
                    items:
                      type: string
                  method:
                    type: array
                    description: Payment method errors
                    items:
                      type: string
                  product_type:
                    type: array
                    description: Type errors
                    items:
                      type: string
                  created_at2:
                    type: array
                    description: Order date end errors
                    items:
                      type: string
              example:
                status:
                  - ステータスが正しくありません。
                method:
                  - 決済方法が正しくありません。
                product_type:
                  - 種別が正しくありません。
                created_at2:
                  - 注文日（まで）を10文字で入力してください。
                  - 注文日（まで）が正しくありません。
components:
  schemas:
    GroupFieldIdentifier:
      type: object
      description: Group identifier (group_id or group_code)
      properties:
        field_name:
          type: string
          description: Field name
          enum:
            - group_id
            - group_code
        field_value:
          type: string
          description: Field value
    ScoFieldIdentifier:
      type: object
      description: Content identifier (sco_id or sco_code)
      properties:
        field_name:
          type: string
          description: Field name
          enum:
            - sco_id
            - sco_code
        field_value:
          type: string
          description: Field value
    GroupInfo:
      type: object
      description: Group information (for response)
      properties:
        group_id:
          type: integer
          description: Group Internal ID
        group_code:
          type: string
          description: group code
        name:
          type: string
          description: 'Group name. When group_code is "all", returns 全ユーザー in Japanese.'
    ScoInfo:
      type: object
      description: Content information (for response)
      properties:
        sco_id:
          type: string
          description: Content Internal ID
        sco_code:
          type: string
          description: Content code
        title:
          type: string
          description: 'Content title. When sco_code is "all", returns 全コンテンツ in Japanese.'
    ListSearchParameters:
      type: object
      description: List search parameters
      properties:
        keyword:
          type: string
          description: Search keyword
        limit:
          type: integer
          description: Number of items to retrieve
        offset:
          type: integer
          description: Start position for retrieval
    IdCodeName:
      type: object
      description: Object with ID, code, and name
      properties:
        id:
          type: integer
          description: Internal ID
        code:
          type: string
          description: Code
        name:
          type: string
          description: Name
    GetGroupContentsResponse:
      type: object
      required:
        - result
      properties:
        result:
          $ref: '#/components/schemas/Group'
    Group:
      type: object
      description: Group information and content list
      required:
        - group_id
        - group_code
        - name
        - scos
      properties:
        group_id:
          type: integer
          format: int64
          description: Group Internal ID
        group_code:
          type: string
          description: group code
        name:
          type: string
        scos:
          type: array
          description: Content list
          items:
            $ref: '#/components/schemas/ScoAssign'
    ScoAssign:
      type: object
      description: Content element
      required:
        - parent_id
        - sco_id
        - sco_code
        - sco_type
        - generator_type
        - title
      properties:
        parent_id:
          type: integer
          format: int64
        sco_id:
          type: string
        sco_code:
          type: string
        sco_type:
          type: string
          description: 'folder=course/folder, contents=content'
        generator_type:
          type: string
          description: Content type
        title:
          type: string
    GroupValidationErrors:
      type: object
      description: A map with input field names as keys and arrays of error messages as values
      properties:
        parent_id:
          type: array
          description: Parent group ID errors
          items:
            type: string
        parent_code:
          type: array
          description: Parent group code errors
          items:
            type: string
        name:
          type: array
          description: group name errors
          items:
            type: string
        group_code:
          type: array
          description: group code errors
          items:
            type: string
        user_limit:
          type: array
          description: 'Maximum registerable account count errors. Returns values in Japanese.'
          items:
            type: string
    IPValidationErrors:
      type: object
      description: 'A map with input field names as keys and arrays of error messages as values. Returns values in Japanese.'
      properties:
        name:
          type: array
          description: Access list name errors
          items:
            type: string
        code:
          type: array
          description: Access list code errors
          items:
            type: string
        ip_list:
          type: array
          description: IP address errors
          items:
            type: string
    User:
      required:
        - active_status
        - active_status_label
        - created_at
        - receive_notice_mail
        - updated_at
        - user_id
      type: object
      properties:
        user_id:
          type: integer
          description: User Internal ID
        active_status:
          type: string
          description: 'Status and label

            0:Not activated

            1:Unapproved

            2:Rejected

            3:Awaiting login

            6:Suspended

            7:Active

            8:Inactive

            9:Deleted'
        active_status_label:
          type: string
          description: 'The Japanese label for active_status. e.g. 0:未有効化, 1:未承認, 2:非承認, 6:一時停止, 7:有効, 8:無効, 9:削除. When active_status is 3, no label is defined and "unknown" is returned.'
        login:
          minLength: 5
          maxLength: 50
          type: string
          example: 'user-001'
          description: Login ID
        name:
          type: string
          description: name
        nickname:
          type: string
          description: display name
        department:
          type: string
          description: department
        position:
          type: string
          description: job title
        email:
          type: string
          description: Email address
          format: email
        lms_country:
          type: string
          description: |
            Country/region of residence. The country name is returned in English.
            Allowed values: Japan, Afghanistan, Albania, Algeria, Andorra, Angola, AntiguaAndBarbuda, Argentina, Armenia, Australia, Austria, Azerbaijan, Bahamas, Bahrain, Bangladesh, Barbados, Belarus, Belgium, Belize, Benin, Bhutan, Bolivia, BosniaAndHerzegovina, Botswana, Brazil, BruneiDarussalam, Bulgaria, BurkinaFaso, Burundi, CaboVerde, Cambodia, Cameroon, Canada, CentralAfricanRepublic, Chad, Chile, China, Colombia, Comoros, Congo, CostaRica, CoteD'Ivoire, Croatia, Cuba, Cyprus, CzechRepublic, DemocraticPeople'sRepublicOfKorea, DemocraticRepublicOfTheCongo, Denmark, Djibouti, Dominica, DominicanRepublic, Ecuador, Egypt, ElSalvador, EquatorialGuinea, Eritrea, Estonia, Eswatini, Ethiopia, Fiji, Finland, France, Gabon, Gambia, Georgia, Germany, Ghana, Greece, Grenada, Guatemala, Guinea, GuineaBissau, Guyana, Haiti, Honduras, Hungary, Iceland, India, Indonesia, Iran, Iraq, Ireland, Israel, Italy, Jamaica, Jordan, Kazakhstan, Kenya, Kiribati, Kuwait, Kyrgyzstan, LaoPeople'sDemocraticRepublic, Latvia, Lebanon, Lesotho, Liberia, Libya, Liechtenstein, Lithuania, Luxembourg, Madagascar, Malawi, Malaysia, Maldives, Mali, Malta, MarshallIslands, Mauritania, Mauritius, Mexico, Micronesia, Monaco, Mongolia, Montenegro, Morocco, Mozambique, Myanmar, Namibia, Nauru, Nepal, Netherlands, NewZealand, Nicaragua, Niger, Nigeria, NorthMacedonia, Norway, Oman, Pakistan, Palau, Panama, PapuaNewGuinea, Paraguay, Peru, Philippines, Poland, Portugal, Qatar, RepublicOfKorea, RepublicOfMoldova, Romania, RussianFederation, Rwanda, SaintKittsAndNevis, SaintLucia, SaintVincentAndTheGrenadines, Samoa, SanMarino, SaoTomeAndPrincipe, SaudiArabia, Senegal, Serbia, Seychelles, SierraLeone, Singapore, Slovakia, Slovenia, SolomonIslands, Somalia, SouthAfrica, SouthSudan, Spain, SriLanka, Sudan, Suriname, Sweden, Switzerland, SyrianArabRepublic, Tajikistan, Thailand, Timor-Leste, Togo, Tonga, TrinidadAndTobago, Tunisia, Turkey, Turkmenistan, Tuvalu, Uganda, Ukraine, UnitedArabEmirates, UnitedKingdomOfGreatBritainAndNorthernIreland, UnitedRepublicOfTanzania, UnitedStatesOfAmerica, Uruguay, Uzbekistan, Vanuatu, Venezuela, VietNam, Yemen, Zambia, Zimbabwe
        lms_language:
          type: string
          description: |
            Language. Returned as a locale code.
            Allowed values: ja_JP (Japanese), en_US (English), vi_VN (Vietnamese), id_ID (Indonesian), de_DE (German), es_ES (Spanish), fr_FR (French), my_MM (Burmese), pt_PT (Portuguese), tl_PH (Tagalog), ru_RU (Russian), ur_PK (Urdu), hi_IN (Hindi), th_TH (Thai), km_KH (Khmer), zh_CN (Simplified Chinese), zh_TW (Traditional Chinese), ko_KR (Korean)
        lms_timezone:
          type: string
          description: |
            Timezone. Returned as an IANA timezone identifier.
            Allowed values: Asia/Tokyo, Europe/Budapest, Africa/Lagos, Europe/Amsterdam, Europe/Paris, Africa/Windhoek, Africa/Harare, Europe/Helsinki, Europe/Sofia, Africa/Cairo, Europe/Bucharest, Asia/Jerusalem, Asia/Amman, Asia/Beirut, Asia/Damascus, Europe/Istanbul, Asia/Kuwait, Europe/Minsk, Africa/Nairobi, Asia/Baghdad, Europe/Moscow, Asia/Tehran, Asia/Yerevan, Asia/Baku, Asia/Tbilisi, Asia/Kabul, Asia/Ashgabat, Asia/Karachi, Asia/Kolkata, Asia/Colombo, Asia/Kathmandu, Asia/Dhaka, Asia/Yangon, Asia/Bangkok, Asia/Singapore, Asia/Taipei, Asia/Hong_Kong, Asia/Shanghai, Asia/Macau, Asia/Ulaanbaatar, Asia/Seoul, Australia/Melbourne, Pacific/Guam, Pacific/Noumea, Pacific/Auckland, Pacific/Apia, America/Argentina/Buenos_Aires, America/Sao_Paulo, America/Santiago, America/Cayenne, America/Montevideo, America/Manaus, America/Asuncion, America/Bogota, America/Mexico_City, America/Phoenix, America/Vancouver, Pacific/Honolulu, UTC
        lms_date_format:
          type: string
          description: Date format
        lms_time_format:
          type: string
          description: Time format
        custom_field:
          type: string
          description: Custom field value. Displayed by each custom field's field key when calling the API.
        created_at:
          type: string
          format: date-time
          description: Created at
        updated_at:
          type: string
          format: date-time
          description: Updated at
        receive_notice_mail:
          type: integer
          description: 'Receive notification emails for published announcements. 0:Do not receive 1:Receive'
    UserDetail:
      type: object
      required:
        - result
      properties:
        result:
          allOf:
            - $ref: '#/components/schemas/User'
            - required:
                - groups
              type: object
              properties:
                groups:
                  type: array
                  description: Belonged groups
                  items:
                    $ref: '#/components/schemas/GroupResponse'
    Meta:
      required:
        - limit
        - offset
        - total
      type: object
      properties:
        total:
          type: integer
          description: Total count
          example: 2236
        limit:
          type: integer
          description: Limit value
          example: 20
        offset:
          type: integer
          description: Start position
          example: 0
      description: Meta information
    UserListResponse:
      required:
        - meta
        - results
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/User'
        meta:
          $ref: '#/components/schemas/Meta'
    GroupResponse:
      required:
        - group_code
        - id
        - name
      type: object
      properties:
        id:
          type: integer
          description: Group Internal ID
        name:
          type: string
          description: group name
        group_code:
          type: string
          description: group code
        user_limit:
          type: integer
          description: Registration limit
        product_id:
          type: integer
          description: Product internal ID
    UserCreateResponse:
      type: object
      properties:
        result:
          type: object
          description: Change result
          properties:
            user_id:
              type: integer
              description: User Internal ID
            login:
              type: string
              description: Login ID
    UserDeleteResponse:
      required:
        - id
        - login
        - message
      type: object
      properties:
        id:
          type: integer
        login:
          type: string
        message:
          type: string
    GroupDeleteResponse:
      required:
        - id
        - code
        - message
      type: object
      properties:
        id:
          type: integer
        code:
          type: string
        message:
          type: string
    IPDeleteResponse:
      required:
        - id
        - code
        - message
      type: object
      properties:
        id:
          type: integer
        code:
          type: string
        message:
          type: string
    MergeResultItem:
      type: object
      description: Merge result by type
      properties:
        type:
          type: string
          description: 'Merge data type. result=score, badge=badge, login=login'
          enum:
            - result
            - badge
            - login
        total:
          type: integer
          description: Number of merged data items
        login:
          type: integer
          description: Number of login records
    Result:
      type: object
      properties:
        src_user_id:
          type: integer
          description: Source user internal ID
        dst_user_id:
          type: integer
          description: Destination user internal ID
        merge_result:
          type: array
          description: Merge result
          items:
            $ref: '#/components/schemas/MergeResultItem'
    MergeResponse:
      type: object
      description: Change result
      properties:
        result:
          $ref: '#/components/schemas/Result'
    MergeResponse422:
      type: object
      description: 'Validation error response. Returns values in Japanese.'
      properties:
        src_login:
          type: array
          items:
            type: string
          description: Login ID input errors (source)
        dst_login:
          type: array
          items:
            type: string
          description: Login ID input errors (destination)
        force:
          type: array
          items:
            type: string
          description: Flag specification errors
    ErrorResponse_user:
      type: object
      description: 'Validation error response. The key is the field name and the value is an array of error messages. Returns values in Japanese.'
      additionalProperties:
        type: array
        items:
          type: string
    ErrorResponse_assignGroup422:
      type: object
      description: 'Validation error response. Returns values in Japanese.'
      properties:
        assign:
          type: array
          items:
            type: string
        release:
          type: array
          items:
            type: string
    ErrorResponse_userpermission:
      required:
        - error
        - error_description
        - error_report
      type: object
      properties:
        error:
          type: string
          description: Error type
        error_description:
          type: string
          description: Error details
        error_report:
          type: array
          description: Error report
          items:
            type: string
    Sco:
      required:
        - child_count
        - created_at
        - sco_code
        - sco_id
        - sco_type
        - title
        - updated_at
      type: object
      properties:
        sco_id:
          type: string
          description: Content Internal ID
        sco_type:
          type: string
          description: Content type
          enum:
            - folder
            - contents
            - selectable-contents
            - constraint
            - title-bar
        sco_code:
          type: string
          description: Content code
        generetor_type:
          type: string
          nullable: true
          description: Content generator type
          enum:
            - QUIZ
            - CARD
            - MOVIE
            - PDF
            - HTML
            - MARKER
            - DOWNLOAD
            - REPORT
            - DISCUSSION
            - TYPING
            - ASSESSMENT
            - ISPRING
            - SCORM
            - LTI
            - URL_LINK
            - MEXCBT
            - YOUTUBE
            - PPT2HTML
            - IFRAME
            - WRAPPER
            - ENQUETE
            - CERTIFICATE
            - RESULT
        title:
          type: string
          description: Content title
        child_count:
          type: integer
          description: Number of content items in the course or folder
        created_at:
          type: string
          description: Created at
          format: date-time
        updated_at:
          type: string
          description: Updated at
          format: date-time
    ScoListResponse:
      required:
        - meta
        - scos
      type: object
      properties:
        scos:
          type: array
          items:
            $ref: '#/components/schemas/Sco'
        meta:
          $ref: '#/components/schemas/Meta'
    AccessListResponse:
      required:
        - meta
        - results
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/Accesslist'
        meta:
          $ref: '#/components/schemas/Meta'
    Accesslist:
      title: AccessList
      description: Object representing an access-permitted location (or an element of the list)
      type: object
      required:
        - id
        - name
        - code
        - ip_list
        - inuse
      properties:
        id:
          type: integer
          description: Access list internal ID
        name:
          type: string
          description: Access list name
        code:
          type: string
          description: Access list code (identifier)
        ip_list:
          type: array
          description: IP address list
          items:
            type: string
            description: IP address
        inuse:
          type: boolean
          description: Whether the access list is used as a Sign-in/Content browsing restriction
    ContentCreateUpdateRequest:
      type: object
      required:
        - payload
        - type
      properties:
        type:
          type: string
          description: Job type
          enum:
            - create-content
            - update-content
        payload:
          $ref: '#/components/schemas/ContentPayload'
    ContentPayload:
      type: object
      properties:
        sco_code:
          type: string
          description: Content code. Required when type=update-content.
        sco_type:
          type: string
          description: Content type. Required when type=create-content.
          enum:
            - course
            - folder
            - content
        generator_type:
          type: string
          description: Content generator type. Required when sco_type=content.
          enum:
            - SCORM
            - PDF
        parent_sco_code:
          type: string
          description: Content code of the course/folder where the content will be created or updated. Required when sco_type=content or folder.
        insert_after:
          type: string
          description: 'Content code indicating the placement position.<br>

            {sco_code}: Place immediately after the specified sco_code.<br>

            `<first>`: Place at the beginning of the course/folder.<br>

            `<last>`: Place at the end of the course/folder (default).'
          default: <last>
        sco_data:
          type: object
          description: Content data. Required when type=create-content and when updating content with type=update-content.
          properties:
            title:
              type: string
              description: Content title. Required when type=create-content.
              maxLength: 60
            description:
              type: string
              description: Content description
              maxLength: 1000
            additional_fields:
              type: object
              description: Additional information required per content item
              properties:
                downloadable:
                  type: integer
                  description: 'PDF download/print permission flag. 1:Yes 0:No'
                  default: 1
                  enum:
                    - 0
                    - 1
                language:
                  type: string
                  description: 'Language. ja:Japanese en:English'
                  default: ja
                  enum:
                    - ja
                    - en
                scroll:
                  type: string
                  description: 'Page navigation setting. page:page unit vertical:vertical scroll horizontal:horizontal scroll'
                  default: vertical
                  enum:
                    - page
                    - vertical
                    - horizontal
                no_change_scroll_mode:
                  type: integer
                  description: 'Page navigation mode lock flag. 1:Yes 0:No'
                  default: 0
                  enum:
                    - 0
                    - 1
                scroll_direction:
                  type: string
                  description: 'Direction for horizontal scroll/page unit. right:right direction left:left direction'
                  default: right
                  enum:
                    - right
                    - left
                use_highlight:
                  type: integer
                  description: 'Highlight feature enabled flag. 1:Yes 0:No'
                  default: 1
                  enum:
                    - 0
                    - 1
                tool_mode:
                  type: string
                  description: 'Initial tool setting. hand_tool:hand tool highlight:highlight brush:pen none:none'
                  default: hand_tool
                  enum:
                    - hand_tool
                    - highlight
                    - brush
                    - none
        upload_file:
          type: array
          items:
            $ref: '#/components/schemas/UploadFile'
        thumbnail_file:
          type: array
          items:
            $ref: '#/components/schemas/ThumbnailFile'
      example:
        type: create-content
        payload:
          sco_type: content
          generator_type: SCORM
          parent_sco_code: sample
          insert_after: <last>
    UploadFile:
      type: object
      properties:
        extension:
          type: string
          description: 'File extension. zip:SCORM content pdf:PDF content'
          enum:
            - zip
            - pdf
        size:
          type: integer
          description: File size (in bytes)
    ThumbnailFile:
      type: object
      properties:
        extension:
          type: string
          description: File extension
          enum:
            - jpg
            - jpeg
            - png
        size:
          type: integer
          description: File size (in bytes)
    UploadFile_ThumbnailTo:
      type: object
      properties:
        method:
          type: string
          description: HTTP method
          enum:
            - POST
        url:
          type: string
          description: Upload destination URL
        headers:
          type: object
          description: HTTP headers
          properties:
            Content-Type:
              type: string
              enum:
                - multipart/form-data
        fields:
          type: object
          description: Form data
          properties:
            Content-Type:
              type: string
              enum:
                - multipart/form-data
            X-Amz-Security-Token:
              type: string
              description: AWS security token
            key:
              type: string
              description: Object key
            X-Amz-Credential:
              type: string
              description: AWS credential
            X-Amz-Algorithm:
              type: string
              description: AWS signature algorithm
            X-Amz-Date:
              type: string
              description: URL issuance datetime (AWS signature date)
            Policy:
              type: string
              description: Policy
            X-Amz-Signature:
              type: string
              description: AWS signature
        expires_at:
          type: string
          format: date-time
          description: URL expiration time
    Payload:
      type: object
      properties:
        sco_code:
          type: string
          description: Content code
        upload_file_to:
          $ref: '#/components/schemas/UploadFile_ThumbnailTo'
        upload_thumbnail_to:
          $ref: '#/components/schemas/UploadFile_ThumbnailTo'
    JobResponse:
      type: object
      properties:
        job_id:
          type: integer
          description: Job ID
        type:
          type: string
          description: Job type
          enum:
            - create-content
            - update-content
        status:
          type: string
          description: Job status
          enum:
            - waiting
            - in progress
            - complete
            - failed
        payload:
          $ref: '#/components/schemas/Payload'
    Group_for_result:
      type: object
      properties:
        id:
          type: integer
          description: Group Internal ID
        name:
          type: string
          description: group name
    Scoringhistory_for_result:
      type: object
      properties:
        user_id:
          type: integer
          description: Operator internal ID
        user_login:
          type: string
          description: Operator Login ID
        action_type:
          type: string
          description: Operation type
        flow_step_type:
          type: string
          description: Grading workflow phase type
        flow_step_name:
          type: string
          description: Grading workflow step name
        updated_flow_step_type:
          type: string
          description: Grading workflow phase type
        updated_flow_step_name:
          type: string
          description: Grading workflow step name
        comment:
          type: string
          description: Comment at the time of operation
        action_date:
          type: string
          description: Operation datetime
          format: date-time
    ResultBase:
      type: object
      properties:
        result_id:
          type: integer
          description: Score ID
        user_id:
          type: integer
          description: User Internal ID
        login:
          type: string
          description: Login ID
        name:
          type: string
          description: name
        sco_id:
          type: string
          description: Content Internal ID
        sco_code:
          type: string
          description: Content code
        title:
          type: string
          description: Title
        score:
          type: integer
          description: Score
        lesson_status:
          type: string
          description: Completion status
        lesson_status_label:
          type: string
          description: Completion status label. Returns values in Japanese.
        entry_date:
          type: string
          description: Answer start datetime
          format: date-time
        updated_date:
          type: string
          description: Score updated datetime
          format: date-time
        duration:
          type: integer
          description: Total answer time
        session_time:
          type: integer
          description: Session time
        start_date:
          type: string
          description: Answer start datetime
          format: date-time
        finish_date:
          type: string
          description: Answer completion datetime
          format: date-time
        kicked_at:
          type: string
          description: Kicked out datetime
          format: date-time
        included:
          type: integer
          description: 'Whether to include in learning screen progress. 1:include 0:exclude'
          enum:
            - 0
            - 1
    ResultList:
      allOf:
        - $ref: '#/components/schemas/ResultBase'
        - type: object
          properties:
            is_active:
              type: integer
              description: Evaluation target
    AuthorList:
      type: object
      required:
        - results
        - meta
      properties:
        results:
          type: array
          description: List of authors
          items:
            type: object
            properties:
              author_id:
                type: integer
                description: Author internal ID
              author_uid:
                type: string
                description: Identification code
              author_types:
                type: array
                description: List of types
                items:
                  type: string
                  enum:
                    - lecturer
                    - organizer
                    - passers
              author_name:
                type: string
                description: Name
              author_summary:
                type: string
                description: Lecturer overview
              organizer_summary:
                type: string
                description: Organizer overview
              passers_summary:
                type: string
                description: Passer overview
              author_description:
                type: string
                description: Lecturer description
              organizer_description:
                type: string
                description: Organizer description
              passers_description:
                type: string
                description: Passer description
              author_ratio:
                type: integer
                description: Distribution ratio
                minimum: 0
                maximum: 100
              entry_date:
                type: string
                description: Registration datetime
                format: date-time
              user:
                type: object
                description: User information
                properties:
                  id:
                    type: integer
                    description: User Internal ID
                  login:
                    type: string
                    description: Login ID
                  name:
                    type: string
                    description: User name
        meta:
          type: object
          description: Meta information
          properties:
            total:
              type: integer
              description: Total count
            limit:
              type: integer
              description: Limit count
            offset:
              type: integer
              description: Start position
    TrainingReservationList:
      type: object
      description: Reservation history list
      properties:
        results:
          type: array
          description: Reservation history details
          items:
            type: object
            description: Reservation history details
            properties:
              reservation_no:
                type: string
                description: Reservation ID
              reservation_status:
                type: string
                description: Status
                enum:
                  - waiting_approval
                  - approval
                  - disapproval
                  - cancel
              reservation_at:
                type: string
                description: Reservation date
              canceled_at:
                type: string
                description: Cancellation date
              attendance_at:
                type: string
                description: Attendance date
              created_at:
                type: string
                description: Created date
              updated_at:
                type: string
                description: Updated date
              reservation_user:
                type: object
                description: Reserver information
                properties:
                  user_id:
                    type: integer
                    description: User Internal ID
                  user_name:
                    type: string
                    description: User name
                  user_login:
                    type: string
                    description: Login ID
                  user_email:
                    type: string
                    description: Email address
              reserved_training:
                type: object
                description: Reserved training information
                properties:
                  training_code:
                    type: string
                    description: Training code
                  training_title:
                    type: string
                    description: Training title
                  stock_name:
                    type: string
                    description: Period name
                  duration_end_date:
                    type: string
                    description: Due date specification
                  duration_num:
                    type: integer
                    description: Number of days after reservation
                  duration_unit:
                    type: string
                    description: 'Date unit after reservation (days=D, weeks=W, months=M, years=Y)'
                    enum:
                      - D
                      - W
                      - M
                      - Y
                  ticket_no:
                    type: string
                    description: Ticket number
                  attendance_status:
                    type: string
                    description: Attendance status
                    enum:
                      - not_accepted
                      - attended
                      - absence
        meta:
          $ref: '#/components/schemas/Meta'
    PaymentList:
      type: object
      description: Payment history list
      properties:
        results:
          type: array
          description: Payment history details
          items:
            type: object
            description: Payment history details
            properties:
              payment_id:
                type: integer
                description: Payment internal ID
              payment_no:
                type: string
                description: Payment number
              payment_status:
                type: string
                description: Status
              payment_method:
                type: string
                description: Payment method
              payment_price:
                type: integer
                description: Amount
              payment_transaction_fee:
                type: integer
                description: Payment transaction fee
              paid_at:
                type: string
                description: Payment date
              canceled_at:
                type: string
                description: Cancellation date
              created_at:
                type: string
                description: Created date
              updated_at:
                type: string
                description: Updated date
              payment_purchases:
                type: array
                description: Purchase list
                items:
                  type: object
                  description: Purchase details
                  properties:
                    purchase_id:
                      type: integer
                      description: Purchase internal ID
                    product_code:
                      type: string
                      description: Product code
                    product_type:
                      type: string
                      description: Product type
                    product_title:
                      type: string
                      description: Product name
                    duration_pirce:
                      type: integer
                      description: Price
                    duration_start:
                      type: string
                      description: Start datetime
                      format: date-time
                    duration_close:
                      type: string
                      description: End datetime
                      format: date-time
                    purchase_amount:
                      type: integer
                      description: Quantity
                    purchase_price:
                      type: integer
                      description: Purchase price
                    coupon:
                      type: object
                      description: Coupon
                      properties:
                        discount_code:
                          type: string
                          description: Discount code
                        discount_name:
                          type: string
                          description: Name
                        discount_rate:
                          type: integer
                          description: Discount rate
                    tickets:
                      type: array
                      description: Ticket list
                      items:
                        type: string
                        description: Ticket details
                    authors:
                      type: array
                      description: Author list
                      items:
                        type: object
                        description: Author details
                        properties:
                          author_id:
                            type: integer
                            description: Author internal ID
                          author_uid:
                            type: string
                            description: Identification code
                          author_name:
                            type: string
                            description: Author name
                          profit_rate:
                            type: integer
                            description: Profit rate
              payment_user:
                type: object
                description: Buyer information
                properties:
                  user_id:
                    type: integer
                    description: User Internal ID
                  user_name:
                    type: string
                    description: User name
                  user_login:
                    type: string
                    description: Login ID
                  user_email:
                    type: string
                    description: Email address
              payment_contact:
                type: object
                description: Contact information
                properties:
                  contact_username:
                    type: string
                    description: name
                  contact_company:
                    type: string
                    description: Company name
                  contact_tel:
                    type: string
                    description: Contact information
                  contact_zip:
                    type: string
                    description: Postal code
                  contact_prefectures:
                    type: string
                    description: Prefecture
                  contact_city:
                    type: string
                    description: City/ward/town/village
                  contact_addr1:
                    type: string
                    description: Address 1
                  contact_addr2:
                    type: string
                    description: Address 2
              comment:
                type: string
                description: Notes
        meta:
          $ref: '#/components/schemas/Meta'
    AuthorResult:
      type: object
      required:
        - result
      properties:
        result:
          type: object
          description: Author
          properties:
            author_id:
              type: integer
              description: Author internal ID
            author_uid:
              type: string
              description: Identification code
            author_types:
              type: array
              description: List of types
              items:
                type: string
                enum:
                  - lecturer
                  - organizer
                  - passers
            author_name:
              type: string
              description: Name
            author_summary:
              type: string
              description: Lecturer overview
            organizer_summary:
              type: string
              description: Organizer overview
            passers_summary:
              type: string
              description: Passer overview
            author_description:
              type: string
              description: Lecturer description
            organizer_description:
              type: string
              description: Organizer description
            passers_description:
              type: string
              description: Passer description
              author_ratio:
                type: integer
                description: Distribution ratio
                minimum: 0
                maximum: 100
              entry_date:
                type: string
                description: Registration datetime
              user:
                type: object
                description: User information
                properties:
                  id:
                    type: integer
                    description: User Internal ID
                  login:
                    type: string
                    description: Login ID
                  name:
                    type: string
                    description: User name
    ResultDetail:
      type: object
      required:
        - results
        - meta
      properties:
        results:
          type: array
          items:
            allOf:
              - $ref: '#/components/schemas/ResultBase'
              - type: object
                required:
                  - groups
                properties:
                  groups:
                    type: array
                    description: Belonged groups
                    items:
                      $ref: '#/components/schemas/Group_for_result'
        meta:
          $ref: '#/components/schemas/Meta'
    evaluation_result:
      type: array
      description: Evaluation results
      items:
        type: object
        properties:
          setting_name:
            type: string
            description: Evaluation setting name
          section_tags:
            type: array
            description: Tag type (section tags)
            items:
              type: object
              properties:
                tag_name:
                  type: string
                  description: Tag name
                max_score:
                  type: string
                  description: Perfect score per tag
                score:
                  type: string
                  description: Score per tag
                evaluation:
                  type: string
                  description: Evaluation per tag
          question_tags:
            type: array
            description: Tag type (question tags)
            items:
              type: object
              properties:
                tag_name:
                  type: string
                  description: Tag name
                max_score:
                  type: string
                  description: Perfect score per tag
                score:
                  type: string
                  description: Score per tag
                evaluation:
                  type: string
                  description: Evaluation per tag
          scoring_history:
            type: array
            description: Scoring history
            items:
              $ref: '#/components/schemas/Scoringhistory_for_result_v2'
            example: []
    scorer:
      type: object
      properties:
        scorer_user_id:
          type: integer
          description: Grader internal ID
        scorer_user_login:
          type: string
          description: Grader Login ID
    CheckResultDetails:
      type: array
      items:
        type: object
        properties:
          check_type:
            type: string
            description: Check item name
            enum:
              - speed
              - sound
          check_action:
            type: string
            description: Behavior based on check result
            enum:
              - allow
              - forbidden
          check_condition:
            type: string
            description: Check condition. Null for audio.
          check_result:
            type: string
            description: Check result. Null for audio.
          check_ok:
            type: boolean
            description: Result
          entry_date:
            type: string
            description: Check execution datetime. Same as course start datetime.
            format: date-time
    LoginCheckResult:
      type: object
      properties:
        user_os:
          type: string
          description: OS name
        user_browser:
          type: string
          description: Browser name
        user_agent:
          type: string
          description: User agent
        check_ok:
          type: boolean
          description: Result
        entry_date:
          type: string
          description: Check execution datetime. Same as course start datetime.
          format: date-time
    RubricResult:
      type: object
      properties:
        perspective:
          type: string
          description: Evaluation perspective name
        level:
          type: string
          description: Evaluation level name
        score:
          type: integer
          description: Score
    detail_n:
      type: object
      properties:
        section_no:
          type: string
        question_no:
          type: string
        choice_no:
          type: array
          items:
            type: string
            pattern: '^[a-zA-Z0-9._-]+$'
          example: choice-1.0_a
        type:
          type: string
        student_responce:
          type: string
        correct_responce:
          type: array
          items:
            $ref: '#/components/schemas/CorrectResponce'
        result:
          type: string
        duration:
          type: integer
        section_tag:
          type: array
          items:
            type: string
        item_tag:
          type: array
          items:
            type: string
        rubric_result:
          type: array
          description: Results per rubric perspective
          items:
            $ref: '#/components/schemas/RubricResult'
    detail_n_advancedetail:
      type: object
      properties:
        section_no:
          type: string
        question_no:
          type: string
        choice_no:
          type: array
          items:
            type: string
            pattern: '^[a-zA-Z0-9._-]+$'
          example: choice-1.0_a
        type:
          type: string
        student_response:
          type: string
          description: Respondent's answer content
        correct_responses:
          type: array
          items:
            $ref: '#/components/schemas/CorrectResponce'
        result:
          type: string
          description: Correct/incorrect
        latency:
          type: string
          description: Answer time for the question
        section_tag:
          description: Section tags
          type: array
          items:
            type: string
        item_tag:
          description: Question tags
          type: array
          items:
            type: string
        rubric_result:
          type: array
          description: Results per rubric perspective
          items:
            $ref: '#/components/schemas/RubricResult'
    ErrorResponse:
      required:
        - error
      type: object
      properties:
        error:
          type: string
          description: Error type
        error_description:
          type: string
          description: Error details
    ErrorResponse_for_ResultAdvanceDetail:
      type: object
      required:
        - error
        - error_description
        - error_items
      properties:
        error:
          type: string
          description: Error type
        error_description:
          type: string
          description: Error details
        error_items:
          type: array
          items:
            type: object
            properties:
              index:
                type: integer
                description: Array index of the error target
              error_details:
                type: array
                items:
                  type: string
                description: Error details
    TokenRequestPost:
      type: object
      required:
        - grant_type
        - client_id
        - client_secret
      properties:
        client_id:
          type: string
          description: Client ID (found in the third-party app management screen)
        client_secret:
          type: string
          format: password
          description: Secret key (found in the third-party app management screen)
        grant_type:
          type: string
          enum:
            - client_credentials
          description: Grant type (fixed to `client_credentials`)
    ResultBaseResponse:
      type: object
      properties:
        result:
          type: object
          properties:
            result_id:
              type: string
              example: '123'
              description: Score ID
            user_id:
              type: integer
              description: User Internal ID
            login:
              type: string
              description: Login ID
            name:
              type: string
              description: name
            sco_id:
              type: string
              description: Content Internal ID
            sco_code:
              type: string
              description: Content code
            title:
              type: string
              description: Title
            score:
              type: string
              description: Score
            lesson_status:
              type: string
              description: Completion status
            lesson_status_label:
              type: string
              description: Completion status label. Returns values in Japanese.
            entry_date:
              type: string
              format: date-time
              description: Answer start datetime
            updated_date:
              type: string
              format: date-time
              description: Score updated datetime
            duration:
              type: string
              description: Total answer time
            session_time:
              type: string
              description: Session time
            start_date:
              type: [string, 'null']
              format: date-time
              description: Answer start datetime
            finish_date:
              type: [string, 'null']
              format: date-time
              description: Answer completion datetime
            kicked_at:
              type: [string, 'null']
              format: date-time
              description: Kicked out datetime
            included:
              type: integer
              description: 'Whether to include in learning screen progress. 1:include 0:exclude'
              enum:
                - 0
                - 1
            result_table_detail:
              type: string
              description: Score table detail information
            groups:
              type: array
              description: Belonged groups
              items:
                $ref: '#/components/schemas/Group_for_result'
            scorer:
              $ref: '#/components/schemas/scorer'
            evaluation_result:
              $ref: '#/components/schemas/evaluation_result'
            scoring_history:
              type: array
              description: Scoring history
              items:
                $ref: '#/components/schemas/Scoringhistory_for_result_v2'
            rubric_result:
              type: array
              description: Results per rubric perspective
              items:
                $ref: '#/components/schemas/RubricResult'
        details:
          type: array
          items:
            $ref: '#/components/schemas/detail_n'
    CorrectResponce:
      type: object
      properties:
        pattern:
          type: string
          description: Correct answer pattern
      required:
        - pattern
    Scoringhistory_for_result_v2:
      type: object
      properties:
        user_id:
          type: integer
          description: Operator internal ID
        user_login:
          type: string
          description: Operator Login ID
        action_type:
          type: string
          description: Operation type
        flow_step_type:
          type: [string, 'null']
          description: Grading workflow phase type
        flow_step_name:
          type: [string, 'null']
          description: Grading workflow step name
        updated_flow_step_type:
          type: [string, 'null']
          description: Grading workflow phase type (after update)
        updated_flow_step_name:
          type: [string, 'null']
          description: Grading workflow step name (after update)
        comment:
          type: [string, 'null']
          description: Comment at the time of operation
        action_date:
          type: string
          format: date-time
          description: Operation datetime
      example: []
      required:
        - user_id
        - user_login
        - action_type
        - flow_step_type
        - flow_step_name
        - updated_flow_step_type
        - updated_flow_step_name
        - comment
        - action_date
    ResultAdvanceDetailResponse:
      type: object
      properties:
        result:
          type: array
          items:
            type: object
            properties:
              user_id:
                type: integer
                description: User Internal ID
              login:
                type: string
                description: Login ID
              name:
                type: string
                description: name
              error:
                type: string
                description: Outputs "not found" only when the specified user cannot be found.
                enum:
                  - not found.
              sco_results:
                type: array
                items:
                  type: object
                  properties:
                    sco_id:
                      type: string
                      description: Content Internal ID
                    sco_code:
                      type: string
                      description: Content code
                    title:
                      type: string
                      description: Title
                    keyword:
                      type: string
                      description: Search keyword
                    result_id:
                      type: integer
                      description: Score Internal ID
                    score:
                      type: integer
                      description: Score
                    lesson_status:
                      type: string
                      description: Completion status
                    lesson_status_label:
                      type: string
                      description: Completion status name. Returns values in Japanese.
                    entry_date:
                      type: string
                      format: date-time
                      description: Exam start datetime
                    updated_date:
                      type: string
                      description: Score updated datetime
                      format: date-time
                    duration:
                      type: integer
                      description: Total answer time
                    session_time:
                      type: integer
                      description: Session time
                    start_date:
                      type: string
                      format: date-time
                      description: Learning start datetime
                    finish_date:
                      type: string
                      format: date-time
                      description: Submission datetime
                    kicked_at:
                      type: [string, 'null']
                      format: date-time
                      description: Kicked out datetime
                    included:
                      type: integer
                      description: 'Whether to include in learning screen progress. 1:include 0:exclude'
                      enum:
                        - 0
                        - 1
                    result_table_detail:
                      type: string
                      description: Score table detail information
                    login_check_result:
                      $ref: '#/components/schemas/LoginCheckResult'
                    check_result_details:
                      $ref: '#/components/schemas/CheckResultDetails'
                    details:
                      type: array
                      items:
                        $ref: '#/components/schemas/detail_n_advancedetail'
                    scorer:
                      $ref: '#/components/schemas/scorer'
                    evaluation_result:
                      $ref: '#/components/schemas/evaluation_result'
                    scoring_history:
                      type: array
                      description: Scoring history
                      items:
                        $ref: '#/components/schemas/Scoringhistory_for_result_v2'
                    rubric_result:
                      type: array
                      description: Results per rubric perspective
                      items:
                        $ref: '#/components/schemas/RubricResult'
                    error:
                      type: string
                      description: Outputs "not found" only when the specified content cannot be found.
                      enum:
                        - not found.
    UpdateGroupRequest1:
      type: object
      required:
        - name
        - group_code
      properties:
        name:
          type: string
          description: group name. Duplicates within the same level are not allowed.
          example: Grade 3
        group_code:
          type: string
          description: group code
          example: g155
        new_group_code:
          type: string
          description: New group code. If an empty string is specified, the default value is set. If the parameter is not specified, it will not be updated.
          example: g15
        user_limit:
          type: integer
          description: Registration limit. Specify 0 for no limit. If the parameter is not specified, it will not be updated.
          example: 100

    UpdateGroupRequest2:
      type: object
      required:
        - name
      properties:
        name:
          type: string
          description: group name. Duplicates within the same level are not allowed.
          example: Grade 3
        group_code:
          type: string
          description: group code. Only used when group_id is 0.
          example: g155
        new_group_code:
          type: string
          description: New group code. If an empty string is specified, the default value is set. If the parameter is not specified, it will not be updated.
          example: g15
        user_limit:
          type: integer
          description: Registration limit. Specify 0 for no limit. If the parameter is not specified, it will not be updated.
          example: 100

    UpdateGroupResponse:
      type: object
      properties:
        result:
          type: object
          description: Update result
          properties:
            group_id:
              type: integer
              description: Group Internal ID
            group_code:
              type: string
              description: group code
            parent_id:
              type: integer
              description: Parent Group Internal ID
            parent_code:
              type: string
              description: Parent group code
            name:
              type: string
              description: group name
            user_limit:
              type: integer
              description: Number of registerable accounts
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: /v1/oauth/token
          scopes:
            result.read: 'Read score data'
            sco.read: 'Read content data'
            sco.delete: 'Delete content'
            sco.assign: 'Assign content'
            user.read: 'Read user information'
            user.create: 'Create users'
            user.update: 'Update users'
            user.delete: 'Delete users'
            user.group: 'Assign users to groups'
            user.merge: 'Merge users'
            group.read: 'Read group information'
            group.create: 'Create groups'
            group.update: 'Update groups'
            group.delete: 'Delete groups'
            group.contents: 'Manage group content'
            author.read: 'Read author information'
            author.create: 'Create authors'
            author.update: 'Update authors'
            author.delete: 'Delete authors'
            payment.read: 'Read payment information'
            accesslist.read: 'Read IP restriction lists'
            accesslist.create: 'Create IP restriction lists'
            accesslist.update: 'Update IP restriction lists'
            accesslist.delete: 'Delete IP restriction lists'
            accesspermit.read: 'Read access permissions'
            accesspermit.create: 'Add access permissions'
            accesspermit.update: 'Update access permissions'
            accesspermit.delete: 'Delete access permissions'
            training_reservation.read: 'Read training reservations'
